about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS5
-rw-r--r--CONTRIBUTING.md108
-rw-r--r--doc/build-helpers/fetchers.chapter.md14
-rw-r--r--doc/build-helpers/images/dockertools.section.md1
-rw-r--r--doc/build-helpers/special/checkpoint-build.section.md12
-rw-r--r--doc/build-helpers/testers.chapter.md54
-rw-r--r--doc/build-helpers/trivial-build-helpers.chapter.md34
-rw-r--r--doc/functions/nix-gitignore.section.md29
-rw-r--r--doc/hooks/breakpoint.section.md4
-rw-r--r--doc/hooks/installShellFiles.section.md32
-rw-r--r--doc/hooks/mpi-check-hook.section.md15
-rw-r--r--doc/languages-frameworks/agda.section.md5
-rw-r--r--doc/languages-frameworks/android.section.md26
-rw-r--r--doc/languages-frameworks/beam.section.md8
-rw-r--r--doc/languages-frameworks/bower.section.md14
-rw-r--r--doc/languages-frameworks/chicken.section.md6
-rw-r--r--doc/languages-frameworks/coq.section.md17
-rw-r--r--doc/languages-frameworks/crystal.section.md6
-rw-r--r--doc/languages-frameworks/cuda.section.md18
-rw-r--r--doc/languages-frameworks/cuelang.section.md4
-rw-r--r--doc/languages-frameworks/dhall.section.md10
-rw-r--r--doc/languages-frameworks/dotnet.section.md4
-rw-r--r--doc/languages-frameworks/gnome.section.md48
-rw-r--r--doc/languages-frameworks/go.section.md82
-rw-r--r--doc/languages-frameworks/idris.section.md4
-rw-r--r--doc/languages-frameworks/java.section.md36
-rw-r--r--doc/languages-frameworks/javascript.section.md90
-rw-r--r--doc/languages-frameworks/lisp.section.md20
-rw-r--r--doc/languages-frameworks/lua.section.md41
-rw-r--r--doc/languages-frameworks/maven.section.md2
-rw-r--r--doc/languages-frameworks/ocaml.section.md1
-rw-r--r--doc/languages-frameworks/perl.section.md74
-rw-r--r--doc/languages-frameworks/php.section.md6
-rw-r--r--doc/languages-frameworks/pkg-config.section.md6
-rw-r--r--doc/languages-frameworks/python.section.md116
-rw-r--r--doc/languages-frameworks/ruby.section.md2
-rw-r--r--doc/languages-frameworks/rust.section.md70
-rw-r--r--doc/languages-frameworks/swift.section.md28
-rw-r--r--doc/languages-frameworks/vim.section.md16
-rw-r--r--doc/packages/darwin-builder.section.md7
-rw-r--r--doc/packages/eclipse.section.md66
-rw-r--r--doc/packages/emacs.section.md13
-rw-r--r--doc/packages/steam.section.md2
-rw-r--r--doc/packages/urxvt.section.md4
-rw-r--r--doc/packages/weechat.section.md6
-rw-r--r--doc/stdenv/cross-compilation.chapter.md30
-rw-r--r--doc/stdenv/meta.chapter.md50
-rw-r--r--doc/stdenv/multiple-output.chapter.md4
-rw-r--r--doc/stdenv/stdenv.chapter.md94
-rw-r--r--doc/using/configuration.chapter.md2
-rw-r--r--doc/using/overlays.chapter.md2
-rw-r--r--doc/using/overrides.chapter.md54
-rw-r--r--maintainers/README.md8
-rw-r--r--maintainers/maintainer-list.nix135
-rwxr-xr-xmaintainers/scripts/haskell/hydra-report.hs31
-rw-r--r--maintainers/team-list.nix2
-rw-r--r--nixos/doc/manual/administration/cleaning-store.chapter.md6
-rw-r--r--nixos/doc/manual/administration/container-networking.section.md12
-rw-r--r--nixos/doc/manual/administration/control-groups.chapter.md8
-rw-r--r--nixos/doc/manual/administration/declarative-containers.section.md28
-rw-r--r--nixos/doc/manual/administration/service-mgmt.chapter.md4
-rw-r--r--nixos/doc/manual/configuration/abstractions.section.md6
-rw-r--r--nixos/doc/manual/configuration/ad-hoc-network-config.section.md10
-rw-r--r--nixos/doc/manual/configuration/adding-custom-packages.section.md34
-rw-r--r--nixos/doc/manual/configuration/config-file.section.md62
-rw-r--r--nixos/doc/manual/configuration/customizing-packages.section.md52
-rw-r--r--nixos/doc/manual/configuration/declarative-packages.section.md4
-rw-r--r--nixos/doc/manual/configuration/file-systems.chapter.md10
-rw-r--r--nixos/doc/manual/configuration/firewall.section.md18
-rw-r--r--nixos/doc/manual/configuration/gpu-accel.chapter.md62
-rw-r--r--nixos/doc/manual/configuration/ipv4-config.section.md20
-rw-r--r--nixos/doc/manual/configuration/ipv6-config.section.md28
-rw-r--r--nixos/doc/manual/configuration/kubernetes.chapter.md30
-rw-r--r--nixos/doc/manual/configuration/linux-kernel.chapter.md54
-rw-r--r--nixos/doc/manual/configuration/luks-file-systems.section.md34
-rw-r--r--nixos/doc/manual/configuration/modularity.section.md10
-rw-r--r--nixos/doc/manual/configuration/network-manager.section.md16
-rw-r--r--nixos/doc/manual/configuration/overlayfs.section.md28
-rw-r--r--nixos/doc/manual/configuration/profiles.chapter.md8
-rw-r--r--nixos/doc/manual/configuration/renaming-interfaces.section.md20
-rw-r--r--nixos/doc/manual/configuration/ssh.section.md10
-rw-r--r--nixos/doc/manual/configuration/subversion.chapter.md51
-rw-r--r--nixos/doc/manual/configuration/user-mgmt.chapter.md28
-rw-r--r--nixos/doc/manual/configuration/wayland.chapter.md6
-rw-r--r--nixos/doc/manual/configuration/wireless.section.md40
-rw-r--r--nixos/doc/manual/configuration/x-windows.chapter.md144
-rw-r--r--nixos/doc/manual/configuration/xfce.chapter.md22
-rw-r--r--nixos/doc/manual/development/activation-script.section.md16
-rw-r--r--nixos/doc/manual/development/assertions.section.md4
-rw-r--r--nixos/doc/manual/development/etc-overlay.section.md8
-rw-r--r--nixos/doc/manual/development/meta-attributes.section.md4
-rw-r--r--nixos/doc/manual/development/non-switchable-systems.section.md2
-rw-r--r--nixos/doc/manual/development/option-declarations.section.md42
-rw-r--r--nixos/doc/manual/development/option-def.section.md78
-rw-r--r--nixos/doc/manual/development/option-types.section.md122
-rw-r--r--nixos/doc/manual/development/settings-options.section.md42
-rw-r--r--nixos/doc/manual/development/unit-handling.section.md12
-rw-r--r--nixos/doc/manual/development/writing-modules.chapter.md8
-rw-r--r--nixos/doc/manual/development/writing-nixos-tests.section.md16
-rw-r--r--nixos/doc/manual/installation/building-images-via-systemd-repart.chapter.md30
-rw-r--r--nixos/doc/manual/installation/changing-config.chapter.md4
-rw-r--r--nixos/doc/manual/installation/installing-behind-a-proxy.section.md6
-rw-r--r--nixos/doc/manual/installation/installing-from-other-distro.section.md18
-rw-r--r--nixos/doc/manual/installation/installing-virtualbox-guest.section.md8
-rw-r--r--nixos/doc/manual/installation/upgrading.chapter.md10
-rw-r--r--nixos/doc/manual/release-notes/rl-1509.section.md8
-rw-r--r--nixos/doc/manual/release-notes/rl-1703.section.md4
-rw-r--r--nixos/doc/manual/release-notes/rl-2009.section.md34
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md4
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md10
-rw-r--r--nixos/doc/manual/release-notes/rl-2305.section.md64
-rw-r--r--nixos/doc/manual/release-notes/rl-2311.section.md44
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md26
-rw-r--r--nixos/lib/make-options-doc/default.nix16
-rw-r--r--nixos/modules/hardware/uni-sync.nix117
-rw-r--r--nixos/modules/i18n/input-method/default.md70
-rw-r--r--nixos/modules/module-list.nix14
-rw-r--r--nixos/modules/programs/digitalbitbox/default.md36
-rw-r--r--nixos/modules/programs/goldwarden.nix50
-rw-r--r--nixos/modules/programs/nix-ld.nix42
-rw-r--r--nixos/modules/programs/partition-manager.nix22
-rw-r--r--nixos/modules/programs/plotinus.md6
-rw-r--r--nixos/modules/programs/zsh/oh-my-zsh.md8
-rw-r--r--nixos/modules/rename.nix1
-rw-r--r--nixos/modules/security/acme/default.md366
-rw-r--r--nixos/modules/services/admin/docuum.nix45
-rw-r--r--nixos/modules/services/audio/castopod.md20
-rw-r--r--nixos/modules/services/audio/roon-server.nix3
-rw-r--r--nixos/modules/services/backup/borgbackup.md31
-rw-r--r--nixos/modules/services/databases/foundationdb.md20
-rw-r--r--nixos/modules/services/databases/postgresql.md42
-rw-r--r--nixos/modules/services/databases/tigerbeetle.md8
-rw-r--r--nixos/modules/services/desktop-managers/plasma6.nix1
-rw-r--r--nixos/modules/services/desktops/flatpak.md8
-rw-r--r--nixos/modules/services/development/athens.md8
-rw-r--r--nixos/modules/services/development/blackfire.md2
-rw-r--r--nixos/modules/services/development/livebook.md8
-rw-r--r--nixos/modules/services/editors/emacs.md22
-rw-r--r--nixos/modules/services/hardware/sane_extra_backends/brscan5.nix2
-rw-r--r--nixos/modules/services/home-automation/homeassistant-satellite.nix225
-rw-r--r--nixos/modules/services/home-automation/wyoming/faster-whisper.nix (renamed from nixos/modules/services/audio/wyoming/faster-whisper.nix)0
-rw-r--r--nixos/modules/services/home-automation/wyoming/openwakeword.nix (renamed from nixos/modules/services/audio/wyoming/openwakeword.nix)0
-rw-r--r--nixos/modules/services/home-automation/wyoming/piper.nix (renamed from nixos/modules/services/audio/wyoming/piper.nix)0
-rw-r--r--nixos/modules/services/home-automation/wyoming/satellite.nix244
-rw-r--r--nixos/modules/services/mail/mailman.md4
-rw-r--r--nixos/modules/services/matrix/maubot.md90
-rw-r--r--nixos/modules/services/matrix/mjolnir.md4
-rw-r--r--nixos/modules/services/matrix/synapse.md6
-rw-r--r--nixos/modules/services/misc/anki-sync-server.md6
-rw-r--r--nixos/modules/services/misc/forgejo.md40
-rw-r--r--nixos/modules/services/misc/gitlab.md82
-rw-r--r--nixos/modules/services/misc/gitlab.nix4
-rw-r--r--nixos/modules/services/misc/invidious-router.nix121
-rw-r--r--nixos/modules/services/misc/libreddit.nix2
-rw-r--r--nixos/modules/services/misc/mollysocket.nix133
-rw-r--r--nixos/modules/services/misc/sourcehut/default.md8
-rw-r--r--nixos/modules/services/misc/weechat.md4
-rw-r--r--nixos/modules/services/misc/workout-tracker.nix83
-rw-r--r--nixos/modules/services/monitoring/certspotter.md48
-rw-r--r--nixos/modules/services/monitoring/goss.md2
-rw-r--r--nixos/modules/services/monitoring/parsedmarc.md124
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters.md14
-rw-r--r--nixos/modules/services/network-filesystems/davfs2.nix49
-rw-r--r--nixos/modules/services/network-filesystems/litestream/default.md2
-rw-r--r--nixos/modules/services/networking/firefox-syncserver.md24
-rw-r--r--nixos/modules/services/networking/mosquitto.md73
-rw-r--r--nixos/modules/services/networking/mycelium.nix13
-rw-r--r--nixos/modules/services/networking/netbird.md26
-rw-r--r--nixos/modules/services/networking/networkmanager.nix2
-rw-r--r--nixos/modules/services/networking/pleroma.md196
-rw-r--r--nixos/modules/services/networking/prosody.md60
-rw-r--r--nixos/modules/services/networking/yggdrasil.md6
-rw-r--r--nixos/modules/services/search/meilisearch.md4
-rw-r--r--nixos/modules/services/security/usbguard.nix4
-rw-r--r--nixos/modules/services/web-apps/akkoma.md284
-rw-r--r--nixos/modules/services/web-apps/c2fmzq-server.md4
-rw-r--r--nixos/modules/services/web-apps/discourse.md228
-rw-r--r--nixos/modules/services/web-apps/gotosocial.md52
-rw-r--r--nixos/modules/services/web-apps/grocy.md6
-rw-r--r--nixos/modules/services/web-apps/jitsi-meet.md4
-rw-r--r--nixos/modules/services/web-apps/jitsi-meet.nix11
-rw-r--r--nixos/modules/services/web-apps/keycloak.md24
-rw-r--r--nixos/modules/services/web-apps/lemmy.md14
-rw-r--r--nixos/modules/services/web-apps/nextcloud.md6
-rw-r--r--nixos/modules/services/web-apps/peertube.nix292
-rw-r--r--nixos/modules/services/web-apps/pict-rs.md4
-rw-r--r--nixos/modules/services/web-apps/plausible.md2
-rw-r--r--nixos/modules/services/web-apps/pretix.nix2
-rw-r--r--nixos/modules/services/web-apps/suwayomi-server.md2
-rw-r--r--nixos/modules/services/web-servers/garage.md2
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome.md110
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.md37
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix30
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/xpra.nix1
-rw-r--r--nixos/modules/services/x11/xserver.nix10
-rw-r--r--nixos/modules/system/boot/clevis.md12
-rw-r--r--nixos/modules/system/boot/initrd-ssh.nix30
-rw-r--r--nixos/modules/virtualisation/incus.nix18
-rw-r--r--nixos/modules/virtualisation/virtualbox-guest.nix120
-rw-r--r--nixos/tests/agda.nix7
-rw-r--r--nixos/tests/all-tests.nix2
-rw-r--r--nixos/tests/lvm2/default.nix7
-rw-r--r--nixos/tests/lvm2/systemd-stage-1.nix6
-rw-r--r--nixos/tests/lvm2/thinpool.nix5
-rw-r--r--nixos/tests/lvm2/vdo.nix4
-rw-r--r--nixos/tests/make-test-python.nix2
-rw-r--r--nixos/tests/mollysocket.nix27
-rw-r--r--nixos/tests/nixos-rebuild-install-bootloader.nix2
-rw-r--r--nixos/tests/pantheon.nix6
-rw-r--r--nixos/tests/web-apps/peertube.nix28
-rw-r--r--nixos/tests/workout-tracker.nix29
-rw-r--r--pkgs/README.md70
-rw-r--r--pkgs/applications/audio/alsa-scarlett-gui/default.nix11
-rw-r--r--pkgs/applications/audio/famistudio/build-native-wrapper.nix69
-rw-r--r--pkgs/applications/audio/famistudio/default.nix129
-rw-r--r--pkgs/applications/audio/famistudio/deps.nix5
-rwxr-xr-xpkgs/applications/audio/famistudio/update.sh23
-rw-r--r--pkgs/applications/audio/jacktrip/default.nix4
-rw-r--r--pkgs/applications/audio/schismtracker/default.nix4
-rw-r--r--pkgs/applications/audio/spotify-player/default.nix6
-rw-r--r--pkgs/applications/audio/squeezelite/default.nix6
-rw-r--r--pkgs/applications/audio/youtube-music/default.nix12
-rw-r--r--pkgs/applications/backup/unifi-protect-backup/default.nix4
-rw-r--r--pkgs/applications/blockchains/aperture/default.nix8
-rw-r--r--pkgs/applications/blockchains/erigon/default.nix14
-rw-r--r--pkgs/applications/blockchains/exodus/default.nix4
-rw-r--r--pkgs/applications/editors/codux/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/texpresso/default.nix19
-rw-r--r--pkgs/applications/editors/helix/default.nix19
-rw-r--r--pkgs/applications/editors/jetbrains/bin/versions.json312
-rw-r--r--pkgs/applications/editors/jetbrains/plugins/plugins.json237
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix38
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names3
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix82
-rw-r--r--pkgs/applications/emulators/cemu/default.nix4
-rw-r--r--pkgs/applications/emulators/mame/default.nix4
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json66
-rw-r--r--pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix4
-rw-r--r--pkgs/applications/graphics/f3d/default.nix4
-rw-r--r--pkgs/applications/graphics/imgbrd-grabber/default.nix4
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix4
-rw-r--r--pkgs/applications/graphics/oculante/default.nix6
-rw-r--r--pkgs/applications/graphics/pureref/default.nix14
-rw-r--r--pkgs/applications/kde/partitionmanager/default.nix5
-rw-r--r--pkgs/applications/misc/blender/default.nix24
-rw-r--r--pkgs/applications/misc/go-org/default.nix2
-rw-r--r--pkgs/applications/misc/gramps/default.nix4
-rw-r--r--pkgs/applications/misc/koreader/default.nix8
-rw-r--r--pkgs/applications/misc/logseq/default.nix4
-rw-r--r--pkgs/applications/misc/oxker/default.nix6
-rw-r--r--pkgs/applications/misc/qtpass/default.nix29
-rw-r--r--pkgs/applications/misc/rm-improved/Cargo.lock.patch262
-rw-r--r--pkgs/applications/misc/rm-improved/default.nix17
-rw-r--r--pkgs/applications/misc/rofi-emoji/default.nix10
-rw-r--r--pkgs/applications/misc/slstatus/default.nix6
-rw-r--r--pkgs/applications/misc/stog/asy.nix14
-rw-r--r--pkgs/applications/misc/stog/default.nix18
-rw-r--r--pkgs/applications/misc/stog/markdown.nix15
-rw-r--r--pkgs/applications/misc/xmrig/proxy.nix4
-rw-r--r--pkgs/applications/networking/avalanchego/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix10
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k0sctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kaniko/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/karmor/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/krelay/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubectl-view-secret/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kuma/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/lens/common.nix22
-rw-r--r--pkgs/applications/networking/cluster/lens/darwin.nix33
-rw-r--r--pkgs/applications/networking/cluster/lens/default.nix44
-rw-r--r--pkgs/applications/networking/cluster/lens/linux.nix19
-rw-r--r--pkgs/applications/networking/cluster/pachyderm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/popeye/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/spark/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/tf-summarize/default.nix4
-rw-r--r--pkgs/applications/networking/diswall/default.nix6
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/iamb/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/betterbird/default.nix17
-rw-r--r--pkgs/applications/networking/sync/storj-uplink/default.nix4
-rw-r--r--pkgs/applications/networking/warp/default.nix1
-rw-r--r--pkgs/applications/office/appflowy/default.nix4
-rw-r--r--pkgs/applications/office/mendeley/default.nix4
-rw-r--r--pkgs/applications/office/planify/default.nix4
-rw-r--r--pkgs/applications/office/treesheets/default.nix6
-rw-r--r--pkgs/applications/radio/quisk/default.nix4
-rw-r--r--pkgs/applications/science/biology/iqtree/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/default.nix8
-rw-r--r--pkgs/applications/science/chemistry/octopus/default.nix44
-rw-r--r--pkgs/applications/science/logic/dafny/default.nix4
-rw-r--r--pkgs/applications/science/logic/tamarin-prover/default.nix22
-rw-r--r--pkgs/applications/science/logic/tamarin-prover/tamarin-prover-1.8.0-ghc-9.6.patch237
-rw-r--r--pkgs/applications/science/machine-learning/labelimg/default.nix89
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix19
-rw-r--r--pkgs/applications/science/math/gmsh/fix-python.patch53
-rw-r--r--pkgs/applications/science/math/gurobi/default.nix6
-rw-r--r--pkgs/applications/science/math/pspp/default.nix4
-rw-r--r--pkgs/applications/science/math/rofi-calc/default.nix4
-rw-r--r--pkgs/applications/science/misc/cytoscape/default.nix4
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix5
-rw-r--r--pkgs/applications/science/molecular-dynamics/lammps/default.nix4
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix4
-rw-r--r--pkgs/applications/version-management/forgejo/default.nix4
-rw-r--r--pkgs/applications/version-management/forgejo/static-root-path.patch13
-rw-r--r--pkgs/applications/version-management/git-cliff/default.nix6
-rw-r--r--pkgs/applications/version-management/git-town/default.nix6
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix8
-rw-r--r--pkgs/applications/version-management/gitlab/data.json18
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix10
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-pages/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile74
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock276
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix269
-rw-r--r--pkgs/applications/version-management/gitstatus/default.nix4
-rw-r--r--pkgs/applications/version-management/lucky-commit/default.nix6
-rw-r--r--pkgs/applications/version-management/tig/default.nix4
-rw-r--r--pkgs/applications/video/droidcam/default.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/default.nix3
-rw-r--r--pkgs/applications/video/mpv/scripts/modernx-zydezu.nix39
-rw-r--r--pkgs/applications/video/mpv/scripts/modernx.nix39
-rw-r--r--pkgs/applications/video/mpv/scripts/mpv-osc-modern.nix39
-rw-r--r--pkgs/applications/video/obs-studio/default.nix4
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix4
-rw-r--r--pkgs/applications/video/tartube/default.nix4
-rw-r--r--pkgs/applications/virtualization/distrobox/always-mount-nix.patch137
-rw-r--r--pkgs/applications/virtualization/distrobox/default.nix7
-rw-r--r--pkgs/applications/virtualization/kraft/default.nix6
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix7
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix30
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix133
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix232
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/no-legacy-xorg.patch45
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch29
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch86
-rwxr-xr-xpkgs/applications/virtualization/virtualbox/update.sh15
-rw-r--r--pkgs/applications/window-managers/fvwm/3.nix4
-rw-r--r--pkgs/applications/window-managers/hikari/default.nix64
-rw-r--r--pkgs/applications/window-managers/wayfire/default.nix15
-rw-r--r--pkgs/applications/window-managers/wayfire/firedecor.nix8
-rw-r--r--pkgs/applications/window-managers/wayfire/focus-request.nix58
-rw-r--r--pkgs/applications/window-managers/wayfire/plugins.nix3
-rw-r--r--pkgs/applications/window-managers/wayfire/wayfire-plugins-extra.nix36
-rw-r--r--pkgs/applications/window-managers/wayfire/wayfire-shadows.nix49
-rw-r--r--pkgs/applications/window-managers/wayfire/wcm.nix4
-rw-r--r--pkgs/applications/window-managers/wayfire/wf-shell.nix2
-rw-r--r--pkgs/applications/window-managers/wayfire/windecor.nix6
-rw-r--r--pkgs/applications/window-managers/wayfire/wwp-switcher.nix57
-rw-r--r--pkgs/build-support/agda/default.nix8
-rw-r--r--pkgs/build-support/agda/lib.nix8
-rw-r--r--pkgs/build-support/docker/default.nix4
-rw-r--r--pkgs/build-support/go/module.nix26
-rw-r--r--pkgs/build-support/go/package.nix7
-rw-r--r--pkgs/build-support/lib/cmake.nix8
-rw-r--r--pkgs/build-support/lib/meson.nix38
-rw-r--r--pkgs/by-name/README.md18
-rw-r--r--pkgs/by-name/ad/advcpmv/package.nix62
-rw-r--r--pkgs/by-name/ad/adwsteamgtk/package.nix6
-rw-r--r--pkgs/by-name/ap/aprx/package.nix46
-rw-r--r--pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch38
-rw-r--r--pkgs/by-name/as/ascii-draw/package.nix63
-rw-r--r--pkgs/by-name/as/ast-grep/package.nix6
-rw-r--r--pkgs/by-name/au/autoAddDriverRunpath/auto-add-driver-runpath-hook.sh14
-rw-r--r--pkgs/by-name/au/autoAddDriverRunpath/package.nix6
-rw-r--r--pkgs/by-name/au/autoFixElfFiles/auto-fix-elf-files.sh64
-rw-r--r--pkgs/by-name/au/autoFixElfFiles/package.nix5
-rw-r--r--pkgs/by-name/bo/boxbuddy/package.nix6
-rw-r--r--pkgs/by-name/bp/bpftop/package.nix6
-rw-r--r--pkgs/by-name/bt/bt-migrate/package.nix65
-rw-r--r--pkgs/by-name/bu/bunbun/package.nix40
-rw-r--r--pkgs/by-name/bu/buttermanager/package.nix51
-rw-r--r--pkgs/by-name/ca/cargo-expand/package.nix (renamed from pkgs/development/tools/rust/cargo-expand/default.nix)10
-rw-r--r--pkgs/by-name/cl/clash-verge-rev/package.nix4
-rw-r--r--pkgs/by-name/co/cockpit/package.nix4
-rw-r--r--pkgs/by-name/co/consul/package.nix (renamed from pkgs/servers/consul/default.nix)37
-rw-r--r--pkgs/by-name/cu/cue/package.nix (renamed from pkgs/development/tools/cue/default.nix)29
-rw-r--r--pkgs/by-name/cu/cue/tests/001-all-good.nix11
-rw-r--r--pkgs/by-name/cu/cue/validator.nix (renamed from pkgs/development/tools/cue/validator.nix)0
-rw-r--r--pkgs/by-name/cv/cvemap/package.nix36
-rw-r--r--pkgs/by-name/de/dep-scan/package.nix13
-rw-r--r--pkgs/by-name/di/digestpp/package.nix32
-rw-r--r--pkgs/by-name/do/docuum/package.nix38
-rw-r--r--pkgs/by-name/do/doge/package.nix4
-rw-r--r--pkgs/by-name/do/dotnet-outdated/deps.nix42
-rw-r--r--pkgs/by-name/do/dotnet-outdated/package.nix44
-rw-r--r--pkgs/by-name/dy/dynamodb-local/package.nix1
-rw-r--r--pkgs/by-name/ez/eza/package.nix6
-rw-r--r--pkgs/by-name/fa/fantomas/package.nix4
-rw-r--r--pkgs/by-name/fa/fastcdr/package.nix4
-rw-r--r--pkgs/by-name/fa/fastqc/package.nix83
-rw-r--r--pkgs/by-name/fi/fido2luks/0001-libcryptsetup-rs-bump-version-to-0.9-55.patch343
-rw-r--r--pkgs/by-name/fi/fido2luks/0002-cargo-update.patch654
-rw-r--r--pkgs/by-name/fi/fido2luks/package.nix40
-rw-r--r--pkgs/by-name/fi/files-cli/package.nix6
-rw-r--r--pkgs/by-name/fl/flarectl/package.nix4
-rw-r--r--pkgs/by-name/fl/flashprog/package.nix32
-rw-r--r--pkgs/by-name/fo/folio/package.nix4
-rw-r--r--pkgs/by-name/gc/gcs/package.nix2
-rw-r--r--pkgs/by-name/gi/git-upstream/package.nix31
-rw-r--r--pkgs/by-name/gi/gitu/package.nix6
-rw-r--r--pkgs/by-name/gl/glas/package.nix36
-rw-r--r--pkgs/by-name/gl/glasskube/package.nix55
-rw-r--r--pkgs/by-name/go/goldwarden/package.nix87
-rw-r--r--pkgs/by-name/gt/gtkhash/package.nix54
-rw-r--r--pkgs/by-name/gt/gtrash/package.nix1
-rw-r--r--pkgs/by-name/ha/hacompanion/package.nix4
-rw-r--r--pkgs/by-name/ha/halloy/Cargo.lock (renamed from pkgs/applications/networking/irc/halloy/Cargo.lock)1954
-rw-r--r--pkgs/by-name/ha/halloy/package.nix (renamed from pkgs/applications/networking/irc/halloy/default.nix)9
-rw-r--r--pkgs/by-name/ho/home-manager/package.nix6
-rw-r--r--pkgs/by-name/ht/httpy-cli/package.nix53
-rw-r--r--pkgs/by-name/hu/hugo/package.nix4
-rw-r--r--pkgs/by-name/in/invidious-router/package.nix30
-rw-r--r--pkgs/by-name/it/itsycal/package.nix32
-rw-r--r--pkgs/by-name/ja/jazz2/package.nix4
-rw-r--r--pkgs/by-name/km/kmeet/package.nix43
-rw-r--r--pkgs/by-name/la/labwc-menu-generator/package.nix6
-rw-r--r--pkgs/by-name/ll/llama-cpp/package.nix14
-rw-r--r--pkgs/by-name/lm/lmstudio/package.nix39
-rw-r--r--pkgs/by-name/lo/local-ai/package.nix435
-rw-r--r--pkgs/by-name/lu/lubelogger/package.nix4
-rw-r--r--pkgs/by-name/lu/lunar-client/package.nix4
-rw-r--r--pkgs/by-name/ma/maa-cli/package.nix10
-rw-r--r--pkgs/by-name/ma/masterpdfeditor/package.nix (renamed from pkgs/applications/misc/masterpdfeditor/default.nix)37
-rw-r--r--pkgs/by-name/me/memtest_vulkan/package.nix37
-rw-r--r--pkgs/by-name/me/memtree/package.nix2
-rw-r--r--pkgs/by-name/mi/microsoft-identity-broker/package.nix4
-rw-r--r--pkgs/by-name/mo/mollysocket/package.nix58
-rw-r--r--pkgs/by-name/mo/mousecape/package.nix (renamed from pkgs/os-specific/darwin/mousecape/default.nix)17
-rw-r--r--pkgs/by-name/my/mycelium/Cargo.lock89
-rw-r--r--pkgs/by-name/my/mycelium/package.nix4
-rw-r--r--pkgs/by-name/na/namespace-cli/package.nix4
-rw-r--r--pkgs/by-name/ne/nestopia-ue/package.nix4
-rw-r--r--pkgs/by-name/ni/niri/Cargo.lock371
-rw-r--r--pkgs/by-name/ni/niri/package.nix15
-rw-r--r--pkgs/by-name/ni/nixseparatedebuginfod/package.nix2
-rw-r--r--pkgs/by-name/nv/nvidia-container-toolkit/package.nix4
-rw-r--r--pkgs/by-name/oc/ocenaudio/package.nix4
-rw-r--r--pkgs/by-name/on/onthespot/package.nix (renamed from pkgs/applications/misc/onthespot/default.nix)8
-rw-r--r--pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch21
-rw-r--r--pkgs/by-name/pd/pdf4qt/package.nix67
-rw-r--r--pkgs/by-name/pg/pgmoneta/package.nix4
-rw-r--r--pkgs/by-name/pi/pixi/Cargo.lock6312
-rw-r--r--pkgs/by-name/pi/pixi/package.nix23
-rw-r--r--pkgs/by-name/pl/platformsh/package.nix8
-rw-r--r--pkgs/by-name/pl/plumber/package.nix4
-rw-r--r--pkgs/by-name/po/pot/Cargo.lock (renamed from pkgs/applications/misc/pot/Cargo.lock)22
-rw-r--r--pkgs/by-name/po/pot/package.nix (renamed from pkgs/applications/misc/pot/default.nix)6
-rw-r--r--pkgs/by-name/pr/protonmail-desktop/package.nix52
-rw-r--r--pkgs/by-name/pu/pupdate/package.nix4
-rw-r--r--pkgs/by-name/ra/rabbit/package.nix46
-rw-r--r--pkgs/by-name/ra/railway-travel/package.nix76
-rw-r--r--pkgs/by-name/rc/rcu/Port-to-paramiko-3.x.patch104
-rw-r--r--pkgs/by-name/rc/rcu/package.nix152
-rw-r--r--pkgs/by-name/re/renode-dts2repl/package.nix6
-rw-r--r--pkgs/by-name/re/renode-unstable/package.nix31
-rw-r--r--pkgs/by-name/re/renode/package.nix27
-rw-r--r--pkgs/by-name/ro/rockcraft/package.nix58
-rw-r--r--pkgs/by-name/ro/roslyn-ls/deps.nix3
-rw-r--r--pkgs/by-name/ro/roslyn-ls/package.nix9
-rw-r--r--pkgs/by-name/rq/rqbit/Cargo.lock20
-rw-r--r--pkgs/by-name/rq/rqbit/package.nix4
-rw-r--r--pkgs/by-name/ry/ryujinx/package.nix6
-rw-r--r--pkgs/by-name/sa/sarasa-gothic/package.nix4
-rw-r--r--pkgs/by-name/sc/scion-bootstrapper/package.nix34
-rw-r--r--pkgs/by-name/se/sesh/package.nix4
-rw-r--r--pkgs/by-name/si/single-file-cli/package.nix56
-rw-r--r--pkgs/by-name/sp/spicetify-cli/package.nix4
-rw-r--r--pkgs/by-name/sq/sqlite_orm/package.nix35
-rw-r--r--pkgs/by-name/sw/swaymux/package.nix37
-rw-r--r--pkgs/by-name/sw/swww/package.nix6
-rw-r--r--pkgs/by-name/tg/tgpt/package.nix4
-rw-r--r--pkgs/by-name/ti/tinymist/Cargo.lock4968
-rw-r--r--pkgs/by-name/ti/tinymist/package.nix54
-rw-r--r--pkgs/by-name/tl/tlrc/package.nix6
-rw-r--r--pkgs/by-name/tr/treedome/package.nix4
-rw-r--r--pkgs/by-name/ty/typst-live/package.nix (renamed from pkgs/tools/typesetting/typst-live/default.nix)0
-rw-r--r--pkgs/by-name/ty/typstyle/package.nix46
-rw-r--r--pkgs/by-name/ue/uefisettings/package.nix16
-rw-r--r--pkgs/by-name/un/unciv/package.nix4
-rw-r--r--pkgs/by-name/un/uni-sync/config_path.patch38
-rw-r--r--pkgs/by-name/un/uni-sync/ignore_read-only_filesystem.patch14
-rw-r--r--pkgs/by-name/un/uni-sync/package.nix35
-rw-r--r--pkgs/by-name/up/uplosi/package.nix1
-rw-r--r--pkgs/by-name/us/usql/package.nix12
-rw-r--r--pkgs/by-name/ut/ut1999/package.nix85
-rw-r--r--pkgs/by-name/ve/vencord/package-lock.json (renamed from pkgs/misc/vencord/package-lock.json)35
-rw-r--r--pkgs/by-name/ve/vencord/package.nix (renamed from pkgs/misc/vencord/default.nix)8
-rwxr-xr-xpkgs/by-name/ve/vencord/update.sh (renamed from pkgs/misc/vencord/update.sh)0
-rw-r--r--pkgs/by-name/vu/vunnel/package.nix83
-rw-r--r--pkgs/by-name/wa/warp-terminal/versions.json8
-rw-r--r--pkgs/by-name/we/wechat-uos/package.nix248
-rw-r--r--pkgs/by-name/wi/wio/package.nix6
-rw-r--r--pkgs/by-name/wi/wit-bindgen/package.nix6
-rw-r--r--pkgs/by-name/wl/wlx-overlay-s/Cargo.lock3869
-rw-r--r--pkgs/by-name/wl/wlx-overlay-s/package.nix83
-rw-r--r--pkgs/by-name/wo/workout-tracker/package.nix32
-rw-r--r--pkgs/by-name/wo/world-serpant-search/package.nix39
-rw-r--r--pkgs/by-name/ws/wslay/package.nix30
-rw-r--r--pkgs/by-name/ws/wsrepl/package.nix53
-rw-r--r--pkgs/by-name/wy/wyoming-satellite/package.nix60
-rw-r--r--pkgs/by-name/x1/x16/package.nix4
-rw-r--r--pkgs/by-name/x1/x16/rom.nix4
-rw-r--r--pkgs/by-name/xr/xr-hardware/package.nix24
-rw-r--r--pkgs/by-name/ye/yesplaymusic/package.nix (renamed from pkgs/applications/audio/yesplaymusic/default.nix)32
-rw-r--r--pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix4
-rw-r--r--pkgs/by-name/zi/zircolite/package.nix8
-rw-r--r--pkgs/data/fonts/google-fonts/default.nix13
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix2
-rw-r--r--pkgs/data/fonts/iosevka/variants.nix180
-rw-r--r--pkgs/data/fonts/spleen/default.nix4
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/misc/rime-data/default.nix6
-rw-r--r--pkgs/data/misc/rime-data/fetchSchema.nix52
-rw-r--r--pkgs/data/themes/yaru/default.nix4
-rw-r--r--pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff20
-rw-r--r--pkgs/desktops/deepin/apps/deepin-compressor/default.nix10
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix3
-rw-r--r--pkgs/development/beam-modules/default.nix2
-rw-r--r--pkgs/development/beam-modules/elixir-ls/default.nix2
-rw-r--r--pkgs/development/compilers/aspectj/default.nix4
-rw-r--r--pkgs/development/compilers/atasm/default.nix25
-rw-r--r--pkgs/development/compilers/blueprint/default.nix4
-rw-r--r--pkgs/development/compilers/dotnet/8/deps.nix16
-rw-r--r--pkgs/development/compilers/dotnet/8/release-info.json6
-rw-r--r--pkgs/development/compilers/dotnet/8/release.json10
-rw-r--r--pkgs/development/compilers/dotnet/common.nix125
-rw-r--r--pkgs/development/compilers/dotnet/completions/dotnet.bash13
-rw-r--r--pkgs/development/compilers/dotnet/completions/dotnet.fish1
-rw-r--r--pkgs/development/compilers/dotnet/completions/dotnet.zsh18
-rw-r--r--pkgs/development/compilers/dotnet/default.nix3
-rwxr-xr-xpkgs/development/compilers/dotnet/update.sh82
-rw-r--r--pkgs/development/compilers/dotnet/versions/6.0.nix306
-rw-r--r--pkgs/development/compilers/dotnet/versions/7.0.nix343
-rw-r--r--pkgs/development/compilers/dotnet/versions/8.0.102.nix179
-rw-r--r--pkgs/development/compilers/dotnet/versions/8.0.nix306
-rw-r--r--pkgs/development/compilers/dotnet/versions/9.0.nix139
-rw-r--r--pkgs/development/compilers/dotnet/vmr.nix5
-rw-r--r--pkgs/development/compilers/elm/default.nix317
-rw-r--r--pkgs/development/compilers/elm/lib/default.nix (renamed from pkgs/development/compilers/elm/packages/lib.nix)0
-rw-r--r--pkgs/development/compilers/elm/lib/fetchElmDeps.nix (renamed from pkgs/development/compilers/elm/fetchElmDeps.nix)0
-rw-r--r--pkgs/development/compilers/elm/lib/makeDotElm.nix36
-rw-r--r--pkgs/development/compilers/elm/makeDotElm.nix35
-rw-r--r--pkgs/development/compilers/elm/packages/bimap.nix15
-rw-r--r--pkgs/development/compilers/elm/packages/elm-json/default.nix (renamed from pkgs/development/compilers/elm/packages/elm-json.nix)5
-rw-r--r--pkgs/development/compilers/elm/packages/elm-json/use-system-ssl.patch (renamed from pkgs/development/compilers/elm/packages/elm-json.patch)0
-rw-r--r--pkgs/development/compilers/elm/packages/elm-test-rs/default.nix (renamed from pkgs/development/compilers/elm/packages/elm-test-rs.nix)0
-rw-r--r--pkgs/development/compilers/elm/packages/elm-test/default.nix (renamed from pkgs/development/compilers/elm/packages/elm-test.nix)0
-rw-r--r--pkgs/development/compilers/elm/packages/ghc8_10/default.nix79
-rw-r--r--pkgs/development/compilers/elm/packages/ghc8_10/elm-instrument/default.nix (renamed from pkgs/development/compilers/elm/packages/elm-instrument.nix)22
-rw-r--r--pkgs/development/compilers/elm/packages/ghc8_10/elmi-to-json/default.nix (renamed from pkgs/development/compilers/elm/packages/elmi-to-json.nix)11
-rw-r--r--pkgs/development/compilers/elm/packages/ghc8_10/indents/default.nix (renamed from pkgs/development/compilers/elm/packages/indents.nix)0
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_2/default.nix53
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_2/elm-format/avh4-lib.nix (renamed from pkgs/development/compilers/elm/packages/avh4-lib.nix)2
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-lib.nix (renamed from pkgs/development/compilers/elm/packages/elm-format-lib.nix)1
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-markdown.nix (renamed from pkgs/development/compilers/elm/packages/elm-format-markdown.nix)1
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-test-lib.nix (renamed from pkgs/development/compilers/elm/packages/elm-format-test-lib.nix)1
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix (renamed from pkgs/development/compilers/elm/packages/elm-format.nix)12
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix (renamed from pkgs/development/compilers/elm/packages/ansi-wl-pprint.nix)0
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_6/default.nix42
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix (renamed from pkgs/development/compilers/elm/packages/elm.nix)0
-rw-r--r--pkgs/development/compilers/elm/packages/lamdera/default.nix (renamed from pkgs/development/compilers/elm/packages/lamdera.nix)3
-rw-r--r--pkgs/development/compilers/elm/packages/node/default.nix139
-rw-r--r--pkgs/development/compilers/elm/packages/node/elm-pages/default.nix28
-rw-r--r--pkgs/development/compilers/elm/packages/node/elm-pages/fix-init-read-only.patch (renamed from pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch)0
-rw-r--r--pkgs/development/compilers/elm/packages/node/elm-pages/fix-read-only.patch (renamed from pkgs/development/compilers/elm/packages/elm-pages-fix-read-only.patch)0
-rwxr-xr-xpkgs/development/compilers/elm/packages/node/generate-node-packages.sh (renamed from pkgs/development/compilers/elm/packages/generate-node-packages.sh)5
-rw-r--r--pkgs/development/compilers/elm/packages/node/node-composition.nix (renamed from pkgs/development/compilers/elm/packages/node-composition.nix)2
-rw-r--r--pkgs/development/compilers/elm/packages/node/node-packages.json (renamed from pkgs/development/compilers/elm/packages/node-packages.json)0
-rw-r--r--pkgs/development/compilers/elm/packages/node/node-packages.nix (renamed from pkgs/development/compilers/elm/packages/node-packages.nix)0
-rwxr-xr-xpkgs/development/compilers/elm/update.sh12
-rw-r--r--pkgs/development/compilers/ghc/head.nix6
-rw-r--r--pkgs/development/compilers/idris2/build-idris.nix46
-rw-r--r--pkgs/development/compilers/koka/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/17/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/18/clang/default.nix139
-rw-r--r--pkgs/development/compilers/llvm/18/clang/gnu-install-dirs.patch71
-rw-r--r--pkgs/development/compilers/llvm/18/clang/purity.patch25
-rw-r--r--pkgs/development/compilers/llvm/18/compiler-rt/X86-support-extension.patch21
-rw-r--r--pkgs/development/compilers/llvm/18/compiler-rt/darwin-targetconditionals.patch71
-rw-r--r--pkgs/development/compilers/llvm/18/compiler-rt/default.nix157
-rw-r--r--pkgs/development/compilers/llvm/18/compiler-rt/normalize-var.patch16
-rw-r--r--pkgs/development/compilers/llvm/18/default.nix329
-rw-r--r--pkgs/development/compilers/llvm/18/libcxx/0001-darwin-10.12-mbstate_t-fix.patch31
-rw-r--r--pkgs/development/compilers/llvm/18/libcxx/default.nix130
-rw-r--r--pkgs/development/compilers/llvm/18/libunwind/default.nix54
-rw-r--r--pkgs/development/compilers/llvm/18/lld/default.nix57
-rw-r--r--pkgs/development/compilers/llvm/18/lld/gnu-install-dirs.patch15
-rw-r--r--pkgs/development/compilers/llvm/18/lldb/cpu_subtype_arm64e_replacement.patch12
-rw-r--r--pkgs/development/compilers/llvm/18/lldb/procfs.patch46
-rw-r--r--pkgs/development/compilers/llvm/18/llvm/default.nix439
-rw-r--r--pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs-polly.patch13
-rw-r--r--pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs.patch137
-rw-r--r--pkgs/development/compilers/llvm/18/llvm/lit-shell-script-runner-set-dyld-library-path.patch12
-rw-r--r--pkgs/development/compilers/llvm/18/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch80
-rw-r--r--pkgs/development/compilers/llvm/18/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch24
-rw-r--r--pkgs/development/compilers/llvm/18/openmp/default.nix73
-rw-r--r--pkgs/development/compilers/llvm/18/openmp/fix-find-tool.patch17
-rw-r--r--pkgs/development/compilers/llvm/18/openmp/run-lit-directly.patch0
-rw-r--r--pkgs/development/compilers/llvm/git/clang/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch29
-rw-r--r--pkgs/development/compilers/llvm/git/compiler-rt/default.nix5
-rw-r--r--pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch20
-rw-r--r--pkgs/development/compilers/llvm/git/default.nix11
-rw-r--r--pkgs/development/compilers/llvm/git/libcxx/default.nix22
-rw-r--r--pkgs/development/compilers/llvm/git/libunwind/default.nix9
-rw-r--r--pkgs/development/compilers/llvm/git/lld/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch31
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/default.nix5
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch12
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch10
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch17
-rw-r--r--pkgs/development/compilers/llvm/git/openmp/default.nix1
-rw-r--r--pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch22
-rwxr-xr-xpkgs/development/compilers/llvm/update-git.py10
-rw-r--r--pkgs/development/compilers/ocaml/5.2.nix9
-rw-r--r--pkgs/development/compilers/picat/default.nix33
-rw-r--r--pkgs/development/compilers/sbcl/default.nix9
-rw-r--r--pkgs/development/compilers/tinygo/default.nix4
-rw-r--r--pkgs/development/compilers/vala/default.nix21
-rw-r--r--pkgs/development/compilers/vala/disable-graphviz-0.46.1.patch280
-rw-r--r--pkgs/development/coq-modules/HoTT/default.nix3
-rw-r--r--pkgs/development/coq-modules/dpdgraph/default.nix2
-rw-r--r--pkgs/development/coq-modules/metacoq/default.nix8
-rw-r--r--pkgs/development/cuda-modules/aliases.nix4
-rw-r--r--pkgs/development/cuda-modules/nccl/default.nix2
-rw-r--r--pkgs/development/cuda-modules/saxpy/default.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-arm.nix13
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix239
-rw-r--r--pkgs/development/haskell-modules/configuration-darwin.nix14
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix53
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix47
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix57
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml62
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml21
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml208
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml72
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix105
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix5685
-rw-r--r--pkgs/development/haskell-modules/patches/HSH-unix-openFd.patch17
-rw-r--r--pkgs/development/haskell-modules/patches/cheapskate-mtl-2-3-support.patch23
-rw-r--r--pkgs/development/haskell-modules/patches/pattern-arrows-add-fix-import.patch12
-rw-r--r--pkgs/development/interpreters/expr/default.nix6
-rw-r--r--pkgs/development/interpreters/python/mk-python-derivation.nix142
-rwxr-xr-xpkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py6
-rw-r--r--pkgs/development/libraries/agda/1lab/default.nix18
-rw-r--r--pkgs/development/libraries/agda/agda-categories/default.nix4
-rw-r--r--pkgs/development/libraries/assimp/default.nix2
-rw-r--r--pkgs/development/libraries/ctranslate2/default.nix4
-rw-r--r--pkgs/development/libraries/freetds/default.nix4
-rw-r--r--pkgs/development/libraries/libaec/default.nix4
-rw-r--r--pkgs/development/libraries/libcloudproviders/default.nix4
-rw-r--r--pkgs/development/libraries/libdwarf/20210528.nix8
-rw-r--r--pkgs/development/libraries/libkrun/default.nix6
-rw-r--r--pkgs/development/libraries/libnabo/default.nix4
-rw-r--r--pkgs/development/libraries/libpulsar/default.nix55
-rw-r--r--pkgs/development/libraries/libressl/default.nix8
-rw-r--r--pkgs/development/libraries/librime/default.nix4
-rw-r--r--pkgs/development/libraries/openimagedenoise/cuda.patch32
-rw-r--r--pkgs/development/libraries/openimagedenoise/default.nix38
-rw-r--r--pkgs/development/libraries/opensubdiv/default.nix4
-rw-r--r--pkgs/development/libraries/pdal/default.nix4
-rw-r--r--pkgs/development/libraries/pipewire/wireplumber.nix4
-rw-r--r--pkgs/development/libraries/protobuf/26.nix6
-rw-r--r--pkgs/development/libraries/quarto/default.nix4
-rw-r--r--pkgs/development/libraries/science/chemistry/dftd4/default.nix20
-rw-r--r--pkgs/development/libraries/science/chemistry/mctc-lib/default.nix18
-rw-r--r--pkgs/development/libraries/science/chemistry/mstore/default.nix15
-rw-r--r--pkgs/development/libraries/science/chemistry/multicharge/default.nix29
-rw-r--r--pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix17
-rw-r--r--pkgs/development/libraries/science/chemistry/tblite/default.nix21
-rw-r--r--pkgs/development/libraries/science/chemistry/tblite/python.nix7
-rw-r--r--pkgs/development/libraries/science/math/scalapack/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix4
-rw-r--r--pkgs/development/libraries/test-drive/default.nix15
-rw-r--r--pkgs/development/libraries/toml-f/default.nix18
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix32
-rw-r--r--pkgs/development/libraries/webkitgtk/fdo-backend-path.patch11
-rw-r--r--pkgs/development/libraries/wlroots/default.nix9
-rw-r--r--pkgs/development/lisp-modules/packages.nix8
-rw-r--r--pkgs/development/lisp-modules/patches/cephes-make.patch22
-rw-r--r--pkgs/development/lua-modules/overrides.nix11
-rw-r--r--pkgs/development/misc/brev-cli/default.nix4
-rw-r--r--pkgs/development/misc/resholve/README.md122
-rw-r--r--pkgs/development/php-packages/mongodb/default.nix4
-rw-r--r--pkgs/development/php-packages/phpstan/default.nix6
-rw-r--r--pkgs/development/python-modules/aadict/default.nix29
-rw-r--r--pkgs/development/python-modules/actdiag/default.nix26
-rw-r--r--pkgs/development/python-modules/agate/default.nix17
-rw-r--r--pkgs/development/python-modules/ailment/default.nix10
-rw-r--r--pkgs/development/python-modules/aioambient/default.nix6
-rw-r--r--pkgs/development/python-modules/aioraven/default.nix8
-rw-r--r--pkgs/development/python-modules/aiounifi/default.nix14
-rw-r--r--pkgs/development/python-modules/allure-python-commons-test/default.nix4
-rw-r--r--pkgs/development/python-modules/angr/default.nix21
-rw-r--r--pkgs/development/python-modules/angrcli/default.nix17
-rw-r--r--pkgs/development/python-modules/angrop/default.nix8
-rw-r--r--pkgs/development/python-modules/annoy/default.nix18
-rw-r--r--pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix18
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix17
-rw-r--r--pkgs/development/python-modules/apricot-select/default.nix12
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix10
-rw-r--r--pkgs/development/python-modules/argilla/default.nix4
-rw-r--r--pkgs/development/python-modules/asciimatics/default.nix28
-rw-r--r--pkgs/development/python-modules/asf-search/default.nix4
-rw-r--r--pkgs/development/python-modules/asgi-lifespan/default.nix51
-rw-r--r--pkgs/development/python-modules/asyncstdlib/default.nix6
-rw-r--r--pkgs/development/python-modules/awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/awswrangler/default.nix10
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/bases/default.nix73
-rw-r--r--pkgs/development/python-modules/bc-python-hcl2/default.nix12
-rw-r--r--pkgs/development/python-modules/bidict/default.nix2
-rw-r--r--pkgs/development/python-modules/blockdiag/default.nix27
-rw-r--r--pkgs/development/python-modules/boost-histogram/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/cantools/default.nix12
-rw-r--r--pkgs/development/python-modules/censys/default.nix20
-rw-r--r--pkgs/development/python-modules/clarifai-grpc/default.nix8
-rw-r--r--pkgs/development/python-modules/claripy/default.nix23
-rw-r--r--pkgs/development/python-modules/cle/default.nix16
-rw-r--r--pkgs/development/python-modules/cocotb/0002-Patch-remove-test_unicode_handle_assignment_deprecated-test.patch25
-rw-r--r--pkgs/development/python-modules/cocotb/default.nix4
-rw-r--r--pkgs/development/python-modules/craft-application-1/default.nix84
-rw-r--r--pkgs/development/python-modules/craft-archives/default.nix74
-rw-r--r--pkgs/development/python-modules/craft-cli/default.nix69
-rw-r--r--pkgs/development/python-modules/craft-grammar/default.nix58
-rw-r--r--pkgs/development/python-modules/craft-parts/bash-path.patch41
-rw-r--r--pkgs/development/python-modules/craft-parts/default.nix119
-rw-r--r--pkgs/development/python-modules/craft-providers/default.nix111
-rw-r--r--pkgs/development/python-modules/craft-providers/inject-snaps.patch58
-rw-r--r--pkgs/development/python-modules/cssutils/default.nix27
-rw-r--r--pkgs/development/python-modules/dbt-bigquery/default.nix16
-rw-r--r--pkgs/development/python-modules/dbt-core/default.nix17
-rw-r--r--pkgs/development/python-modules/dbt-postgres/default.nix4
-rw-r--r--pkgs/development/python-modules/dbt-semantic-interfaces/default.nix8
-rw-r--r--pkgs/development/python-modules/dbt-snowflake/default.nix8
-rw-r--r--pkgs/development/python-modules/deal/default.nix59
-rw-r--r--pkgs/development/python-modules/deprecat/default.nix13
-rw-r--r--pkgs/development/python-modules/dirigera/default.nix10
-rw-r--r--pkgs/development/python-modules/django-webpush/default.nix12
-rw-r--r--pkgs/development/python-modules/django/5.nix6
-rw-r--r--pkgs/development/python-modules/dnf-plugins-core/default.nix4
-rw-r--r--pkgs/development/python-modules/dtw-python/default.nix4
-rw-r--r--pkgs/development/python-modules/dvc/default.nix12
-rw-r--r--pkgs/development/python-modules/extract-msg/default.nix8
-rw-r--r--pkgs/development/python-modules/findpython/default.nix4
-rw-r--r--pkgs/development/python-modules/fjaraskupan/default.nix16
-rw-r--r--pkgs/development/python-modules/flask-paginate/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-restx/default.nix14
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix4
-rw-r--r--pkgs/development/python-modules/githubkit/default.nix2
-rw-r--r--pkgs/development/python-modules/glean-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-error-reporting/default.nix8
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google-nest-sdm/default.nix15
-rw-r--r--pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--pkgs/development/python-modules/gurobipy/default.nix (renamed from pkgs/development/python-modules/gurobipy/darwin.nix)6
-rw-r--r--pkgs/development/python-modules/gurobipy/linux.nix29
-rw-r--r--pkgs/development/python-modules/gurobipy/no-clever-setup.patch41
-rw-r--r--pkgs/development/python-modules/hcloud/default.nix13
-rw-r--r--pkgs/development/python-modules/hishel/default.nix8
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-clusters/default.nix4
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-core/default.nix6
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix4
-rw-r--r--pkgs/development/python-modules/icontract/default.nix29
-rw-r--r--pkgs/development/python-modules/ijson/default.nix19
-rw-r--r--pkgs/development/python-modules/impacket/default.nix5
-rw-r--r--pkgs/development/python-modules/irc/default.nix4
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix3
-rw-r--r--pkgs/development/python-modules/jira/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-server/default.nix3
-rw-r--r--pkgs/development/python-modules/karton-core/default.nix8
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix44
-rw-r--r--pkgs/development/python-modules/lacuscore/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix4
-rw-r--r--pkgs/development/python-modules/langchain/default.nix4
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix8
-rw-r--r--pkgs/development/python-modules/libretranslate/default.nix26
-rw-r--r--pkgs/development/python-modules/librosa/default.nix4
-rw-r--r--pkgs/development/python-modules/libtmux/default.nix4
-rw-r--r--pkgs/development/python-modules/lion-pytorch/default.nix4
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-agent-openai/default.nix30
-rw-r--r--pkgs/development/python-modules/llama-index-core/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix45
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix45
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix42
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix42
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix42
-rw-r--r--pkgs/development/python-modules/llama-index-llms-ollama/default.nix43
-rw-r--r--pkgs/development/python-modules/llama-index-llms-openai-like/default.nix47
-rw-r--r--pkgs/development/python-modules/llama-index-llms-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-program-openai/default.nix10
-rw-r--r--pkgs/development/python-modules/llama-index-readers-file/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-readers-s3/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-google/default.nix48
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix52
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix44
-rw-r--r--pkgs/development/python-modules/llama-parse/default.nix8
-rw-r--r--pkgs/development/python-modules/llamaindex-py-client/default.nix4
-rw-r--r--pkgs/development/python-modules/lsassy/default.nix26
-rw-r--r--pkgs/development/python-modules/lxmf/default.nix10
-rw-r--r--pkgs/development/python-modules/manifest-ml/default.nix51
-rw-r--r--pkgs/development/python-modules/marimo/default.nix5
-rw-r--r--pkgs/development/python-modules/markdownify/default.nix35
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix60
-rw-r--r--pkgs/development/python-modules/metakernel/default.nix10
-rw-r--r--pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix8
-rw-r--r--pkgs/development/python-modules/mitogen/default.nix16
-rw-r--r--pkgs/development/python-modules/mizani/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix40
-rw-r--r--pkgs/development/python-modules/mscerts/default.nix11
-rw-r--r--pkgs/development/python-modules/myjwt/default.nix7
-rw-r--r--pkgs/development/python-modules/mypy-boto3/default.nix42
-rwxr-xr-x[-rw-r--r--]pkgs/development/python-modules/mypy-boto3/update.sh0
-rw-r--r--pkgs/development/python-modules/nampa/default.nix38
-rw-r--r--pkgs/development/python-modules/nbdime/749.patch10
-rw-r--r--pkgs/development/python-modules/nbdime/default.nix6
-rw-r--r--pkgs/development/python-modules/nebula3-python/default.nix67
-rw-r--r--pkgs/development/python-modules/ntc-templates/default.nix4
-rw-r--r--pkgs/development/python-modules/nwdiag/default.nix26
-rw-r--r--pkgs/development/python-modules/oci/default.nix4
-rw-r--r--pkgs/development/python-modules/ollama/default.nix8
-rw-r--r--pkgs/development/python-modules/pathlib-abc/default.nix4
-rw-r--r--pkgs/development/python-modules/pathtools/default.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix6
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix4
-rw-r--r--pkgs/development/python-modules/pipx/default.nix12
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/plantuml-markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/playwrightcapture/default.nix4
-rw-r--r--pkgs/development/python-modules/plotnine/default.nix4
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix15
-rw-r--r--pkgs/development/python-modules/preshed/default.nix7
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix8
-rw-r--r--pkgs/development/python-modules/pulsar/default.nix60
-rw-r--r--pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--pkgs/development/python-modules/pydantic-yaml-0/default.nix68
-rw-r--r--pkgs/development/python-modules/pyecoforest/default.nix6
-rw-r--r--pkgs/development/python-modules/pyenphase/default.nix4
-rw-r--r--pkgs/development/python-modules/pyformlang/default.nix13
-rw-r--r--pkgs/development/python-modules/pygatt/default.nix43
-rw-r--r--pkgs/development/python-modules/pygls/default.nix4
-rw-r--r--pkgs/development/python-modules/pyinsteon/default.nix33
-rw-r--r--pkgs/development/python-modules/pylacus/default.nix4
-rw-r--r--pkgs/development/python-modules/pyleri/default.nix11
-rw-r--r--pkgs/development/python-modules/pymaven-patch/default.nix4
-rw-r--r--pkgs/development/python-modules/pynobo/default.nix13
-rw-r--r--pkgs/development/python-modules/pynvim-pp/default.nix6
-rw-r--r--pkgs/development/python-modules/pyogg/default.nix89
-rw-r--r--pkgs/development/python-modules/pyoverkiz/default.nix12
-rw-r--r--pkgs/development/python-modules/pyrevolve/default.nix4
-rw-r--r--pkgs/development/python-modules/pyring-buffer/default.nix36
-rw-r--r--pkgs/development/python-modules/pyscf/default.nix1
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix8
-rw-r--r--pkgs/development/python-modules/pysilero-vad/default.nix61
-rw-r--r--pkgs/development/python-modules/pytest-relaxed/default.nix4
-rw-r--r--pkgs/development/python-modules/python-matter-server/default.nix4
-rw-r--r--pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch25
-rw-r--r--pkgs/development/python-modules/python-whois/default.nix34
-rw-r--r--pkgs/development/python-modules/pytimeparse/default.nix49
-rw-r--r--pkgs/development/python-modules/pyunifiprotect/default.nix12
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix14
-rw-r--r--pkgs/development/python-modules/pywebpush/default.nix35
-rw-r--r--pkgs/development/python-modules/pyzbar/default.nix4
-rw-r--r--pkgs/development/python-modules/qbittorrent-api/default.nix4
-rw-r--r--pkgs/development/python-modules/qpsolvers/default.nix4
-rw-r--r--pkgs/development/python-modules/qtawesome/default.nix4
-rw-r--r--pkgs/development/python-modules/radian/default.nix6
-rw-r--r--pkgs/development/python-modules/rchitect/default.nix8
-rw-r--r--pkgs/development/python-modules/redis-om/default.nix8
-rw-r--r--pkgs/development/python-modules/reptor/default.nix4
-rw-r--r--pkgs/development/python-modules/requirements-parser/default.nix17
-rw-r--r--pkgs/development/python-modules/rerun-sdk/default.nix9
-rw-r--r--pkgs/development/python-modules/robotframework-pythonlibcore/default.nix27
-rw-r--r--pkgs/development/python-modules/romy/default.nix45
-rw-r--r--pkgs/development/python-modules/rpyc/default.nix19
-rw-r--r--pkgs/development/python-modules/rtfde/default.nix10
-rw-r--r--pkgs/development/python-modules/scalene/default.nix87
-rw-r--r--pkgs/development/python-modules/scancode-toolkit/default.nix8
-rw-r--r--pkgs/development/python-modules/scikit-hep-testdata/default.nix4
-rw-r--r--pkgs/development/python-modules/securityreporter/default.nix56
-rw-r--r--pkgs/development/python-modules/sentence-transformers/default.nix46
-rw-r--r--pkgs/development/python-modules/seqdiag/default.nix27
-rw-r--r--pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix6
-rw-r--r--pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix4
-rw-r--r--pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix36
-rw-r--r--pkgs/development/python-modules/snap-helpers/default.nix52
-rw-r--r--pkgs/development/python-modules/spacy/default.nix1
-rw-r--r--pkgs/development/python-modules/spdx-lookup/default.nix37
-rw-r--r--pkgs/development/python-modules/spdx/default.nix32
-rw-r--r--pkgs/development/python-modules/speechrecognition/default.nix8
-rw-r--r--pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix54
-rw-r--r--pkgs/development/python-modules/sse-starlette/default.nix67
-rw-r--r--pkgs/development/python-modules/starlette-context/default.nix51
-rw-r--r--pkgs/development/python-modules/tempest/default.nix4
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/tendo/default.nix49
-rw-r--r--pkgs/development/python-modules/tensorrt/default.nix3
-rw-r--r--pkgs/development/python-modules/tesla-fleet-api/default.nix4
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix12
-rw-r--r--pkgs/development/python-modules/tesserocr/default.nix4
-rw-r--r--pkgs/development/python-modules/tilequant/default.nix21
-rw-r--r--pkgs/development/python-modules/torch/bin.nix3
-rw-r--r--pkgs/development/python-modules/torch/default.nix5
-rw-r--r--pkgs/development/python-modules/tox/default.nix4
-rw-r--r--pkgs/development/python-modules/tplink-omada-client/default.nix10
-rw-r--r--pkgs/development/python-modules/transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-validation/default.nix58
-rw-r--r--pkgs/development/python-modules/unique-log-filter/default.nix2
-rw-r--r--pkgs/development/python-modules/unstructured/default.nix4
-rw-r--r--pkgs/development/python-modules/urwid/default.nix4
-rw-r--r--pkgs/development/python-modules/wsgidav/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/development/tools/analysis/snyk/default.nix22
-rw-r--r--pkgs/development/tools/analysis/stylelint/default.nix6
-rw-r--r--pkgs/development/tools/azcopy/default.nix6
-rw-r--r--pkgs/development/tools/backblaze-b2/default.nix53
-rw-r--r--pkgs/development/tools/bacon/default.nix6
-rw-r--r--pkgs/development/tools/biome/default.nix8
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix9
-rw-r--r--pkgs/development/tools/continuous-integration/cirrus-cli/default.nix4
-rw-r--r--pkgs/development/tools/database/clickhouse-backup/default.nix4
-rw-r--r--pkgs/development/tools/database/dbmate/default.nix6
-rw-r--r--pkgs/development/tools/database/litecli/default.nix4
-rw-r--r--pkgs/development/tools/database/sqlc/default.nix6
-rw-r--r--pkgs/development/tools/database/sqlfluff/default.nix8
-rw-r--r--pkgs/development/tools/database/timescaledb-tune/default.nix4
-rw-r--r--pkgs/development/tools/database/vitess/default.nix6
-rw-r--r--pkgs/development/tools/devbox/default.nix4
-rw-r--r--pkgs/development/tools/firebase-tools/default.nix6
-rw-r--r--pkgs/development/tools/go-mockery/default.nix12
-rw-r--r--pkgs/development/tools/heroku/default.nix6
-rw-r--r--pkgs/development/tools/iferr/default.nix23
-rw-r--r--pkgs/development/tools/language-servers/crystalline/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/gopls/default.nix3
-rw-r--r--pkgs/development/tools/language-servers/jq-lsp/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/postgres-lsp/default.nix8
-rw-r--r--pkgs/development/tools/language-servers/vhdl-ls/default.nix6
-rw-r--r--pkgs/development/tools/micronaut/default.nix4
-rw-r--r--pkgs/development/tools/misc/blackfire/php-probe.nix32
-rw-r--r--pkgs/development/tools/misc/funzzy/default.nix6
-rw-r--r--pkgs/development/tools/misc/grpc-client-cli/default.nix6
-rw-r--r--pkgs/development/tools/misc/netcoredbg/default.nix1
-rw-r--r--pkgs/development/tools/misc/opengrok/default.nix4
-rw-r--r--pkgs/development/tools/misc/rsonpath/default.nix6
-rw-r--r--pkgs/development/tools/misc/terser/default.nix6
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix10
-rw-r--r--pkgs/development/tools/mongosh/package-lock.json409
-rw-r--r--pkgs/development/tools/mongosh/source.json8
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix4
-rw-r--r--pkgs/development/tools/refinery-cli/default.nix6
-rw-r--r--pkgs/development/tools/reshape/default.nix5
-rw-r--r--pkgs/development/tools/rstfmt/default.nix13
-rw-r--r--pkgs/development/tools/rust/cargo-deny/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-generate/default.nix6
-rw-r--r--pkgs/development/tools/rust/dioxus-cli/default.nix20
-rw-r--r--pkgs/development/tools/rust/svd2rust/default.nix6
-rw-r--r--pkgs/development/tools/sentry-cli/default.nix6
-rw-r--r--pkgs/development/tools/sq/default.nix6
-rw-r--r--pkgs/development/tools/subxt/default.nix6
-rw-r--r--pkgs/development/tools/upbound/default.nix6
-rw-r--r--pkgs/development/tools/wails/default.nix25
-rw-r--r--pkgs/development/web/flyctl/default.nix6
-rw-r--r--pkgs/development/web/nodejs/v18.nix7
-rw-r--r--pkgs/games/arx-libertatis/default.nix10
-rw-r--r--pkgs/games/dwarf-fortress/default.nix19
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/default.nix29
-rw-r--r--pkgs/games/dwarf-fortress/game.nix15
-rw-r--r--pkgs/games/dwarf-fortress/lazy-pack.nix17
-rw-r--r--pkgs/games/dwarf-fortress/themes/default.nix15
-rw-r--r--pkgs/games/dwarf-fortress/twbt/default.nix12
-rw-r--r--pkgs/games/dwarf-fortress/unfuck.nix15
-rw-r--r--pkgs/games/factorio/mods.nix2
-rw-r--r--pkgs/games/factorio/utils.nix15
-rw-r--r--pkgs/games/hedgewars/default.nix4
-rw-r--r--pkgs/games/instawow/default.nix5
-rw-r--r--pkgs/games/koboredux/default.nix11
-rw-r--r--pkgs/games/libremines/default.nix4
-rw-r--r--pkgs/games/lugaru/default.nix10
-rw-r--r--pkgs/games/nethack/default.nix4
-rw-r--r--pkgs/games/openra_2019/common.nix11
-rw-r--r--pkgs/games/path-of-building/default.nix4
-rw-r--r--pkgs/games/sgt-puzzles/default.nix4
-rw-r--r--pkgs/games/tinyfugue/default.nix11
-rw-r--r--pkgs/games/vintagestory/default.nix4
-rw-r--r--pkgs/kde/frameworks/extra-cmake-modules/ecm-hook.sh19
-rw-r--r--pkgs/kde/gear/k3b/default.nix8
-rw-r--r--pkgs/kde/gear/partitionmanager/default.nix5
-rw-r--r--pkgs/os-specific/darwin/grandperspective/default.nix11
-rw-r--r--pkgs/os-specific/darwin/yabai/default.nix6
-rw-r--r--pkgs/os-specific/linux/akvcam/default.nix4
-rw-r--r--pkgs/os-specific/linux/cpustat/default.nix22
-rw-r--r--pkgs/os-specific/linux/dcgm/default.nix3
-rw-r--r--pkgs/os-specific/linux/fsverity-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json32
-rw-r--r--pkgs/os-specific/linux/kernel/xanmod-kernels.nix12
-rw-r--r--pkgs/os-specific/linux/kernel/zen-kernels.nix10
-rw-r--r--pkgs/os-specific/linux/nixos-rebuild/default.nix20
-rwxr-xr-xpkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh2
-rw-r--r--pkgs/os-specific/linux/odp-dpdk/default.nix18
-rw-r--r--pkgs/servers/authelia/default.nix2
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/fastnetmon-advanced/default.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-components/README.md2
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/README.md4
-rw-r--r--pkgs/servers/invidious/versions.json6
-rw-r--r--pkgs/servers/jibri/default.nix4
-rw-r--r--pkgs/servers/mail/mailpit/default.nix8
-rw-r--r--pkgs/servers/mattermost/default.nix6
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/misc/oven-media-engine/default.nix8
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/ping-exporter.nix6
-rw-r--r--pkgs/servers/nextcloud/default.nix12
-rw-r--r--pkgs/servers/nextcloud/notify_push.nix8
-rw-r--r--pkgs/servers/nextcloud/packages/26.json60
-rw-r--r--pkgs/servers/nextcloud/packages/27.json66
-rw-r--r--pkgs/servers/nextcloud/packages/28.json96
-rw-r--r--pkgs/servers/nextcloud/packages/README.md22
-rw-r--r--pkgs/servers/nosql/questdb/default.nix5
-rw-r--r--pkgs/servers/peertube/default.nix102
-rw-r--r--pkgs/servers/redpanda/default.nix6
-rw-r--r--pkgs/servers/roon-server/default.nix4
-rw-r--r--pkgs/servers/search/quickwit/default.nix16
-rw-r--r--pkgs/servers/search/weaviate/default.nix6
-rw-r--r--pkgs/servers/snac2/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/lantern.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgrouting.nix6
-rw-r--r--pkgs/servers/sql/postgresql/ext/plpgsql_check.nix4
-rw-r--r--pkgs/servers/tailscale/default.nix4
-rw-r--r--pkgs/servers/web-apps/mediawiki/default.nix4
-rw-r--r--pkgs/servers/web-apps/wordpress/packages/README.md24
-rw-r--r--pkgs/shells/fish/plugins/wakatime-fish.nix4
-rw-r--r--pkgs/shells/fzf-git-sh/default.nix2
-rw-r--r--pkgs/stdenv/generic/check-meta.nix32
-rw-r--r--pkgs/test/texlive/default.nix20
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix4
-rw-r--r--pkgs/tools/admin/fits-cloudctl/default.nix6
-rw-r--r--pkgs/tools/admin/granted/default.nix6
-rw-r--r--pkgs/tools/admin/pulumi-bin/data.nix366
-rw-r--r--pkgs/tools/admin/pulumi-bin/default.nix4
-rw-r--r--pkgs/tools/admin/qovery-cli/default.nix6
-rw-r--r--pkgs/tools/admin/stripe-cli/default.nix4
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/archivers/innoextract/default.nix2
-rw-r--r--pkgs/tools/audio/catnip/default.nix4
-rw-r--r--pkgs/tools/backup/autorestic/default.nix6
-rw-r--r--pkgs/tools/backup/bacula/default.nix4
-rw-r--r--pkgs/tools/backup/pgbackrest/default.nix47
-rw-r--r--pkgs/tools/backup/ugarit-manifest-maker/default.nix5
-rw-r--r--pkgs/tools/backup/ugarit/default.nix7
-rw-r--r--pkgs/tools/compression/upx/default.nix4
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/mount-zip/default.nix4
-rw-r--r--pkgs/tools/filesystems/stratisd/default.nix20
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix4
-rw-r--r--pkgs/tools/games/dualsensectl/default.nix4
-rw-r--r--pkgs/tools/graphics/astc-encoder/default.nix21
-rw-r--r--pkgs/tools/graphics/vulkan-cts/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-cts/sources.nix34
-rwxr-xr-xpkgs/tools/graphics/vulkan-cts/update.sh2
-rw-r--r--pkgs/tools/misc/android-tools/default.nix4
-rw-r--r--pkgs/tools/misc/bartib/default.nix9
-rw-r--r--pkgs/tools/misc/bepasty/default.nix23
-rw-r--r--pkgs/tools/misc/coreboot-utils/default.nix6
-rw-r--r--pkgs/tools/misc/cyberchef/default.nix4
-rw-r--r--pkgs/tools/misc/esphome/default.nix4
-rw-r--r--pkgs/tools/misc/fend/default.nix6
-rw-r--r--pkgs/tools/misc/graylog/plugins.nix15
-rw-r--r--pkgs/tools/misc/latex2html/default.nix4
-rw-r--r--pkgs/tools/misc/lsd/default.nix15
-rw-r--r--pkgs/tools/misc/mise/default.nix6
-rw-r--r--pkgs/tools/misc/ntfy-sh/default.nix8
-rw-r--r--pkgs/tools/misc/panoply/default.nix4
-rw-r--r--pkgs/tools/misc/remind/default.nix4
-rw-r--r--pkgs/tools/misc/shim/default.nix24
-rw-r--r--pkgs/tools/misc/star-history/default.nix6
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--pkgs/tools/misc/vector/Cargo.lock1157
-rw-r--r--pkgs/tools/misc/vector/default.nix17
-rw-r--r--pkgs/tools/misc/vial/default.nix2
-rw-r--r--pkgs/tools/misc/wasm-tools/default.nix6
-rw-r--r--pkgs/tools/networking/boundary/default.nix10
-rw-r--r--pkgs/tools/networking/dd-agent/integrations-core.nix4
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix4
-rw-r--r--pkgs/tools/networking/netbird/default.nix6
-rw-r--r--pkgs/tools/networking/ooniprobe-cli/default.nix6
-rw-r--r--pkgs/tools/networking/persepolis/default.nix4
-rw-r--r--pkgs/tools/networking/subfinder/default.nix15
-rw-r--r--pkgs/tools/networking/trippy/default.nix6
-rw-r--r--pkgs/tools/networking/veilid/Cargo.lock1870
-rw-r--r--pkgs/tools/networking/veilid/default.nix10
-rw-r--r--pkgs/tools/networking/vopono/default.nix6
-rw-r--r--pkgs/tools/networking/wormhole-william/default.nix2
-rw-r--r--pkgs/tools/networking/xh/default.nix2
-rw-r--r--pkgs/tools/networking/xray/default.nix6
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py247
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py101
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual_structure.py17
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py125
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_headings.py4
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_lists.py4
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_options.py2
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py4
-rw-r--r--pkgs/tools/package-management/fortran-fpm/default.nix4
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/default.nix4
-rw-r--r--pkgs/tools/security/aws-iam-authenticator/default.nix6
-rw-r--r--pkgs/tools/security/badchars/default.nix16
-rw-r--r--pkgs/tools/security/bitwarden-directory-connector/default.nix6
-rw-r--r--pkgs/tools/security/buttercup-desktop/default.nix4
-rw-r--r--pkgs/tools/security/cloudlist/default.nix6
-rw-r--r--pkgs/tools/security/cnspec/default.nix6
-rw-r--r--pkgs/tools/security/cryptomator/default.nix4
-rw-r--r--pkgs/tools/security/enum4linux-ng/default.nix23
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/fido2luks/default.nix32
-rw-r--r--pkgs/tools/security/gpg-tui/default.nix7
-rw-r--r--pkgs/tools/security/knockpy/default.nix7
-rw-r--r--pkgs/tools/security/ldeep/default.nix8
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock6
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix6
-rw-r--r--pkgs/tools/security/pass/extensions/audit/default.nix8
-rw-r--r--pkgs/tools/security/pass/extensions/default.nix4
-rw-r--r--pkgs/tools/security/pinentry/mac.nix10
-rw-r--r--pkgs/tools/security/saml2aws/default.nix6
-rw-r--r--pkgs/tools/security/semgrep/common.nix14
-rw-r--r--pkgs/tools/security/semgrep/default.nix22
-rw-r--r--pkgs/tools/security/sipvicious/default.nix34
-rw-r--r--pkgs/tools/security/slsa-verifier/default.nix8
-rw-r--r--pkgs/tools/security/spire/default.nix6
-rw-r--r--pkgs/tools/security/step-cli/default.nix6
-rw-r--r--pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--pkgs/tools/security/vals/default.nix6
-rw-r--r--pkgs/tools/security/vault/default.nix6
-rw-r--r--pkgs/tools/security/vaultwarden/webvault.nix8
-rw-r--r--pkgs/tools/system/mediawriter/default.nix4
-rw-r--r--pkgs/tools/text/comrak/default.nix6
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/sad/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-tex-env.nix319
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-tex-env.sh328
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix3
-rw-r--r--pkgs/tools/typesetting/tex/texlive/tl2nix.sed49
-rw-r--r--pkgs/tools/typesetting/tex/texlive/tlpdb.nix1842
-rw-r--r--pkgs/tools/video/go2rtc/default.nix4
-rw-r--r--pkgs/tools/virtualization/awsebcli/default.nix11
-rw-r--r--pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch2
-rw-r--r--pkgs/tools/virtualization/cloudmonkey/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix7
-rw-r--r--pkgs/top-level/all-packages.nix135
-rw-r--r--pkgs/top-level/cuda-packages.nix7
-rw-r--r--pkgs/top-level/haskell-packages.nix2
-rw-r--r--pkgs/top-level/linux-kernels.nix4
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
-rw-r--r--pkgs/top-level/perl-packages.nix6
-rw-r--r--pkgs/top-level/python-packages.nix78
-rw-r--r--pkgs/top-level/release.nix1
-rw-r--r--pkgs/top-level/ruby-packages.nix56
1187 files changed, 45112 insertions, 15802 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 15e253be5b802..352212ba5100c 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -159,7 +159,6 @@ nixos/modules/installer/tools/nix-fallback-paths.nix  @raitobezarius @ma27
 
 # C compilers
 /pkgs/development/compilers/gcc
-/pkgs/development/compilers/llvm @RaitoBezarius
 /pkgs/development/compilers/emscripten @raitobezarius
 /doc/languages-frameworks/emscripten.section.md @raitobezarius
 
@@ -204,10 +203,6 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
 /nixos/modules/services/databases/postgresql.nix @thoughtpolice
 /nixos/tests/postgresql.nix @thoughtpolice
 
-# Linux kernel
-/pkgs/os-specific/linux/kernel    @raitobezarius
-/pkgs/top-level/linux-kernels.nix @raitobezarius
-
 # Hardened profile & related modules
 /nixos/modules/profiles/hardened.nix @joachifm
 /nixos/modules/security/hidepid.nix @joachifm
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 115dd993ea62f..4b1a12362f39a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -557,7 +557,7 @@ Names of files and directories should be in lowercase, with dashes between words
 
   ```nix
   foo {
-    arg = ...;
+    arg = <...>;
   }
   ```
 
@@ -566,14 +566,14 @@ Names of files and directories should be in lowercase, with dashes between words
   ```nix
   foo
   {
-    arg = ...;
+    arg = <...>;
   }
   ```
 
   Also fine is
 
   ```nix
-  foo { arg = ...; }
+  foo { arg = <...>; }
   ```
 
   if it's a short call.
@@ -581,41 +581,45 @@ Names of files and directories should be in lowercase, with dashes between words
 - In attribute sets or lists that span multiple lines, the attribute names or list elements should be aligned:
 
   ```nix
-  # A long list.
-  list = [
-    elem1
-    elem2
-    elem3
-  ];
-
-  # A long attribute set.
-  attrs = {
-    attr1 = short_expr;
-    attr2 =
-      if true then big_expr else big_expr;
-  };
-
-  # Combined
-  listOfAttrs = [
-    {
-      attr1 = 3;
-      attr2 = "fff";
-    }
-    {
-      attr1 = 5;
-      attr2 = "ggg";
-    }
-  ];
+  {
+    # A long list.
+    list = [
+      elem1
+      elem2
+      elem3
+    ];
+
+    # A long attribute set.
+    attrs = {
+      attr1 = short_expr;
+      attr2 =
+        if true then big_expr else big_expr;
+    };
+
+    # Combined
+    listOfAttrs = [
+      {
+        attr1 = 3;
+        attr2 = "fff";
+      }
+      {
+        attr1 = 5;
+        attr2 = "ggg";
+      }
+    ];
+  }
   ```
 
 - Short lists or attribute sets can be written on one line:
 
   ```nix
-  # A short list.
-  list = [ elem1 elem2 elem3 ];
+  {
+    # A short list.
+    list = [ elem1 elem2 elem3 ];
 
-  # A short set.
-  attrs = { x = 1280; y = 1024; };
+    # A short set.
+    attrs = { x = 1280; y = 1024; };
+  }
   ```
 
 - Breaking in the middle of a function argument can give hard-to-read code, like
@@ -649,7 +653,7 @@ Names of files and directories should be in lowercase, with dashes between words
   ```nix
   { arg1, arg2 }:
   assert system == "i686-linux";
-  stdenv.mkDerivation { ...
+  stdenv.mkDerivation { /* ... */ }
   ```
 
   not
@@ -657,41 +661,41 @@ Names of files and directories should be in lowercase, with dashes between words
   ```nix
   { arg1, arg2 }:
     assert system == "i686-linux";
-      stdenv.mkDerivation { ...
+      stdenv.mkDerivation { /* ... */ }
   ```
 
 - Function formal arguments are written as:
 
   ```nix
-  { arg1, arg2, arg3 }:
+  { arg1, arg2, arg3 }: { /* ... */ }
   ```
 
   but if they don't fit on one line they're written as:
 
   ```nix
   { arg1, arg2, arg3
-  , arg4, ...
-  , # Some comment...
-    argN
-  }:
+  , arg4
+  # Some comment...
+  ,  argN
+  }: { }
   ```
 
 - Functions should list their expected arguments as precisely as possible. That is, write
 
   ```nix
-  { stdenv, fetchurl, perl }: ...
+  { stdenv, fetchurl, perl }: <...>
   ```
 
   instead of
 
   ```nix
-  args: with args; ...
+  args: with args; <...>
   ```
 
   or
 
   ```nix
-  { stdenv, fetchurl, perl, ... }: ...
+  { stdenv, fetchurl, perl, ... }: <...>
   ```
 
   For functions that are truly generic in the number of arguments (such as wrappers around `mkDerivation`) that have some required arguments, you should write them using an `@`-pattern:
@@ -700,7 +704,7 @@ Names of files and directories should be in lowercase, with dashes between words
   { stdenv, doCoverageAnalysis ? false, ... } @ args:
 
   stdenv.mkDerivation (args // {
-    ... if doCoverageAnalysis then "bla" else "" ...
+    foo = if doCoverageAnalysis then "bla" else "";
   })
   ```
 
@@ -710,32 +714,40 @@ Names of files and directories should be in lowercase, with dashes between words
   args:
 
   args.stdenv.mkDerivation (args // {
-    ... if args ? doCoverageAnalysis && args.doCoverageAnalysis then "bla" else "" ...
+    foo = if args ? doCoverageAnalysis && args.doCoverageAnalysis then "bla" else "";
   })
   ```
 
 - Unnecessary string conversions should be avoided. Do
 
   ```nix
-  rev = version;
+  {
+    rev = version;
+  }
   ```
 
   instead of
 
   ```nix
-  rev = "${version}";
+  {
+    rev = "${version}";
+  }
   ```
 
 - Building lists conditionally _should_ be done with `lib.optional(s)` instead of using `if cond then [ ... ] else null` or `if cond then [ ... ] else [ ]`.
 
   ```nix
-  buildInputs = lib.optional stdenv.isDarwin iconv;
+  {
+    buildInputs = lib.optional stdenv.isDarwin iconv;
+  }
   ```
 
   instead of
 
   ```nix
-  buildInputs = if stdenv.isDarwin then [ iconv ] else null;
+  {
+    buildInputs = if stdenv.isDarwin then [ iconv ] else null;
+  }
   ```
 
   As an exception, an explicit conditional expression with null can be used when fixing a important bug without triggering a mass rebuild.
diff --git a/doc/build-helpers/fetchers.chapter.md b/doc/build-helpers/fetchers.chapter.md
index b326f189d50ea..5c7c3257e6d4b 100644
--- a/doc/build-helpers/fetchers.chapter.md
+++ b/doc/build-helpers/fetchers.chapter.md
@@ -30,7 +30,7 @@ For example, consider the following fetcher:
 fetchurl {
   url = "http://www.example.org/hello-1.0.tar.gz";
   hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww=";
-};
+}
 ```
 
 A common mistake is to update a fetcher’s URL, or a version parameter, without updating the hash.
@@ -39,7 +39,7 @@ A common mistake is to update a fetcher’s URL, or a version parameter, without
 fetchurl {
   url = "http://www.example.org/hello-1.1.tar.gz";
   hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww=";
-};
+}
 ```
 
 **This will reuse the old contents**.
@@ -49,7 +49,7 @@ Remember to invalidate the hash argument, in this case by setting the `hash` att
 fetchurl {
   url = "http://www.example.org/hello-1.1.tar.gz";
   hash = "";
-};
+}
 ```
 
 Use the resulting error message to determine the correct hash.
@@ -123,7 +123,7 @@ Here is an example of `fetchDebianPatch` in action:
 buildPythonPackage rec {
   pname = "pysimplesoap";
   version = "1.16.2";
-  src = ...;
+  src = <...>;
 
   patches = [
     (fetchDebianPatch {
@@ -134,7 +134,7 @@ buildPythonPackage rec {
     })
   ];
 
-  ...
+  # ...
 }
 ```
 
@@ -243,7 +243,7 @@ This is a useful last-resort workaround for license restrictions that prohibit r
 If the requested file is present in the Nix store, the resulting derivation will not be built, because its expected output is already available.
 Otherwise, the builder will run, but fail with a message explaining to the user how to provide the file. The following code, for example:
 
-```
+```nix
 requireFile {
   name = "jdk-${version}_linux-x64_bin.tar.gz";
   url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html";
@@ -270,7 +270,7 @@ It produces packages that cannot be built automatically.
 
 `fetchtorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options)
 
-```
+```nix
 { fetchtorrent }:
 
 fetchtorrent {
diff --git a/doc/build-helpers/images/dockertools.section.md b/doc/build-helpers/images/dockertools.section.md
index 001d5695290ed..527e623e78987 100644
--- a/doc/build-helpers/images/dockertools.section.md
+++ b/doc/build-helpers/images/dockertools.section.md
@@ -1177,6 +1177,7 @@ dockerTools.buildImage {
     hello
     dockerTools.binSh
   ];
+}
 ```
 
 After building the image and loading it in Docker, we can create a container based on it and enter a shell inside the container.
diff --git a/doc/build-helpers/special/checkpoint-build.section.md b/doc/build-helpers/special/checkpoint-build.section.md
index f60afe801ed4c..a1ce5608f246d 100644
--- a/doc/build-helpers/special/checkpoint-build.section.md
+++ b/doc/build-helpers/special/checkpoint-build.section.md
@@ -9,13 +9,17 @@ However, we can tell Nix explicitly what the previous build state was, by repres
 To change a normal derivation to a checkpoint based build, these steps must be taken:
   - apply `prepareCheckpointBuild` on the desired derivation, e.g.
 ```nix
-checkpointArtifacts = (pkgs.checkpointBuildTools.prepareCheckpointBuild pkgs.virtualbox);
+{
+  checkpointArtifacts = (pkgs.checkpointBuildTools.prepareCheckpointBuild pkgs.virtualbox);
+}
 ```
   - change something you want in the sources of the package, e.g. use a source override:
 ```nix
-changedVBox = pkgs.virtualbox.overrideAttrs (old: {
-  src = path/to/vbox/sources;
-});
+{
+  changedVBox = pkgs.virtualbox.overrideAttrs (old: {
+    src = path/to/vbox/sources;
+  });
+}
 ```
   - use `mkCheckpointBuild changedVBox checkpointArtifacts`
   - enjoy shorter build times
diff --git a/doc/build-helpers/testers.chapter.md b/doc/build-helpers/testers.chapter.md
index 35f9290ecbfb9..b734cbbbd4e29 100644
--- a/doc/build-helpers/testers.chapter.md
+++ b/doc/build-helpers/testers.chapter.md
@@ -14,11 +14,13 @@ If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.p
 # Check that `pkg-config` modules are exposed using default values
 
 ```nix
-passthru.tests.pkg-config = testers.hasPkgConfigModules {
-  package = finalAttrs.finalPackage;
-};
+{
+  passthru.tests.pkg-config = testers.hasPkgConfigModules {
+    package = finalAttrs.finalPackage;
+  };
 
-meta.pkgConfigModules = [ "libfoo" ];
+  meta.pkgConfigModules = [ "libfoo" ];
+}
 ```
 
 :::
@@ -28,10 +30,12 @@ meta.pkgConfigModules = [ "libfoo" ];
 # Check that `pkg-config` modules are exposed using explicit module names
 
 ```nix
-passthru.tests.pkg-config = testers.hasPkgConfigModules {
-  package = finalAttrs.finalPackage;
-  moduleNames = [ "libfoo" ];
-};
+{
+  passthru.tests.pkg-config = testers.hasPkgConfigModules {
+    package = finalAttrs.finalPackage;
+    moduleNames = [ "libfoo" ];
+  };
+}
 ```
 
 :::
@@ -55,7 +59,9 @@ The default argument to the command is `--version`, and the version to be checke
 This example will run the command `hello --version`, and then check that the version of the `hello` package is in the output of the command.
 
 ```nix
-passthru.tests.version = testers.testVersion { package = hello; };
+{
+  passthru.tests.version = testers.testVersion { package = hello; };
+}
 ```
 
 :::
@@ -70,13 +76,15 @@ This means that an output like "leetcode 0.4.21" would fail the tests, and an ou
 A common usage of the `version` attribute is to specify `version = "v${version}"`.
 
 ```nix
-version = "0.4.2";
+{
+  version = "0.4.2";
 
-passthru.tests.version = testers.testVersion {
-  package = leetcode-cli;
-  command = "leetcode -V";
-  version = "leetcode ${version}";
-};
+  passthru.tests.version = testers.testVersion {
+    package = leetcode-cli;
+    command = "leetcode -V";
+    version = "leetcode ${version}";
+  };
+}
 ```
 
 :::
@@ -116,7 +124,7 @@ runCommand "example" {
   grep -F 'failing though' $failed/testBuildFailure.log
   [[ 3 = $(cat $failed/testBuildFailure.exit) ]]
   touch $out
-'';
+''
 ```
 
 :::
@@ -193,12 +201,14 @@ once to get a derivation hash, and again to produce the final fixed output deriv
 # Prevent nix from reusing the output of a fetcher
 
 ```nix
-tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
-  name = "nix-source";
-  url = "https://github.com/NixOS/nix";
-  rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
-  hash = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
-};
+{
+  tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
+    name = "nix-source";
+    url = "https://github.com/NixOS/nix";
+    rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
+    hash = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
+  };
+}
 ```
 
 :::
diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md
index c9985bda79238..4f2754903f9b3 100644
--- a/doc/build-helpers/trivial-build-helpers.chapter.md
+++ b/doc/build-helpers/trivial-build-helpers.chapter.md
@@ -76,12 +76,14 @@ If you need to refer to the resulting files somewhere else in a Nix expression,
 For example, if the file destination is a directory:
 
 ```nix
-my-file = writeTextFile {
-  name = "my-file";
-  text = ''
-    Contents of File
-  '';
-  destination = "/share/my-file";
+{
+  my-file = writeTextFile {
+    name = "my-file";
+    text = ''
+      Contents of File
+    '';
+    destination = "/share/my-file";
+  };
 }
 ```
 
@@ -90,7 +92,7 @@ Remember to append "/share/my-file" to the resulting store path when using it el
 ```nix
 writeShellScript "evaluate-my-file.sh" ''
   cat ${my-file}/share/my-file
-'';
+''
 ```
 ::::
 
@@ -287,7 +289,7 @@ writeTextFile {
   };
   allowSubstitutes = true;
   preferLocalBuild = false;
-};
+}
 ```
 :::
 
@@ -351,7 +353,7 @@ Write the string `Contents of File` to `/nix/store/<store path>`:
 writeText "my-file"
   ''
   Contents of File
-  '';
+  ''
 ```
 :::
 
@@ -391,7 +393,7 @@ Write the string `Contents of File` to `/nix/store/<store path>/share/my-file`:
 writeTextDir "share/my-file"
   ''
   Contents of File
-  '';
+  ''
 ```
 :::
 
@@ -433,7 +435,7 @@ Write the string `Contents of File` to `/nix/store/<store path>` and make the fi
 writeScript "my-file"
   ''
   Contents of File
-  '';
+  ''
 ```
 :::
 
@@ -475,7 +477,7 @@ The store path will include the the name, and it will be a directory.
 writeScriptBin "my-script"
   ''
   echo "hi"
-  '';
+  ''
 ```
 :::
 
@@ -519,7 +521,7 @@ This function is almost exactly like [](#trivial-builder-writeScript), except th
 writeShellScript "my-script"
   ''
   echo "hi"
-  '';
+  ''
 ```
 :::
 
@@ -562,7 +564,7 @@ This function is a combination of [](#trivial-builder-writeShellScript) and [](#
 writeShellScriptBin "my-script"
   ''
   echo "hi"
-  '';
+  ''
 ```
 :::
 
@@ -674,7 +676,7 @@ writeClosure [ (writeScriptBin "hi" ''${hello}/bin/hello'') ]
 
 produces an output path `/nix/store/<hash>-runtime-deps` containing
 
-```nix
+```
 /nix/store/<hash>-hello-2.10
 /nix/store/<hash>-hi
 /nix/store/<hash>-libidn2-2.3.0
@@ -700,7 +702,7 @@ writeDirectReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
 
 produces an output path `/nix/store/<hash>-runtime-references` containing
 
-```nix
+```
 /nix/store/<hash>-hello-2.10
 ```
 
diff --git a/doc/functions/nix-gitignore.section.md b/doc/functions/nix-gitignore.section.md
index 8eb4081d2878c..8532ab68ac047 100644
--- a/doc/functions/nix-gitignore.section.md
+++ b/doc/functions/nix-gitignore.section.md
@@ -7,27 +7,30 @@
 `pkgs.nix-gitignore` exports a number of functions, but you'll most likely need either `gitignoreSource` or `gitignoreSourcePure`. As their first argument, they both accept either 1. a file with gitignore lines or 2. a string with gitignore lines, or 3. a list of either of the two. They will be concatenated into a single big string.
 
 ```nix
-{ pkgs ? import <nixpkgs> {} }:
+{ pkgs ? import <nixpkgs> {} }: {
 
- nix-gitignore.gitignoreSource [] ./source
+ src = nix-gitignore.gitignoreSource [] ./source;
      # Simplest version
 
- nix-gitignore.gitignoreSource "supplemental-ignores\n" ./source
+ src = nix-gitignore.gitignoreSource "supplemental-ignores\n" ./source;
      # This one reads the ./source/.gitignore and concats the auxiliary ignores
 
- nix-gitignore.gitignoreSourcePure "ignore-this\nignore-that\n" ./source
+ src = nix-gitignore.gitignoreSourcePure "ignore-this\nignore-that\n" ./source;
      # Use this string as gitignore, don't read ./source/.gitignore.
 
- nix-gitignore.gitignoreSourcePure ["ignore-this\nignore-that\n", ~/.gitignore] ./source
+ src = nix-gitignore.gitignoreSourcePure ["ignore-this\nignore-that\n" ~/.gitignore] ./source;
      # It also accepts a list (of strings and paths) that will be concatenated
      # once the paths are turned to strings via readFile.
+}
 ```
 
 These functions are derived from the `Filter` functions by setting the first filter argument to `(_: _: true)`:
 
 ```nix
-gitignoreSourcePure = gitignoreFilterSourcePure (_: _: true);
-gitignoreSource = gitignoreFilterSource (_: _: true);
+{
+  gitignoreSourcePure = gitignoreFilterSourcePure (_: _: true);
+  gitignoreSource = gitignoreFilterSource (_: _: true);
+}
 ```
 
 Those filter functions accept the same arguments the `builtins.filterSource` function would pass to its filters, thus `fn: gitignoreFilterSourcePure fn ""` should be extensionally equivalent to `filterSource`. The file is blacklisted if it's blacklisted by either your filter or the gitignoreFilter.
@@ -35,7 +38,9 @@ Those filter functions accept the same arguments the `builtins.filterSource` fun
 If you want to make your own filter from scratch, you may use
 
 ```nix
-gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
+{
+  gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
+}
 ```
 
 ## gitignore files in subdirectories {#sec-pkgs-nix-gitignore-usage-recursive}
@@ -43,7 +48,9 @@ gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
 If you wish to use a filter that would search for .gitignore files in subdirectories, just like git does by default, use this function:
 
 ```nix
-gitignoreFilterRecursiveSource = filter: patterns: root:
-# OR
-gitignoreRecursiveSource = gitignoreFilterSourcePure (_: _: true);
+{
+  # gitignoreFilterRecursiveSource = filter: patterns: root:
+  # OR
+  gitignoreRecursiveSource = gitignoreFilterSourcePure (_: _: true);
+}
 ```
diff --git a/doc/hooks/breakpoint.section.md b/doc/hooks/breakpoint.section.md
index 424a9424b55e8..b7f1979586de1 100644
--- a/doc/hooks/breakpoint.section.md
+++ b/doc/hooks/breakpoint.section.md
@@ -3,7 +3,9 @@
 This hook will make a build pause instead of stopping when a failure happens. It prevents nix from cleaning up the build environment immediately and allows the user to attach to a build environment using the `cntr` command. Upon build error it will print instructions on how to use `cntr`, which can be used to enter the environment for debugging. Installing cntr and running the command will provide shell access to the build sandbox of failed build. At `/var/lib/cntr` the sandboxed filesystem is mounted. All commands and files of the system are still accessible within the shell. To execute commands from the sandbox use the cntr exec subcommand. `cntr` is only supported on Linux-based platforms. To use it first add `cntr` to your `environment.systemPackages` on NixOS or alternatively to the root user on non-NixOS systems. Then in the package that is supposed to be inspected, add `breakpointHook` to `nativeBuildInputs`.
 
 ```nix
-nativeBuildInputs = [ breakpointHook ];
+{
+  nativeBuildInputs = [ breakpointHook ];
+}
 ```
 
 When a build failure happens there will be an instruction printed that shows how to attach with `cntr` to the build sandbox.
diff --git a/doc/hooks/installShellFiles.section.md b/doc/hooks/installShellFiles.section.md
index 2567098116dd7..834c6a37df15e 100644
--- a/doc/hooks/installShellFiles.section.md
+++ b/doc/hooks/installShellFiles.section.md
@@ -7,19 +7,21 @@ The `installManPage` function takes one or more paths to manpages to install. Th
 The `installShellCompletion` function takes one or more paths to shell completion files. By default it will autodetect the shell type from the completion file extension, but you may also specify it by passing one of `--bash`, `--fish`, or `--zsh`. These flags apply to all paths listed after them (up until another shell flag is given). Each path may also have a custom installation name provided by providing a flag `--name NAME` before the path. If this flag is not provided, zsh completions will be renamed automatically such that `foobar.zsh` becomes `_foobar`. A root name may be provided for all paths using the flag `--cmd NAME`; this synthesizes the appropriate name depending on the shell (e.g. `--cmd foo` will synthesize the name `foo.bash` for bash and `_foo` for zsh). The path may also be a fifo or named fd (such as produced by `<(cmd)`), in which case the shell and name must be provided.
 
 ```nix
-nativeBuildInputs = [ installShellFiles ];
-postInstall = ''
-  installManPage doc/foobar.1 doc/barfoo.3
-  # explicit behavior
-  installShellCompletion --bash --name foobar.bash share/completions.bash
-  installShellCompletion --fish --name foobar.fish share/completions.fish
-  installShellCompletion --zsh --name _foobar share/completions.zsh
-  # implicit behavior
-  installShellCompletion share/completions/foobar.{bash,fish,zsh}
-  # using named fd
-  installShellCompletion --cmd foobar \
-    --bash <($out/bin/foobar --bash-completion) \
-    --fish <($out/bin/foobar --fish-completion) \
-    --zsh <($out/bin/foobar --zsh-completion)
-'';
+{
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installManPage doc/foobar.1 doc/barfoo.3
+    # explicit behavior
+    installShellCompletion --bash --name foobar.bash share/completions.bash
+    installShellCompletion --fish --name foobar.fish share/completions.fish
+    installShellCompletion --zsh --name _foobar share/completions.zsh
+    # implicit behavior
+    installShellCompletion share/completions/foobar.{bash,fish,zsh}
+    # using named fd
+    installShellCompletion --cmd foobar \
+      --bash <($out/bin/foobar --bash-completion) \
+      --fish <($out/bin/foobar --fish-completion) \
+      --zsh <($out/bin/foobar --zsh-completion)
+  '';
+}
 ```
diff --git a/doc/hooks/mpi-check-hook.section.md b/doc/hooks/mpi-check-hook.section.md
index 586ee2cc7c2dc..c182c4cc61958 100644
--- a/doc/hooks/mpi-check-hook.section.md
+++ b/doc/hooks/mpi-check-hook.section.md
@@ -12,13 +12,14 @@ Example:
 
 ```nix
   { mpiCheckPhaseHook, mpi, ... }:
-
-  ...
-
-  nativeCheckInputs = [
-    openssh
-    mpiCheckPhaseHook
-  ];
+  {
+    # ...
+
+    nativeCheckInputs = [
+      openssh
+      mpiCheckPhaseHook
+    ];
+  }
 ```
 
 
diff --git a/doc/languages-frameworks/agda.section.md b/doc/languages-frameworks/agda.section.md
index cb1f12eec234a..33fffc60c8db3 100644
--- a/doc/languages-frameworks/agda.section.md
+++ b/doc/languages-frameworks/agda.section.md
@@ -114,7 +114,7 @@ This can be overridden by a different version of `ghc` as follows:
 
 ```nix
 agda.withPackages {
-  pkgs = [ ... ];
+  pkgs = [ /* ... */ ];
   ghc = haskell.compiler.ghcHEAD;
 }
 ```
@@ -180,6 +180,7 @@ To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/d
 
 ```nix
 { mkDerivation, standard-library, fetchFromGitHub }:
+{}
 ```
 
 Note that the derivation function is called with `mkDerivation` set to `agdaPackages.mkDerivation`, therefore you
@@ -193,7 +194,7 @@ mkDerivation {
   version = "1.5.0";
   pname = "iowa-stdlib";
 
-  src = ...
+  src = <...>;
 
   libraryFile = "";
   libraryName = "IAL-1.3";
diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md
index 6f9717ca09cca..1c5687f8ebf1b 100644
--- a/doc/languages-frameworks/android.section.md
+++ b/doc/languages-frameworks/android.section.md
@@ -104,18 +104,20 @@ pull from:
   repo.json to the Nix store based on the given repository XMLs.
 
 ```nix
-repoXmls = {
-  packages = [ ./xml/repository2-1.xml ];
-  images = [
-    ./xml/android-sys-img2-1.xml
-    ./xml/android-tv-sys-img2-1.xml
-    ./xml/android-wear-sys-img2-1.xml
-    ./xml/android-wear-cn-sys-img2-1.xml
-    ./xml/google_apis-sys-img2-1.xml
-    ./xml/google_apis_playstore-sys-img2-1.xml
-  ];
-  addons = [ ./xml/addon2-1.xml ];
-};
+{
+  repoXmls = {
+    packages = [ ./xml/repository2-1.xml ];
+    images = [
+      ./xml/android-sys-img2-1.xml
+      ./xml/android-tv-sys-img2-1.xml
+      ./xml/android-wear-sys-img2-1.xml
+      ./xml/android-wear-cn-sys-img2-1.xml
+      ./xml/google_apis-sys-img2-1.xml
+      ./xml/google_apis_playstore-sys-img2-1.xml
+    ];
+    addons = [ ./xml/addon2-1.xml ];
+  };
+}
 ```
 
 When building the above expression with:
diff --git a/doc/languages-frameworks/beam.section.md b/doc/languages-frameworks/beam.section.md
index 992149090c63f..3653cdb337d1b 100644
--- a/doc/languages-frameworks/beam.section.md
+++ b/doc/languages-frameworks/beam.section.md
@@ -117,6 +117,7 @@ If there are git dependencies.
 - From the mix_deps.nix file, remove the dependencies that had git versions and pass them as an override to the import function.
 
 ```nix
+{
   mixNixDeps = import ./mix.nix {
     inherit beamPackages lib;
     overrides = (final: prev: {
@@ -138,8 +139,9 @@ If there are git dependencies.
         # you can re-use the same beamDeps argument as generated
         beamDeps = with final; [ prometheus ];
       };
-  });
-};
+    });
+  };
+}
 ```
 
 You will need to run the build process once to fix the hash to correspond to your new git src.
@@ -153,11 +155,13 @@ Practical steps
 - start with the following argument to mixRelease
 
 ```nix
+{
   mixFodDeps = fetchMixDeps {
     pname = "mix-deps-${pname}";
     inherit src version;
     hash = lib.fakeHash;
   };
+}
 ```
 
 The first build will complain about the hash value, you can replace with the suggested value after that.
diff --git a/doc/languages-frameworks/bower.section.md b/doc/languages-frameworks/bower.section.md
index fceb6aaccb6d2..20c142dad5b91 100644
--- a/doc/languages-frameworks/bower.section.md
+++ b/doc/languages-frameworks/bower.section.md
@@ -28,7 +28,7 @@ buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
   (fetchbower "angular" "1.5.3" "~1.5.0" "1749xb0firxdra4rzadm4q9x90v6pzkbd7xmcyjk6qfza09ykk9y")
   (fetchbower "bootstrap" "3.3.6" "~3.3.6" "1vvqlpbfcy0k5pncfjaiskj3y6scwifxygfqnw393sjfxiviwmbv")
   (fetchbower "jquery" "2.2.2" "1.9.1 - 2" "10sp5h98sqwk90y4k6hbdviwqzvzwqf47r3r51pakch5ii2y7js1")
-];
+]; }
 ```
 
 Using the `bower2nix` command line arguments, the output can be redirected to a file. A name like `bower-packages.nix` would be fine.
@@ -42,11 +42,13 @@ The function is implemented in [pkgs/development/bower-modules/generic/default.n
 ### Example buildBowerComponents {#ex-buildBowerComponents}
 
 ```nix
-bowerComponents = buildBowerComponents {
-  name = "my-web-app";
-  generated = ./bower-packages.nix; # note 1
-  src = myWebApp; # note 2
-};
+{
+  bowerComponents = buildBowerComponents {
+    name = "my-web-app";
+    generated = ./bower-packages.nix; # note 1
+    src = myWebApp; # note 2
+  };
+}
 ```
 
 In ["buildBowerComponents" example](#ex-buildBowerComponents) the following arguments are of special significance to the function:
diff --git a/doc/languages-frameworks/chicken.section.md b/doc/languages-frameworks/chicken.section.md
index 72c2642a6478c..16b00b3f5b5db 100644
--- a/doc/languages-frameworks/chicken.section.md
+++ b/doc/languages-frameworks/chicken.section.md
@@ -13,10 +13,12 @@ done in the typical Nix fashion. For example, to include support for [SRFI
 might write:
 
 ```nix
+{
   buildInputs = [
     chicken
     chickenPackages.chickenEggs.srfi-189
   ];
+}
 ```
 
 Both `chicken` and its eggs have a setup hook which configures the environment
@@ -67,12 +69,12 @@ let
       chickenEggs = super.chickenEggs.overrideScope' (eggself: eggsuper: {
         srfi-180 = eggsuper.srfi-180.overrideAttrs {
           # path to a local copy of srfi-180
-          src = ...
+          src = <...>;
         };
       });
   });
 in
 # Here, `myChickenPackages.chickenEggs.json-rpc`, which depends on `srfi-180` will use
 # the local copy of `srfi-180`.
-# ...
+<...>
 ```
diff --git a/doc/languages-frameworks/coq.section.md b/doc/languages-frameworks/coq.section.md
index db3724773345e..fdc824781cd10 100644
--- a/doc/languages-frameworks/coq.section.md
+++ b/doc/languages-frameworks/coq.section.md
@@ -56,22 +56,17 @@ Here is a simple package example. It is a pure Coq library, thus it depends on C
 { lib, mkCoqDerivation, version ? null
 , coq, mathcomp, mathcomp-finmap, mathcomp-bigenough }:
 
-let
-  inherit (lib) licenses maintainers switch;
-  inherit (lib.versions) range;
-in
-
 mkCoqDerivation {
   /* namePrefix leads to e.g. `name = coq8.11-mathcomp1.11-multinomials-1.5.2` */
   namePrefix = [ "coq" "mathcomp" ];
   pname = "multinomials";
   owner = "math-comp";
   inherit version;
-  defaultVersion =  with versions; switch [ coq.version mathcomp.version ] [
-      { cases = [ (range "8.7" "8.12")  "1.11.0" ];             out = "1.5.2"; }
-      { cases = [ (range "8.7" "8.11")  (range "1.8" "1.10") ]; out = "1.5.0"; }
-      { cases = [ (range "8.7" "8.10")  (range "1.8" "1.10") ]; out = "1.4"; }
-      { cases = [ "8.6"                 (range "1.6" "1.7") ];  out = "1.1"; }
+  defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp.version ] [
+      { cases = [ (range "8.7" "8.12") (isEq "1.11") ];        out = "1.5.2"; }
+      { cases = [ (range "8.7" "8.11") (range "1.8" "1.10") ]; out = "1.5.0"; }
+      { cases = [ (range "8.7" "8.10") (range "1.8" "1.10") ]; out = "1.4"; }
+      { cases = [ (isEq "8.6")         (range "1.6" "1.7") ];  out = "1.1"; }
     ] null;
   release = {
     "1.5.2".sha256 = "15aspf3jfykp1xgsxf8knqkxv8aav2p39c2fyirw7pwsfbsv2c4s";
@@ -90,7 +85,7 @@ mkCoqDerivation {
 
   meta = {
     description = "A Coq/SSReflect Library for Monoidal Rings and Multinomials";
-    license = licenses.cecill-c;
+    license = lib.licenses.cecill-c;
   };
 }
 ```
diff --git a/doc/languages-frameworks/crystal.section.md b/doc/languages-frameworks/crystal.section.md
index b97e75a58da11..9953f357048ae 100644
--- a/doc/languages-frameworks/crystal.section.md
+++ b/doc/languages-frameworks/crystal.section.md
@@ -33,22 +33,26 @@ crystal.buildCrystalPackage rec {
   # Insert the path to your shards.nix file here
   shardsFile = ./shards.nix;
 
-  ...
+  # ...
 }
 ```
 
 This won't build anything yet, because we haven't told it what files build. We can specify a mapping from binary names to source files with the `crystalBinaries` attribute. The project's compilation instructions should show this. For Mint, the binary is called "mint", which is compiled from the source file `src/mint.cr`, so we'll specify this as follows:
 
 ```nix
+{
   crystalBinaries.mint.src = "src/mint.cr";
 
   # ...
+}
 ```
 
 Additionally you can override the default `crystal build` options (which are currently `--release --progress --no-debug --verbose`) with
 
 ```nix
+{
   crystalBinaries.mint.options = [ "--release" "--verbose" ];
+}
 ```
 
 Depending on the project, you might need additional steps to get it to compile successfully. In Mint's case, we need to link against openssl, so in the end the Nix file looks as follows:
diff --git a/doc/languages-frameworks/cuda.section.md b/doc/languages-frameworks/cuda.section.md
index 09af824531a2d..9791018c7f5ff 100644
--- a/doc/languages-frameworks/cuda.section.md
+++ b/doc/languages-frameworks/cuda.section.md
@@ -16,24 +16,28 @@ To use one or more CUDA packages in an expression, give the expression a `cudaPa
 , cudaSupport ? config.cudaSupport
 , cudaPackages ? { }
 , ...
-}:
+}: {}
 ```
 
 When using `callPackage`, you can choose to pass in a different variant, e.g.
 when a different version of the toolkit suffices
 ```nix
-mypkg = callPackage { cudaPackages = cudaPackages_11_5; }
+{
+  mypkg = callPackage { cudaPackages = cudaPackages_11_5; };
+}
 ```
 
 If another version of say `cudnn` or `cutensor` is needed, you can override the
 package set to make it the default. This guarantees you get a consistent package
 set.
 ```nix
-mypkg = let
-  cudaPackages = cudaPackages_11_5.overrideScope (final: prev: {
-    cudnn = prev.cudnn_8_3;
-  }});
-in callPackage { inherit cudaPackages; };
+{
+  mypkg = let
+    cudaPackages = cudaPackages_11_5.overrideScope (final: prev: {
+      cudnn = prev.cudnn_8_3;
+    });
+  in callPackage { inherit cudaPackages; };
+}
 ```
 
 The CUDA NVCC compiler requires flags to determine which hardware you
diff --git a/doc/languages-frameworks/cuelang.section.md b/doc/languages-frameworks/cuelang.section.md
index 86304208aa20c..70329b15fd7dd 100644
--- a/doc/languages-frameworks/cuelang.section.md
+++ b/doc/languages-frameworks/cuelang.section.md
@@ -26,7 +26,7 @@ Cuelang schemas are similar to JSON, here is a quick cheatsheet:
 Nixpkgs provides a `pkgs.writeCueValidator` helper, which will write a validation script based on the provided Cuelang schema.
 
 Here is an example:
-```
+```nix
 pkgs.writeCueValidator
   (pkgs.writeText "schema.cue" ''
     #Def1: {
@@ -42,7 +42,7 @@ pkgs.writeCueValidator
 `document` : match your input data against this fragment of structure or definition, e.g. you may use the same schema file but different documents based on the data you are validating.
 
 Another example, given the following `validator.nix` :
-```
+```nix
 { pkgs ? import <nixpkgs> {} }:
 let
   genericValidator = version:
diff --git a/doc/languages-frameworks/dhall.section.md b/doc/languages-frameworks/dhall.section.md
index 83567ab17ace1..8d85c9f1daf75 100644
--- a/doc/languages-frameworks/dhall.section.md
+++ b/doc/languages-frameworks/dhall.section.md
@@ -187,6 +187,7 @@ wish to specify `source = true` for all Dhall packages, then you can amend the
 Dhall overlay like this:
 
 ```nix
+{
   dhallOverrides = self: super: {
     # Enable source for all Dhall packages
     buildDhallPackage =
@@ -194,6 +195,7 @@ Dhall overlay like this:
 
     true = self.callPackage ./true.nix { };
   };
+}
 ```
 
 … and now the Prelude will contain the fully decoded result of interpreting
@@ -429,22 +431,26 @@ $ dhall-to-nixpkgs github https://github.com/dhall-lang/dhall-lang.git \
 the Prelude globally for all packages, like this:
 
 ```nix
+{
   dhallOverrides = self: super: {
     true = self.callPackage ./true.nix { };
 
     Prelude = self.callPackage ./Prelude.nix { };
   };
+}
 ```
 
 … or selectively overriding the Prelude dependency for just the `true` package,
 like this:
 
 ```nix
+{
   dhallOverrides = self: super: {
     true = self.callPackage ./true.nix {
       Prelude = self.callPackage ./Prelude.nix { };
     };
   };
+}
 ```
 
 ## Overrides {#ssec-dhall-overrides}
@@ -454,11 +460,13 @@ You can override any of the arguments to `buildDhallGitHubPackage` or
 For example, suppose we wanted to selectively enable `source = true` just for the Prelude.  We can do that like this:
 
 ```nix
+{
   dhallOverrides = self: super: {
     Prelude = super.Prelude.overridePackage { source = true; };
 
-    …
+    # ...
   };
+}
 ```
 
 [semantic-integrity-checks]: https://docs.dhall-lang.org/tutorials/Language-Tour.html#installing-packages
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index 7466c8cdc2287..a4e9d6cf9a6c6 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -134,7 +134,7 @@ Here is an example `default.nix`, using some of the previously discussed argumen
 { lib, buildDotnetModule, dotnetCorePackages, ffmpeg }:
 
 let
-  referencedProject = import ../../bar { ... };
+  referencedProject = import ../../bar { /* ... */ };
 in buildDotnetModule rec {
   pname = "someDotnetApplication";
   version = "0.1";
@@ -236,7 +236,7 @@ the packages inside the `out` directory.
 $ nuget-to-nix out > deps.nix
 ```
 Which `nuget-to-nix` will generate an output similar to below
-```
+```nix
 { fetchNuGet }: [
   (fetchNuGet { pname = "FosterFramework"; version = "0.1.15-alpha"; sha256 = "0pzsdfbsfx28xfqljcwy100xhbs6wyx0z1d5qxgmv3l60di9xkll"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.1"; sha256 = "1gjz379y61ag9whi78qxx09bwkwcznkx2mzypgycibxk61g11da1"; })
diff --git a/doc/languages-frameworks/gnome.section.md b/doc/languages-frameworks/gnome.section.md
index 5208f1013cbdb..6bf867b21abea 100644
--- a/doc/languages-frameworks/gnome.section.md
+++ b/doc/languages-frameworks/gnome.section.md
@@ -47,6 +47,7 @@ When an application uses icons, an icon theme should be available in `XDG_DATA_D
 In the rare case you need to use icons from dependencies (e.g. when an app forces an icon theme), you can use the following to pick them up:
 
 ```nix
+{
   buildInputs = [
     pantheon.elementary-icon-theme
   ];
@@ -56,6 +57,7 @@ In the rare case you need to use icons from dependencies (e.g. when an app force
       --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
     )
   '';
+}
 ```
 
 To avoid costly file system access when locating icons, GTK, [as well as Qt](https://woboq.com/blog/qicon-reads-gtk-icon-cache-in-qt57.html), can rely on `icon-theme.cache` files from the themes' top-level directories. These files are generated using `gtk-update-icon-cache`, which is expected to be run whenever an icon is added or removed to an icon theme (typically an application icon into `hicolor` theme) and some programs do indeed run this after icon installation. However, since packages are installed into their own prefix by Nix, this would lead to conflicts. For that reason, `gtk3` provides a [setup hook](#ssec-gnome-hooks-gtk-drop-icon-theme-cache) that will clean the file from installation. Since most applications only ship their own icon that will be loaded on start-up, it should not affect them too much. On the other hand, icon themes are much larger and more widely used so we need to cache them. Because we recommend installing icon themes globally, we will generate the cache files from all packages in a profile using a NixOS module. You can enable the cache generation using `gtk.iconCache.enable` option if your desktop environment does not already do that.
@@ -85,17 +87,19 @@ If your application uses [GStreamer](https://gstreamer.freedesktop.org/) or [Gri
 Given the requirements above, the package expression would become messy quickly:
 
 ```nix
-preFixup = ''
-  for f in $(find $out/bin/ $out/libexec/ -type f -executable); do
-    wrapProgram "$f" \
-      --prefix GIO_EXTRA_MODULES : "${getLib dconf}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "$out/share" \
-      --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${name}" \
-      --prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \
-      --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
-      --prefix GI_TYPELIB_PATH : "${lib.makeSearchPath "lib/girepository-1.0" [ pango json-glib ]}"
-  done
-'';
+{
+  preFixup = ''
+    for f in $(find $out/bin/ $out/libexec/ -type f -executable); do
+      wrapProgram "$f" \
+        --prefix GIO_EXTRA_MODULES : "${getLib dconf}/lib/gio/modules" \
+        --prefix XDG_DATA_DIRS : "$out/share" \
+        --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${name}" \
+        --prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \
+        --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
+        --prefix GI_TYPELIB_PATH : "${lib.makeSearchPath "lib/girepository-1.0" [ pango json-glib ]}"
+    done
+  '';
+}
 ```
 
 Fortunately, there is [`wrapGAppsHook`]{#ssec-gnome-hooks-wrapgappshook}. It works in conjunction with other setup hooks that populate environment variables, and it will then wrap all executables in `bin` and `libexec` directories using said variables.
@@ -121,14 +125,16 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
 You can also pass additional arguments to `makeWrapper` using `gappsWrapperArgs` in `preFixup` hook:
 
 ```nix
-preFixup = ''
-  gappsWrapperArgs+=(
-    # Thumbnailers
-    --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
-    --prefix XDG_DATA_DIRS : "${librsvg}/share"
-    --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-  )
-'';
+{
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # Thumbnailers
+      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
+      --prefix XDG_DATA_DIRS : "${librsvg}/share"
+      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+    )
+  '';
+}
 ```
 
 ## Updating GNOME packages {#ssec-gnome-updating}
@@ -159,7 +165,7 @@ python3.pkgs.buildPythonApplication {
   nativeBuildInputs = [
     wrapGAppsHook
     gobject-introspection
-    ...
+    # ...
   ];
 
   dontWrapGApps = true;
@@ -181,7 +187,7 @@ mkDerivation {
   nativeBuildInputs = [
     wrapGAppsHook
     qmake
-    ...
+    # ...
   ];
 
   dontWrapGApps = true;
diff --git a/doc/languages-frameworks/go.section.md b/doc/languages-frameworks/go.section.md
index 369eb88d331fa..6db0e73505d26 100644
--- a/doc/languages-frameworks/go.section.md
+++ b/doc/languages-frameworks/go.section.md
@@ -38,24 +38,26 @@ The `buildGoModule` function accepts the following parameters in addition to the
 The following is an example expression using `buildGoModule`:
 
 ```nix
-pet = buildGoModule rec {
-  pname = "pet";
-  version = "0.3.4";
-
-  src = fetchFromGitHub {
-    owner = "knqyf263";
-    repo = "pet";
-    rev = "v${version}";
-    hash = "sha256-Gjw1dRrgM8D3G7v6WIM2+50r4HmTXvx0Xxme2fH9TlQ=";
-  };
+{
+  pet = buildGoModule rec {
+    pname = "pet";
+    version = "0.3.4";
+
+    src = fetchFromGitHub {
+      owner = "knqyf263";
+      repo = "pet";
+      rev = "v${version}";
+      hash = "sha256-Gjw1dRrgM8D3G7v6WIM2+50r4HmTXvx0Xxme2fH9TlQ=";
+    };
 
-  vendorHash = "sha256-ciBIR+a1oaYH+H1PcC8cD8ncfJczk1IiJ8iYNM+R6aA=";
+    vendorHash = "sha256-ciBIR+a1oaYH+H1PcC8cD8ncfJczk1IiJ8iYNM+R6aA=";
 
-  meta = {
-    description = "Simple command-line snippet manager, written in Go";
-    homepage = "https://github.com/knqyf263/pet";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ kalbasit ];
+    meta = {
+      description = "Simple command-line snippet manager, written in Go";
+      homepage = "https://github.com/knqyf263/pet";
+      license = lib.licenses.mit;
+      maintainers = with lib.maintainers; [ kalbasit ];
+    };
   };
 }
 ```
@@ -72,20 +74,22 @@ In the following is an example expression using `buildGoPackage`, the following
 - `goDeps` is where the Go dependencies of a Go program are listed as a list of package source identified by Go import path. It could be imported as a separate `deps.nix` file for readability. The dependency data structure is described below.
 
 ```nix
-deis = buildGoPackage rec {
-  pname = "deis";
-  version = "1.13.0";
-
-  goPackagePath = "github.com/deis/deis";
+{
+  deis = buildGoPackage rec {
+    pname = "deis";
+    version = "1.13.0";
+
+    goPackagePath = "github.com/deis/deis";
+
+    src = fetchFromGitHub {
+      owner = "deis";
+      repo = "deis";
+      rev = "v${version}";
+      hash = "sha256-XCPD4LNWtAd8uz7zyCLRfT8rzxycIUmTACjU03GnaeM=";
+    };
 
-  src = fetchFromGitHub {
-    owner = "deis";
-    repo = "deis";
-    rev = "v${version}";
-    hash = "sha256-XCPD4LNWtAd8uz7zyCLRfT8rzxycIUmTACjU03GnaeM=";
+    goDeps = ./deps.nix;
   };
-
-  goDeps = ./deps.nix;
 }
 ```
 
@@ -153,10 +157,12 @@ A string list of flags to pass to the Go linker tool via the `-ldflags` argument
 The most common use case for this argument is to make the resulting executable aware of its own version by injecting the value of string variable using the `-X` flag. For example:
 
 ```nix
+{
   ldflags = [
     "-X main.Version=${version}"
     "-X main.Commit=${version}"
   ];
+}
 ```
 
 ### `tags` {#var-go-tags}
@@ -164,16 +170,20 @@ The most common use case for this argument is to make the resulting executable a
 A string list of [Go build tags (also called build constraints)](https://pkg.go.dev/cmd/go#hdr-Build_constraints) that are passed via the `-tags` argument of `go build`.  These constraints control whether Go files from the source should be included in the build. For example:
 
 ```nix
+{
   tags = [
     "production"
     "sqlite"
   ];
+}
 ```
 
 Tags can also be set conditionally:
 
 ```nix
+{
   tags = [ "production" ] ++ lib.optionals withSqlite [ "sqlite" ];
+}
 ```
 
 ### `deleteVendor` {#var-go-deleteVendor}
@@ -188,10 +198,12 @@ Many Go projects keep the main package in a `cmd` directory.
 Following example could be used to only build the example-cli and example-server binaries:
 
 ```nix
-subPackages = [
-  "cmd/example-cli"
-  "cmd/example-server"
-];
+{
+  subPackages = [
+    "cmd/example-cli"
+    "cmd/example-server"
+  ];
+}
 ```
 
 ### `excludedPackages` {#var-go-excludedPackages}
@@ -213,10 +225,12 @@ on a per package level using build tags (`tags`). In case CGO is disabled, these
 When a Go program depends on C libraries, place those dependencies in `buildInputs`:
 
 ```nix
+{
   buildInputs = [
     libvirt
     libxml2
   ];
+}
 ```
 
 `CGO_ENABLED` defaults to `1`.
@@ -245,15 +259,18 @@ This is done with the [`-skip` or `-run`](https://pkg.go.dev/cmd/go#hdr-Testing_
 For example, only a selection of tests could be run with:
 
 ```nix
+{
   # -run and -skip accept regular expressions
   checkFlags = [
     "-run=^Test(Simple|Fast)$"
   ];
+}
 ```
 
 If a larger amount of tests should be skipped, the following pattern can be used:
 
 ```nix
+{
   checkFlags =
     let
       # Skip tests that require network access
@@ -264,6 +281,7 @@ If a larger amount of tests should be skipped, the following pattern can be used
       ];
     in
     [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
+}
 ```
 
 To disable tests altogether, set `doCheck = false;`.
diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md
index e30a849dd4564..0fa8288257496 100644
--- a/doc/languages-frameworks/idris.section.md
+++ b/doc/languages-frameworks/idris.section.md
@@ -134,9 +134,9 @@ For example you could set
 
 ```nix
 build-idris-package {
-  idrisBuildOptions = [ "--log" "1" "--verbose" ]
+  idrisBuildOptions = [ "--log" "1" "--verbose" ];
 
-  ...
+  # ...
 }
 ```
 
diff --git a/doc/languages-frameworks/java.section.md b/doc/languages-frameworks/java.section.md
index 0ce1442cca68f..6d56ffcd45039 100644
--- a/doc/languages-frameworks/java.section.md
+++ b/doc/languages-frameworks/java.section.md
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
   pname = "...";
   version = "...";
 
-  src = fetchurl { ... };
+  src = fetchurl { /* ... */ };
 
   nativeBuildInputs = [
     ant
@@ -48,8 +48,10 @@ installs a JAR named `foo.jar` in its `share/java` directory, and
 another package declares the attribute
 
 ```nix
-buildInputs = [ libfoo ];
-nativeBuildInputs = [ jdk ];
+{
+  buildInputs = [ libfoo ];
+  nativeBuildInputs = [ jdk ];
+}
 ```
 
 then `CLASSPATH` will be set to
@@ -62,13 +64,15 @@ If your Java package provides a program, you need to generate a wrapper
 script to run it using a JRE. You can use `makeWrapper` for this:
 
 ```nix
-nativeBuildInputs = [ makeWrapper ];
+{
+  nativeBuildInputs = [ makeWrapper ];
 
-installPhase = ''
-  mkdir -p $out/bin
-  makeWrapper ${jre}/bin/java $out/bin/foo \
-    --add-flags "-cp $out/share/java/foo.jar org.foo.Main"
-'';
+  installPhase = ''
+    mkdir -p $out/bin
+    makeWrapper ${jre}/bin/java $out/bin/foo \
+      --add-flags "-cp $out/share/java/foo.jar org.foo.Main"
+  '';
+}
 ```
 
 Since the introduction of the Java Platform Module System in Java 9,
@@ -92,16 +96,18 @@ let
   something = (pkgs.something.override { jre = my_jre; });
   other = (pkgs.other.override { jre = my_jre; });
 in
-  ...
+  <...>
 ```
 
 You can also specify what JDK your JRE should be based on, for example
 selecting a 'headless' build to avoid including a link to GTK+:
 
 ```nix
-my_jre = pkgs.jre_minimal.override {
-  jdk = jdk11_headless;
-};
+{
+  my_jre = pkgs.jre_minimal.override {
+    jdk = jdk11_headless;
+  };
+}
 ```
 
 Note all JDKs passthru `home`, so if your application requires
@@ -116,7 +122,9 @@ It is possible to use a different Java compiler than `javac` from the
 OpenJDK. For instance, to use the GNU Java Compiler:
 
 ```nix
-nativeBuildInputs = [ gcj ant ];
+{
+  nativeBuildInputs = [ gcj ant ];
+}
 ```
 
 Here, Ant will automatically use `gij` (the GNU Java Runtime) instead of
diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md
index d553444d53b04..f706f92c6691f 100644
--- a/doc/languages-frameworks/javascript.section.md
+++ b/doc/languages-frameworks/javascript.section.md
@@ -46,7 +46,7 @@ If a particular lock file is present, it is a strong indication of which package
 It's better to try to use a Nix tool that understand the lock file.
 Using a different tool might give you hard to understand error because different packages have been installed.
 An example of problems that could arise can be found [here](https://github.com/NixOS/nixpkgs/pull/126629).
-Upstream use NPM, but this is an attempt to package it with `yarn2nix` (that uses yarn.lock).
+Upstream use npm, but this is an attempt to package it with `yarn2nix` (that uses yarn.lock).
 
 Using a different tool forces to commit a lock file to the repository.
 Those files are fairly large, so when packaging for nixpkgs, this approach does not scale well.
@@ -54,8 +54,8 @@ Those files are fairly large, so when packaging for nixpkgs, this approach does
 Exceptions to this rule are:
 
 - When you encounter one of the bugs from a Nix tool. In each of the tool specific instructions, known problems will be detailed. If you have a problem with a particular tool, then it's best to try another tool, even if this means you will have to recreate a lock file and commit it to nixpkgs. In general `yarn2nix` has less known problems and so a simple search in nixpkgs will reveal many yarn.lock files committed.
-- Some lock files contain particular version of a package that has been pulled off NPM for some reason. In that case, you can recreate upstream lock (by removing the original and `npm install`, `yarn`, ...) and commit this to nixpkgs.
-- The only tool that supports workspaces (a feature of NPM that helps manage sub-directories with different package.json from a single top level package.json) is `yarn2nix`. If upstream has workspaces you should try `yarn2nix`.
+- Some lock files contain particular version of a package that has been pulled off npm for some reason. In that case, you can recreate upstream lock (by removing the original and `npm install`, `yarn`, ...) and commit this to nixpkgs.
+- The only tool that supports workspaces (a feature of npm that helps manage sub-directories with different package.json from a single top level package.json) is `yarn2nix`. If upstream has workspaces you should try `yarn2nix`.
 
 ### Try to use upstream package.json {#javascript-upstream-package-json}
 
@@ -76,11 +76,13 @@ Exceptions to this rule are:
   when you need to override a package.json. It's nice to use the one from the upstream source and do some explicit override. Here is an example:
 
   ```nix
-  patchedPackageJSON = final.runCommand "package.json" { } ''
-    ${jq}/bin/jq '.version = "0.4.0" |
-      .devDependencies."@jsdoc/cli" = "^0.2.5"
-      ${sonar-src}/package.json > $out
-  '';
+  {
+    patchedPackageJSON = final.runCommand "package.json" { } ''
+      ${jq}/bin/jq '.version = "0.4.0" |
+        .devDependencies."@jsdoc/cli" = "^0.2.5"
+        ${sonar-src}/package.json > $out
+    '';
+  }
   ```
 
   You will still need to commit the modified version of the lock files, but at least the overrides are explicit for everyone to see.
@@ -95,12 +97,12 @@ Then when building the frontend you can just symlink the node_modules directory.
 
 ## Javascript packages inside nixpkgs {#javascript-packages-nixpkgs}
 
-The [pkgs/development/node-packages](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages) folder contains a generated collection of [NPM packages](https://npmjs.com/) that can be installed with the Nix package manager.
+The [pkgs/development/node-packages](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages) folder contains a generated collection of [npm packages](https://npmjs.com/) that can be installed with the Nix package manager.
 
 As a rule of thumb, the package set should only provide _end user_ software packages, such as command-line utilities.
-Libraries should only be added to the package set if there is a non-NPM package that requires it.
+Libraries should only be added to the package set if there is a non-npm package that requires it.
 
-When it is desired to use NPM libraries in a development project, use the `node2nix` generator directly on the `package.json` configuration file of the project.
+When it is desired to use npm libraries in a development project, use the `node2nix` generator directly on the `package.json` configuration file of the project.
 
 The package set provides support for the official stable Node.js versions.
 The latest stable LTS release in `nodePackages`, as well as the latest stable current release in `nodePackages_latest`.
@@ -115,15 +117,17 @@ After you have identified the correct system, you need to override your package
 For example, `dat` requires `node-gyp-build`, so we override its expression in [pkgs/development/node-packages/overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/overrides.nix):
 
 ```nix
+  {
     dat = prev.dat.override (oldAttrs: {
       buildInputs = [ final.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ];
       meta = oldAttrs.meta // { broken = since "12"; };
     });
+  }
 ```
 
 ### Adding and Updating Javascript packages in nixpkgs {#javascript-adding-or-updating-packages}
 
-To add a package from NPM to nixpkgs:
+To add a package from npm to nixpkgs:
 
 1. Modify [pkgs/development/node-packages/node-packages.json](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/node-packages.json) to add, update or remove package entries to have it included in `nodePackages` and `nodePackages_latest`.
 2. Run the script:
@@ -150,7 +154,7 @@ To add a package from NPM to nixpkgs:
 
 For more information about the generation process, consult the [README.md](https://github.com/svanderburg/node2nix) file of the `node2nix` tool.
 
-To update NPM packages in nixpkgs, run the same `generate.sh` script:
+To update npm packages in nixpkgs, run the same `generate.sh` script:
 
 ```sh
 ./pkgs/development/node-packages/generate.sh
@@ -303,8 +307,8 @@ See `node2nix` [docs](https://github.com/svanderburg/node2nix) for more info.
 #### Pitfalls {#javascript-node2nix-pitfalls}
 
 - If upstream package.json does not have a "version" attribute, `node2nix` will crash. You will need to add it like shown in [the package.json section](#javascript-upstream-package-json).
-- `node2nix` has some [bugs](https://github.com/svanderburg/node2nix/issues/238) related to working with lock files from NPM distributed with `nodejs_16`.
-- `node2nix` does not like missing packages from NPM. If you see something like `Cannot resolve version: vue-loader-v16@undefined` then you might want to try another tool. The package might have been pulled off of NPM.
+- `node2nix` has some [bugs](https://github.com/svanderburg/node2nix/issues/238) related to working with lock files from npm distributed with `nodejs_16`.
+- `node2nix` does not like missing packages from npm. If you see something like `Cannot resolve version: vue-loader-v16@undefined` then you might want to try another tool. The package might have been pulled off of npm.
 
 ### yarn2nix {#javascript-yarn2nix}
 
@@ -315,10 +319,12 @@ You will need at least a `yarn.lock` file. If upstream does not have one you nee
 If the downloaded files contain the `package.json` and `yarn.lock` files they can be used like this:
 
 ```nix
-offlineCache = fetchYarnDeps {
-  yarnLock = src + "/yarn.lock";
-  hash = "....";
-};
+{
+  offlineCache = fetchYarnDeps {
+    yarnLock = src + "/yarn.lock";
+    hash = "....";
+  };
+}
 ```
 
 #### mkYarnPackage {#javascript-yarn2nix-mkYarnPackage}
@@ -328,33 +334,41 @@ offlineCache = fetchYarnDeps {
 It's important to use the `--offline` flag. For example if you script is `"build": "something"` in `package.json` use:
 
 ```nix
-buildPhase = ''
-  export HOME=$(mktemp -d)
-  yarn --offline build
-'';
+{
+  buildPhase = ''
+    export HOME=$(mktemp -d)
+    yarn --offline build
+  '';
+}
 ```
 
 The `distPhase` is packing the package's dependencies in a tarball using `yarn pack`. You can disable it using:
 
 ```nix
-doDist = false;
+{
+  doDist = false;
+}
 ```
 
 The configure phase can sometimes fail because it makes many assumptions which may not always apply. One common override is:
 
 ```nix
-configurePhase = ''
-  ln -s $node_modules node_modules
-'';
+{
+  configurePhase = ''
+    ln -s $node_modules node_modules
+  '';
+}
 ```
 
 or if you need a writeable node_modules directory:
 
 ```nix
-configurePhase = ''
-  cp -r $node_modules node_modules
-  chmod +w node_modules
-'';
+{
+  configurePhase = ''
+    cp -r $node_modules node_modules
+    chmod +w node_modules
+  '';
+}
 ```
 
 #### mkYarnModules {#javascript-yarn2nix-mkYarnModules}
@@ -394,12 +408,14 @@ mkYarnPackage rec {
 - Having trouble with `node-gyp`? Try adding these lines to the `yarnPreBuild` steps:
 
   ```nix
-  yarnPreBuild = ''
-    mkdir -p $HOME/.node-gyp/${nodejs.version}
-    echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion
-    ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version}
-    export npm_config_nodedir=${nodejs}
-  '';
+  {
+    yarnPreBuild = ''
+      mkdir -p $HOME/.node-gyp/${nodejs.version}
+      echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion
+      ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version}
+      export npm_config_nodedir=${nodejs}
+    '';
+  }
   ```
 
   - The `echo 9` steps comes from this answer: <https://stackoverflow.com/a/49139496>
diff --git a/doc/languages-frameworks/lisp.section.md b/doc/languages-frameworks/lisp.section.md
index 09193093b08fa..73f20436c76fc 100644
--- a/doc/languages-frameworks/lisp.section.md
+++ b/doc/languages-frameworks/lisp.section.md
@@ -45,7 +45,7 @@ $ sbcl
 
 Also one can create a `pkgs.mkShell` environment in `shell.nix`/`flake.nix`:
 
-```
+```nix
 let
   sbcl' = sbcl.withPackages (ps: [ ps.alexandria ]);
 in mkShell {
@@ -55,10 +55,12 @@ in mkShell {
 
 Such a Lisp can be now used e.g. to compile your sources:
 
-```
-buildPhase = ''
-  ${sbcl'}/bin/sbcl --load my-build-file.lisp
-''
+```nix
+{
+  buildPhase = ''
+    ${sbcl'}/bin/sbcl --load my-build-file.lisp
+  '';
+}
 ```
 
 ## Importing packages from Quicklisp {#lisp-importing-packages-from-quicklisp}
@@ -173,7 +175,7 @@ into the package scope with `withOverrides`.
 A package defined outside Nixpkgs using `buildASDFSystem` can be woven into the
 Nixpkgs-provided scope like this:
 
-```
+```nix
 let
   alexandria = sbcl.buildASDFSystem rec {
     pname = "alexandria";
@@ -199,7 +201,7 @@ new package with different parameters.
 
 Example of overriding `alexandria`:
 
-```
+```nix
 sbcl.pkgs.alexandria.overrideLispAttrs (oldAttrs: rec {
   version = "1.4";
   src = fetchFromGitLab {
@@ -225,7 +227,7 @@ vice versa.
 
 To package slashy systems, use `overrideLispAttrs`, like so:
 
-```
+```nix
 ecl.pkgs.alexandria.overrideLispAttrs (oldAttrs: {
   systems = oldAttrs.systems ++ [ "alexandria/tests" ];
   lispLibs = oldAttrs.lispLibs ++ [ ecl.pkgs.rt ];
@@ -290,7 +292,7 @@ derivation.
 
 This example wraps CLISP:
 
-```
+```nix
 wrapLisp {
   pkg = clisp;
   faslExt = "fas";
diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md
index a6577a56a436c..db230cf944a54 100644
--- a/doc/languages-frameworks/lua.section.md
+++ b/doc/languages-frameworks/lua.section.md
@@ -87,6 +87,7 @@ final: prev:
         pname = "luarocks-nix";
         src = /home/my_luarocks/repository;
       });
+    };
   };
 
   luaPackages = lua.pkgs;
@@ -154,7 +155,9 @@ You can develop your package as you usually would, just don't forget to wrap it
 within a `toLuaModule` call, for instance
 
 ```nix
-mynewlib = toLuaModule ( stdenv.mkDerivation { ... });
+{
+  mynewlib = toLuaModule ( stdenv.mkDerivation { /* ... */ });
+}
 ```
 
 There is also the `buildLuaPackage` function that can be used when lua modules
@@ -182,24 +185,26 @@ Each interpreter has the following attributes:
 The `buildLuarocksPackage` function is implemented in `pkgs/development/interpreters/lua-5/build-luarocks-package.nix`
 The following is an example:
 ```nix
-luaposix = buildLuarocksPackage {
-  pname = "luaposix";
-  version = "34.0.4-1";
-
-  src = fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luaposix-34.0.4-1.src.rock";
-    hash = "sha256-4mLJG8n4m6y4Fqd0meUDfsOb9RHSR0qa/KD5KCwrNXs=";
-  };
-  disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
-  propagatedBuildInputs = [ bit32 lua std_normalize ];
-
-  meta = {
-    homepage = "https://github.com/luaposix/luaposix/";
-    description = "Lua bindings for POSIX";
-    maintainers = with lib.maintainers; [ vyp lblasc ];
-    license.fullName = "MIT/X11";
+{
+  luaposix = buildLuarocksPackage {
+    pname = "luaposix";
+    version = "34.0.4-1";
+
+    src = fetchurl {
+      url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luaposix-34.0.4-1.src.rock";
+      hash = "sha256-4mLJG8n4m6y4Fqd0meUDfsOb9RHSR0qa/KD5KCwrNXs=";
+    };
+    disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
+    propagatedBuildInputs = [ bit32 lua std_normalize ];
+
+    meta = {
+      homepage = "https://github.com/luaposix/luaposix/";
+      description = "Lua bindings for POSIX";
+      maintainers = with lib.maintainers; [ vyp lblasc ];
+      license.fullName = "MIT/X11";
+    };
   };
-};
+}
 ```
 
 The `buildLuarocksPackage` delegates most tasks to luarocks:
diff --git a/doc/languages-frameworks/maven.section.md b/doc/languages-frameworks/maven.section.md
index 2ec419e010eb7..e56beb1025703 100644
--- a/doc/languages-frameworks/maven.section.md
+++ b/doc/languages-frameworks/maven.section.md
@@ -40,7 +40,7 @@ maven.buildMavenPackage rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ majiir ];
   };
-}:
+}
 ```
 
 This package calls `maven.buildMavenPackage` to do its work. The primary difference from `stdenv.mkDerivation` is the `mvnHash` variable, which is a hash of all of the Maven dependencies.
diff --git a/doc/languages-frameworks/ocaml.section.md b/doc/languages-frameworks/ocaml.section.md
index 4f3b6e0264f7e..44f514e90a1b9 100644
--- a/doc/languages-frameworks/ocaml.section.md
+++ b/doc/languages-frameworks/ocaml.section.md
@@ -92,6 +92,7 @@ buildDunePackage rec {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ sternenseemann ];
   };
+}
 ```
 
 Here is a second example, this time using a source archive generated with `dune-release`. It is a good idea to use this archive when it is available as it will usually contain substituted variables such as a `%%VERSION%%` field. This library does not depend on any other OCaml library and no tests are run after building it.
diff --git a/doc/languages-frameworks/perl.section.md b/doc/languages-frameworks/perl.section.md
index c188e228112cd..4ef6d173a178c 100644
--- a/doc/languages-frameworks/perl.section.md
+++ b/doc/languages-frameworks/perl.section.md
@@ -34,23 +34,27 @@ Nixpkgs provides a function `buildPerlPackage`, a generic package builder functi
 Perl packages from CPAN are defined in [pkgs/top-level/perl-packages.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix) rather than `pkgs/all-packages.nix`. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from `perl-packages.nix`. However, more complicated packages should be put in a separate file, typically in `pkgs/development/perl-modules`. Here is an example of the former:
 
 ```nix
-ClassC3 = buildPerlPackage rec {
-  pname = "Class-C3";
-  version = "0.21";
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/F/FL/FLORA/${pname}-${version}.tar.gz";
-    hash = "sha256-/5GE5xHT0uYGOQxroqj6LMU7CtKn2s6vMVoSXxL4iK4=";
+{
+  ClassC3 = buildPerlPackage rec {
+    pname = "Class-C3";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FL/FLORA/${pname}-${version}.tar.gz";
+      hash = "sha256-/5GE5xHT0uYGOQxroqj6LMU7CtKn2s6vMVoSXxL4iK4=";
+    };
   };
-};
+}
 ```
 
 Note the use of `mirror://cpan/`, and the `pname` and `version` in the URL definition to ensure that the `pname` attribute is consistent with the source that we’re actually downloading. Perl packages are made available in `all-packages.nix` through the variable `perlPackages`. For instance, if you have a package that needs `ClassC3`, you would typically write
 
 ```nix
-foo = import ../path/to/foo.nix {
-  inherit stdenv fetchurl ...;
-  inherit (perlPackages) ClassC3;
-};
+{
+  foo = import ../path/to/foo.nix {
+    inherit stdenv fetchurl /* ... */;
+    inherit (perlPackages) ClassC3;
+  };
+}
 ```
 
 in `all-packages.nix`. You can test building a Perl package as follows:
@@ -91,17 +95,19 @@ buildPerlPackage rec {
 Dependencies on other Perl packages can be specified in the `buildInputs` and `propagatedBuildInputs` attributes. If something is exclusively a build-time dependency, use `buildInputs`; if it’s (also) a runtime dependency, use `propagatedBuildInputs`. For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
 
 ```nix
-ClassC3Componentised = buildPerlPackage rec {
-  pname = "Class-C3-Componentised";
-  version = "1.0004";
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/A/AS/ASH/${pname}-${version}.tar.gz";
-    hash = "sha256-ASO9rV/FzJYZ0BH572Fxm2ZrFLMZLFATJng1NuU4FHc=";
+{
+  ClassC3Componentised = buildPerlPackage rec {
+    pname = "Class-C3-Componentised";
+    version = "1.0004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASH/${pname}-${version}.tar.gz";
+      hash = "sha256-ASO9rV/FzJYZ0BH572Fxm2ZrFLMZLFATJng1NuU4FHc=";
+    };
+    propagatedBuildInputs = [
+      ClassC3 ClassInspector TestException MROCompat
+    ];
   };
-  propagatedBuildInputs = [
-    ClassC3 ClassInspector TestException MROCompat
-  ];
-};
+}
 ```
 
 On Darwin, if a script has too many `-Idir` flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the `shortenPerlShebang` function from the `postInstall` phase:
@@ -109,20 +115,22 @@ On Darwin, if a script has too many `-Idir` flags in its first line (its “sheb
 ```nix
 { lib, stdenv, buildPerlPackage, fetchurl, shortenPerlShebang }:
 
-ImageExifTool = buildPerlPackage {
-  pname = "Image-ExifTool";
-  version = "12.50";
+{
+  ImageExifTool = buildPerlPackage {
+    pname = "Image-ExifTool";
+    version = "12.50";
 
-  src = fetchurl {
-    url = "https://exiftool.org/${pname}-${version}.tar.gz";
-    hash = "sha256-vOhB/FwQMC8PPvdnjDvxRpU6jAZcC6GMQfc0AH4uwKg=";
-  };
+    src = fetchurl {
+      url = "https://exiftool.org/${pname}-${version}.tar.gz";
+      hash = "sha256-vOhB/FwQMC8PPvdnjDvxRpU6jAZcC6GMQfc0AH4uwKg=";
+    };
 
-  nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
-  postInstall = lib.optionalString stdenv.isDarwin ''
-    shortenPerlShebang $out/bin/exiftool
-  '';
-};
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/exiftool
+    '';
+  };
+}
 ```
 
 This will remove the `-I` flags from the shebang line, rewrite them in the `use lib` form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md
index 154d8174f9aaf..c1493588a6066 100644
--- a/doc/languages-frameworks/php.section.md
+++ b/doc/languages-frameworks/php.section.md
@@ -97,7 +97,7 @@ let
   myPhp = php.withExtensions ({ all, ... }: with all; [ imagick opcache ]);
 in {
   services.phpfpm.pools."foo".phpPackage = myPhp;
-};
+}
 ```
 
 ```nix
@@ -108,7 +108,7 @@ let
   };
 in {
   services.phpfpm.pools."foo".phpPackage = myPhp;
-};
+}
 ```
 
 #### Example usage with `nix-shell` {#ssec-php-user-guide-installing-with-extensions-nix-shell}
@@ -149,7 +149,7 @@ php.override {
     extensions = prev.extensions // {
       mysqlnd = prev.extensions.mysqlnd.overrideAttrs (attrs: {
         patches = attrs.patches or [] ++ [
-          …
+          # ...
         ];
       });
     };
diff --git a/doc/languages-frameworks/pkg-config.section.md b/doc/languages-frameworks/pkg-config.section.md
index 75cbdaeb6fe88..e5a2b85b65769 100644
--- a/doc/languages-frameworks/pkg-config.section.md
+++ b/doc/languages-frameworks/pkg-config.section.md
@@ -12,18 +12,18 @@ Additionally, the [`validatePkgConfig` setup hook](https://nixos.org/manual/nixp
 
 A good example of all these things is zlib:
 
-```
+```nix
 { pkg-config, testers, ... }:
 
 stdenv.mkDerivation (finalAttrs: {
-  ...
+  /* ... */
 
   nativeBuildInputs = [ pkg-config validatePkgConfig ];
 
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = {
-    ...
+    /* ... */
     pkgConfigModules = [ "zlib" ];
   };
 })
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 049b395dcc25c..f325af0641f68 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -254,17 +254,19 @@ The next example shows a non trivial overriding of the `blas` implementation to
 be used through out all of the Python package set:
 
 ```nix
-python3MyBlas = pkgs.python3.override {
-  packageOverrides = self: super: {
-    # We need toPythonModule for the package set to evaluate this
-    blas = super.toPythonModule(super.pkgs.blas.override {
-      blasProvider = super.pkgs.mkl;
-    });
-    lapack = super.toPythonModule(super.pkgs.lapack.override {
-      lapackProvider = super.pkgs.mkl;
-    });
+{
+  python3MyBlas = pkgs.python3.override {
+    packageOverrides = self: super: {
+      # We need toPythonModule for the package set to evaluate this
+      blas = super.toPythonModule(super.pkgs.blas.override {
+        blasProvider = super.pkgs.mkl;
+      });
+      lapack = super.toPythonModule(super.pkgs.lapack.override {
+        lapackProvider = super.pkgs.mkl;
+      });
+    };
   };
-};
+}
 ```
 
 This is particularly useful for numpy and scipy users who want to gain speed with other blas implementations.
@@ -322,7 +324,9 @@ python3Packages.buildPythonApplication rec {
 This is then added to `all-packages.nix` just as any other application would be.
 
 ```nix
-luigi = callPackage ../applications/networking/cluster/luigi { };
+{
+  luigi = callPackage ../applications/networking/cluster/luigi { };
+}
 ```
 
 Since the package is an application, a consumer doesn't need to care about
@@ -342,7 +346,9 @@ the attribute in `python-packages.nix`, and the `toPythonApplication` shall be
 applied to the reference:
 
 ```nix
-youtube-dl = with python3Packages; toPythonApplication youtube-dl;
+{
+  youtube-dl = with python3Packages; toPythonApplication youtube-dl;
+}
 ```
 
 #### `toPythonModule` function {#topythonmodule-function}
@@ -354,10 +360,12 @@ bindings should be made available from `python-packages.nix`. The
 modifications.
 
 ```nix
-opencv = toPythonModule (pkgs.opencv.override {
-  enablePython = true;
-  pythonPackages = self;
-});
+{
+  opencv = toPythonModule (pkgs.opencv.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+}
 ```
 
 Do pay attention to passing in the right Python version!
@@ -1197,7 +1205,8 @@ a good indication that the package is not in a valid state.
 Pytest is the most common test runner for python repositories. A trivial
 test run would be:
 
-```
+```nix
+{
   nativeCheckInputs = [ pytest ];
   checkPhase = ''
     runHook preCheck
@@ -1206,6 +1215,7 @@ test run would be:
 
     runHook postCheck
   '';
+}
 ```
 
 However, many repositories' test suites do not translate well to nix's build
@@ -1213,7 +1223,8 @@ sandbox, and will generally need many tests to be disabled.
 
 To filter tests using pytest, one can do the following:
 
-```
+```nix
+{
   nativeCheckInputs = [ pytest ];
   # avoid tests which need additional data or touch network
   checkPhase = ''
@@ -1223,6 +1234,7 @@ To filter tests using pytest, one can do the following:
 
     runHook postCheck
   '';
+}
 ```
 
 `--ignore` will tell pytest to ignore that file or directory from being
@@ -1248,7 +1260,8 @@ when a package may need many items disabled to run the test suite.
 
 Using the example above, the analogous `pytestCheckHook` usage would be:
 
-```
+```nix
+{
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -1268,12 +1281,14 @@ Using the example above, the analogous `pytestCheckHook` usage would be:
   disabledTestPaths = [
     "tests/test_failing.py"
   ];
+}
 ```
 
 This is especially useful when tests need to be conditionally disabled,
 for example:
 
-```
+```nix
+{
   disabledTests = [
     # touches network
     "download"
@@ -1285,6 +1300,7 @@ for example:
     # can fail when building with other packages
     "socket"
   ];
+}
 ```
 
 Trying to concatenate the related strings to disable tests in a regular
@@ -1298,20 +1314,24 @@ all packages have test suites that can be run easily, and some have none at all.
 To help ensure the package still works, [`pythonImportsCheck`](#using-pythonimportscheck) can attempt to import
 the listed modules.
 
-```
+```nix
+{
   pythonImportsCheck = [
     "requests"
     "urllib"
   ];
+}
 ```
 
 roughly translates to:
 
-```
+```nix
+{
   postCheck = ''
     PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
     python -c "import requests; import urllib"
   '';
+}
 ```
 
 However, this is done in its own phase, and not dependent on whether [`doCheck = true;`](#var-stdenv-doCheck).
@@ -1342,7 +1362,8 @@ pkg3>=1.0,<=2.0
 
 we can do:
 
-```
+```nix
+{
   nativeBuildInputs = [
     pythonRelaxDepsHook
   ];
@@ -1353,6 +1374,7 @@ we can do:
   pythonRemoveDeps = [
     "pkg2"
   ];
+}
 ```
 
 which would result in the following `requirements.txt` file:
@@ -1365,9 +1387,11 @@ pkg3
 Another option is to pass `true`, that will relax/remove all dependencies, for
 example:
 
-```
+```nix
+{
   nativeBuildInputs = [ pythonRelaxDepsHook ];
   pythonRelaxDeps = true;
+}
 ```
 
 which would result in the following `requirements.txt` file:
@@ -1392,7 +1416,8 @@ work with any of the [existing hooks](#setup-hooks).
 
 `unittestCheckHook` is a hook which will substitute the setuptools `test` command for a [`checkPhase`](#ssec-check-phase) which runs `python -m unittest discover`:
 
-```
+```nix
+{
   nativeCheckInputs = [
     unittestCheckHook
   ];
@@ -1400,6 +1425,7 @@ work with any of the [existing hooks](#setup-hooks).
   unittestFlagsArray = [
     "-s" "tests" "-v"
   ];
+}
 ```
 
 #### Using sphinxHook {#using-sphinxhook}
@@ -1409,7 +1435,8 @@ using the popular Sphinx documentation generator.
 It is setup to automatically find common documentation source paths and
 render them using the default `html` style.
 
-```
+```nix
+{
   outputs = [
     "out"
     "doc"
@@ -1418,13 +1445,15 @@ render them using the default `html` style.
   nativeBuildInputs = [
     sphinxHook
   ];
+}
 ```
 
 The hook will automatically build and install the artifact into the
 `doc` output, if it exists. It also provides an automatic diversion
 for the artifacts of the `man` builder into the `man` target.
 
-```
+```nix
+{
   outputs = [
     "out"
     "doc"
@@ -1436,14 +1465,17 @@ for the artifacts of the `man` builder into the `man` target.
     "singlehtml"
     "man"
   ];
+}
 ```
 
 Overwrite `sphinxRoot` when the hook is unable to find your
 documentation source root.
 
-```
+```nix
+{
   # Configure sphinxRoot for uncommon paths
   sphinxRoot = "weird/docs/path";
+}
 ```
 
 The hook is also available to packages outside the python ecosystem by
@@ -1827,6 +1859,7 @@ folder and not downloaded again.
 If you need to change a package's attribute(s) from `configuration.nix` you could do:
 
 ```nix
+{
   nixpkgs.config.packageOverrides = super: {
     python3 = super.python3.override {
       packageOverrides = python-self: python-super: {
@@ -1841,6 +1874,7 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul
       };
     };
   };
+}
 ```
 
 `python3Packages.twisted` is now globally overridden.
@@ -1853,11 +1887,13 @@ To modify only a Python package set instead of a whole Python derivation, use
 this snippet:
 
 ```nix
+{
   myPythonPackages = python3Packages.override {
     overrides = self: super: {
-      twisted = ...;
+      twisted = <...>;
     };
-  }
+  };
+}
 ```
 
 ### How to override a Python package using overlays? {#how-to-override-a-python-package-using-overlays}
@@ -1893,7 +1929,7 @@ final: prev: {
     (
       python-final: python-prev: {
         foo = python-prev.foo.overridePythonAttrs (oldAttrs: {
-          ...
+          # ...
         });
       }
     )
@@ -1920,7 +1956,7 @@ The Python interpreters are by default not built with optimizations enabled, bec
 the builds are in that case not reproducible. To enable optimizations, override the
 interpreter of interest, e.g using
 
-```
+```nix
 let
   pkgs = import ./. {};
   mypython = pkgs.python3.override {
@@ -1938,17 +1974,21 @@ Some packages define optional dependencies for additional features. With
 `extras-require`, while PEP 621 calls these `optional-dependencies`.
 
 ```nix
-optional-dependencies = {
-  complete = [ distributed ];
-};
+{
+  optional-dependencies = {
+    complete = [ distributed ];
+  };
+}
 ```
 
 and letting the package requiring the extra add the list to its dependencies
 
 ```nix
-dependencies = [
-  ...
-] ++ dask.optional-dependencies.complete;
+{
+  dependencies = [
+    # ...
+  ] ++ dask.optional-dependencies.complete;
+}
 ```
 
 This method is using `passthru`, meaning that changing `optional-dependencies` of a package won't cause it to rebuild.
diff --git a/doc/languages-frameworks/ruby.section.md b/doc/languages-frameworks/ruby.section.md
index 9527395de58f3..7dede6944a3d4 100644
--- a/doc/languages-frameworks/ruby.section.md
+++ b/doc/languages-frameworks/ruby.section.md
@@ -124,11 +124,13 @@ mkShell { buildInputs = [ gems (lowPrio gems.wrappedRuby) ]; }
 Sometimes a Gemfile references other files. Such as `.ruby-version` or vendored gems. When copying the Gemfile to the nix store we need to copy those files alongside. This can be done using `extraConfigPaths`. For example:
 
 ```nix
+{
   gems = bundlerEnv {
     name = "gems-for-some-project";
     gemdir = ./.;
     extraConfigPaths = [ "${./.}/.ruby-version" ];
   };
+}
 ```
 
 ### Gem-specific configurations and workarounds {#gem-specific-configurations-and-workarounds}
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 274ee9ce9cc4a..8a1007b7bb8a9 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -3,10 +3,12 @@
 To install the rust compiler and cargo put
 
 ```nix
-environment.systemPackages = [
-  rustc
-  cargo
-];
+{
+  environment.systemPackages = [
+    rustc
+    cargo
+  ];
+}
 ```
 
 into your `configuration.nix` or bring them into scope with `nix-shell -p rustc cargo`.
@@ -51,7 +53,9 @@ preferred over `cargoSha256` which was used for traditional Nix SHA-256 hashes.
 For example:
 
 ```nix
+{
   cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8=";
+}
 ```
 
 Exception: If the application has cargo `git` dependencies, the `cargoHash`/`cargoSha256`
@@ -67,13 +71,17 @@ then be taken from the failed build. A fake hash can be used for
 `cargoHash` as follows:
 
 ```nix
+{
   cargoHash = lib.fakeHash;
+}
 ```
 
 For `cargoSha256` you can use:
 
 ```nix
+{
   cargoSha256 = lib.fakeSha256;
+}
 ```
 
 Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
@@ -162,9 +170,11 @@ doesn't add a `Cargo.lock` to your `src`, and a `Cargo.lock` is still
 required to build a rust package. A simple fix is to use:
 
 ```nix
-postPatch = ''
-  ln -s ${./Cargo.lock} Cargo.lock
-'';
+{
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+}
 ```
 
 The output hash of each dependency that uses a git source must be
@@ -409,7 +419,7 @@ the `cargoPatches` attribute to update or add it.
 
 ```nix
 rustPlatform.buildRustPackage rec {
-  (...)
+  # ...
   cargoPatches = [
     # a patch file to add/update Cargo.lock in the source code
     ./add-Cargo.lock.patch
@@ -433,10 +443,12 @@ containing `Cargo.toml` and `Cargo.lock`, `fetchCargoTarball`
 can be used as follows:
 
 ```nix
-cargoDeps = rustPlatform.fetchCargoTarball {
-  inherit src;
-  hash = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
-};
+{
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    hash = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+  };
+}
 ```
 
 The `src` attribute is required, as well as a hash specified through
@@ -458,23 +470,27 @@ function does not require a hash (unless git dependencies are used)
 and fetches every dependency as a separate fixed-output derivation.
 `importCargoLock` can be used as follows:
 
-```
-cargoDeps = rustPlatform.importCargoLock {
-  lockFile = ./Cargo.lock;
-};
+```nix
+{
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+  };
+}
 ```
 
 If the `Cargo.lock` file includes git dependencies, then their output
 hashes need to be specified since they are not available through the
 lock file. For example:
 
-```
-cargoDeps = rustPlatform.importCargoLock {
-  lockFile = ./Cargo.lock;
-  outputHashes = {
-    "rand-0.8.3" = "0ya2hia3cn31qa8894s3av2s8j5bjwb6yq92k0jsnlx7jid0jwqa";
+```nix
+{
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "rand-0.8.3" = "0ya2hia3cn31qa8894s3av2s8j5bjwb6yq92k0jsnlx7jid0jwqa";
+    };
   };
-};
+}
 ```
 
 If you do not specify an output hash for a git dependency, building
@@ -792,27 +808,27 @@ general. A number of other parameters can be overridden:
 - The version of `rustc` used to compile the crate:
 
   ```nix
-  (hello {}).override { rust = pkgs.rust; };
+  (hello {}).override { rust = pkgs.rust; }
   ```
 
 - Whether to build in release mode or debug mode (release mode by
   default):
 
   ```nix
-  (hello {}).override { release = false; };
+  (hello {}).override { release = false; }
   ```
 
 - Whether to print the commands sent to `rustc` when building
   (equivalent to `--verbose` in cargo:
 
   ```nix
-  (hello {}).override { verbose = false; };
+  (hello {}).override { verbose = false; }
   ```
 
 - Extra arguments to be passed to `rustc`:
 
   ```nix
-  (hello {}).override { extraRustcOpts = "-Z debuginfo=2"; };
+  (hello {}).override { extraRustcOpts = "-Z debuginfo=2"; }
   ```
 
 - Phases, just like in any other derivation, can be specified using
@@ -828,7 +844,7 @@ general. A number of other parameters can be overridden:
     preConfigure = ''
        echo "pub const PATH=\"${hi.out}\";" >> src/path.rs"
     '';
-  };
+  }
   ```
 
 ### Setting Up `nix-shell` {#setting-up-nix-shell}
diff --git a/doc/languages-frameworks/swift.section.md b/doc/languages-frameworks/swift.section.md
index 213d444f499fa..88d98deeb2dd3 100644
--- a/doc/languages-frameworks/swift.section.md
+++ b/doc/languages-frameworks/swift.section.md
@@ -112,13 +112,17 @@ stdenv.mkDerivation rec {
 If you'd like to build a different configuration than `release`:
 
 ```nix
-swiftpmBuildConfig = "debug";
+{
+  swiftpmBuildConfig = "debug";
+}
 ```
 
 It is also possible to provide additional flags to `swift build`:
 
 ```nix
-swiftpmFlags = [ "--disable-dead-strip" ];
+{
+  swiftpmFlags = [ "--disable-dead-strip" ];
+}
 ```
 
 The default `buildPhase` already passes `-j` for parallel building.
@@ -132,7 +136,9 @@ Including `swiftpm` in your `nativeBuildInputs` also provides a default
 `checkPhase`, but it must be enabled with:
 
 ```nix
-doCheck = true;
+{
+  doCheck = true;
+}
 ```
 
 This essentially runs: `swift test -c release`
@@ -147,13 +153,15 @@ them, we need to make them writable.
 A special function `swiftpmMakeMutable` is available to replace the symlink
 with a writable copy:
 
-```
-configurePhase = generated.configure ++ ''
-  # Replace the dependency symlink with a writable copy.
-  swiftpmMakeMutable swift-crypto
-  # Now apply a patch.
-  patch -p1 -d .build/checkouts/swift-crypto -i ${./some-fix.patch}
-'';
+```nix
+{
+  configurePhase = generated.configure ++ ''
+    # Replace the dependency symlink with a writable copy.
+    swiftpmMakeMutable swift-crypto
+    # Now apply a patch.
+    patch -p1 -d .build/checkouts/swift-crypto -i ${./some-fix.patch}
+  '';
+}
 ```
 
 ## Considerations for custom build tools {#ssec-swift-considerations-for-custom-build-tools}
diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md
index 1f3727f552c80..69031ccbd3406 100644
--- a/doc/languages-frameworks/vim.section.md
+++ b/doc/languages-frameworks/vim.section.md
@@ -219,9 +219,11 @@ After running the updater, if nvim-treesitter received an update, also run [`nvi
 Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
 
 ```nix
-deoplete-fish = super.deoplete-fish.overrideAttrs(old: {
-  dependencies = with super; [ deoplete-nvim vim-fish ];
-});
+{
+  deoplete-fish = super.deoplete-fish.overrideAttrs(old: {
+    dependencies = with super; [ deoplete-nvim vim-fish ];
+  });
+}
 ```
 
 Sometimes plugins require an override that must be changed when the plugin is updated. This can cause issues when Vim plugins are auto-updated but the associated override isn't updated. For these plugins, the override should be written so that it specifies all information required to install the plugin, and running `./update.py` doesn't change the derivation for the plugin. Manually updating the override is required to update these types of plugins. An example of such a plugin is `LanguageClient-neovim`.
@@ -264,8 +266,10 @@ pwntester/octo.nvim,,
 You can then reference the generated vim plugins via:
 
 ```nix
-myVimPlugins = pkgs.vimPlugins.extend (
-  (pkgs.callPackage ./generated.nix {})
-);
+{
+  myVimPlugins = pkgs.vimPlugins.extend (
+    (pkgs.callPackage ./generated.nix {})
+  );
+}
 ```
 
diff --git a/doc/packages/darwin-builder.section.md b/doc/packages/darwin-builder.section.md
index 3a547de537054..ca8519c5bf5f8 100644
--- a/doc/packages/darwin-builder.section.md
+++ b/doc/packages/darwin-builder.section.md
@@ -81,7 +81,7 @@ $ sudo launchctl kickstart -k system/org.nixos.nix-daemon
 
 ## Example flake usage {#sec-darwin-builder-example-flake}
 
-```
+```nix
 {
   inputs = {
     nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin";
@@ -153,7 +153,8 @@ you may use it to build a modified remote builder with additional storage or mem
 To do this, you just need to set the `virtualisation.darwin-builder.*` parameters as
 in the example below and rebuild.
 
-```
+```nix
+  {
     darwin-builder = nixpkgs.lib.nixosSystem {
       system = linuxSystem;
       modules = [
@@ -166,6 +167,8 @@ in the example below and rebuild.
           virtualisation.darwin-builder.workingDirectory = "/var/lib/darwin-builder";
         }
       ];
+    };
+  }
 ```
 
 You may make any other changes to your VM in this attribute set. For example,
diff --git a/doc/packages/eclipse.section.md b/doc/packages/eclipse.section.md
index e19510e131a09..acf34b57571ab 100644
--- a/doc/packages/eclipse.section.md
+++ b/doc/packages/eclipse.section.md
@@ -13,11 +13,13 @@ Once an Eclipse variant is installed, it can be run using the `eclipse` command,
 If you prefer to install plugins in a more declarative manner, then Nixpkgs also offer a number of Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is a one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add:
 
 ```nix
-packageOverrides = pkgs: {
-  myEclipse = with pkgs.eclipses; eclipseWithPlugins {
-    eclipse = eclipse-platform;
-    jvmArgs = [ "-Xmx2048m" ];
-    plugins = [ plugins.color-theme ];
+{
+  packageOverrides = pkgs: {
+    myEclipse = with pkgs.eclipses; eclipseWithPlugins {
+      eclipse = eclipse-platform;
+      jvmArgs = [ "-Xmx2048m" ];
+      plugins = [ plugins.color-theme ];
+    };
   };
 }
 ```
@@ -33,32 +35,34 @@ If there is a need to install plugins that are not available in Nixpkgs then it
 Expanding the previous example with two plugins using the above functions, we have:
 
 ```nix
-packageOverrides = pkgs: {
-  myEclipse = with pkgs.eclipses; eclipseWithPlugins {
-    eclipse = eclipse-platform;
-    jvmArgs = [ "-Xmx2048m" ];
-    plugins = [
-      plugins.color-theme
-      (plugins.buildEclipsePlugin {
-        name = "myplugin1-1.0";
-        srcFeature = fetchurl {
-          url = "http://…/features/myplugin1.jar";
-          hash = "sha256-123…";
-        };
-        srcPlugin = fetchurl {
-          url = "http://…/plugins/myplugin1.jar";
-          hash = "sha256-123…";
-        };
-      });
-      (plugins.buildEclipseUpdateSite {
-        name = "myplugin2-1.0";
-        src = fetchurl {
-          stripRoot = false;
-          url = "http://…/myplugin2.zip";
-          hash = "sha256-123…";
-        };
-      });
-    ];
+{
+  packageOverrides = pkgs: {
+    myEclipse = with pkgs.eclipses; eclipseWithPlugins {
+      eclipse = eclipse-platform;
+      jvmArgs = [ "-Xmx2048m" ];
+      plugins = [
+        plugins.color-theme
+        (plugins.buildEclipsePlugin {
+          name = "myplugin1-1.0";
+          srcFeature = fetchurl {
+            url = "http://…/features/myplugin1.jar";
+            hash = "sha256-123…";
+          };
+          srcPlugin = fetchurl {
+            url = "http://…/plugins/myplugin1.jar";
+            hash = "sha256-123…";
+          };
+        })
+        (plugins.buildEclipseUpdateSite {
+          name = "myplugin2-1.0";
+          src = fetchurl {
+            stripRoot = false;
+            url = "http://…/myplugin2.zip";
+            hash = "sha256-123…";
+          };
+        })
+      ];
+    };
   };
 }
 ```
diff --git a/doc/packages/emacs.section.md b/doc/packages/emacs.section.md
index c50c7815537dc..2ced251f3e46a 100644
--- a/doc/packages/emacs.section.md
+++ b/doc/packages/emacs.section.md
@@ -16,7 +16,7 @@ The Emacs package comes with some extra helpers to make it easier to configure.
       projectile
       use-package
     ]));
-  }
+  };
 }
 ```
 
@@ -102,10 +102,12 @@ This provides a fairly full Emacs start file. It will load in addition to the us
 Sometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to GNU-devel ELPA, and the highest for packages manually defined in `pkgs/applications/editors/emacs/elisp-packages/manual-packages`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope`.
 
 ```nix
-overrides = self: super: rec {
-  haskell-mode = self.melpaPackages.haskell-mode;
-  ...
-};
+let
+  overrides = self: super: rec {
+    haskell-mode = self.melpaPackages.haskell-mode;
+    # ...
+  };
+in
 ((emacsPackagesFor emacs).overrideScope overrides).withPackages
   (p: with p; [
     # here both these package will use haskell-mode of our own choice
@@ -113,3 +115,4 @@ overrides = self: super: rec {
     dante
   ])
 ```
+}
diff --git a/doc/packages/steam.section.md b/doc/packages/steam.section.md
index a1e88b0d97103..c9a09962f62dc 100644
--- a/doc/packages/steam.section.md
+++ b/doc/packages/steam.section.md
@@ -51,7 +51,7 @@ Use `programs.steam.enable = true;` if you want to add steam to `systemPackages`
     you need to add:
 
     ```nix
-    steam.override { withJava = true; };
+    steam.override { withJava = true; }
     ```
 
 ## steam-run {#sec-steam-run}
diff --git a/doc/packages/urxvt.section.md b/doc/packages/urxvt.section.md
index 7aff0997dd2b4..1d40c92ed73fc 100644
--- a/doc/packages/urxvt.section.md
+++ b/doc/packages/urxvt.section.md
@@ -65,7 +65,9 @@ A plugin can be any kind of derivation, the only requirement is that it should a
 If the plugin is itself a Perl package that needs to be imported from other plugins or scripts, add the following passthrough:
 
 ```nix
-passthru.perlPackages = [ "self" ];
+{
+  passthru.perlPackages = [ "self" ];
+}
 ```
 
 This will make the urxvt wrapper pick up the dependency and set up the Perl path accordingly.
diff --git a/doc/packages/weechat.section.md b/doc/packages/weechat.section.md
index 755b6e6ad1ea4..295397f476b04 100644
--- a/doc/packages/weechat.section.md
+++ b/doc/packages/weechat.section.md
@@ -3,9 +3,9 @@
 WeeChat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration, such as:
 
 ```nix
-weechat.override {configure = {availablePlugins, ...}: {
+weechat.override {configure = ({availablePlugins, ...}: {
     plugins = with availablePlugins; [ python perl ];
-  }
+  });
 }
 ```
 
@@ -59,7 +59,7 @@ weechat.override {
     ];
     init = ''
       /set plugins.var.python.jabber.key "val"
-    '':
+    '';
   };
 }
 ```
diff --git a/doc/stdenv/cross-compilation.chapter.md b/doc/stdenv/cross-compilation.chapter.md
index e659e1803807a..76c931ba047ae 100644
--- a/doc/stdenv/cross-compilation.chapter.md
+++ b/doc/stdenv/cross-compilation.chapter.md
@@ -15,7 +15,9 @@ Nixpkgs follows the [conventions of GNU autoconf](https://gcc.gnu.org/onlinedocs
 In Nixpkgs, these three platforms are defined as attribute sets under the names `buildPlatform`, `hostPlatform`, and `targetPlatform`. They are always defined as attributes in the standard environment. That means one can access them like:
 
 ```nix
-{ stdenv, fooDep, barDep, ... }: ...stdenv.buildPlatform...
+{ stdenv, fooDep, barDep, ... }: {
+  # ...stdenv.buildPlatform...
+}
 ```
 
 `buildPlatform`
@@ -127,7 +129,9 @@ Some frequently encountered problems when packaging for cross-compilation should
 Many packages assume that an unprefixed binutils (`cc`/`ar`/`ld` etc.) is available, but Nix doesn't provide one. It only provides a prefixed one, just as it only does for all the other binutils programs. It may be necessary to patch the package to fix the build system to use a prefix. For instance, instead of `cc`, use `${stdenv.cc.targetPrefix}cc`.
 
 ```nix
-makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+{
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+}
 ```
 
 #### How do I avoid compiling a GCC cross-compiler from source? {#cross-qa-avoid-compiling-gcc-cross-compiler}
@@ -142,7 +146,9 @@ $ nix-build '<nixpkgs>' -A pkgsCross.raspberryPi.hello
 Add the following to your `mkDerivation` invocation.
 
 ```nix
-depsBuildBuild = [ buildPackages.stdenv.cc ];
+{
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+}
 ```
 
 #### My package’s testsuite needs to run host platform code. {#cross-testsuite-runs-host-code}
@@ -150,7 +156,9 @@ depsBuildBuild = [ buildPackages.stdenv.cc ];
 Add the following to your `mkDerivation` invocation.
 
 ```nix
-doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+{
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+}
 ```
 
 #### Package using Meson needs to run binaries for the host platform during build. {#cross-meson-runs-host-code}
@@ -159,12 +167,14 @@ Add `mesonEmulatorHook` to `nativeBuildInputs` conditionally on if the target bi
 
 e.g.
 
-```
-nativeBuildInputs = [
-  meson
-] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
-  mesonEmulatorHook
-];
+```nix
+{
+  nativeBuildInputs = [
+    meson
+  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    mesonEmulatorHook
+  ];
+}
 ```
 
 Example of an error which this fixes.
diff --git a/doc/stdenv/meta.chapter.md b/doc/stdenv/meta.chapter.md
index 4a3b04b8f6e41..7f57eda791ea0 100644
--- a/doc/stdenv/meta.chapter.md
+++ b/doc/stdenv/meta.chapter.md
@@ -3,17 +3,19 @@
 Nix packages can declare *meta-attributes* that contain information about a package such as a description, its homepage, its license, and so on. For instance, the GNU Hello package has a `meta` declaration like this:
 
 ```nix
-meta = {
-  description = "A program that produces a familiar, friendly greeting";
-  longDescription = ''
-    GNU Hello is a program that prints "Hello, world!" when you run it.
-    It is fully customizable.
-  '';
-  homepage = "https://www.gnu.org/software/hello/manual/";
-  license = lib.licenses.gpl3Plus;
-  maintainers = with lib.maintainers; [ eelco ];
-  platforms = lib.platforms.all;
-};
+{
+  meta = {
+    description = "A program that produces a familiar, friendly greeting";
+    longDescription = ''
+      GNU Hello is a program that prints "Hello, world!" when you run it.
+      It is fully customizable.
+    '';
+    homepage = "https://www.gnu.org/software/hello/manual/";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ eelco ];
+    platforms = lib.platforms.all;
+  };
+}
 ```
 
 Meta-attributes are not passed to the builder of the package. Thus, a change to a meta-attribute doesn’t trigger a recompilation of the package.
@@ -82,7 +84,9 @@ The *priority* of the package, used by `nix-env` to resolve file name conflicts
 The list of Nix platform types on which the package is supported. Hydra builds packages according to the platform specified. If no platform is specified, the package does not have prebuilt binaries. An example is:
 
 ```nix
-meta.platforms = lib.platforms.linux;
+{
+  meta.platforms = lib.platforms.linux;
+}
 ```
 
 Attribute Set `lib.platforms` defines [various common lists](https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix) of platforms types.
@@ -95,8 +99,10 @@ In general it is preferable to set `meta.platforms = lib.platforms.all` and then
 For example, a package which requires dynamic linking and cannot be linked statically could use this:
 
 ```nix
-meta.platforms = lib.platforms.all;
-meta.badPlatforms = [ lib.systems.inspect.patterns.isStatic ];
+{
+  meta.platforms = lib.platforms.all;
+  meta.badPlatforms = [ lib.systems.inspect.patterns.isStatic ];
+}
 ```
 
 The [`lib.meta.availableOn`](https://github.com/NixOS/nixpkgs/blob/b03ac42b0734da3e7be9bf8d94433a5195734b19/lib/meta.nix#L95-L106) function can be used to test whether or not a package is available (i.e. buildable) on a given platform.
@@ -136,7 +142,7 @@ For more on how to write and run package tests, see [](#sec-package-tests).
 The NixOS tests are available as `nixosTests` in parameters of derivations. For instance, the OpenSMTPD derivation includes lines similar to:
 
 ```nix
-{ /* ... */, nixosTests }:
+{ /* ... , */ nixosTests }:
 {
   # ...
   passthru.tests = {
@@ -194,8 +200,10 @@ To be effective, it must be presented directly to an evaluation process that han
 The list of Nix platform types for which the [Hydra](https://github.com/nixos/hydra) [instance at `hydra.nixos.org`](https://nixos.org/hydra) will build the package. (Hydra is the Nix-based continuous build system.) It defaults to the value of `meta.platforms`. Thus, the only reason to set `meta.hydraPlatforms` is if you want `hydra.nixos.org` to build the package on a subset of `meta.platforms`, or not at all, e.g.
 
 ```nix
-meta.platforms = lib.platforms.linux;
-meta.hydraPlatforms = [];
+{
+  meta.platforms = lib.platforms.linux;
+  meta.hydraPlatforms = [];
+}
 ```
 
 ### `broken` {#var-meta-broken}
@@ -209,13 +217,17 @@ This means that `broken` can be used to express constraints, for example:
 - Does not cross compile
 
   ```nix
-   meta.broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)
+  {
+    meta.broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform);
+  }
   ```
 
 - Broken if all of a certain set of its dependencies are broken
 
   ```nix
-  meta.broken = lib.all (map (p: p.meta.broken) [ glibc musl ])
+  {
+    meta.broken = lib.all (map (p: p.meta.broken) [ glibc musl ]);
+  }
   ```
 
 This makes `broken` strictly more powerful than `meta.badPlatforms`.
diff --git a/doc/stdenv/multiple-output.chapter.md b/doc/stdenv/multiple-output.chapter.md
index 1ee063c0c2f49..5e86d2aa3d56c 100644
--- a/doc/stdenv/multiple-output.chapter.md
+++ b/doc/stdenv/multiple-output.chapter.md
@@ -30,7 +30,9 @@ Here you find how to write a derivation that produces multiple outputs.
 In nixpkgs there is a framework supporting multiple-output derivations. It tries to cover most cases by default behavior. You can find the source separated in `<nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh>`; it’s relatively well-readable. The whole machinery is triggered by defining the `outputs` attribute to contain the list of desired output names (strings).
 
 ```nix
-outputs = [ "bin" "dev" "out" "doc" ];
+{
+  outputs = [ "bin" "dev" "out" "doc" ];
+}
 ```
 
 Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. Typically you also want to have the main `out` output, as it catches any files that didn’t get elsewhere.
diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md
index a948c6757c4a0..a1e27b7bdf7f4 100644
--- a/doc/stdenv/stdenv.chapter.md
+++ b/doc/stdenv/stdenv.chapter.md
@@ -36,7 +36,7 @@ Many packages have dependencies that are not provided in the standard environmen
 stdenv.mkDerivation {
   pname = "libfoo";
   version = "1.2.3";
-  ...
+  # ...
   buildInputs = [libbar perl ncurses];
 }
 ```
@@ -49,7 +49,7 @@ Often it is necessary to override or modify some aspect of the build. To make th
 stdenv.mkDerivation {
   pname = "fnord";
   version = "4.5";
-  ...
+  # ...
   buildPhase = ''
     gcc foo.c -o foo
   '';
@@ -70,7 +70,7 @@ While the standard environment provides a generic builder, you can still supply
 stdenv.mkDerivation {
   pname = "libfoo";
   version = "1.2.3";
-  ...
+  # ...
   builder = ./builder.sh;
 }
 ```
@@ -449,11 +449,13 @@ Unless set to `false`, some build systems with good support for parallel buildin
 This is an attribute set which can be filled with arbitrary values. For example:
 
 ```nix
-passthru = {
-  foo = "bar";
-  baz = {
-    value1 = 4;
-    value2 = 5;
+{
+  passthru = {
+    foo = "bar";
+    baz = {
+      value1 = 4;
+      value2 = 5;
+    };
   };
 }
 ```
@@ -467,27 +469,33 @@ A script to be run by `maintainers/scripts/update.nix` when the package is match
 - []{#var-passthru-updateScript-command} an executable file, either on the file system:
 
   ```nix
-  passthru.updateScript = ./update.sh;
+  {
+    passthru.updateScript = ./update.sh;
+  }
   ```
 
   or inside the expression itself:
 
   ```nix
-  passthru.updateScript = writeScript "update-zoom-us" ''
-    #!/usr/bin/env nix-shell
-    #!nix-shell -i bash -p curl pcre2 common-updater-scripts
+  {
+    passthru.updateScript = writeScript "update-zoom-us" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl pcre2 common-updater-scripts
 
-    set -eu -o pipefail
+      set -eu -o pipefail
 
-    version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcre2grep -o1 '/(([0-9]\.?)+)/')"
-    update-source-version zoom-us "$version"
-  '';
+      version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcre2grep -o1 '/(([0-9]\.?)+)/')"
+      update-source-version zoom-us "$version"
+    '';
+  }
   ```
 
 - a list, a script followed by arguments to be passed to it:
 
   ```nix
-  passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
+  {
+    passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
+  }
   ```
 
 - an attribute set containing:
@@ -496,18 +504,22 @@ A script to be run by `maintainers/scripts/update.nix` when the package is match
   - [`supportedFeatures`]{#var-passthru-updateScript-set-supportedFeatures} (optional) – a list of the [extra features](#var-passthru-updateScript-supported-features) the script supports.
 
   ```nix
-  passthru.updateScript = {
-    command = [ ../../update.sh pname ];
-    attrPath = pname;
-    supportedFeatures = [ … ];
-  };
+  {
+    passthru.updateScript = {
+      command = [ ../../update.sh pname ];
+      attrPath = pname;
+      supportedFeatures = [ /* ... */ ];
+    };
+  }
   ```
 
 ::: {.tip}
 A common pattern is to use the [`nix-update-script`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/nix-update.nix) attribute provided in Nixpkgs, which runs [`nix-update`](https://github.com/Mic92/nix-update):
 
 ```nix
-passthru.updateScript = nix-update-script { };
+{
+  passthru.updateScript = nix-update-script { };
+}
 ```
 
 For simple packages, this is often enough, and will ensure that the package is updated automatically by [`nixpkgs-update`](https://ryantm.github.io/nixpkgs-update) when a new version is released. The [update bot](https://nix-community.org/update-bot) runs periodically to attempt to automatically update packages, and will run `passthru.updateScript` if set. While not strictly necessary if the project is listed on [Repology](https://repology.org), using `nix-update-script` allows the package to update via many more sources (e.g. GitHub releases).
@@ -846,7 +858,9 @@ The file name of the Makefile.
 A list of strings passed as additional flags to `make`. These flags are also used by the default install and check phase. For setting make flags specific to the build phase, use `buildFlags` (see below).
 
 ```nix
-makeFlags = [ "PREFIX=$(out)" ];
+{
+  makeFlags = [ "PREFIX=$(out)" ];
+}
 ```
 
 ::: {.note}
@@ -858,9 +872,11 @@ The flags are quoted in bash, but environment variables can be specified by usin
 A shell array containing additional arguments passed to `make`. You must use this instead of `makeFlags` if the arguments contain spaces, e.g.
 
 ```nix
-preBuild = ''
-  makeFlagsArray+=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
-'';
+{
+  preBuild = ''
+    makeFlagsArray+=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
+  '';
+}
 ```
 
 Note that shell arrays cannot be passed through environment variables, so you cannot set `makeFlagsArray` in a derivation attribute (because those are passed through environment variables): you have to define them in shell code.
@@ -892,7 +908,9 @@ The check phase checks whether the package was built correctly by running its te
 Controls whether the check phase is executed. By default it is skipped, but if `doCheck` is set to true, the check phase is usually executed. Thus you should set
 
 ```nix
-doCheck = true;
+{
+  doCheck = true;
+}
 ```
 
 in the derivation to enable checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how `doCheck` is set, as the newly-built program won’t run on the platform used to build it.
@@ -945,7 +963,9 @@ See the [build phase](#var-stdenv-makeFlags) for details.
 The make targets that perform the installation. Defaults to `install`. Example:
 
 ```nix
-installTargets = "install-bin install-doc";
+{
+  installTargets = "install-bin install-doc";
+}
 ```
 
 ##### `installFlags` / `installFlagsArray` {#var-stdenv-installFlags}
@@ -1024,7 +1044,7 @@ This example prevents all `*.rlib` files from being stripped:
 ```nix
 stdenv.mkDerivation {
   # ...
-  stripExclude = [ "*.rlib" ]
+  stripExclude = [ "*.rlib" ];
 }
 ```
 
@@ -1033,7 +1053,7 @@ This example prevents files within certain paths from being stripped:
 ```nix
 stdenv.mkDerivation {
   # ...
-  stripExclude = [ "lib/modules/*/build/* ]
+  stripExclude = [ "lib/modules/*/build/*" ];
 }
 ```
 
@@ -1134,7 +1154,9 @@ It is often better to add tests that are not part of the source distribution to
 Controls whether the installCheck phase is executed. By default it is skipped, but if `doInstallCheck` is set to true, the installCheck phase is usually executed. Thus you should set
 
 ```nix
-doInstallCheck = true;
+{
+  doInstallCheck = true;
+}
 ```
 
 in the derivation to enable install checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how `doInstallCheck` is set, as the newly-built program won’t run on the platform used to build it.
@@ -1244,9 +1266,11 @@ To use this, add `removeReferencesTo` to `nativeBuildInputs`.
 As `remove-references-to` is an actual executable and not a shell function, it can be used with `find`.
 Example removing all references to the compiler in the output:
 ```nix
-postInstall = ''
-  find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
-'';
+{
+  postInstall = ''
+    find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
+  '';
+}
 ```
 
 ### `substitute` \<infile\> \<outfile\> \<subs\> {#fun-substitute}
diff --git a/doc/using/configuration.chapter.md b/doc/using/configuration.chapter.md
index 8d246b117b05f..252d255de829d 100644
--- a/doc/using/configuration.chapter.md
+++ b/doc/using/configuration.chapter.md
@@ -176,7 +176,7 @@ You can define a function called `packageOverrides` in your local `~/.config/nix
 ```nix
 {
   packageOverrides = pkgs: rec {
-    foo = pkgs.foo.override { ... };
+    foo = pkgs.foo.override { /* ... */ };
   };
 }
 ```
diff --git a/doc/using/overlays.chapter.md b/doc/using/overlays.chapter.md
index 1bec6586f28e1..46200730f0b2a 100644
--- a/doc/using/overlays.chapter.md
+++ b/doc/using/overlays.chapter.md
@@ -141,7 +141,7 @@ For BLAS/LAPACK switching to work correctly, all packages must depend on `blas`
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation {
-  ...
+  # ...
 }
 ```
 
diff --git a/doc/using/overrides.chapter.md b/doc/using/overrides.chapter.md
index a1ef9afb0b69d..8c6ed79076c23 100644
--- a/doc/using/overrides.chapter.md
+++ b/doc/using/overrides.chapter.md
@@ -13,13 +13,13 @@ It is used to override the arguments passed to a function.
 Example usages:
 
 ```nix
-pkgs.foo.override { arg1 = val1; arg2 = val2; ... }
+pkgs.foo.override { arg1 = val1; arg2 = val2; /* ... */ }
 ```
 
 It's also possible to access the previous arguments.
 
 ```nix
-pkgs.foo.override (previous: { arg1 = previous.arg1; ... })
+pkgs.foo.override (previous: { arg1 = previous.arg1; /* ... */ })
 ```
 
 <!-- TODO: move below programlisting to a new section about extending and overlays and reference it -->
@@ -27,13 +27,15 @@ pkgs.foo.override (previous: { arg1 = previous.arg1; ... })
 ```nix
 import pkgs.path { overlays = [ (self: super: {
   foo = super.foo.override { barSupport = true ; };
-  })]};
+  })];}
 ```
 
 ```nix
-mypkg = pkgs.callPackage ./mypkg.nix {
-  mydep = pkgs.mydep.override { ... };
-  }
+{
+  mypkg = pkgs.callPackage ./mypkg.nix {
+    mydep = pkgs.mydep.override { /* ... */ };
+  };
+}
 ```
 
 In the first example, `pkgs.foo` is the result of a function call with some default arguments, usually a derivation. Using `pkgs.foo.override` will call the same function with the given new arguments.
@@ -45,9 +47,11 @@ The function `overrideAttrs` allows overriding the attribute set passed to a `st
 Example usages:
 
 ```nix
-helloBar = pkgs.hello.overrideAttrs (finalAttrs: previousAttrs: {
-  pname = previousAttrs.pname + "-bar";
-});
+{
+  helloBar = pkgs.hello.overrideAttrs (finalAttrs: previousAttrs: {
+    pname = previousAttrs.pname + "-bar";
+  });
+}
 ```
 
 In the above example, "-bar" is appended to the pname attribute, while all other attributes will be retained from the original `hello` package.
@@ -61,9 +65,11 @@ If only a one-argument function is written, the argument has the meaning of `pre
 Function arguments can be omitted entirely if there is no need to access `previousAttrs` or `finalAttrs`.
 
 ```nix
-helloWithDebug = pkgs.hello.overrideAttrs {
-  separateDebugInfo = true;
-};
+{
+  helloWithDebug = pkgs.hello.overrideAttrs {
+    separateDebugInfo = true;
+  };
+}
 ```
 
 In the above example, the `separateDebugInfo` attribute is overridden to be true, thus building debug info for `helloWithDebug`.
@@ -87,14 +93,16 @@ The function `overrideDerivation` creates a new derivation based on an existing
 Example usage:
 
 ```nix
-mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
-  name = "sed-4.2.2-pre";
-  src = fetchurl {
-    url = "ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2";
-    hash = "sha256-MxBJRcM2rYzQYwJ5XKxhXTQByvSg5jZc5cSHEZoB2IY=";
-  };
-  patches = [];
-});
+{
+  mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
+    name = "sed-4.2.2-pre";
+    src = fetchurl {
+      url = "ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2";
+      hash = "sha256-MxBJRcM2rYzQYwJ5XKxhXTQByvSg5jZc5cSHEZoB2IY=";
+    };
+    patches = [];
+  });
+}
 ```
 
 In the above example, the `name`, `src`, and `patches` of the derivation will be overridden, while all other attributes will be retained from the original derivation.
@@ -112,8 +120,10 @@ The function `lib.makeOverridable` is used to make the result of a function easi
 Example usage:
 
 ```nix
-f = { a, b }: { result = a+b; };
-c = lib.makeOverridable f { a = 1; b = 2; };
+{
+  f = { a, b }: { result = a+b; };
+  c = lib.makeOverridable f { a = 1; b = 2; };
+}
 ```
 
 The variable `c` is the value of the `f` function applied with some default arguments. Hence the value of `c.result` is `3`, in this example.
diff --git a/maintainers/README.md b/maintainers/README.md
index f121ec7564135..848cb9fed9b50 100644
--- a/maintainers/README.md
+++ b/maintainers/README.md
@@ -87,8 +87,8 @@ checks should be performed:
       keys = [{
         fingerprint = "0000 0000 2A70 6423 0AED  3C11 F04F 7A19 AAA6 3AFE";
       }];
-    }
-  };
+    };
+  }
   ```
 
   First receive their key from a keyserver:
@@ -133,8 +133,8 @@ checks should be performed:
       name = "Example User";
       github = "ghost";
       githubId = 10137;
-    }
-  };
+    };
+  }
   ```
 
   First, make sure that the listed GitHub handle matches the author of
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index f038cd609f623..27281e9eef15f 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -2544,6 +2544,12 @@
     githubId = 34919100;
     name = "Brendan Hall";
   };
+  bhankas = {
+    email = "payas@relekar.org";
+    github = "bhankas";
+    githubId = 24254289;
+    name = "Payas Relekar";
+  };
   bhipple = {
     email = "bhipple@protonmail.com";
     github = "bhipple";
@@ -4832,6 +4838,12 @@
     github = "dfithian";
     githubId = 8409320;
   };
+  dflores = {
+    email = "dflores.country455@passinbox.com";
+    name = "David Flores";
+    github = "dflores1";
+    githubId = 8538265;
+  };
   dfordivam = {
     email = "dfordivam+nixpkgs@gmail.com";
     github = "dfordivam";
@@ -6801,6 +6813,15 @@
     githubId = 21362942;
     name = "Fugi";
   };
+  funkeleinhorn = {
+    email = "git@funkeleinhorn.com";
+    github = "funkeleinhorn";
+    githubId = 103313934;
+    name = "Funkeleinhorn";
+    keys = [{
+      fingerprint = "689D 1C81 DA0D 1EB2 F029  D24E C7BE A25A 0A33 5A72";
+    }];
+  };
   fusion809 = {
     email = "brentonhorne77@gmail.com";
     github = "fusion809";
@@ -7465,6 +7486,13 @@
     githubId = 201997;
     name = "Eric Seidel";
   };
+  grimmauld = {
+    name = "Sören Bender";
+    email = "soeren@benjos.de";
+    github = "LordGrimmauld";
+    githubId = 49513131;
+    matrix = "@grimmauld:grimmauld.de";
+  };
   grindhold = {
     name = "grindhold";
     email = "grindhold+nix@skarphed.org";
@@ -7619,6 +7647,12 @@
     githubId = 22756350;
     name = "Emile Hansmaennel";
   };
+  HannahMR = {
+    name = "Hannah Rosenberg";
+    email = "hannah@velascommerce.com";
+    github = "HannahMR";
+    githubId = 9088467;
+  };
   hansjoergschurr = {
     email = "commits@schurr.at";
     github = "hansjoergschurr";
@@ -8678,6 +8712,12 @@
     github = "j4m3s-s";
     githubId = 9413812;
   };
+  jab = {
+    name = "Joshua Bronson";
+    email = "jabronson@gmail.com";
+    github = "jab";
+    githubId = 64992;
+  };
   jacbart = {
     name = "Jack Bartlett";
     email = "jacbart@gmail.com";
@@ -10073,6 +10113,11 @@
     githubId = 15855440;
     name = "Keanu Ashwell";
   };
+  katanallama = {
+    github = "katanallama";
+    githubId = 70604257;
+    name = "katanallama";
+  };
   katexochen = {
     github = "katexochen";
     githubId = 49727155;
@@ -10839,6 +10884,12 @@
     githubId = 695526;
     name = "Benjamin Kober";
   };
+  lampros = {
+    email = "hauahx@gmail.com";
+    github = "LamprosPitsillos";
+    githubId = 61395246;
+    name = "Lampros Pitsillos";
+  };
   larsr = {
     email = "Lars.Rasmusson@gmail.com";
     github = "larsr";
@@ -11197,6 +11248,12 @@
       fingerprint = "92D8 A09D 03DD B774 AABD 53B9 E136 2F07 D750 DB5C";
     }];
   };
+  lilacious = {
+    email = "yuchenhe126@gmail.com";
+    github = "Lilacious";
+    githubId = 101508537;
+    name = "Yuchen He";
+  };
   lillycham = {
     email = "lillycat332@gmail.com";
     github = "lillycat332";
@@ -11515,6 +11572,15 @@
     githubId = 3717454;
     name = "Lucas Bergman";
   };
+  lucas-deangelis = {
+    email = "deangelis.lucas@outlook.com";
+    github = "lucas-deangelis";
+    githubId = 55180995;
+    name = "Lucas De Angelis";
+    keys = [{
+      fingerprint = "3C8B D3AD 93BB 1F36 B8FF  30BD 8627 E5ED F74B 5BF4";
+    }];
+  };
   lucasew = {
     email = "lucas59356@gmail.com";
     github = "lucasew";
@@ -12513,6 +12579,12 @@
       fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94";
     }];
   };
+  mdorman = {
+    email = "mdorman@jaunder.io";
+    github = "mdorman";
+    githubId = 333344;
+    name = "Michael Alan Dorman";
+  };
   mdr = {
     email = "MattRussellUK@gmail.com";
     github = "mdr";
@@ -13633,6 +13705,14 @@
       fingerprint = "9E6A 25F2 C1F2 9D76 ED00  1932 1261 173A 01E1 0298";
     }];
   };
+  n8henrie = {
+    name = "Nathan Henrie";
+    github = "n8henrie";
+    githubId = 1234956;
+    "keys" = [{
+      "fingerprint" = "F21A 6194 C9DB 9899 CD09 E24E 434B 2C14 B8C3 3422";
+    }];
+  };
   nadir-ishiguro = {
     github = "nadir-ishiguro";
     githubId = 23151917;
@@ -15053,12 +15133,6 @@
     githubId = 116740;
     name = "Paweł Pacana";
   };
-  payas = {
-    email = "relekarpayas@gmail.com";
-    github = "bhankas";
-    githubId = 24254289;
-    name = "Payas Relekar";
-  };
   pb- = {
     email = "pbaecher@gmail.com";
     github = "pb-";
@@ -16109,6 +16183,12 @@
     githubId = 39039420;
     name = "Quinn Dougherty";
   };
+  qusic = {
+    email = "qusicx@gmail.com";
+    github = "Qusic";
+    githubId = 2141853;
+    name = "Bang Lee";
+  };
   qyliss = {
     email = "hi@alyssa.is";
     github = "alyssais";
@@ -16982,6 +17062,12 @@
     github = "rski";
     githubId = 2960312;
   };
+  rsniezek = {
+    email = "radoslaw.sniezek@protonmail.com";
+    github = "rsniezek";
+    githubId = 19433256;
+    name = "Radoslaw Sniezek";
+  };
   rsynnest = {
     email = "contact@rsynnest.com";
     github = "rsynnest";
@@ -17365,6 +17451,12 @@
     githubId = 92817635;
     name = "Sanskar Gurdasani";
   };
+  sarahec = {
+    email = "sarahec@nextquestion.net";
+    github = "sarahec";
+    githubId = 11277967;
+    name = "Sarah Clark";
+  };
   sarcasticadmin = {
     email = "rob@sarcasticadmin.com";
     github = "sarcasticadmin";
@@ -18035,6 +18127,16 @@
     github = "silky";
     githubId = 129525;
   };
+  sils = {
+      name = "Silas Schöffel";
+      email = "sils@sils.li";
+      matrix = "@sils:vhack.eu";
+      github = "s1ls";
+      githubId = 91412114;
+      keys = [{
+        fingerprint = "C1DA A551 B422 7A6F 3FD9  6B3A 467B 7D12 9EA7 3AC9";
+      }];
+    };
   Silver-Golden = {
     name = "Brendan Golden";
     email = "github+nixpkgs@brendan.ie";
@@ -18526,6 +18628,12 @@
       fingerprint = "652F FAAD 5CB8 AF1D 3F96  9521 929E D6C4 0414 D3F5";
     }];
   };
+  spk = {
+    email = "laurent@spkdev.net";
+    github = "spk";
+    githubId = 98590;
+    name = "Laurent Arnoud";
+  };
   spoonbaker = {
     github = "Spoonbaker";
     githubId = 47164123;
@@ -18631,6 +18739,12 @@
     githubId = 6362238;
     name = "Christoph Honal";
   };
+  starkca90 = {
+    email = "starkca90@gmail.com";
+    github = "starkca90";
+    githubId = 2060836;
+    name = "Casey Stark";
+  };
   starsep = {
     email = "nix@starsep.com";
     github = "starsep";
@@ -21202,6 +21316,15 @@
     githubId = 8378365;
     name = "P. R. d. O.";
   };
+  wolfgangwalther = {
+    name = "Wolfgang Walther";
+    email = "walther@technowledgy.de";
+    github = "wolfgangwalther";
+    githubId = 9132420;
+    keys = [{
+      fingerprint = "F943 A0BC 720C 5BEF 73CD E02D B398 93FA 5F65 CAE1";
+    }];
+  };
   womfoo = {
     email = "kranium@gikos.net";
     github = "womfoo";
diff --git a/maintainers/scripts/haskell/hydra-report.hs b/maintainers/scripts/haskell/hydra-report.hs
index e911830e8b3e2..debf684abf509 100755
--- a/maintainers/scripts/haskell/hydra-report.hs
+++ b/maintainers/scripts/haskell/hydra-report.hs
@@ -78,6 +78,7 @@ import Network.HTTP.Req (
  )
 import System.Directory (XdgDirectory (XdgCache), getXdgDirectory)
 import System.Environment (getArgs)
+import System.Exit (die)
 import System.Process (readProcess)
 import Prelude hiding (id)
 import Data.List (sortOn)
@@ -155,17 +156,20 @@ data Build = Build
 data HydraSlownessWorkaroundFlag = HydraSlownessWorkaround | NoHydraSlownessWorkaround
 data RequestLogsFlag = RequestLogs | NoRequestLogs
 
+usage :: IO a
+usage = die "Usage: get-report [--slow] [EVAL-ID] | ping-maintainers | mark-broken-list [--no-request-logs] | eval-info"
+
 main :: IO ()
 main = do
    args <- getArgs
    case args of
-      ["get-report", "--slow"] -> getBuildReports HydraSlownessWorkaround
-      ["get-report"] -> getBuildReports NoHydraSlownessWorkaround
+      "get-report":"--slow":id -> getBuildReports HydraSlownessWorkaround id
+      "get-report":id -> getBuildReports NoHydraSlownessWorkaround id
       ["ping-maintainers"] -> printMaintainerPing
       ["mark-broken-list", "--no-request-logs"] -> printMarkBrokenList NoRequestLogs
       ["mark-broken-list"] -> printMarkBrokenList RequestLogs
       ["eval-info"] -> printEvalInfo
-      _ -> putStrLn "Usage: get-report [--slow] | ping-maintainers | mark-broken-list [--no-request-logs] | eval-info"
+      _ -> usage
 
 reportFileName :: IO FilePath
 reportFileName = getXdgDirectory XdgCache "haskell-updates-build-report.json"
@@ -173,23 +177,26 @@ reportFileName = getXdgDirectory XdgCache "haskell-updates-build-report.json"
 showT :: Show a => a -> Text
 showT = Text.pack . show
 
-getBuildReports :: HydraSlownessWorkaroundFlag -> IO ()
-getBuildReports opt = runReq defaultHttpConfig do
-   evalMay <- Seq.lookup 0 . evals <$> hydraJSONQuery mempty ["jobset", "nixpkgs", "haskell-updates", "evals"]
-   eval@Eval{id} <- maybe (liftIO $ fail "No Evaluation found") pure evalMay
+getBuildReports :: HydraSlownessWorkaroundFlag -> [String] -> IO ()
+getBuildReports opt args = runReq defaultHttpConfig do
+   eval@Eval{id} <- case args of
+      [id] -> hydraJSONQuery mempty ["eval", Text.pack id]
+      [] -> do
+         evalMay <- Seq.lookup 0 . evals <$> hydraJSONQuery mempty ["jobset", "nixpkgs", "haskell-updates", "evals"]
+         maybe (liftIO $ fail "No Evaluation found") pure evalMay
+      _ -> liftIO usage
    liftIO . putStrLn $ "Fetching evaluation " <> show id <> " from Hydra. This might take a few minutes..."
-   buildReports <- getEvalBuilds opt id
+   buildReports <- getEvalBuilds opt eval
    liftIO do
       fileName <- reportFileName
       putStrLn $ "Finished fetching all builds from Hydra, saving report as " <> fileName
       now <- getCurrentTime
       encodeFile fileName (eval, now, buildReports)
 
-getEvalBuilds :: HydraSlownessWorkaroundFlag -> Int -> Req (Seq Build)
-getEvalBuilds NoHydraSlownessWorkaround id =
+getEvalBuilds :: HydraSlownessWorkaroundFlag -> Eval -> Req (Seq Build)
+getEvalBuilds NoHydraSlownessWorkaround Eval{id} =
   hydraJSONQuery mempty ["eval", showT id, "builds"]
-getEvalBuilds HydraSlownessWorkaround id = do
-  Eval{builds} <- hydraJSONQuery mempty [ "eval", showT id ]
+getEvalBuilds HydraSlownessWorkaround Eval{builds} = do
   forM builds $ \buildId -> do
     liftIO $ putStrLn $ "Querying build " <> show buildId
     hydraJSONQuery mempty [ "build", showT buildId ]
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 0f481ed3eb9dd..60c5c7dadf55a 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -559,7 +559,7 @@ with lib.maintainers; {
       ericson2314
       lovek323
       qyliss
-      raitobezarius
+      RossComputerGuy
       rrbutani
       sternenseemann
     ];
diff --git a/nixos/doc/manual/administration/cleaning-store.chapter.md b/nixos/doc/manual/administration/cleaning-store.chapter.md
index c9140d0869c77..4f404882055a0 100644
--- a/nixos/doc/manual/administration/cleaning-store.chapter.md
+++ b/nixos/doc/manual/administration/cleaning-store.chapter.md
@@ -21,8 +21,10 @@ You can tell NixOS in `configuration.nix` to run this unit automatically
 at certain points in time, for instance, every night at 03:15:
 
 ```nix
-nix.gc.automatic = true;
-nix.gc.dates = "03:15";
+{
+  nix.gc.automatic = true;
+  nix.gc.dates = "03:15";
+}
 ```
 
 The commands above do not remove garbage collector roots, such as old
diff --git a/nixos/doc/manual/administration/container-networking.section.md b/nixos/doc/manual/administration/container-networking.section.md
index 0873768376cc9..723cf211d8720 100644
--- a/nixos/doc/manual/administration/container-networking.section.md
+++ b/nixos/doc/manual/administration/container-networking.section.md
@@ -26,9 +26,11 @@ host to rewrite container traffic to use your external IP address. This
 can be accomplished using the following configuration on the host:
 
 ```nix
-networking.nat.enable = true;
-networking.nat.internalInterfaces = ["ve-+"];
-networking.nat.externalInterface = "eth0";
+{
+  networking.nat.enable = true;
+  networking.nat.internalInterfaces = ["ve-+"];
+  networking.nat.externalInterface = "eth0";
+}
 ```
 
 where `eth0` should be replaced with the desired external interface.
@@ -38,7 +40,9 @@ If you are using Network Manager, you need to explicitly prevent it from
 managing container interfaces:
 
 ```nix
-networking.networkmanager.unmanaged = [ "interface-name:ve-*" ];
+{
+  networking.networkmanager.unmanaged = [ "interface-name:ve-*" ];
+}
 ```
 
 You may need to restart your system for the changes to take effect.
diff --git a/nixos/doc/manual/administration/control-groups.chapter.md b/nixos/doc/manual/administration/control-groups.chapter.md
index abe8dd80b5ab0..8682236ca1a92 100644
--- a/nixos/doc/manual/administration/control-groups.chapter.md
+++ b/nixos/doc/manual/administration/control-groups.chapter.md
@@ -39,7 +39,9 @@ they were in the same cgroup, then the PostgreSQL process would get
 `configuration.nix`:
 
 ```nix
-systemd.services.httpd.serviceConfig.CPUShares = 512;
+{
+  systemd.services.httpd.serviceConfig.CPUShares = 512;
+}
 ```
 
 By default, every cgroup has 1024 CPU shares, so this will halve the CPU
@@ -52,7 +54,9 @@ limits can be specified in `configuration.nix`; for instance, to limit
 `httpd.service` to 512 MiB of RAM (excluding swap):
 
 ```nix
-systemd.services.httpd.serviceConfig.MemoryLimit = "512M";
+{
+  systemd.services.httpd.serviceConfig.MemoryLimit = "512M";
+}
 ```
 
 The command `systemd-cgtop` shows a continuously updated list of all
diff --git a/nixos/doc/manual/administration/declarative-containers.section.md b/nixos/doc/manual/administration/declarative-containers.section.md
index eaa50d3c663d4..f16fa8332b51e 100644
--- a/nixos/doc/manual/administration/declarative-containers.section.md
+++ b/nixos/doc/manual/administration/declarative-containers.section.md
@@ -5,13 +5,15 @@ You can also specify containers and their configuration in the host's
 shall be a container named `database` running PostgreSQL:
 
 ```nix
-containers.database =
-  { config =
-      { config, pkgs, ... }:
-      { services.postgresql.enable = true;
-      services.postgresql.package = pkgs.postgresql_14;
-      };
-  };
+{
+  containers.database =
+    { config =
+        { config, pkgs, ... }:
+        { services.postgresql.enable = true;
+        services.postgresql.package = pkgs.postgresql_14;
+        };
+    };
+}
 ```
 
 If you run `nixos-rebuild switch`, the container will be built. If the
@@ -25,11 +27,13 @@ cannot change the network configuration. You can give a container its
 own network as follows:
 
 ```nix
-containers.database = {
-  privateNetwork = true;
-  hostAddress = "192.168.100.10";
-  localAddress = "192.168.100.11";
-};
+{
+  containers.database = {
+    privateNetwork = true;
+    hostAddress = "192.168.100.10";
+    localAddress = "192.168.100.11";
+  };
+}
 ```
 
 This gives the container a private virtual Ethernet interface with IP
diff --git a/nixos/doc/manual/administration/service-mgmt.chapter.md b/nixos/doc/manual/administration/service-mgmt.chapter.md
index bc9bdbe3708bc..49e8d801fb80f 100644
--- a/nixos/doc/manual/administration/service-mgmt.chapter.md
+++ b/nixos/doc/manual/administration/service-mgmt.chapter.md
@@ -82,7 +82,9 @@ In order to enable a systemd *system* service with provided upstream
 package, use (e.g):
 
 ```nix
-systemd.packages = [ pkgs.packagekit ];
+{
+  systemd.packages = [ pkgs.packagekit ];
+}
 ```
 
 Usually NixOS modules written by the community do the above, plus take
diff --git a/nixos/doc/manual/configuration/abstractions.section.md b/nixos/doc/manual/configuration/abstractions.section.md
index bf26e4c51ed37..5bc44aa722457 100644
--- a/nixos/doc/manual/configuration/abstractions.section.md
+++ b/nixos/doc/manual/configuration/abstractions.section.md
@@ -47,9 +47,9 @@ You can write a `let` wherever an expression is allowed. Thus, you also could ha
 ```nix
 {
   services.httpd.virtualHosts =
-    let commonConfig = ...; in
-    { "blog.example.org" = (commonConfig // { ... })
-      "wiki.example.org" = (commonConfig // { ... })
+    let commonConfig = { /* ... */ }; in
+    { "blog.example.org" = (commonConfig // { /* ... */ });
+      "wiki.example.org" = (commonConfig // { /* ... */ });
     };
 }
 ```
diff --git a/nixos/doc/manual/configuration/ad-hoc-network-config.section.md b/nixos/doc/manual/configuration/ad-hoc-network-config.section.md
index 4478d77f361d4..ecb06ad984a33 100644
--- a/nixos/doc/manual/configuration/ad-hoc-network-config.section.md
+++ b/nixos/doc/manual/configuration/ad-hoc-network-config.section.md
@@ -6,8 +6,10 @@ is useful for doing network configuration not covered by the existing NixOS
 modules. For instance, to statically configure an IPv6 address:
 
 ```nix
-networking.localCommands =
-  ''
-    ip -6 addr add 2001:610:685:1::1/64 dev eth0
-  '';
+{
+  networking.localCommands =
+    ''
+      ip -6 addr add 2001:610:685:1::1/64 dev eth0
+    '';
+}
 ```
diff --git a/nixos/doc/manual/configuration/adding-custom-packages.section.md b/nixos/doc/manual/configuration/adding-custom-packages.section.md
index 2340723e07c6b..f9a5221d6c930 100644
--- a/nixos/doc/manual/configuration/adding-custom-packages.section.md
+++ b/nixos/doc/manual/configuration/adding-custom-packages.section.md
@@ -23,7 +23,9 @@ Then you write and test the package as described in the Nixpkgs manual.
 Finally, you add it to [](#opt-environment.systemPackages), e.g.
 
 ```nix
-environment.systemPackages = [ pkgs.my-package ];
+{
+  environment.systemPackages = [ pkgs.my-package ];
+}
 ```
 
 and you run `nixos-rebuild`, specifying your own Nixpkgs tree:
@@ -38,24 +40,28 @@ tree. For instance, here is how you specify a build of the
 `configuration.nix`:
 
 ```nix
-environment.systemPackages =
-  let
-    my-hello = with pkgs; stdenv.mkDerivation rec {
-      name = "hello-2.8";
-      src = fetchurl {
-        url = "mirror://gnu/hello/${name}.tar.gz";
-        hash = "sha256-5rd/gffPfa761Kn1tl3myunD8TuM+66oy1O7XqVGDXM=";
+{
+  environment.systemPackages =
+    let
+      my-hello = with pkgs; stdenv.mkDerivation rec {
+        name = "hello-2.8";
+        src = fetchurl {
+          url = "mirror://gnu/hello/${name}.tar.gz";
+          hash = "sha256-5rd/gffPfa761Kn1tl3myunD8TuM+66oy1O7XqVGDXM=";
+        };
       };
-    };
-  in
-  [ my-hello ];
+    in
+    [ my-hello ];
+}
 ```
 
 Of course, you can also move the definition of `my-hello` into a
 separate Nix expression, e.g.
 
 ```nix
-environment.systemPackages = [ (import ./my-hello.nix) ];
+{
+  environment.systemPackages = [ (import ./my-hello.nix) ];
+}
 ```
 
 where `my-hello.nix` contains:
@@ -88,7 +94,9 @@ section](#module-services-flatpak). AppImages will not run "as-is" on NixOS.
 First you need to install `appimage-run`: add to `/etc/nixos/configuration.nix`
 
 ```nix
-environment.systemPackages = [ pkgs.appimage-run ];
+{
+  environment.systemPackages = [ pkgs.appimage-run ];
+}
 ```
 
 Then instead of running the AppImage "as-is", run `appimage-run foo.appimage`.
diff --git a/nixos/doc/manual/configuration/config-file.section.md b/nixos/doc/manual/configuration/config-file.section.md
index b010026c58286..e213aae29ae3d 100644
--- a/nixos/doc/manual/configuration/config-file.section.md
+++ b/nixos/doc/manual/configuration/config-file.section.md
@@ -5,7 +5,7 @@ The NixOS configuration file generally looks like this:
 ```nix
 { config, pkgs, ... }:
 
-{ option definitions
+{ /* option definitions */
 }
 ```
 
@@ -80,7 +80,9 @@ Strings
 :   Strings are enclosed in double quotes, e.g.
 
     ```nix
-    networking.hostName = "dexter";
+    {
+      networking.hostName = "dexter";
+    }
     ```
 
     Special characters can be escaped by prefixing them with a backslash
@@ -89,11 +91,13 @@ Strings
     Multi-line strings can be enclosed in *double single quotes*, e.g.
 
     ```nix
-    networking.extraHosts =
-      ''
-        127.0.0.2 other-localhost
-        10.0.0.1 server
-      '';
+    {
+      networking.extraHosts =
+        ''
+          127.0.0.2 other-localhost
+          10.0.0.1 server
+        '';
+    }
     ```
 
     The main difference is that it strips from each line a number of
@@ -108,8 +112,10 @@ Booleans
 :   These can be `true` or `false`, e.g.
 
     ```nix
-    networking.firewall.enable = true;
-    networking.firewall.allowPing = false;
+    {
+      networking.firewall.enable = true;
+      networking.firewall.allowPing = false;
+    }
     ```
 
 Integers
@@ -117,7 +123,9 @@ Integers
 :   For example,
 
     ```nix
-    boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60;
+    {
+      boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60;
+    }
     ```
 
     (Note that here the attribute name `net.ipv4.tcp_keepalive_time` is
@@ -132,11 +140,13 @@ Sets
     braces, as in the option definition
 
     ```nix
-    fileSystems."/boot" =
-      { device = "/dev/sda1";
-        fsType = "ext4";
-        options = [ "rw" "data=ordered" "relatime" ];
-      };
+    {
+      fileSystems."/boot" =
+        { device = "/dev/sda1";
+          fsType = "ext4";
+          options = [ "rw" "data=ordered" "relatime" ];
+        };
+    }
     ```
 
 Lists
@@ -145,13 +155,17 @@ Lists
     separated by whitespace, like this:
 
     ```nix
-    boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
+    {
+      boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
+    }
     ```
 
     List elements can be any other type, e.g. sets:
 
     ```nix
-    swapDevices = [ { device = "/dev/disk/by-label/swap"; } ];
+    {
+      swapDevices = [ { device = "/dev/disk/by-label/swap"; } ];
+    }
     ```
 
 Packages
@@ -161,12 +175,14 @@ Packages
     argument `pkgs`. Typical uses:
 
     ```nix
-    environment.systemPackages =
-      [ pkgs.thunderbird
-        pkgs.emacs
-      ];
-
-    services.postgresql.package = pkgs.postgresql_14;
+    {
+      environment.systemPackages =
+        [ pkgs.thunderbird
+          pkgs.emacs
+        ];
+
+      services.postgresql.package = pkgs.postgresql_14;
+    }
     ```
 
     The latter option definition changes the default PostgreSQL package
diff --git a/nixos/doc/manual/configuration/customizing-packages.section.md b/nixos/doc/manual/configuration/customizing-packages.section.md
index 76413b7d84fb8..a524ef266eaff 100644
--- a/nixos/doc/manual/configuration/customizing-packages.section.md
+++ b/nixos/doc/manual/configuration/customizing-packages.section.md
@@ -16,18 +16,20 @@ Examples include:
 
 You can use them like this:
 ```nix
-environment.systemPackages = with pkgs; [
-  sl
-  (pass.withExtensions (subpkgs: with subpkgs; [
-    pass-audit
-    pass-otp
-    pass-genphrase
-  ]))
-  (python3.withPackages (subpkgs: with subpkgs; [
-      requests
-  ]))
-  cowsay
-];
+{
+  environment.systemPackages = with pkgs; [
+    sl
+    (pass.withExtensions (subpkgs: with subpkgs; [
+      pass-audit
+      pass-otp
+      pass-genphrase
+    ]))
+    (python3.withPackages (subpkgs: with subpkgs; [
+        requests
+    ]))
+    cowsay
+  ];
+}
 ```
 :::
 
@@ -38,7 +40,9 @@ dependency on GTK 2. If you want to build it against GTK 3, you can
 specify that as follows:
 
 ```nix
-environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ];
+{
+  environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ];
+}
 ```
 
 The function `override` performs the call to the Nix function that
@@ -58,12 +62,14 @@ of the package, such as the source code. For instance, if you want to
 override the source code of Emacs, you can say:
 
 ```nix
-environment.systemPackages = [
-  (pkgs.emacs.overrideAttrs (oldAttrs: {
-    name = "emacs-25.0-pre";
-    src = /path/to/my/emacs/tree;
-  }))
-];
+{
+  environment.systemPackages = [
+    (pkgs.emacs.overrideAttrs (oldAttrs: {
+      name = "emacs-25.0-pre";
+      src = /path/to/my/emacs/tree;
+    }))
+  ];
+}
 ```
 
 Here, `overrideAttrs` takes the Nix derivation specified by `pkgs.emacs`
@@ -80,9 +86,11 @@ two instances of the package. If you want to have everything depend on
 your customised instance, you can apply a *global* override as follows:
 
 ```nix
-nixpkgs.config.packageOverrides = pkgs:
-  { emacs = pkgs.emacs.override { gtk = pkgs.gtk3; };
-  };
+{
+  nixpkgs.config.packageOverrides = pkgs:
+    { emacs = pkgs.emacs.override { gtk = pkgs.gtk3; };
+    };
+}
 ```
 
 The effect of this definition is essentially equivalent to modifying the
diff --git a/nixos/doc/manual/configuration/declarative-packages.section.md b/nixos/doc/manual/configuration/declarative-packages.section.md
index 480e250da8c73..6cdd520dcf150 100644
--- a/nixos/doc/manual/configuration/declarative-packages.section.md
+++ b/nixos/doc/manual/configuration/declarative-packages.section.md
@@ -7,7 +7,9 @@ following line to `configuration.nix` enables the Mozilla Thunderbird
 email application:
 
 ```nix
-environment.systemPackages = [ pkgs.thunderbird ];
+{
+  environment.systemPackages = [ pkgs.thunderbird ];
+}
 ```
 
 The effect of this specification is that the Thunderbird package from
diff --git a/nixos/doc/manual/configuration/file-systems.chapter.md b/nixos/doc/manual/configuration/file-systems.chapter.md
index 3dfdd20ac33ec..4bdd9c60e3278 100644
--- a/nixos/doc/manual/configuration/file-systems.chapter.md
+++ b/nixos/doc/manual/configuration/file-systems.chapter.md
@@ -6,10 +6,12 @@ Ext4 file system on device `/dev/disk/by-label/data` onto the mount
 point `/data`:
 
 ```nix
-fileSystems."/data" =
-  { device = "/dev/disk/by-label/data";
-    fsType = "ext4";
-  };
+{
+  fileSystems."/data" =
+    { device = "/dev/disk/by-label/data";
+      fsType = "ext4";
+    };
+}
 ```
 
 This will create an entry in `/etc/fstab`, which will generate a
diff --git a/nixos/doc/manual/configuration/firewall.section.md b/nixos/doc/manual/configuration/firewall.section.md
index dbf0ffb9273ee..9a71217944eee 100644
--- a/nixos/doc/manual/configuration/firewall.section.md
+++ b/nixos/doc/manual/configuration/firewall.section.md
@@ -5,14 +5,18 @@ and other unexpected packets. The firewall applies to both IPv4 and IPv6
 traffic. It is enabled by default. It can be disabled as follows:
 
 ```nix
-networking.firewall.enable = false;
+{
+  networking.firewall.enable = false;
+}
 ```
 
 If the firewall is enabled, you can open specific TCP ports to the
 outside world:
 
 ```nix
-networking.firewall.allowedTCPPorts = [ 80 443 ];
+{
+  networking.firewall.allowedTCPPorts = [ 80 443 ];
+}
 ```
 
 Note that TCP port 22 (ssh) is opened automatically if the SSH daemon is
@@ -22,10 +26,12 @@ enabled (`services.openssh.enable = true`). UDP ports can be opened through
 To open ranges of TCP ports:
 
 ```nix
-networking.firewall.allowedTCPPortRanges = [
-  { from = 4000; to = 4007; }
-  { from = 8000; to = 8010; }
-];
+{
+  networking.firewall.allowedTCPPortRanges = [
+    { from = 4000; to = 4007; }
+    { from = 8000; to = 8010; }
+  ];
+}
 ```
 
 Similarly, UDP port ranges can be opened through
diff --git a/nixos/doc/manual/configuration/gpu-accel.chapter.md b/nixos/doc/manual/configuration/gpu-accel.chapter.md
index aa63aec61669b..3b98bdd97c681 100644
--- a/nixos/doc/manual/configuration/gpu-accel.chapter.md
+++ b/nixos/doc/manual/configuration/gpu-accel.chapter.md
@@ -55,9 +55,11 @@ supported through the rocmPackages.clr.icd package. Adding this package to
 enables OpenCL support:
 
 ```nix
-hardware.opengl.extraPackages = [
-  rocmPackages.clr.icd
-];
+{
+  hardware.opengl.extraPackages = [
+    rocmPackages.clr.icd
+  ];
+}
 ```
 
 ### Intel {#sec-gpu-accel-opencl-intel}
@@ -74,9 +76,11 @@ to enable OpenCL support. For example, for Gen8 and later GPUs, the following
 configuration can be used:
 
 ```nix
-hardware.opengl.extraPackages = [
-  intel-compute-runtime
-];
+{
+  hardware.opengl.extraPackages = [
+    intel-compute-runtime
+  ];
+}
 ```
 
 ## Vulkan {#sec-gpu-accel-vulkan}
@@ -141,20 +145,22 @@ makes amdvlk the default driver and hides radv and lavapipe from the device list
 A specific driver can be forced as follows:
 
 ```nix
-hardware.opengl.extraPackages = [
-  pkgs.amdvlk
-];
-
-# To enable Vulkan support for 32-bit applications, also add:
-hardware.opengl.extraPackages32 = [
-  pkgs.driversi686Linux.amdvlk
-];
-
-# Force radv
-environment.variables.AMD_VULKAN_ICD = "RADV";
-# Or
-environment.variables.VK_ICD_FILENAMES =
-  "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
+{
+  hardware.opengl.extraPackages = [
+    pkgs.amdvlk
+  ];
+
+  # To enable Vulkan support for 32-bit applications, also add:
+  hardware.opengl.extraPackages32 = [
+    pkgs.driversi686Linux.amdvlk
+  ];
+
+  # Force radv
+  environment.variables.AMD_VULKAN_ICD = "RADV";
+  # Or
+  environment.variables.VK_ICD_FILENAMES =
+    "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
+}
 ```
 
 ## VA-API {#sec-gpu-accel-va-api}
@@ -178,17 +184,21 @@ $ nix-shell -p libva-utils --run vainfo
 Modern Intel GPUs use the iHD driver, which can be installed with:
 
 ```nix
-hardware.opengl.extraPackages = [
-  intel-media-driver
-];
+{
+  hardware.opengl.extraPackages = [
+    intel-media-driver
+  ];
+}
 ```
 
 Older Intel GPUs use the i965 driver, which can be installed with:
 
 ```nix
-hardware.opengl.extraPackages = [
-  intel-vaapi-driver
-];
+{
+  hardware.opengl.extraPackages = [
+    intel-vaapi-driver
+  ];
+}
 ```
 
 ## Common issues {#sec-gpu-accel-common-issues}
diff --git a/nixos/doc/manual/configuration/ipv4-config.section.md b/nixos/doc/manual/configuration/ipv4-config.section.md
index c73024b856d73..0464f53898554 100644
--- a/nixos/doc/manual/configuration/ipv4-config.section.md
+++ b/nixos/doc/manual/configuration/ipv4-config.section.md
@@ -5,18 +5,22 @@ configure network interfaces. However, you can configure an interface
 manually as follows:
 
 ```nix
-networking.interfaces.eth0.ipv4.addresses = [ {
-  address = "192.168.1.2";
-  prefixLength = 24;
-} ];
+{
+  networking.interfaces.eth0.ipv4.addresses = [ {
+    address = "192.168.1.2";
+    prefixLength = 24;
+  } ];
+}
 ```
 
 Typically you'll also want to set a default gateway and set of name
 servers:
 
 ```nix
-networking.defaultGateway = "192.168.1.1";
-networking.nameservers = [ "8.8.8.8" ];
+{
+  networking.defaultGateway = "192.168.1.1";
+  networking.nameservers = [ "8.8.8.8" ];
+}
 ```
 
 ::: {.note}
@@ -28,7 +32,9 @@ configuration is performed by `network-setup.service`.
 The host name is set using [](#opt-networking.hostName):
 
 ```nix
-networking.hostName = "cartman";
+{
+  networking.hostName = "cartman";
+}
 ```
 
 The default host name is `nixos`. Set it to the empty string (`""`) to
diff --git a/nixos/doc/manual/configuration/ipv6-config.section.md b/nixos/doc/manual/configuration/ipv6-config.section.md
index ce66f53ed4720..b4fe0d759b8ad 100644
--- a/nixos/doc/manual/configuration/ipv6-config.section.md
+++ b/nixos/doc/manual/configuration/ipv6-config.section.md
@@ -9,34 +9,42 @@ may be overridden on a per-interface basis by
 IPv6 support globally by setting:
 
 ```nix
-networking.enableIPv6 = false;
+{
+  networking.enableIPv6 = false;
+}
 ```
 
 You can disable IPv6 on a single interface using a normal sysctl (in
 this example, we use interface `eth0`):
 
 ```nix
-boot.kernel.sysctl."net.ipv6.conf.eth0.disable_ipv6" = true;
+{
+  boot.kernel.sysctl."net.ipv6.conf.eth0.disable_ipv6" = true;
+}
 ```
 
 As with IPv4 networking interfaces are automatically configured via
 DHCPv6. You can configure an interface manually:
 
 ```nix
-networking.interfaces.eth0.ipv6.addresses = [ {
-  address = "fe00:aa:bb:cc::2";
-  prefixLength = 64;
-} ];
+{
+  networking.interfaces.eth0.ipv6.addresses = [ {
+    address = "fe00:aa:bb:cc::2";
+    prefixLength = 64;
+  } ];
+}
 ```
 
 For configuring a gateway, optionally with explicitly specified
 interface:
 
 ```nix
-networking.defaultGateway6 = {
-  address = "fe00::1";
-  interface = "enp0s3";
-};
+{
+  networking.defaultGateway6 = {
+    address = "fe00::1";
+    interface = "enp0s3";
+  };
+}
 ```
 
 See [](#sec-ipv4) for similar examples and additional information.
diff --git a/nixos/doc/manual/configuration/kubernetes.chapter.md b/nixos/doc/manual/configuration/kubernetes.chapter.md
index f39726090e431..fba40b6487521 100644
--- a/nixos/doc/manual/configuration/kubernetes.chapter.md
+++ b/nixos/doc/manual/configuration/kubernetes.chapter.md
@@ -7,14 +7,16 @@ There are generally two ways of enabling Kubernetes on NixOS. One way is
 to enable and configure cluster components appropriately by hand:
 
 ```nix
-services.kubernetes = {
-  apiserver.enable = true;
-  controllerManager.enable = true;
-  scheduler.enable = true;
-  addonManager.enable = true;
-  proxy.enable = true;
-  flannel.enable = true;
-};
+{
+  services.kubernetes = {
+    apiserver.enable = true;
+    controllerManager.enable = true;
+    scheduler.enable = true;
+    addonManager.enable = true;
+    proxy.enable = true;
+    flannel.enable = true;
+  };
+}
 ```
 
 Another way is to assign cluster roles ("master" and/or "node") to
@@ -22,20 +24,26 @@ the host. This enables apiserver, controllerManager, scheduler,
 addonManager, kube-proxy and etcd:
 
 ```nix
-services.kubernetes.roles = [ "master" ];
+{
+  services.kubernetes.roles = [ "master" ];
+}
 ```
 
 While this will enable the kubelet and kube-proxy only:
 
 ```nix
-services.kubernetes.roles = [ "node" ];
+{
+  services.kubernetes.roles = [ "node" ];
+}
 ```
 
 Assigning both the master and node roles is usable if you want a single
 node Kubernetes cluster for dev or testing purposes:
 
 ```nix
-services.kubernetes.roles = [ "master" "node" ];
+{
+  services.kubernetes.roles = [ "master" "node" ];
+}
 ```
 
 Note: Assigning either role will also default both
diff --git a/nixos/doc/manual/configuration/linux-kernel.chapter.md b/nixos/doc/manual/configuration/linux-kernel.chapter.md
index 31d8d1a7d0cfe..3bc97446f452c 100644
--- a/nixos/doc/manual/configuration/linux-kernel.chapter.md
+++ b/nixos/doc/manual/configuration/linux-kernel.chapter.md
@@ -5,7 +5,9 @@ option `boot.kernelPackages`. For instance, this selects the Linux 3.10
 kernel:
 
 ```nix
-boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10;
+{
+  boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10;
+}
 ```
 
 Note that this not only replaces the kernel, but also packages that are
@@ -40,13 +42,15 @@ If you want to change the kernel configuration, you can use the
 instance, to enable support for the kernel debugger KGDB:
 
 ```nix
-nixpkgs.config.packageOverrides = pkgs: pkgs.lib.recursiveUpdate pkgs {
-  linuxKernel.kernels.linux_5_10 = pkgs.linuxKernel.kernels.linux_5_10.override {
-    extraConfig = ''
-      KGDB y
-    '';
+{
+  nixpkgs.config.packageOverrides = pkgs: pkgs.lib.recursiveUpdate pkgs {
+    linuxKernel.kernels.linux_5_10 = pkgs.linuxKernel.kernels.linux_5_10.override {
+      extraConfig = ''
+        KGDB y
+      '';
+    };
   };
-};
+}
 ```
 
 `extraConfig` takes a list of Linux kernel configuration options, one
@@ -59,14 +63,18 @@ by `udev`. You can force a module to be loaded via
 [](#opt-boot.kernelModules), e.g.
 
 ```nix
-boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
+{
+  boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
+}
 ```
 
 If the module is required early during the boot (e.g. to mount the root
 file system), you can use [](#opt-boot.initrd.kernelModules):
 
 ```nix
-boot.initrd.kernelModules = [ "cifs" ];
+{
+  boot.initrd.kernelModules = [ "cifs" ];
+}
 ```
 
 This causes the specified modules and their dependencies to be added to
@@ -76,7 +84,9 @@ Kernel runtime parameters can be set through
 [](#opt-boot.kernel.sysctl), e.g.
 
 ```nix
-boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
+{
+  boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
+}
 ```
 
 sets the kernel's TCP keepalive time to 120 seconds. To see the
@@ -89,7 +99,9 @@ Please refer to the Nixpkgs manual for the various ways of [building a custom ke
 To use your custom kernel package in your NixOS configuration, set
 
 ```nix
-boot.kernelPackages = pkgs.linuxPackagesFor yourCustomKernel;
+{
+  boot.kernelPackages = pkgs.linuxPackagesFor yourCustomKernel;
+}
 ```
 
 ## Rust {#sec-linux-rust}
@@ -99,15 +111,17 @@ default. For kernel versions 6.7 or newer, experimental Rust support
 can be enabled. In a NixOS configuration, set:
 
 ```nix
-boot.kernelPatches = [
-  {
-    name = "Rust Support";
-    patch = null;
-    features = {
-      rust = true;
-    };
-  }
-];
+{
+  boot.kernelPatches = [
+    {
+      name = "Rust Support";
+      patch = null;
+      features = {
+        rust = true;
+      };
+    }
+  ];
+}
 ```
 
 ## Developing kernel modules {#sec-linux-config-developing-modules}
diff --git a/nixos/doc/manual/configuration/luks-file-systems.section.md b/nixos/doc/manual/configuration/luks-file-systems.section.md
index 7615b95aef422..4d2f625073d4a 100644
--- a/nixos/doc/manual/configuration/luks-file-systems.section.md
+++ b/nixos/doc/manual/configuration/luks-file-systems.section.md
@@ -29,15 +29,19 @@ system is automatically mounted at boot time as `/`, add the following
 to `configuration.nix`:
 
 ```nix
-boot.initrd.luks.devices.crypted.device = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
-fileSystems."/".device = "/dev/mapper/crypted";
+{
+  boot.initrd.luks.devices.crypted.device = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
+  fileSystems."/".device = "/dev/mapper/crypted";
+}
 ```
 
 Should grub be used as bootloader, and `/boot` is located on an
 encrypted partition, it is necessary to add the following grub option:
 
 ```nix
-boot.loader.grub.enableCryptodisk = true;
+{
+  boot.loader.grub.enableCryptodisk = true;
+}
 ```
 
 ## FIDO2 {#sec-luks-file-systems-fido2}
@@ -68,8 +72,10 @@ To ensure that this file system is decrypted using the FIDO2 compatible
 key, add the following to `configuration.nix`:
 
 ```nix
-boot.initrd.luks.fido2Support = true;
-boot.initrd.luks.devices."/dev/sda2".fido2.credential = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
+{
+  boot.initrd.luks.fido2Support = true;
+  boot.initrd.luks.devices."/dev/sda2".fido2.credential = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
+}
 ```
 
 You can also use the FIDO2 passwordless setup, but for security reasons,
@@ -77,7 +83,9 @@ you might want to enable it only when your device is PIN protected, such
 as [Trezor](https://trezor.io/).
 
 ```nix
-boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess = true;
+{
+  boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess = true;
+}
 ```
 
 ### systemd Stage 1 {#sec-luks-file-systems-fido2-systemd}
@@ -88,13 +96,15 @@ unlocking the existing LUKS2 volume `root` using any enrolled FIDO2 compatible
 tokens.
 
 ```nix
-boot.initrd = {
-  luks.devices.root = {
-    crypttabExtraOpts = [ "fido2-device=auto" ];
-    device = "/dev/sda2";
+{
+  boot.initrd = {
+    luks.devices.root = {
+      crypttabExtraOpts = [ "fido2-device=auto" ];
+      device = "/dev/sda2";
+    };
+    systemd.enable = true;
   };
-  systemd.enable = true;
-};
+}
 ```
 
 All tokens that should be used for unlocking the LUKS2-encrypted volume must
diff --git a/nixos/doc/manual/configuration/modularity.section.md b/nixos/doc/manual/configuration/modularity.section.md
index f4a566d669735..cb9f543797d2a 100644
--- a/nixos/doc/manual/configuration/modularity.section.md
+++ b/nixos/doc/manual/configuration/modularity.section.md
@@ -16,7 +16,7 @@ including them from `configuration.nix`, e.g.:
 { imports = [ ./vpn.nix ./kde.nix ];
   services.httpd.enable = true;
   environment.systemPackages = [ pkgs.emacs ];
-  ...
+  # ...
 }
 ```
 
@@ -42,7 +42,9 @@ merged last, so for list-type options, it will appear at the end of the
 merged list. If you want it to appear first, you can use `mkBefore`:
 
 ```nix
-boot.kernelModules = mkBefore [ "kvm-intel" ];
+{
+  boot.kernelModules = mkBefore [ "kvm-intel" ];
+}
 ```
 
 This causes the `kvm-intel` kernel module to be loaded before any other
@@ -60,7 +62,9 @@ When that happens, it's possible to force one definition take precedence
 over the others:
 
 ```nix
-services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org";
+{
+  services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org";
+}
 ```
 
 When using multiple modules, you may need to access configuration values
diff --git a/nixos/doc/manual/configuration/network-manager.section.md b/nixos/doc/manual/configuration/network-manager.section.md
index 4bda21d34a108..8e8dfabbf3cd5 100644
--- a/nixos/doc/manual/configuration/network-manager.section.md
+++ b/nixos/doc/manual/configuration/network-manager.section.md
@@ -4,7 +4,9 @@ To facilitate network configuration, some desktop environments use
 NetworkManager. You can enable NetworkManager by setting:
 
 ```nix
-networking.networkmanager.enable = true;
+{
+  networking.networkmanager.enable = true;
+}
 ```
 
 some desktop managers (e.g., GNOME) enable NetworkManager automatically
@@ -14,7 +16,9 @@ All users that should have permission to change network settings must
 belong to the `networkmanager` group:
 
 ```nix
-users.users.alice.extraGroups = [ "networkmanager" ];
+{
+  users.users.alice.extraGroups = [ "networkmanager" ];
+}
 ```
 
 NetworkManager is controlled using either `nmcli` or `nmtui`
@@ -32,9 +36,11 @@ can be used together if desired. To do this you need to instruct
 NetworkManager to ignore those interfaces like:
 
 ```nix
-networking.networkmanager.unmanaged = [
-   "*" "except:type:wwan" "except:type:gsm"
-];
+{
+  networking.networkmanager.unmanaged = [
+     "*" "except:type:wwan" "except:type:gsm"
+  ];
+}
 ```
 
 Refer to the option description for the exact syntax and references to
diff --git a/nixos/doc/manual/configuration/overlayfs.section.md b/nixos/doc/manual/configuration/overlayfs.section.md
index 592fb7c2e6f79..7027a6f426d4b 100644
--- a/nixos/doc/manual/configuration/overlayfs.section.md
+++ b/nixos/doc/manual/configuration/overlayfs.section.md
@@ -4,21 +4,23 @@ NixOS offers a convenient abstraction to create both read-only as well writable
 overlays.
 
 ```nix
-fileSystems = {
-  "/writable-overlay" = {
-    overlay = {
-      lowerdir = [ writableOverlayLowerdir ];
-      upperdir = "/.rw-writable-overlay/upper";
-      workdir = "/.rw-writable-overlay/work";
+{
+  fileSystems = {
+    "/writable-overlay" = {
+      overlay = {
+        lowerdir = [ writableOverlayLowerdir ];
+        upperdir = "/.rw-writable-overlay/upper";
+        workdir = "/.rw-writable-overlay/work";
+      };
+      # Mount the writable overlay in the initrd.
+      neededForBoot = true;
     };
-    # Mount the writable overlay in the initrd.
-    neededForBoot = true;
+    "/readonly-overlay".overlay.lowerdir = [
+      writableOverlayLowerdir
+      writableOverlayLowerdir2
+    ];
   };
-  "/readonly-overlay".overlay.lowerdir = [
-    writableOverlayLowerdir
-    writableOverlayLowerdir2
-  ];
-};
+}
 ```
 
 If `upperdir` and `workdir` are not null, they will be created before the
diff --git a/nixos/doc/manual/configuration/profiles.chapter.md b/nixos/doc/manual/configuration/profiles.chapter.md
index 9f6c11b0d59d5..6161d48e353f3 100644
--- a/nixos/doc/manual/configuration/profiles.chapter.md
+++ b/nixos/doc/manual/configuration/profiles.chapter.md
@@ -8,9 +8,11 @@ is to say, expected usage is to add them to the imports list of your
 `/etc/configuration.nix` as such:
 
 ```nix
-imports = [
-  <nixpkgs/nixos/modules/profiles/profile-name.nix>
-];
+{
+  imports = [
+    <nixpkgs/nixos/modules/profiles/profile-name.nix>
+  ];
+}
 ```
 
 Even if some of these profiles seem only useful in the context of
diff --git a/nixos/doc/manual/configuration/renaming-interfaces.section.md b/nixos/doc/manual/configuration/renaming-interfaces.section.md
index 5b515e9f82a03..4804e35f8a248 100644
--- a/nixos/doc/manual/configuration/renaming-interfaces.section.md
+++ b/nixos/doc/manual/configuration/renaming-interfaces.section.md
@@ -25,10 +25,12 @@ we assign the name `wan` to the interface with MAC address
 `52:54:00:12:01:01` using a netword link unit:
 
 ```nix
-systemd.network.links."10-wan" = {
-  matchConfig.PermanentMACAddress = "52:54:00:12:01:01";
-  linkConfig.Name = "wan";
-};
+{
+  systemd.network.links."10-wan" = {
+    matchConfig.PermanentMACAddress = "52:54:00:12:01:01";
+    linkConfig.Name = "wan";
+  };
+}
 ```
 
 Note that links are directly read by udev, *not networkd*, and will work
@@ -37,10 +39,12 @@ even if networkd is disabled.
 Alternatively, we can use a plain old udev rule:
 
 ```nix
-boot.initrd.services.udev.rules = ''
-  SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
-  ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="wan"
-'';
+{
+  boot.initrd.services.udev.rules = ''
+    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
+    ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="wan"
+  '';
+}
 ```
 
 ::: {.warning}
diff --git a/nixos/doc/manual/configuration/ssh.section.md b/nixos/doc/manual/configuration/ssh.section.md
index 9e239a8481789..8754e3d9ccaf4 100644
--- a/nixos/doc/manual/configuration/ssh.section.md
+++ b/nixos/doc/manual/configuration/ssh.section.md
@@ -3,7 +3,9 @@
 Secure shell (SSH) access to your machine can be enabled by setting:
 
 ```nix
-services.openssh.enable = true;
+{
+  services.openssh.enable = true;
+}
 ```
 
 By default, root logins using a password are disallowed. They can be
@@ -14,6 +16,8 @@ You can declaratively specify authorised RSA/DSA public keys for a user
 as follows:
 
 ```nix
-users.users.alice.openssh.authorizedKeys.keys =
-  [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
+{
+  users.users.alice.openssh.authorizedKeys.keys =
+    [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
+}
 ```
diff --git a/nixos/doc/manual/configuration/subversion.chapter.md b/nixos/doc/manual/configuration/subversion.chapter.md
index ff870f5c40b97..2436138669fe9 100644
--- a/nixos/doc/manual/configuration/subversion.chapter.md
+++ b/nixos/doc/manual/configuration/subversion.chapter.md
@@ -21,9 +21,11 @@ Apache HTTP, setting [](#opt-services.httpd.adminAddr)
 appropriately:
 
 ```nix
-services.httpd.enable = true;
-services.httpd.adminAddr = ...;
-networking.firewall.allowedTCPPorts = [ 80 443 ];
+{
+  services.httpd.enable = true;
+  services.httpd.adminAddr = "...";
+  networking.firewall.allowedTCPPorts = [ 80 443 ];
+}
 ```
 
 For a simple Subversion server with basic authentication, configure the
@@ -34,25 +36,28 @@ the `.authz` file describing access permission, and `AuthUserFile` to
 the password file.
 
 ```nix
-services.httpd.extraModules = [
-    # note that order is *super* important here
-    { name = "dav_svn"; path = "${pkgs.apacheHttpdPackages.subversion}/modules/mod_dav_svn.so"; }
-    { name = "authz_svn"; path = "${pkgs.apacheHttpdPackages.subversion}/modules/mod_authz_svn.so"; }
-  ];
-  services.httpd.virtualHosts = {
-    "svn" = {
-       hostName = HOSTNAME;
-       documentRoot = DOCUMENTROOT;
-       locations."/svn".extraConfig = ''
-           DAV svn
-           SVNParentPath REPO_PARENT
-           AuthzSVNAccessFile ACCESS_FILE
-           AuthName "SVN Repositories"
-           AuthType Basic
-           AuthUserFile PASSWORD_FILE
-           Require valid-user
-      '';
-    }
+{
+  services.httpd.extraModules = [
+      # note that order is *super* important here
+      { name = "dav_svn"; path = "${pkgs.apacheHttpdPackages.subversion}/modules/mod_dav_svn.so"; }
+      { name = "authz_svn"; path = "${pkgs.apacheHttpdPackages.subversion}/modules/mod_authz_svn.so"; }
+    ];
+    services.httpd.virtualHosts = {
+      "svn" = {
+         hostName = HOSTNAME;
+         documentRoot = DOCUMENTROOT;
+         locations."/svn".extraConfig = ''
+             DAV svn
+             SVNParentPath REPO_PARENT
+             AuthzSVNAccessFile ACCESS_FILE
+             AuthName "SVN Repositories"
+             AuthType Basic
+             AuthUserFile PASSWORD_FILE
+             Require valid-user
+        '';
+      };
+    };
+}
 ```
 
 The key `"svn"` is just a symbolic name identifying the virtual host.
@@ -90,7 +95,7 @@ $ htpasswd -s PASSWORD_FILE USER_NAME
 The file describing access permissions `ACCESS_FILE` will look something
 like the following:
 
-```nix
+```
 [/]
 * = r
 
diff --git a/nixos/doc/manual/configuration/user-mgmt.chapter.md b/nixos/doc/manual/configuration/user-mgmt.chapter.md
index 71d61ce4c641b..7d83121d41e09 100644
--- a/nixos/doc/manual/configuration/user-mgmt.chapter.md
+++ b/nixos/doc/manual/configuration/user-mgmt.chapter.md
@@ -6,13 +6,15 @@ management. In the declarative style, users are specified in
 account named `alice` shall exist:
 
 ```nix
-users.users.alice = {
-  isNormalUser = true;
-  home = "/home/alice";
-  description = "Alice Foobar";
-  extraGroups = [ "wheel" "networkmanager" ];
-  openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
-};
+{
+  users.users.alice = {
+    isNormalUser = true;
+    home = "/home/alice";
+    description = "Alice Foobar";
+    extraGroups = [ "wheel" "networkmanager" ];
+    openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
+  };
+}
 ```
 
 Note that `alice` is a member of the `wheel` and `networkmanager`
@@ -38,7 +40,9 @@ A user ID (uid) is assigned automatically. You can also specify a uid
 manually by adding
 
 ```nix
-uid = 1000;
+{
+  uid = 1000;
+}
 ```
 
 to the user specification.
@@ -47,7 +51,9 @@ Groups can be specified similarly. The following states that a group
 named `students` shall exist:
 
 ```nix
-users.groups.students.gid = 1000;
+{
+  users.groups.students.gid = 1000;
+}
 ```
 
 As with users, the group ID (gid) is optional and will be assigned
@@ -100,7 +106,9 @@ Instead of using a custom perl script to create users and groups, you can use
 systemd-sysusers:
 
 ```nix
-systemd.sysusers.enable = true;
+{
+  systemd.sysusers.enable = true;
+}
 ```
 
 The primary benefit of this is to remove a dependency on perl.
diff --git a/nixos/doc/manual/configuration/wayland.chapter.md b/nixos/doc/manual/configuration/wayland.chapter.md
index 0f195bd665673..27c027d385140 100644
--- a/nixos/doc/manual/configuration/wayland.chapter.md
+++ b/nixos/doc/manual/configuration/wayland.chapter.md
@@ -9,7 +9,9 @@ a Wayland Compositor such as sway without separately enabling a Wayland
 server:
 
 ```nix
+{
 programs.sway.enable = true;
+}
 ```
 
 This installs the sway compositor along with some essential utilities.
@@ -19,7 +21,9 @@ If you are using a wlroots-based compositor, like sway, and want to be
 able to share your screen, you might want to activate this option:
 
 ```nix
-xdg.portal.wlr.enable = true;
+{
+  xdg.portal.wlr.enable = true;
+}
 ```
 
 and configure Pipewire using
diff --git a/nixos/doc/manual/configuration/wireless.section.md b/nixos/doc/manual/configuration/wireless.section.md
index 3299d2d7ecb8a..df828698cf03d 100644
--- a/nixos/doc/manual/configuration/wireless.section.md
+++ b/nixos/doc/manual/configuration/wireless.section.md
@@ -7,25 +7,29 @@ skip the rest of this section on wireless networks.
 NixOS will start wpa_supplicant for you if you enable this setting:
 
 ```nix
-networking.wireless.enable = true;
+{
+  networking.wireless.enable = true;
+}
 ```
 
 NixOS lets you specify networks for wpa_supplicant declaratively:
 
 ```nix
-networking.wireless.networks = {
-  echelon = {                # SSID with no spaces or special characters
-    psk = "abcdefgh";
-  };
-  "echelon's AP" = {         # SSID with spaces and/or special characters
-    psk = "ijklmnop";
-  };
-  echelon = {                # Hidden SSID
-    hidden = true;
-    psk = "qrstuvwx";
+{
+  networking.wireless.networks = {
+    echelon = {                # SSID with no spaces or special characters
+      psk = "abcdefgh";
+    };
+    "echelon's AP" = {         # SSID with spaces and/or special characters
+      psk = "ijklmnop";
+    };
+    echelon = {                # Hidden SSID
+      hidden = true;
+      psk = "qrstuvwx";
+    };
+    free.wifi = {};            # Public wireless network
   };
-  free.wifi = {};            # Public wireless network
-};
+}
 ```
 
 Be aware that keys will be written to the nix store in plaintext! When
@@ -46,11 +50,13 @@ network={
 ```
 
 ```nix
-networking.wireless.networks = {
-  echelon = {
-    pskRaw = "dca6d6ed41f4ab5a984c9f55f6f66d4efdc720ebf66959810f4329bb391c5435";
+{
+  networking.wireless.networks = {
+    echelon = {
+      pskRaw = "dca6d6ed41f4ab5a984c9f55f6f66d4efdc720ebf66959810f4329bb391c5435";
+    };
   };
-};
+}
 ```
 
 or you can use it to directly generate the `wpa_supplicant.conf`:
diff --git a/nixos/doc/manual/configuration/x-windows.chapter.md b/nixos/doc/manual/configuration/x-windows.chapter.md
index 0e8e38b83dcdc..8162e38e9f5bc 100644
--- a/nixos/doc/manual/configuration/x-windows.chapter.md
+++ b/nixos/doc/manual/configuration/x-windows.chapter.md
@@ -4,7 +4,9 @@ The X Window System (X11) provides the basis of NixOS' graphical user
 interface. It can be enabled as follows:
 
 ```nix
-services.xserver.enable = true;
+{
+  services.xserver.enable = true;
+}
 ```
 
 The X server will automatically detect and use the appropriate video
@@ -12,7 +14,9 @@ driver from a set of X.org drivers (such as `vesa` and `intel`). You can
 also specify a driver manually, e.g.
 
 ```nix
-services.xserver.videoDrivers = [ "r128" ];
+{
+  services.xserver.videoDrivers = [ "r128" ];
+}
 ```
 
 to enable X.org's `xf86-video-r128` driver.
@@ -22,15 +26,17 @@ Otherwise, you can only log into a plain undecorated `xterm` window.
 Thus you should pick one or more of the following lines:
 
 ```nix
-services.xserver.desktopManager.plasma5.enable = true;
-services.xserver.desktopManager.xfce.enable = true;
-services.xserver.desktopManager.gnome.enable = true;
-services.xserver.desktopManager.mate.enable = true;
-services.xserver.windowManager.xmonad.enable = true;
-services.xserver.windowManager.twm.enable = true;
-services.xserver.windowManager.icewm.enable = true;
-services.xserver.windowManager.i3.enable = true;
-services.xserver.windowManager.herbstluftwm.enable = true;
+{
+  services.xserver.desktopManager.plasma5.enable = true;
+  services.xserver.desktopManager.xfce.enable = true;
+  services.xserver.desktopManager.gnome.enable = true;
+  services.xserver.desktopManager.mate.enable = true;
+  services.xserver.windowManager.xmonad.enable = true;
+  services.xserver.windowManager.twm.enable = true;
+  services.xserver.windowManager.icewm.enable = true;
+  services.xserver.windowManager.i3.enable = true;
+  services.xserver.windowManager.herbstluftwm.enable = true;
+}
 ```
 
 NixOS's default *display manager* (the program that provides a graphical
@@ -38,22 +44,28 @@ login prompt and manages the X server) is LightDM. You can select an
 alternative one by picking one of the following lines:
 
 ```nix
-services.xserver.displayManager.sddm.enable = true;
-services.xserver.displayManager.gdm.enable = true;
+{
+  services.xserver.displayManager.sddm.enable = true;
+  services.xserver.displayManager.gdm.enable = true;
+}
 ```
 
 You can set the keyboard layout (and optionally the layout variant):
 
 ```nix
-services.xserver.xkb.layout = "de";
-services.xserver.xkb.variant = "neo";
+{
+  services.xserver.xkb.layout = "de";
+  services.xserver.xkb.variant = "neo";
+}
 ```
 
 The X server is started automatically at boot time. If you don't want
 this to happen, you can set:
 
 ```nix
-services.xserver.autorun = false;
+{
+  services.xserver.autorun = false;
+}
 ```
 
 The X server can then be started manually:
@@ -66,7 +78,9 @@ On 64-bit systems, if you want OpenGL for 32-bit programs such as in
 Wine, you should also set the following:
 
 ```nix
-hardware.opengl.driSupport32Bit = true;
+{
+  hardware.opengl.driSupport32Bit = true;
+}
 ```
 
 ## Auto-login {#sec-x11-auto-login}
@@ -84,16 +98,20 @@ desktop environment. If you wanted no desktop environment and i3 as your
 your window manager, you'd define:
 
 ```nix
-services.xserver.displayManager.defaultSession = "none+i3";
+{
+  services.xserver.displayManager.defaultSession = "none+i3";
+}
 ```
 
 Every display manager in NixOS supports auto-login, here is an example
 using lightdm for a user `alice`:
 
 ```nix
-services.xserver.displayManager.lightdm.enable = true;
-services.xserver.displayManager.autoLogin.enable = true;
-services.xserver.displayManager.autoLogin.user = "alice";
+{
+  services.xserver.displayManager.lightdm.enable = true;
+  services.xserver.displayManager.autoLogin.enable = true;
+  services.xserver.displayManager.autoLogin.user = "alice";
+}
 ```
 
 ## Intel Graphics drivers {#sec-x11--graphics-cards-intel}
@@ -119,18 +137,22 @@ drivers. Use the option
 to set one. The recommended configuration for modern systems is:
 
 ```nix
-services.xserver.videoDrivers = [ "modesetting" ];
+{
+  services.xserver.videoDrivers = [ "modesetting" ];
+}
 ```
 
 If you experience screen tearing no matter what, this configuration was
 reported to resolve the issue:
 
 ```nix
-services.xserver.videoDrivers = [ "intel" ];
-services.xserver.deviceSection = ''
-  Option "DRI" "2"
-  Option "TearFree" "true"
-'';
+{
+  services.xserver.videoDrivers = [ "intel" ];
+  services.xserver.deviceSection = ''
+    Option "DRI" "2"
+    Option "TearFree" "true"
+  '';
+}
 ```
 
 Note that this will likely downgrade the performance compared to
@@ -143,15 +165,19 @@ better 3D performance than the X.org drivers. It is not enabled by
 default because it's not free software. You can enable it as follows:
 
 ```nix
-services.xserver.videoDrivers = [ "nvidia" ];
+{
+  services.xserver.videoDrivers = [ "nvidia" ];
+}
 ```
 
 If you have an older card, you may have to use one of the legacy drivers:
 
 ```nix
-hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
-hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
-hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_340;
+{
+  hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
+  hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_390;
+  hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_340;
+}
 ```
 
 You may need to reboot after enabling this driver to prevent a clash
@@ -166,7 +192,9 @@ performance. If you still want to use it anyway, you need to explicitly
 set:
 
 ```nix
-services.xserver.videoDrivers = [ "amdgpu-pro" ];
+{
+  services.xserver.videoDrivers = [ "amdgpu-pro" ];
+}
 ```
 
 You will need to reboot after enabling this driver to prevent a clash
@@ -178,14 +206,18 @@ Support for Synaptics touchpads (found in many laptops such as the Dell
 Latitude series) can be enabled as follows:
 
 ```nix
-services.xserver.libinput.enable = true;
+{
+  services.xserver.libinput.enable = true;
+}
 ```
 
 The driver has many options (see [](#ch-options)).
 For instance, the following disables tap-to-click behavior:
 
 ```nix
-services.xserver.libinput.touchpad.tapping = false;
+{
+  services.xserver.libinput.touchpad.tapping = false;
+}
 ```
 
 Note: the use of `services.xserver.synaptics` is deprecated since NixOS
@@ -198,9 +230,11 @@ GTK themes can be installed either to user profile or system-wide (via
 GTK ones, you can use the following configuration:
 
 ```nix
-qt.enable = true;
-qt.platformTheme = "gtk2";
-qt.style = "gtk2";
+{
+  qt.enable = true;
+  qt.platformTheme = "gtk2";
+  qt.style = "gtk2";
+}
 ```
 
 ## Custom XKB layouts {#custom-xkb-layouts}
@@ -217,7 +251,7 @@ Create a file called `us-greek` with the following content (under a
 directory called `symbols`; it's an XKB peculiarity that will help with
 testing):
 
-```nix
+```
 xkb_symbols "us-greek"
 {
   include "us(basic)"            // includes the base US keys
@@ -234,11 +268,13 @@ xkb_symbols "us-greek"
 A minimal layout specification must include the following:
 
 ```nix
-services.xserver.xkb.extraLayouts.us-greek = {
-  description = "US layout with alt-gr greek";
-  languages   = [ "eng" ];
-  symbolsFile = /yourpath/symbols/us-greek;
-};
+{
+  services.xserver.xkb.extraLayouts.us-greek = {
+    description = "US layout with alt-gr greek";
+    languages   = [ "eng" ];
+    symbolsFile = /yourpath/symbols/us-greek;
+  };
+}
 ```
 
 ::: {.note}
@@ -275,7 +311,7 @@ Use the *xev* utility from `pkgs.xorg.xev` to find the codes of the keys
 of interest, then create a `media-key` file to hold the keycodes
 definitions
 
-```nix
+```
 xkb_keycodes "media"
 {
  <volUp>   = 123;
@@ -285,7 +321,7 @@ xkb_keycodes "media"
 
 Now use the newly define keycodes in `media-sym`:
 
-```nix
+```
 xkb_symbols "media"
 {
  key.type = "ONE_LEVEL";
@@ -297,12 +333,14 @@ xkb_symbols "media"
 As before, to install the layout do
 
 ```nix
-services.xserver.xkb.extraLayouts.media = {
-  description  = "Multimedia keys remapping";
-  languages    = [ "eng" ];
-  symbolsFile  = /path/to/media-key;
-  keycodesFile = /path/to/media-sym;
-};
+{
+  services.xserver.xkb.extraLayouts.media = {
+    description  = "Multimedia keys remapping";
+    languages    = [ "eng" ];
+    symbolsFile  = /path/to/media-key;
+    keycodesFile = /path/to/media-sym;
+  };
+}
 ```
 
 ::: {.note}
@@ -318,7 +356,9 @@ workaround, you can set the keymap using `setxkbmap` at the start of the
 session with:
 
 ```nix
-services.xserver.displayManager.sessionCommands = "setxkbmap -keycodes media";
+{
+  services.xserver.displayManager.sessionCommands = "setxkbmap -keycodes media";
+}
 ```
 
 If you are manually starting the X server, you should set the argument
diff --git a/nixos/doc/manual/configuration/xfce.chapter.md b/nixos/doc/manual/configuration/xfce.chapter.md
index 9ec4a51d6e35e..fcc9bcc456410 100644
--- a/nixos/doc/manual/configuration/xfce.chapter.md
+++ b/nixos/doc/manual/configuration/xfce.chapter.md
@@ -3,21 +3,25 @@
 To enable the Xfce Desktop Environment, set
 
 ```nix
-services.xserver.desktopManager.xfce.enable = true;
-services.xserver.displayManager.defaultSession = "xfce";
+{
+  services.xserver.desktopManager.xfce.enable = true;
+  services.xserver.displayManager.defaultSession = "xfce";
+}
 ```
 
 Optionally, *picom* can be enabled for nice graphical effects, some
 example settings:
 
 ```nix
-services.picom = {
-  enable = true;
-  fade = true;
-  inactiveOpacity = 0.9;
-  shadow = true;
-  fadeDelta = 4;
-};
+{
+  services.picom = {
+    enable = true;
+    fade = true;
+    inactiveOpacity = 0.9;
+    shadow = true;
+    fadeDelta = 4;
+  };
+}
 ```
 
 Some Xfce programs are not installed automatically. To install them
diff --git a/nixos/doc/manual/development/activation-script.section.md b/nixos/doc/manual/development/activation-script.section.md
index cc317a6a01aa8..f771c3524b796 100644
--- a/nixos/doc/manual/development/activation-script.section.md
+++ b/nixos/doc/manual/development/activation-script.section.md
@@ -17,13 +17,15 @@ activation script will take these dependencies into account and order the
 snippets accordingly. As a simple example:
 
 ```nix
-system.activationScripts.my-activation-script = {
-  deps = [ "etc" ];
-  # supportsDryActivation = true;
-  text = ''
-    echo "Hallo i bims"
-  '';
-};
+{
+  system.activationScripts.my-activation-script = {
+    deps = [ "etc" ];
+    # supportsDryActivation = true;
+    text = ''
+      echo "Hallo i bims"
+    '';
+  };
+}
 ```
 
 This example creates an activation script snippet that is run after the `etc`
diff --git a/nixos/doc/manual/development/assertions.section.md b/nixos/doc/manual/development/assertions.section.md
index cc6d81e56990b..eb5158c90f98c 100644
--- a/nixos/doc/manual/development/assertions.section.md
+++ b/nixos/doc/manual/development/assertions.section.md
@@ -18,7 +18,7 @@ This is an example of using `warnings`.
                This is known to cause some specific problems in certain situations.
                '' ]
       else [];
-  }
+  };
 }
 ```
 
@@ -35,6 +35,6 @@ This example, extracted from the [`syslogd` module](https://github.com/NixOS/nix
           message = "rsyslogd conflicts with syslogd";
         }
       ];
-  }
+  };
 }
 ```
diff --git a/nixos/doc/manual/development/etc-overlay.section.md b/nixos/doc/manual/development/etc-overlay.section.md
index e6f6d8d4ca1ef..d8588f508a26c 100644
--- a/nixos/doc/manual/development/etc-overlay.section.md
+++ b/nixos/doc/manual/development/etc-overlay.section.md
@@ -9,7 +9,9 @@ Instead of using a custom perl script to activate `/etc`, you activate it via an
 overlay filesystem:
 
 ```nix
-system.etc.overlay.enable = true;
+{
+  system.etc.overlay.enable = true;
+}
 ```
 
 Using an overlay has two benefits:
@@ -22,7 +24,9 @@ upper layer). However, you can also mount `/etc` immutably (i.e. read-only) by
 setting:
 
 ```nix
-system.etc.overlay.mutable = false;
+{
+  system.etc.overlay.mutable = false;
+}
 ```
 
 The overlay is atomically replaced during system switch. However, files that
diff --git a/nixos/doc/manual/development/meta-attributes.section.md b/nixos/doc/manual/development/meta-attributes.section.md
index 33b41fe74d297..b2ad23e58b94b 100644
--- a/nixos/doc/manual/development/meta-attributes.section.md
+++ b/nixos/doc/manual/development/meta-attributes.section.md
@@ -14,11 +14,11 @@ file.
 { config, lib, pkgs, ... }:
 {
   options = {
-    ...
+    # ...
   };
 
   config = {
-    ...
+    # ...
   };
 
   meta = {
diff --git a/nixos/doc/manual/development/non-switchable-systems.section.md b/nixos/doc/manual/development/non-switchable-systems.section.md
index 87bb46c789091..a51e8233f30b3 100644
--- a/nixos/doc/manual/development/non-switchable-systems.section.md
+++ b/nixos/doc/manual/development/non-switchable-systems.section.md
@@ -9,7 +9,7 @@ profile:
 
 ```nix
 { modulesPath, ... }: {
-  imports = [ "${modulesPath}/profiles/image-based-appliance.nix" ]
+  imports = [ "${modulesPath}/profiles/image-based-appliance.nix" ];
 }
 ```
 
diff --git a/nixos/doc/manual/development/option-declarations.section.md b/nixos/doc/manual/development/option-declarations.section.md
index 762070416187d..ad5857b11a2e0 100644
--- a/nixos/doc/manual/development/option-declarations.section.md
+++ b/nixos/doc/manual/development/option-declarations.section.md
@@ -6,14 +6,16 @@ hasn't been declared in any module. An option declaration generally
 looks like this:
 
 ```nix
-options = {
-  name = mkOption {
-    type = type specification;
-    default = default value;
-    example = example value;
-    description = lib.mdDoc "Description for use in the NixOS manual.";
+{
+  options = {
+    name = mkOption {
+      type = type specification;
+      default = default value;
+      example = example value;
+      description = lib.mdDoc "Description for use in the NixOS manual.";
+    };
   };
-};
+}
 ```
 
 The attribute names within the `name` attribute path must be camel
@@ -221,28 +223,34 @@ enforces that there can only be a single display manager enabled.
 ::: {#ex-option-declaration-eot-service .example}
 ### Extensible type placeholder in the service module
 ```nix
-services.xserver.displayManager.enable = mkOption {
-  description = "Display manager to use";
-  type = with types; nullOr (enum [ ]);
-};
+{
+  services.xserver.displayManager.enable = mkOption {
+    description = "Display manager to use";
+    type = with types; nullOr (enum [ ]);
+  };
+}
 ```
 :::
 
 ::: {#ex-option-declaration-eot-backend-gdm .example}
 ### Extending `services.xserver.displayManager.enable` in the `gdm` module
 ```nix
-services.xserver.displayManager.enable = mkOption {
-  type = with types; nullOr (enum [ "gdm" ]);
-};
+{
+  services.xserver.displayManager.enable = mkOption {
+    type = with types; nullOr (enum [ "gdm" ]);
+  };
+}
 ```
 :::
 
 ::: {#ex-option-declaration-eot-backend-sddm .example}
 ### Extending `services.xserver.displayManager.enable` in the `sddm` module
 ```nix
-services.xserver.displayManager.enable = mkOption {
-  type = with types; nullOr (enum [ "sddm" ]);
-};
+{
+  services.xserver.displayManager.enable = mkOption {
+    type = with types; nullOr (enum [ "sddm" ]);
+  };
+}
 ```
 :::
 
diff --git a/nixos/doc/manual/development/option-def.section.md b/nixos/doc/manual/development/option-def.section.md
index 6a3dc26b99be4..227f41d812ff1 100644
--- a/nixos/doc/manual/development/option-def.section.md
+++ b/nixos/doc/manual/development/option-def.section.md
@@ -4,9 +4,11 @@ Option definitions are generally straight-forward bindings of values to
 option names, like
 
 ```nix
-config = {
-  services.httpd.enable = true;
-};
+{
+  config = {
+    services.httpd.enable = true;
+  };
+}
 ```
 
 However, sometimes you need to wrap an option definition or set of
@@ -18,10 +20,12 @@ If a set of option definitions is conditional on the value of another
 option, you may need to use `mkIf`. Consider, for instance:
 
 ```nix
-config = if config.services.httpd.enable then {
-  environment.systemPackages = [ ... ];
-  ...
-} else {};
+{
+  config = if config.services.httpd.enable then {
+    environment.systemPackages = [ /* ... */ ];
+    # ...
+  } else {};
+}
 ```
 
 This definition will cause Nix to fail with an "infinite recursion"
@@ -30,30 +34,36 @@ on the value being constructed here. After all, you could also write the
 clearly circular and contradictory:
 
 ```nix
-config = if config.services.httpd.enable then {
-  services.httpd.enable = false;
-} else {
-  services.httpd.enable = true;
-};
+{
+  config = if config.services.httpd.enable then {
+    services.httpd.enable = false;
+  } else {
+    services.httpd.enable = true;
+  };
+}
 ```
 
 The solution is to write:
 
 ```nix
-config = mkIf config.services.httpd.enable {
-  environment.systemPackages = [ ... ];
-  ...
-};
+{
+  config = mkIf config.services.httpd.enable {
+    environment.systemPackages = [ /* ... */ ];
+    # ...
+  };
+}
 ```
 
 The special function `mkIf` causes the evaluation of the conditional to
 be "pushed down" into the individual definitions, as if you had written:
 
 ```nix
-config = {
-  environment.systemPackages = if config.services.httpd.enable then [ ... ] else [];
-  ...
-};
+{
+  config = {
+    environment.systemPackages = if config.services.httpd.enable then [ /* ... */ ] else [];
+    # ...
+  };
+}
 ```
 
 ## Setting Priorities {#sec-option-definitions-setting-priorities}
@@ -65,7 +75,9 @@ priority 100 and option defaults have priority 1500.
 You can specify an explicit priority by using `mkOverride`, e.g.
 
 ```nix
-services.openssh.enable = mkOverride 10 false;
+{
+  services.openssh.enable = mkOverride 10 false;
+}
 ```
 
 This definition causes all other definitions with priorities above 10 to
@@ -80,7 +92,9 @@ The functions `mkBefore` and `mkAfter` are equal to `mkOrder 500` and `mkOrder 1
 As an example,
 
 ```nix
-hardware.firmware = mkBefore [ myFirmware ];
+{
+  hardware.firmware = mkBefore [ myFirmware ];
+}
 ```
 
 This definition ensures that `myFirmware` comes before other unordered
@@ -97,13 +111,15 @@ they were declared in separate modules. This can be done using
 `mkMerge`:
 
 ```nix
-config = mkMerge
-  [ # Unconditional stuff.
-    { environment.systemPackages = [ ... ];
-    }
-    # Conditional stuff.
-    (mkIf config.services.bla.enable {
-      environment.systemPackages = [ ... ];
-    })
-  ];
+{
+  config = mkMerge
+    [ # Unconditional stuff.
+      { environment.systemPackages = [ /* ... */ ];
+      }
+      # Conditional stuff.
+      (mkIf config.services.bla.enable {
+        environment.systemPackages = [ /* ... */ ];
+      })
+    ];
+}
 ```
diff --git a/nixos/doc/manual/development/option-types.section.md b/nixos/doc/manual/development/option-types.section.md
index 04edf99e70b00..243039b016737 100644
--- a/nixos/doc/manual/development/option-types.section.md
+++ b/nixos/doc/manual/development/option-types.section.md
@@ -374,19 +374,21 @@ if you want to allow users to leave it undefined.
 ::: {#ex-submodule-direct .example}
 ### Directly defined submodule
 ```nix
-options.mod = mkOption {
-  description = "submodule example";
-  type = with types; submodule {
-    options = {
-      foo = mkOption {
-        type = int;
-      };
-      bar = mkOption {
-        type = str;
+{
+  options.mod = mkOption {
+    description = "submodule example";
+    type = with types; submodule {
+      options = {
+        foo = mkOption {
+          type = int;
+        };
+        bar = mkOption {
+          type = str;
+        };
       };
     };
   };
-};
+}
 ```
 :::
 
@@ -405,10 +407,12 @@ let
     };
   };
 in
-options.mod = mkOption {
-  description = "submodule example";
-  type = with types; submodule modOptions;
-};
+{
+  options.mod = mkOption {
+    description = "submodule example";
+    type = with types; submodule modOptions;
+  };
+}
 ```
 :::
 
@@ -421,29 +425,33 @@ multiple definitions of the submodule option set
 ::: {#ex-submodule-listof-declaration .example}
 ### Declaration of a list of submodules
 ```nix
-options.mod = mkOption {
-  description = "submodule example";
-  type = with types; listOf (submodule {
-    options = {
-      foo = mkOption {
-        type = int;
-      };
-      bar = mkOption {
-        type = str;
+{
+  options.mod = mkOption {
+    description = "submodule example";
+    type = with types; listOf (submodule {
+      options = {
+        foo = mkOption {
+          type = int;
+        };
+        bar = mkOption {
+          type = str;
+        };
       };
-    };
-  });
-};
+    });
+  };
+}
 ```
 :::
 
 ::: {#ex-submodule-listof-definition .example}
 ### Definition of a list of submodules
 ```nix
-config.mod = [
-  { foo = 1; bar = "one"; }
-  { foo = 2; bar = "two"; }
-];
+{
+  config.mod = [
+    { foo = 1; bar = "one"; }
+    { foo = 2; bar = "two"; }
+  ];
+}
 ```
 :::
 
@@ -455,27 +463,31 @@ multiple named definitions of the submodule option set
 ::: {#ex-submodule-attrsof-declaration .example}
 ### Declaration of attribute sets of submodules
 ```nix
-options.mod = mkOption {
-  description = "submodule example";
-  type = with types; attrsOf (submodule {
-    options = {
-      foo = mkOption {
-        type = int;
-      };
-      bar = mkOption {
-        type = str;
+{
+  options.mod = mkOption {
+    description = "submodule example";
+    type = with types; attrsOf (submodule {
+      options = {
+        foo = mkOption {
+          type = int;
+        };
+        bar = mkOption {
+          type = str;
+        };
       };
-    };
-  });
-};
+    });
+  };
+}
 ```
 :::
 
 ::: {#ex-submodule-attrsof-definition .example}
 ### Definition of attribute sets of submodules
 ```nix
-config.mod.one = { foo = 1; bar = "one"; };
-config.mod.two = { foo = 2; bar = "two"; };
+{
+  config.mod.one = { foo = 1; bar = "one"; };
+  config.mod.two = { foo = 2; bar = "two"; };
+}
 ```
 :::
 
@@ -495,10 +507,12 @@ Types are mainly characterized by their `check` and `merge` functions.
     ### Adding a type check
 
     ```nix
-    byte = mkOption {
-      description = "An integer between 0 and 255.";
-      type = types.addCheck types.int (x: x >= 0 && x <= 255);
-    };
+    {
+      byte = mkOption {
+        description = "An integer between 0 and 255.";
+        type = types.addCheck types.int (x: x >= 0 && x <= 255);
+      };
+    }
     ```
     :::
 
@@ -506,12 +520,14 @@ Types are mainly characterized by their `check` and `merge` functions.
     ### Overriding a type check
 
     ```nix
-    nixThings = mkOption {
-      description = "words that start with 'nix'";
-      type = types.str // {
-        check = (x: lib.hasPrefix "nix" x)
+    {
+      nixThings = mkOption {
+        description = "words that start with 'nix'";
+        type = types.str // {
+          check = (x: lib.hasPrefix "nix" x);
+        };
       };
-    };
+    }
     ```
     :::
 
diff --git a/nixos/doc/manual/development/settings-options.section.md b/nixos/doc/manual/development/settings-options.section.md
index 71ec9bbc88925..806eee5637907 100644
--- a/nixos/doc/manual/development/settings-options.section.md
+++ b/nixos/doc/manual/development/settings-options.section.md
@@ -248,28 +248,30 @@ up in the manual.
 ::: {#ex-settings-typed-attrs .example}
 ### Declaring a type-checked `settings` attribute
 ```nix
-settings = lib.mkOption {
-  type = lib.types.submodule {
+{
+  settings = lib.mkOption {
+    type = lib.types.submodule {
+
+      freeformType = settingsFormat.type;
+
+      # Declare an option for the port such that the type is checked and this option
+      # is shown in the manual.
+      options.port = lib.mkOption {
+        type = lib.types.port;
+        default = 8080;
+        description = ''
+          Which port this service should listen on.
+        '';
+      };
 
-    freeformType = settingsFormat.type;
-
-    # Declare an option for the port such that the type is checked and this option
-    # is shown in the manual.
-    options.port = lib.mkOption {
-      type = lib.types.port;
-      default = 8080;
-      description = ''
-        Which port this service should listen on.
-      '';
     };
-
+    default = {};
+    description = ''
+      Configuration for Foo, see
+      <link xlink:href="https://example.com/docs/foo"/>
+      for supported values.
+    '';
   };
-  default = {};
-  description = ''
-    Configuration for Foo, see
-    <link xlink:href="https://example.com/docs/foo"/>
-    for supported values.
-  '';
-};
+}
 ```
 :::
diff --git a/nixos/doc/manual/development/unit-handling.section.md b/nixos/doc/manual/development/unit-handling.section.md
index d5ba6a9529d01..1f6a30d6ef343 100644
--- a/nixos/doc/manual/development/unit-handling.section.md
+++ b/nixos/doc/manual/development/unit-handling.section.md
@@ -94,11 +94,13 @@ To make an existing sysinit service restart correctly during system switch, you
 have to declare:
 
 ```nix
-systemd.services.my-sysinit = {
-  requiredBy = [ "sysinit-reactivation.target" ];
-  before = [ "sysinit-reactivation.target" ];
-  restartTriggers = [ config.environment.etc."my-sysinit.d".source ];
-};
+{
+  systemd.services.my-sysinit = {
+    requiredBy = [ "sysinit-reactivation.target" ];
+    before = [ "sysinit-reactivation.target" ];
+    restartTriggers = [ config.environment.etc."my-sysinit.d".source ];
+  };
+}
 ```
 
 You need to configure appropriate `restartTriggers` specific to your service.
diff --git a/nixos/doc/manual/development/writing-modules.chapter.md b/nixos/doc/manual/development/writing-modules.chapter.md
index 20157a21e890f..67a5cc23a6aa5 100644
--- a/nixos/doc/manual/development/writing-modules.chapter.md
+++ b/nixos/doc/manual/development/writing-modules.chapter.md
@@ -28,7 +28,7 @@ NixOS modules:
 ```nix
 { config, pkgs, ... }:
 
-{ option definitions
+{ # option definitions
 }
 ```
 
@@ -43,15 +43,15 @@ is shown in [Example: Structure of NixOS Modules](#ex-module-syntax).
 
 {
   imports =
-    [ paths of other modules
+    [ # paths of other modules
     ];
 
   options = {
-    option declarations
+    # option declarations
   };
 
   config = {
-    option definitions
+    # option definitions
   };
 }
 ```
diff --git a/nixos/doc/manual/development/writing-nixos-tests.section.md b/nixos/doc/manual/development/writing-nixos-tests.section.md
index 50886376c2409..3ce12f41c60fe 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/nixos/doc/manual/development/writing-nixos-tests.section.md
@@ -8,10 +8,10 @@ A NixOS test is a module that has the following structure:
   # One or more machines:
   nodes =
     { machine =
-        { config, pkgs, ... }: { … };
+        { config, pkgs, ... }: { /* ... */ };
       machine2 =
-        { config, pkgs, ... }: { … };
-      …
+        { config, pkgs, ... }: { /* ... */ };
+      # …
     };
 
   testScript =
@@ -46,16 +46,20 @@ Tests are invoked differently depending on whether the test is part of NixOS or
 Tests that are part of NixOS are added to [`nixos/tests/all-tests.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/all-tests.nix).
 
 ```nix
+{
   hostname = runTest ./hostname.nix;
+}
 ```
 
 Overrides can be added by defining an anonymous module in `all-tests.nix`.
 
 ```nix
+{
   hostname = runTest {
     imports = [ ./hostname.nix ];
     defaults.networking.firewall.enable = false;
   };
+}
 ```
 
 You can run a test with attribute name `hostname` in `nixos/tests/all-tests.nix` by invoking:
@@ -161,7 +165,7 @@ For faster dev cycles it's also possible to disable the code-linters
   skipLint = true;
   nodes.machine =
     { config, pkgs, ... }:
-    { configuration…
+    { # configuration…
     };
 
   testScript =
@@ -177,12 +181,14 @@ linter directly (again, don't commit this within the Nixpkgs
 repository):
 
 ```nix
+{
   testScript =
     ''
       # fmt: off
       Python code…
       # fmt: on
     '';
+}
 ```
 
 Similarly, the type checking of test scripts can be disabled in the following
@@ -193,7 +199,7 @@ way:
   skipTypeCheck = true;
   nodes.machine =
     { config, pkgs, ... }:
-    { configuration…
+    { # configuration…
     };
 }
 ```
diff --git a/nixos/doc/manual/installation/building-images-via-systemd-repart.chapter.md b/nixos/doc/manual/installation/building-images-via-systemd-repart.chapter.md
index 10bee156d113a..5a552a54f5319 100644
--- a/nixos/doc/manual/installation/building-images-via-systemd-repart.chapter.md
+++ b/nixos/doc/manual/installation/building-images-via-systemd-repart.chapter.md
@@ -18,11 +18,11 @@ An example of how to build an image:
     partitions = {
       "esp" = {
         contents = {
-          ...
+          # ...
         };
         repartConfig = {
           Type = "esp";
-          ...
+          # ...
         };
       };
       "root" = {
@@ -30,7 +30,7 @@ An example of how to build an image:
         repartConfig = {
           Type = "root";
           Label = "nixos";
-          ...
+          # ...
         };
       };
     };
@@ -47,19 +47,21 @@ determined by the mount point, you have to set `stripNixStorePrefix = true;` so
 that the prefix is stripped from the paths before copying them into the image.
 
 ```nix
-fileSystems."/nix/store".device = "/dev/disk/by-partlabel/nix-store"
-
-image.repart.partitions = {
-  "store" = {
-    storePaths = [ config.system.build.toplevel ];
-    stripNixStorePrefix = true;
-    repartConfig = {
-      Type = "linux-generic";
-      Label = "nix-store";
-      ...
+{
+  fileSystems."/nix/store".device = "/dev/disk/by-partlabel/nix-store";
+
+  image.repart.partitions = {
+    "store" = {
+      storePaths = [ config.system.build.toplevel ];
+      stripNixStorePrefix = true;
+      repartConfig = {
+        Type = "linux-generic";
+        Label = "nix-store";
+        # ...
+      };
     };
   };
-};
+}
 ```
 
 ## Appliance Image {#sec-image-repart-appliance}
diff --git a/nixos/doc/manual/installation/changing-config.chapter.md b/nixos/doc/manual/installation/changing-config.chapter.md
index 9e56b15a880f6..07a0074d17e7b 100644
--- a/nixos/doc/manual/installation/changing-config.chapter.md
+++ b/nixos/doc/manual/installation/changing-config.chapter.md
@@ -87,7 +87,9 @@ set `mutableUsers = false`. Another way is to temporarily add the
 following to your configuration:
 
 ```nix
-users.users.your-user.initialHashedPassword = "test";
+{
+  users.users.your-user.initialHashedPassword = "test";
+}
 ```
 
 *Important:* delete the \$hostname.qcow2 file if you have started the
diff --git a/nixos/doc/manual/installation/installing-behind-a-proxy.section.md b/nixos/doc/manual/installation/installing-behind-a-proxy.section.md
index aca151531d0f4..691f9c9ccf6dd 100644
--- a/nixos/doc/manual/installation/installing-behind-a-proxy.section.md
+++ b/nixos/doc/manual/installation/installing-behind-a-proxy.section.md
@@ -7,8 +7,10 @@ To install NixOS behind a proxy, do the following before running
     keep the internet accessible after reboot.
 
     ```nix
-    networking.proxy.default = "http://user:password@proxy:port/";
-    networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+    {
+      networking.proxy.default = "http://user:password@proxy:port/";
+      networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+    }
     ```
 
 1.  Setup the proxy environment variables in the shell where you are
diff --git a/nixos/doc/manual/installation/installing-from-other-distro.section.md b/nixos/doc/manual/installation/installing-from-other-distro.section.md
index 921592fe53573..10ac2be4e161f 100644
--- a/nixos/doc/manual/installation/installing-from-other-distro.section.md
+++ b/nixos/doc/manual/installation/installing-from-other-distro.section.md
@@ -89,12 +89,14 @@ The first steps to all these are the same:
     want to add something like this to your `configuration.nix`:
 
     ```nix
-    boot.loader.grub.extraEntries = ''
-      menuentry "Ubuntu" {
-        search --set=ubuntu --fs-uuid 3cc3e652-0c1f-4800-8451-033754f68e6e
-        configfile "($ubuntu)/boot/grub/grub.cfg"
-      }
-    '';
+    {
+      boot.loader.grub.extraEntries = ''
+        menuentry "Ubuntu" {
+          search --set=ubuntu --fs-uuid 3cc3e652-0c1f-4800-8451-033754f68e6e
+          configfile "($ubuntu)/boot/grub/grub.cfg"
+        }
+      '';
+    }
     ```
 
     (You can find the appropriate UUID for your partition in
@@ -164,7 +166,9 @@ The first steps to all these are the same:
     `sudo passwd -l root` if you use `sudo`)
 
     ```nix
-    users.users.root.initialHashedPassword = "";
+    {
+      users.users.root.initialHashedPassword = "";
+    }
     ```
 
 1.  Build the NixOS closure and install it in the `system` profile:
diff --git a/nixos/doc/manual/installation/installing-virtualbox-guest.section.md b/nixos/doc/manual/installation/installing-virtualbox-guest.section.md
index 004838e586be6..4b9ae0a9c55f0 100644
--- a/nixos/doc/manual/installation/installing-virtualbox-guest.section.md
+++ b/nixos/doc/manual/installation/installing-virtualbox-guest.section.md
@@ -29,14 +29,18 @@ There are a few modifications you should make in configuration.nix.
 Enable booting:
 
 ```nix
-boot.loader.grub.device = "/dev/sda";
+{
+  boot.loader.grub.device = "/dev/sda";
+}
 ```
 
 Also remove the fsck that runs at startup. It will always fail to run,
 stopping your boot until you press `*`.
 
 ```nix
-boot.initrd.checkJournalingFS = false;
+{
+  boot.initrd.checkJournalingFS = false;
+}
 ```
 
 Shared folders can be given a name and a path in the host system in the
diff --git a/nixos/doc/manual/installation/upgrading.chapter.md b/nixos/doc/manual/installation/upgrading.chapter.md
index 79cd4e55be5cc..09338bf8723d2 100644
--- a/nixos/doc/manual/installation/upgrading.chapter.md
+++ b/nixos/doc/manual/installation/upgrading.chapter.md
@@ -101,8 +101,10 @@ You can keep a NixOS system up-to-date automatically by adding the
 following to `configuration.nix`:
 
 ```nix
-system.autoUpgrade.enable = true;
-system.autoUpgrade.allowReboot = true;
+{
+  system.autoUpgrade.enable = true;
+  system.autoUpgrade.allowReboot = true;
+}
 ```
 
 This enables a periodically executed systemd service named
@@ -114,5 +116,7 @@ the new generation contains a different kernel, initrd or kernel
 modules. You can also specify a channel explicitly, e.g.
 
 ```nix
-system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.11";
+{
+  system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.11";
+}
 ```
diff --git a/nixos/doc/manual/release-notes/rl-1509.section.md b/nixos/doc/manual/release-notes/rl-1509.section.md
index f47d13008185e..c2ac89a095184 100644
--- a/nixos/doc/manual/release-notes/rl-1509.section.md
+++ b/nixos/doc/manual/release-notes/rl-1509.section.md
@@ -253,9 +253,9 @@ Installing Haskell _libraries_ this way, however, is no longer supported. See th
 
   {
     options = {
-      foo = mkOption { … };
+      foo = mkOption { /* … */ };
     };
-    config = mkIf config.foo { … };
+    config = mkIf config.foo { /* … */ };
   }
   ```
 
@@ -268,9 +268,9 @@ Installing Haskell _libraries_ this way, however, is no longer supported. See th
 
   {
     options = {
-      foo = mkOption { option declaration };
+      foo = mkOption { /* option declaration */ };
     };
-    config = mkIf config.foo { option definition };
+    config = mkIf config.foo { /* option definition */ };
   }
   ```
 
diff --git a/nixos/doc/manual/release-notes/rl-1703.section.md b/nixos/doc/manual/release-notes/rl-1703.section.md
index b82c41e28ca34..e20d84d306e82 100644
--- a/nixos/doc/manual/release-notes/rl-1703.section.md
+++ b/nixos/doc/manual/release-notes/rl-1703.section.md
@@ -246,7 +246,7 @@ When upgrading from a previous release, please be aware of the following incompa
   let
     pkgs = import <nixpkgs> {};
   in
-    pkgs.overridePackages (self: super: ...)
+    pkgs.overridePackages (self: super: { /* ... */ })
   ```
 
   should be replaced by:
@@ -255,7 +255,7 @@ When upgrading from a previous release, please be aware of the following incompa
   let
     pkgs = import <nixpkgs> {};
   in
-    import pkgs.path { overlays = [(self: super: ...)]; }
+    import pkgs.path { overlays = [(self: super: { /* ... */ })]; }
   ```
 
 - Autoloading connection tracking helpers is now disabled by default. This default was also changed in the Linux kernel and is considered insecure if not configured properly in your firewall. If you need connection tracking helpers (i.e. for active FTP) please enable `networking.firewall.autoLoadConntrackHelpers` and tune `networking.firewall.connectionTrackingModules` to suit your needs.
diff --git a/nixos/doc/manual/release-notes/rl-2009.section.md b/nixos/doc/manual/release-notes/rl-2009.section.md
index eac02a8ff445b..900c20dbe717d 100644
--- a/nixos/doc/manual/release-notes/rl-2009.section.md
+++ b/nixos/doc/manual/release-notes/rl-2009.section.md
@@ -334,22 +334,18 @@ When upgrading from a previous release, please be aware of the following incompa
 - The remaining configuration flags can now be set directly on the `php` attribute. For example, instead of
 
   ```nix
-  {
-    php.override {
-      config.php.embed = true;
-      config.php.apxs2 = false;
-    }
+  php.override {
+    config.php.embed = true;
+    config.php.apxs2 = false;
   }
   ```
 
   you should now write
 
   ```nix
-  {
-    php.override {
-      embedSupport = true;
-      apxs2Support = false;
-    }
+  php.override {
+    embedSupport = true;
+    apxs2Support = false;
   }
   ```
 
@@ -383,9 +379,10 @@ When upgrading from a previous release, please be aware of the following incompa
   {
     specialisation.example-sub-configuration = {
       configuration = {
-        ...
+        # ...
       };
-  };
+    };
+  }
   ```
 
   Replace a `nesting.children` entry with:
@@ -395,9 +392,10 @@ When upgrading from a previous release, please be aware of the following incompa
     specialisation.example-sub-configuration = {
       inheritParentConfig = false;
       configuration = {
-        ...
+        # ...
       };
-  };
+    };
+  }
   ```
 
   To switch to a specialised configuration at runtime you need to run:
@@ -469,7 +467,7 @@ When upgrading from a previous release, please be aware of the following incompa
     services.bitcoind = {
       enable = true;
       extraConfig = "...";
-      ...
+      # ...
     };
   }
   ```
@@ -483,7 +481,7 @@ When upgrading from a previous release, please be aware of the following incompa
       dataDir = "/var/lib/bitcoind";
       user = "bitcoin";
       extraConfig = "...";
-      ...
+      # ...
     };
   }
   ```
@@ -502,7 +500,7 @@ When upgrading from a previous release, please be aware of the following incompa
   {
     services.dokuwiki = {
       enable = true;
-      ...
+      # ...
     };
   }
   ```
@@ -517,7 +515,7 @@ When upgrading from a previous release, please be aware of the following incompa
         forceSSL = true;
         enableACME = true;
       };
-      ...
+      # ...
     };
   }
   ```
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 6f5a807f478a2..3a2c70fb7a31b 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -462,6 +462,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
   Before:
   ```nix
+  {
     services.keycloak = {
       enable = true;
       httpPort = "8080";
@@ -471,10 +472,12 @@ In addition to numerous new and upgraded packages, this release has the followin
         "subsystem=undertow"."server=default-server"."http-listener=default".proxy-address-forwarding = true;
       };
     };
+  }
   ```
 
   After:
   ```nix
+  {
     services.keycloak = {
       enable = true;
       settings = {
@@ -485,6 +488,7 @@ In addition to numerous new and upgraded packages, this release has the followin
       };
       database.passwordFile = "/run/keys/db_password";
     };
+  }
   ```
 
 - The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 1c73d0c9790d5..77cb6c9baadbc 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -254,10 +254,12 @@ In addition to numerous new and upgraded packages, this release includes the fol
 
 - `services.github-runner` and `services.github-runners.<name>` gained the option `serviceOverrides` which allows overriding the systemd `serviceConfig`. If you have been overriding the systemd service configuration (i.e., by defining `systemd.services.github-runner.serviceConfig`), you have to use the `serviceOverrides` option now. Example:
 
-  ```
-  services.github-runner.serviceOverrides.SupplementaryGroups = [
-    "docker"
-  ];
+  ```nix
+  {
+    services.github-runner.serviceOverrides.SupplementaryGroups = [
+      "docker"
+    ];
+  }
   ```
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md
index 21c798b3b4a46..ce874a6e0b2d6 100644
--- a/nixos/doc/manual/release-notes/rl-2305.section.md
+++ b/nixos/doc/manual/release-notes/rl-2305.section.md
@@ -25,7 +25,9 @@ In addition to numerous new and updated packages, this release has the following
 
 - NixOS now defaults to using [nsncd](https://github.com/twosigma/nsncd), a non-caching reimplementation of nscd in Rust, as its NSS lookup dispatcher. This replaces the buggy and deprecated nscd implementation provided through glibc. When you find problems, you can switch back by disabling it:
   ```nix
-  services.nscd.enableNsncd = false;
+  {
+    services.nscd.enableNsncd = false;
+  }
   ```
 
 - The internal option `boot.bootspec.enable` is now enabled by default because [RFC 0125](https://github.com/NixOS/rfcs/pull/125) was merged. This means you will have a bootspec document called `boot.json` generated for each system and specialisation in the top-level. This is useful to enable advanced boot use cases in NixOS, such as Secure Boot.
@@ -190,11 +192,13 @@ In addition to numerous new and updated packages, this release has the following
 - MAC-then-encrypt algorithms were removed from the default selection of `services.openssh.settings.Macs`. If you still require these [MACs](https://en.wikipedia.org/wiki/Message_authentication_code), for example when you are relying on libssh2 (e.g. VLC) or the SSH library shipped on the iPhone, you can re-add them like this:
 
   ```nix
-  services.openssh.settings.Macs = [
-    "hmac-sha2-512"
-    "hmac-sha2-256"
-    "umac-128@openssh.com"
-  ];
+  {
+    services.openssh.settings.Macs = [
+      "hmac-sha2-512"
+      "hmac-sha2-256"
+      "umac-128@openssh.com"
+    ];
+  }
   ```
 
 - `podman` now uses the `netavark` network stack. Users will need to delete all of their local containers, images, volumes, etc, by running `podman system reset --force` once before upgrading their systems.
@@ -227,21 +231,25 @@ In addition to numerous new and updated packages, this release has the following
 - The attributes used by `services.snapper.configs.<name>` have changed. Migrate from this:
 
   ```nix
-  services.snapper.configs.example = {
-    subvolume = "/example";
-    extraConfig = ''
-      ALLOW_USERS="alice"
-    '';
-  };
+  {
+    services.snapper.configs.example = {
+      subvolume = "/example";
+      extraConfig = ''
+        ALLOW_USERS="alice"
+      '';
+    };
+  }
   ```
 
   to this:
 
   ```nix
-  services.snapper.configs.example = {
-    SUBVOLUME = "/example";
-    ALLOW_USERS = [ "alice" ];
-  };
+  {
+    services.snapper.configs.example = {
+      SUBVOLUME = "/example";
+      ALLOW_USERS = [ "alice" ];
+    };
+  }
   ```
 
 - The default module options for [services.snapserver.openFirewall](#opt-services.snapserver.openFirewall), [services.tmate-ssh-server.openFirewall](#opt-services.tmate-ssh-server.openFirewall) and [services.unifi-video.openFirewall](#opt-services.unifi-video.openFirewall) have been changed from `true` to `false`. You will need to explicitly set this option to `true`, or configure your firewall.
@@ -446,15 +454,17 @@ In addition to numerous new and updated packages, this release has the following
 - NixOS swap partitions with random encryption can now control the sector size, cipher, and key size used to set up the plain encryption device over the underlying block device rather than allowing them to be determined by `cryptsetup(8)`. One can use these features like so:
 
   ```nix
-  swapDevices = [ {
-    device = "/dev/disk/by-partlabel/swapspace";
-    randomEncryption = {
-      enable = true;
-      cipher = "aes-xts-plain64";
-      keySize = 512;
-      sectorSize = 4096;
-    };
-  } ];
+  {
+    swapDevices = [ {
+      device = "/dev/disk/by-partlabel/swapspace";
+      randomEncryption = {
+        enable = true;
+        cipher = "aes-xts-plain64";
+        keySize = 512;
+        sectorSize = 4096;
+      };
+    } ];
+  }
   ```
 
 - New option `security.pam.zfs` to enable unlocking and mounting of encrypted ZFS home dataset at login.
@@ -465,7 +475,9 @@ In addition to numerous new and updated packages, this release has the following
 
 - PostgreSQL has added opt-in support for [JIT compilation](https://www.postgresql.org/docs/current/jit-reason.html). It can be enabled like this:
   ```nix
-  services.postgresql.enableJIT = true;
+  {
+    services.postgresql.enableJIT = true;
+  }
   ```
 
 - `services.netdata` offers a [`services.netdata.deadlineBeforeStopSec`](#opt-services.netdata.deadlineBeforeStopSec) option which will control the deadline (in seconds) after which systemd will consider your netdata instance as dead if it didn't start in the elapsed time. It is helpful when your netdata instance takes longer to start because of a large amount of state or upgrades.
diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md
index 1aef1828908f8..d837e0ff68b7c 100644
--- a/nixos/doc/manual/release-notes/rl-2311.section.md
+++ b/nixos/doc/manual/release-notes/rl-2311.section.md
@@ -700,11 +700,13 @@ Make sure to also check the many updates in the [Nixpkgs library](#sec-release-2
   will probably be removed eventually.
 
   ```nix
-  qt = {
-    enable = true;
-    platformTheme = "gnome";
-    style = "adwaita";
-  };
+  {
+    qt = {
+      enable = true;
+      platformTheme = "gnome";
+      style = "adwaita";
+    };
+  }
   ```
 
 - DocBook option documentation is no longer supported, all module documentation
@@ -885,11 +887,13 @@ Make sure to also check the many updates in the [Nixpkgs library](#sec-release-2
   to a compatible major version, so they can move at their own pace.
 
   ```nix
-  python = python3.override {
-    packageOverrides = self: super: {
-      django = super.django_3;
+  {
+    python = python3.override {
+      packageOverrides = self: super: {
+        django = super.django_3;
+      };
     };
-  };
+  }
   ```
 
 - The `qemu-vm.nix` module by default now identifies block devices via
@@ -997,7 +1001,7 @@ Make sure to also check the many updates in the [Nixpkgs library](#sec-release-2
   Satellite](https://github.com/synesthesiam/homeassistant-satellite), a
   streaming audio satellite for Home Assistant voice pipelines, where you can
   reuse existing mic and speaker hardware. Available as
-  [services.homeassistant-satellite](#opt-services.homeassistant-satellite.enable).
+  `services.homeassistant-satellite`.
 
 - [Apache Guacamole](https://guacamole.apache.org/), a cross-platform,
   clientless remote desktop gateway. Available as
@@ -1228,16 +1232,18 @@ Make sure to also check the many updates in the [Nixpkgs library](#sec-release-2
 - CoreDNS may be built with external plugins now. This may be done by
   overriding `externalPlugins` and `vendorHash` arguments like this:
 
-  ```
-  services.coredns = {
-    enable = true;
-    package = pkgs.coredns.override {
-      externalPlugins = [
-        {name = "fanout"; repo = "github.com/networkservicemesh/fanout"; version = "v1.9.1";}
-      ];
-      vendorHash = "<SRI hash>";
+  ```nix
+  {
+    services.coredns = {
+      enable = true;
+      package = pkgs.coredns.override {
+        externalPlugins = [
+          {name = "fanout"; repo = "github.com/networkservicemesh/fanout"; version = "v1.9.1";}
+        ];
+        vendorHash = "<SRI hash>";
+      };
     };
-  };
+  }
   ```
 
   To get the necessary SRI hash, set `vendorHash = "";`. The build will fail
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index 4ad01e2b158c1..06d6ebbd2b0a4 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -57,7 +57,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
   without perl). Previously, the NixOS activation depended on two perl scripts
   which can now be replaced via an opt-in mechanism. To make your system
   perlless, you can use the new perlless profile:
-  ```
+  ```nix
   { modulesPath, ... }: {
     imports = [ "${modulesPath}/profiles/perlless.nix" ];
   }
@@ -95,6 +95,8 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 
 - [hebbot](https://github.com/haecker-felix/hebbot), a Matrix bot to generate "This Week in X" like blog posts. Available as [services.hebbot](#opt-services.hebbot.enable).
 
+- [Workout-tracker](https://github.com/jovandeginste/workout-tracker), a workout tracking web application for personal use.
+
 - [Python Matter Server](https://github.com/home-assistant-libs/python-matter-server), a
   Matter Controller Server exposing websocket connections for use with other services, notably Home Assistant.
   Available as [services.matter-server](#opt-services.matter-server.enable)
@@ -104,6 +106,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable).
 
+- [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush.
+
 - [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
 
 - [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable).
@@ -124,6 +128,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
 
+- [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite]($opt-services.wyoming.satellite.enable).
+
 - [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
 
 - [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
@@ -136,6 +142,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Mealie](https://nightly.mealie.io/), a self-hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in NuxtJS for a pleasant user experience for the whole family. Available as [services.mealie](#opt-services.mealie.enable)
 
+- [Uni-Sync](https://github.com/EightB1ts/uni-sync), a synchronization tool for Lian Li Uni Controllers. Available as [hardware.uni-sync](#opt-hardware.uni-sync.enable)
+
 ## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -146,6 +154,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - The `power.ups` module now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
 
+- `programs.nix-ld.libraries` no longer sets `baseLibraries` via the option's default but in config and now merges any additional libraries with the default ones.
+  This means that `lib.mkForce` must be used to clear the list of default libraries.
+
 - `pdns` was updated to version [v4.9.x](https://doc.powerdns.com/authoritative/changelog/4.9.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-4-9-0) for details.
 
 - `unrar` was updated to v7. See [changelog](https://www.rarlab.com/unrar7notes.htm) for more information.
@@ -186,6 +197,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   "mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
   where the file `secret_file` contains the string `mysecret`.
 
+- `buildGoModule` now throws error when `vendorHash` is not specified. `vendorSha256`, deprecated in Nixpkgs 23.11, is now ignored and is no longer a `vendorHash` alias.
+
 - Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
 
 - `writeReferencesToFile` is deprecated in favour of the new trivial build helper `writeClosure`. The latter accepts a list of paths and has an unambiguous name and cleaner implementation.
@@ -194,6 +207,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `paperless`' `services.paperless.extraConfig` setting has been removed and converted to the freeform type and option named `services.paperless.settings`.
 
+- `davfs2`' `services.davfs2.extraConfig` setting has been deprecated and converted to the freeform type option named `services.davfs2.settings` according to RFC42.
+
 - `services.homepage-dashboard` now takes it's configuration using native Nix expressions, rather than dumping templated configurations into `/var/lib/homepage-dashboard` where they were previously managed manually. There are now new options which allow the configuration of bookmarks, services, widgets and custom CSS/JS natively in Nix.
 
 - `hare` may now be cross-compiled. For that to work, however, `haredoc` needed to stop being built together with it. Thus, the latter is now its own package with the name of `haredoc`.
@@ -220,13 +235,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   Example:
 
   ```nix
+  {
     locations."/".extraConfig = ''
       add_header Alt-Svc 'h3=":$server_port"; ma=86400';
     '';
     locations."^~ /assets/".extraConfig = ''
       add_header Alt-Svc 'h3=":$server_port"; ma=86400';
     '';
-
+  }
   ```
 
 - The package `optparse-bash` is now dropped due to upstream inactivity. Alternatives available in Nixpkgs include [`argc`](https://github.com/sigoden/argc), [`argbash`](https://github.com/matejak/argbash), [`bashly`](https://github.com/DannyBen/bashly) and [`gum`](https://github.com/charmbracelet/gum), to name a few.
@@ -276,6 +292,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - `services.archisteamfarm` no longer uses the abbreviation `asf` for its state directory (`/var/lib/asf`), user and group (both `asf`). Instead the long name `archisteamfarm` is used.
   Configurations with `system.stateVersion` 23.11 or earlier, default to the old stateDirectory until the 24.11 release and must either set the option explicitly or move the data to the new directory.
 
+- `xfsprogs` was updated to version 6.6.0, which enables reverse mapping (rmapbt) and large extent counts (nrext64) by default.
+   Support for these features was added in kernel 4.9 and 5.19 and nrext64 was deemed stable in kernel 6.5.
+   Format your filesystems with `mkfs.xfs -i nrext64=0`, if they need to be readable by GRUB2 before 2.12 or kernels older than 5.19.
+
 - `networking.iproute2.enable` now does not set `environment.etc."iproute2/rt_tables".text`.
 
   Setting `environment.etc."iproute2/{CONFIG_FILE_NAME}".text` will override the whole configuration file instead of appending it to the upstream configuration file.
@@ -365,6 +385,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - The Matrix homeserver [Synapse](https://element-hq.github.io/synapse/) module now supports configuring UNIX domain socket [listeners](#opt-services.matrix-synapse.settings.listeners) through the `path` option.
   The default replication worker on the main instance has been migrated away from TCP sockets to UNIX domain sockets.
 
+- The initrd ssh daemon module got a new option to add authorized keys via a list of files using `boot.initrd.network.ssh.authorizedKeyFiles`.
+
 - Programs written in [Nim](https://nim-lang.org/) are built with libraries selected by lockfiles.
   The `nimPackages` and `nim2Packages` sets have been removed.
   See https://nixos.org/manual/nixpkgs/unstable#nim for more information.
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index 09a4022845e04..4ae9d018e96f5 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -232,19 +232,5 @@ in rec {
       echo "file json-br $dst/options.json.br" >> $out/nix-support/hydra-build-products
     '';
 
-  optionsDocBook = lib.warn "optionsDocBook is deprecated since 23.11 and will be removed in 24.05"
-    (pkgs.runCommand "options-docbook.xml" {
-      nativeBuildInputs = [
-        pkgs.nixos-render-docs
-      ];
-    } ''
-      nixos-render-docs -j $NIX_BUILD_CORES options docbook \
-        --manpage-urls ${pkgs.path + "/doc/manpage-urls.json"} \
-        --revision ${lib.escapeShellArg revision} \
-        --document-type ${lib.escapeShellArg documentType} \
-        --varlist-id ${lib.escapeShellArg variablelistId} \
-        --id-prefix ${lib.escapeShellArg optionIdPrefix} \
-        ${optionsJSON}/share/doc/nixos/options.json \
-        "$out"
-    '');
+  optionsDocBook = throw "optionsDocBook has been removed in 24.05";
 }
diff --git a/nixos/modules/hardware/uni-sync.nix b/nixos/modules/hardware/uni-sync.nix
new file mode 100644
index 0000000000000..69411619bc94f
--- /dev/null
+++ b/nixos/modules/hardware/uni-sync.nix
@@ -0,0 +1,117 @@
+{ config
+, lib
+, pkgs
+, ...
+}:
+with lib; let
+  cfg = config.hardware.uni-sync;
+in
+{
+  meta.maintainers = with maintainers; [ yunfachi ];
+
+  options.hardware.uni-sync = {
+    enable = mkEnableOption (mdDoc "udev rules and software for Lian Li Uni Controllers");
+    package = mkPackageOption pkgs "uni-sync" { };
+
+    devices = mkOption {
+      default = [ ];
+      example = literalExpression ''
+        [
+          {
+            device_id = "VID:1111/PID:11111/SN:1111111111";
+            sync_rgb = true;
+            channels = [
+              {
+                mode = "PWM";
+              }
+              {
+                mode = "Manual";
+                speed = 100;
+              }
+              {
+                mode = "Manual";
+                speed = 54;
+              }
+              {
+                mode = "Manual";
+                speed = 0;
+              }
+            ];
+          }
+          {
+            device_id = "VID:1010/PID:10101/SN:1010101010";
+            sync_rgb = false;
+            channels = [
+              {
+                mode = "Manual";
+                speed = 0;
+              }
+            ];
+          }
+        ]
+      '';
+      description = mdDoc "List of controllers with their configurations.";
+      type = types.listOf (types.submodule {
+        options = {
+          device_id = mkOption {
+            type = types.str;
+            example = "VID:1111/PID:11111/SN:1111111111";
+            description = mdDoc "Unique device ID displayed at each startup.";
+          };
+          sync_rgb = mkOption {
+            type = types.bool;
+            default = false;
+            example = true;
+            description = mdDoc "Enable ARGB header sync.";
+          };
+          channels = mkOption {
+            default = [ ];
+            example = literalExpression ''
+              [
+                {
+                  mode = "PWM";
+                }
+                {
+                  mode = "Manual";
+                  speed = 100;
+                }
+                {
+                  mode = "Manual";
+                  speed = 54;
+                }
+                {
+                  mode = "Manual";
+                  speed = 0;
+                }
+              ]
+            '';
+            description = mdDoc "List of channels connected to the controller.";
+            type = types.listOf (types.submodule {
+              options = {
+                mode = mkOption {
+                  type = types.enum [ "Manual" "PWM" ];
+                  default = "Manual";
+                  example = "PWM";
+                  description = mdDoc "\"PWM\" to enable PWM sync. \"Manual\" to set speed.";
+                };
+                speed = mkOption {
+                  type = types.int;
+                  default = "50";
+                  example = "100";
+                  description = mdDoc "Fan speed as percentage (clamped between 0 and 100).";
+                };
+              };
+            });
+          };
+        };
+      });
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.etc."uni-sync/uni-sync.json".text = mkIf (cfg.devices != [ ]) (builtins.toJSON { configs = cfg.devices; });
+
+    environment.systemPackages = [ cfg.package ];
+    services.udev.packages = [ cfg.package ];
+  };
+}
diff --git a/nixos/modules/i18n/input-method/default.md b/nixos/modules/i18n/input-method/default.md
index 42cb8a8d7b6a7..6d12462b788e4 100644
--- a/nixos/modules/i18n/input-method/default.md
+++ b/nixos/modules/i18n/input-method/default.md
@@ -22,11 +22,13 @@ friendly input method user interface.
 
 The following snippet can be used to configure IBus:
 
-```
-i18n.inputMethod = {
-  enabled = "ibus";
-  ibus.engines = with pkgs.ibus-engines; [ anthy hangul mozc ];
-};
+```nix
+{
+  i18n.inputMethod = {
+    enabled = "ibus";
+    ibus.engines = with pkgs.ibus-engines; [ anthy hangul mozc ];
+  };
+}
 ```
 
 `i18n.inputMethod.ibus.engines` is optional and can be used
@@ -48,8 +50,10 @@ Available extra IBus engines are:
     methods, it must appear in the list of engines along with
     `table`. For example:
 
-    ```
-    ibus.engines = with pkgs.ibus-engines; [ table table-others ];
+    ```nix
+    {
+      ibus.engines = with pkgs.ibus-engines; [ table table-others ];
+    }
     ```
 
 To use any input method, the package must be added in the configuration, as
@@ -74,11 +78,13 @@ built-in Input Method Engine, Pinyin, QuWei and Table-based input methods.
 
 The following snippet can be used to configure Fcitx:
 
-```
-i18n.inputMethod = {
-  enabled = "fcitx5";
-  fcitx5.addons = with pkgs; [ fcitx5-mozc fcitx5-hangul fcitx5-m17n ];
-};
+```nix
+{
+  i18n.inputMethod = {
+    enabled = "fcitx5";
+    fcitx5.addons = with pkgs; [ fcitx5-mozc fcitx5-hangul fcitx5-m17n ];
+  };
+}
 ```
 
 `i18n.inputMethod.fcitx5.addons` is optional and can be
@@ -110,10 +116,12 @@ phonetic Korean characters (hangul) and pictographic Korean characters
 
 The following snippet can be used to configure Nabi:
 
-```
-i18n.inputMethod = {
-  enabled = "nabi";
-};
+```nix
+{
+  i18n.inputMethod = {
+    enabled = "nabi";
+  };
+}
 ```
 
 ## Uim {#module-services-input-methods-uim}
@@ -123,10 +131,12 @@ framework. Applications can use it through so-called bridges.
 
 The following snippet can be used to configure uim:
 
-```
-i18n.inputMethod = {
-  enabled = "uim";
-};
+```nix
+{
+  i18n.inputMethod = {
+    enabled = "uim";
+  };
+}
 ```
 
 Note: The [](#opt-i18n.inputMethod.uim.toolbar) option can be
@@ -141,10 +151,12 @@ etc...
 
 The following snippet can be used to configure Hime:
 
-```
-i18n.inputMethod = {
-  enabled = "hime";
-};
+```nix
+{
+  i18n.inputMethod = {
+    enabled = "hime";
+  };
+}
 ```
 
 ## Kime {#module-services-input-methods-kime}
@@ -153,8 +165,10 @@ Kime is Korean IME. it's built with Rust language and let you get simple, safe,
 
 The following snippet can be used to configure Kime:
 
-```
-i18n.inputMethod = {
-  enabled = "kime";
-};
+```nix
+{
+  i18n.inputMethod = {
+    enabled = "kime";
+  };
+}
 ```
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index d45675d2a3924..0a15360f6ea50 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -98,6 +98,7 @@
   ./hardware/tuxedo-keyboard.nix
   ./hardware/ubertooth.nix
   ./hardware/uinput.nix
+  ./hardware/uni-sync.nix
   ./hardware/usb-modeswitch.nix
   ./hardware/usb-storage.nix
   ./hardware/video/amdgpu-pro.nix
@@ -193,6 +194,7 @@
   ./programs/gnome-disks.nix
   ./programs/gnome-terminal.nix
   ./programs/gnupg.nix
+  ./programs/goldwarden.nix
   ./programs/gpaste.nix
   ./programs/gphoto2.nix
   ./programs/haguichi.nix
@@ -330,6 +332,7 @@
   ./security/systemd-confinement.nix
   ./security/tpm2.nix
   ./security/wrappers/default.nix
+  ./services/admin/docuum.nix
   ./services/admin/meshcentral.nix
   ./services/admin/oxidized.nix
   ./services/admin/pgadmin.nix
@@ -361,9 +364,6 @@
   ./services/audio/spotifyd.nix
   ./services/audio/squeezelite.nix
   ./services/audio/tts.nix
-  ./services/audio/wyoming/faster-whisper.nix
-  ./services/audio/wyoming/openwakeword.nix
-  ./services/audio/wyoming/piper.nix
   ./services/audio/ympd.nix
   ./services/backup/automysqlbackup.nix
   ./services/backup/bacula.nix
@@ -586,8 +586,11 @@
   ./services/home-automation/evcc.nix
   ./services/home-automation/govee2mqtt.nix
   ./services/home-automation/home-assistant.nix
-  ./services/home-automation/homeassistant-satellite.nix
   ./services/home-automation/matter-server.nix
+  ./services/home-automation/wyoming/faster-whisper.nix
+  ./services/home-automation/wyoming/openwakeword.nix
+  ./services/home-automation/wyoming/piper.nix
+  ./services/home-automation/wyoming/satellite.nix
   ./services/home-automation/zigbee2mqtt.nix
   ./services/home-automation/zwave-js.nix
   ./services/logging/SystemdJournal2Gelf.nix
@@ -711,6 +714,7 @@
   ./services/misc/homepage-dashboard.nix
   ./services/misc/ihaskell.nix
   ./services/misc/input-remapper.nix
+  ./services/misc/invidious-router.nix
   ./services/misc/irkerd.nix
   ./services/misc/jackett.nix
   ./services/misc/jellyfin.nix
@@ -727,6 +731,7 @@
   ./services/misc/mbpfan.nix
   ./services/misc/mediatomb.nix
   ./services/misc/metabase.nix
+  ./services/misc/mollysocket.nix
   ./services/misc/moonraker.nix
   ./services/misc/mqtt2influxdb.nix
   ./services/misc/n8n.nix
@@ -795,6 +800,7 @@
   ./services/misc/tzupdate.nix
   ./services/misc/uhub.nix
   ./services/misc/weechat.nix
+  ./services/misc/workout-tracker.nix
   ./services/misc/xmr-stak.nix
   ./services/misc/xmrig.nix
   ./services/misc/zoneminder.nix
diff --git a/nixos/modules/programs/digitalbitbox/default.md b/nixos/modules/programs/digitalbitbox/default.md
index 9bca14e97ffef..5147bb971e3a0 100644
--- a/nixos/modules/programs/digitalbitbox/default.md
+++ b/nixos/modules/programs/digitalbitbox/default.md
@@ -4,8 +4,10 @@ Digital Bitbox is a hardware wallet and second-factor authenticator.
 
 The `digitalbitbox` programs module may be installed by setting
 `programs.digitalbitbox` to `true` in a manner similar to
-```
-programs.digitalbitbox.enable = true;
+```nix
+{
+  programs.digitalbitbox.enable = true;
+}
 ```
 and bundles the `digitalbitbox` package (see [](#sec-digitalbitbox-package)),
 which contains the `dbb-app` and `dbb-cli` binaries, along with the hardware
@@ -21,27 +23,33 @@ For more information, see <https://digitalbitbox.com/start_linux>.
 
 The binaries, `dbb-app` (a GUI tool) and `dbb-cli` (a CLI tool), are available
 through the `digitalbitbox` package which could be installed as follows:
-```
-environment.systemPackages = [
-  pkgs.digitalbitbox
-];
+```nix
+{
+  environment.systemPackages = [
+    pkgs.digitalbitbox
+  ];
+}
 ```
 
 ## Hardware {#sec-digitalbitbox-hardware-module}
 
 The digitalbitbox hardware package enables the udev rules for Digital Bitbox
 devices and may be installed as follows:
-```
-hardware.digitalbitbox.enable = true;
+```nix
+{
+  hardware.digitalbitbox.enable = true;
+}
 ```
 
 In order to alter the udev rules, one may provide different values for the
 `udevRule51` and `udevRule52` attributes by means of overriding as follows:
-```
-programs.digitalbitbox = {
-  enable = true;
-  package = pkgs.digitalbitbox.override {
-    udevRule51 = "something else";
+```nix
+{
+  programs.digitalbitbox = {
+    enable = true;
+    package = pkgs.digitalbitbox.override {
+      udevRule51 = "something else";
+    };
   };
-};
+}
 ```
diff --git a/nixos/modules/programs/goldwarden.nix b/nixos/modules/programs/goldwarden.nix
new file mode 100644
index 0000000000000..26f9a87c1986f
--- /dev/null
+++ b/nixos/modules/programs/goldwarden.nix
@@ -0,0 +1,50 @@
+{ lib, config, pkgs, ... }:
+let
+  cfg = config.programs.goldwarden;
+in
+{
+  options.programs.goldwarden = {
+    enable = lib.mkEnableOption "Goldwarden";
+    package = lib.mkPackageOption pkgs "goldwarden" {};
+    useSshAgent = lib.mkEnableOption "Goldwarden's SSH Agent" // { default = true; };
+  };
+
+  config = lib.mkIf cfg.enable {
+    assertions = [{
+       assertion = cfg.useSshAgent -> !config.programs.ssh.startAgent;
+       message = "Only one ssh-agent can be used at a time.";
+    }];
+
+    environment = {
+      etc = lib.mkIf config.programs.chromium.enable {
+        "chromium/native-messaging-hosts/com.8bit.bitwarden.json".source = "${cfg.package}/etc/chromium/native-messaging-hosts/com.8bit.bitwarden.json";
+        "opt/chrome/native-messaging-hosts/com.8bit.bitwarden.json".source = "${cfg.package}/etc/chrome/native-messaging-hosts/com.8bit.bitwarden.json";
+      };
+
+      extraInit = lib.mkIf cfg.useSshAgent ''
+        if [ -z "$SSH_AUTH_SOCK" -a -n "$HOME" ]; then
+          export SSH_AUTH_SOCK="$HOME/.goldwarden-ssh-agent.sock"
+        fi
+      '';
+
+      systemPackages = [
+        # for cli and polkit action
+        cfg.package
+        # binary exec's into pinentry which should match the DE
+        config.programs.gnupg.agent.pinentryPackage
+      ];
+    };
+
+    programs.firefox.nativeMessagingHosts.packages = [ cfg.package ];
+
+    # see https://github.com/quexten/goldwarden/blob/main/cmd/goldwarden.service
+    systemd.user.services.goldwarden = {
+      description = "Goldwarden daemon";
+      wantedBy = [ "graphical-session.target" ];
+      after = [ "graphical-session.target" ];
+      serviceConfig.ExecStart = "${lib.getExe cfg.package} daemonize";
+      path = [ config.programs.gnupg.agent.pinentryPackage ];
+      unitConfig.ConditionUser = "!@system";
+    };
+  };
+}
diff --git a/nixos/modules/programs/nix-ld.nix b/nixos/modules/programs/nix-ld.nix
index 6f36ce33640cd..b095437733cce 100644
--- a/nixos/modules/programs/nix-ld.nix
+++ b/nixos/modules/programs/nix-ld.nix
@@ -3,7 +3,7 @@ let
   cfg = config.programs.nix-ld;
 
   nix-ld-libraries = pkgs.buildEnv {
-    name = "lb-library-path";
+    name = "ld-library-path";
     pathsToLink = [ "/lib" ];
     paths = map lib.getLib cfg.libraries;
     # TODO make glibc here configurable?
@@ -13,25 +13,6 @@ let
     extraPrefix = "/share/nix-ld";
     ignoreCollisions = true;
   };
-
-  # We currently take all libraries from systemd and nix as the default.
-  # Is there a better list?
-  baseLibraries = with pkgs; [
-    zlib
-    zstd
-    stdenv.cc.cc
-    curl
-    openssl
-    attr
-    libssh
-    bzip2
-    libxml2
-    acl
-    libsodium
-    util-linux
-    xz
-    systemd
-  ];
 in
 {
   meta.maintainers = [ lib.maintainers.mic92 ];
@@ -41,7 +22,7 @@ in
     libraries = lib.mkOption {
       type = lib.types.listOf lib.types.package;
       description = lib.mdDoc "Libraries that automatically become available to all programs. The default set includes common libraries.";
-      default = baseLibraries;
+      default = [ ];
       defaultText = lib.literalExpression "baseLibraries derived from systemd and nix dependencies.";
     };
   };
@@ -57,5 +38,24 @@ in
       NIX_LD = "/run/current-system/sw/share/nix-ld/lib/ld.so";
       NIX_LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
     };
+
+    # We currently take all libraries from systemd and nix as the default.
+    # Is there a better list?
+    programs.nix-ld.libraries = with pkgs; [
+      zlib
+      zstd
+      stdenv.cc.cc
+      curl
+      openssl
+      attr
+      libssh
+      bzip2
+      libxml2
+      acl
+      libsodium
+      util-linux
+      xz
+      systemd
+    ];
   };
 }
diff --git a/nixos/modules/programs/partition-manager.nix b/nixos/modules/programs/partition-manager.nix
index cf0491ff028fc..63b637f9952b8 100644
--- a/nixos/modules/programs/partition-manager.nix
+++ b/nixos/modules/programs/partition-manager.nix
@@ -1,19 +1,21 @@
 { config, lib, pkgs, ... }:
 
-with lib;
+let
+  cfg = config.programs.partition-manager;
+in {
+  meta.maintainers = [ lib.maintainers.oxalica ];
 
-{
-  meta.maintainers = [ maintainers.oxalica ];
-
-  ###### interface
   options = {
-    programs.partition-manager.enable = mkEnableOption (lib.mdDoc "KDE Partition Manager");
+    programs.partition-manager = {
+      enable = lib.mkEnableOption (lib.mdDoc "KDE Partition Manager");
+
+      package = lib.mkPackageOption pkgs [ "libsForQt5" "partitionmanager" ] { };
+    };
   };
 
-  ###### implementation
-  config = mkIf config.programs.partition-manager.enable {
-    services.dbus.packages = [ pkgs.libsForQt5.kpmcore ];
+  config = lib.mkIf config.programs.partition-manager.enable {
+    services.dbus.packages = [ cfg.package.kpmcore ];
     # `kpmcore` need to be installed to pull in polkit actions.
-    environment.systemPackages = [ pkgs.libsForQt5.kpmcore pkgs.libsForQt5.partitionmanager ];
+    environment.systemPackages = [ cfg.package.kpmcore cfg.package ];
   };
 }
diff --git a/nixos/modules/programs/plotinus.md b/nixos/modules/programs/plotinus.md
index fac3bbad1e085..0a2c688c722c3 100644
--- a/nixos/modules/programs/plotinus.md
+++ b/nixos/modules/programs/plotinus.md
@@ -12,6 +12,8 @@ palette provides a searchable list of of all menu items in the application.
 
 To enable Plotinus, add the following to your
 {file}`configuration.nix`:
-```
-programs.plotinus.enable = true;
+```nix
+{
+  programs.plotinus.enable = true;
+}
 ```
diff --git a/nixos/modules/programs/zsh/oh-my-zsh.md b/nixos/modules/programs/zsh/oh-my-zsh.md
index 6a310006edbfc..7e4a41641eeaa 100644
--- a/nixos/modules/programs/zsh/oh-my-zsh.md
+++ b/nixos/modules/programs/zsh/oh-my-zsh.md
@@ -9,7 +9,7 @@ prompt themes.
 The module uses the `oh-my-zsh` package with all available
 features. The initial setup using Nix expressions is fairly similar to the
 configuration format of `oh-my-zsh`.
-```
+```nix
 {
   programs.zsh.ohMyZsh = {
     enable = true;
@@ -33,7 +33,7 @@ environment variable for this which points to a directory with additional
 scripts.
 
 The module can do this as well:
-```
+```nix
 {
   programs.zsh.ohMyZsh.custom = "~/path/to/custom/scripts";
 }
@@ -48,7 +48,7 @@ which bundles completion scripts and a plugin for `oh-my-zsh`.
 
 Rather than using a single mutable path for `ZSH_CUSTOM`,
 it's also possible to generate this path from a list of Nix packages:
-```
+```nix
 { pkgs, ... }:
 {
   programs.zsh.ohMyZsh.customPkgs = [
@@ -89,7 +89,7 @@ If third-party customizations (e.g. new themes) are supposed to be added to
     [upstream repo.](https://github.com/robbyrussell/oh-my-zsh/tree/91b771914bc7c43dd7c7a43b586c5de2c225ceb7/plugins)
 
 A derivation for `oh-my-zsh` may look like this:
-```
+```nix
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 0a975fcd98c8c..8e30e401c792e 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -62,6 +62,7 @@ in
     (mkRemovedOptionModule [ "services" "fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed")
     (mkRemovedOptionModule [ "services" "fprot" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed")
+    (mkRemovedOptionModule [ "services" "homeassistant-satellite"] "The `services.homeassistant-satellite` module has been replaced by `services.wyoming-satellite`.")
     (mkRemovedOptionModule [ "services" "ihatemoney" ] "The ihatemoney module has been removed for lack of downstream maintainer")
     (mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "mailpile" ] "The corresponding package was removed from nixpkgs.")
diff --git a/nixos/modules/security/acme/default.md b/nixos/modules/security/acme/default.md
index 38fbfbf0caece..a6ef2a3fdf18c 100644
--- a/nixos/modules/security/acme/default.md
+++ b/nixos/modules/security/acme/default.md
@@ -46,33 +46,35 @@ certs are overwritten when the ACME certs arrive. For
 `foo.example.com` the config would look like this:
 
 ```nix
-security.acme.acceptTerms = true;
-security.acme.defaults.email = "admin+acme@example.com";
-services.nginx = {
-  enable = true;
-  virtualHosts = {
-    "foo.example.com" = {
-      forceSSL = true;
-      enableACME = true;
-      # All serverAliases will be added as extra domain names on the certificate.
-      serverAliases = [ "bar.example.com" ];
-      locations."/" = {
-        root = "/var/www";
+{
+  security.acme.acceptTerms = true;
+  security.acme.defaults.email = "admin+acme@example.com";
+  services.nginx = {
+    enable = true;
+    virtualHosts = {
+      "foo.example.com" = {
+        forceSSL = true;
+        enableACME = true;
+        # All serverAliases will be added as extra domain names on the certificate.
+        serverAliases = [ "bar.example.com" ];
+        locations."/" = {
+          root = "/var/www";
+        };
       };
-    };
 
-    # We can also add a different vhost and reuse the same certificate
-    # but we have to append extraDomainNames manually beforehand:
-    # security.acme.certs."foo.example.com".extraDomainNames = [ "baz.example.com" ];
-    "baz.example.com" = {
-      forceSSL = true;
-      useACMEHost = "foo.example.com";
-      locations."/" = {
-        root = "/var/www";
+      # We can also add a different vhost and reuse the same certificate
+      # but we have to append extraDomainNames manually beforehand:
+      # security.acme.certs."foo.example.com".extraDomainNames = [ "baz.example.com" ];
+      "baz.example.com" = {
+        forceSSL = true;
+        useACMEHost = "foo.example.com";
+        locations."/" = {
+          root = "/var/www";
+        };
       };
     };
   };
-};
+}
 ```
 
 ## Using ACME certificates in Apache/httpd {#module-security-acme-httpd}
@@ -89,65 +91,69 @@ the intent that you will generate certs for all your vhosts and redirect
 everyone to HTTPS.
 
 ```nix
-security.acme.acceptTerms = true;
-security.acme.defaults.email = "admin+acme@example.com";
-
-# /var/lib/acme/.challenges must be writable by the ACME user
-# and readable by the Nginx user. The easiest way to achieve
-# this is to add the Nginx user to the ACME group.
-users.users.nginx.extraGroups = [ "acme" ];
-
-services.nginx = {
-  enable = true;
-  virtualHosts = {
-    "acmechallenge.example.com" = {
-      # Catchall vhost, will redirect users to HTTPS for all vhosts
-      serverAliases = [ "*.example.com" ];
-      locations."/.well-known/acme-challenge" = {
-        root = "/var/lib/acme/.challenges";
-      };
-      locations."/" = {
-        return = "301 https://$host$request_uri";
+{
+  security.acme.acceptTerms = true;
+  security.acme.defaults.email = "admin+acme@example.com";
+
+  # /var/lib/acme/.challenges must be writable by the ACME user
+  # and readable by the Nginx user. The easiest way to achieve
+  # this is to add the Nginx user to the ACME group.
+  users.users.nginx.extraGroups = [ "acme" ];
+
+  services.nginx = {
+    enable = true;
+    virtualHosts = {
+      "acmechallenge.example.com" = {
+        # Catchall vhost, will redirect users to HTTPS for all vhosts
+        serverAliases = [ "*.example.com" ];
+        locations."/.well-known/acme-challenge" = {
+          root = "/var/lib/acme/.challenges";
+        };
+        locations."/" = {
+          return = "301 https://$host$request_uri";
+        };
       };
     };
   };
-};
-# Alternative config for Apache
-users.users.wwwrun.extraGroups = [ "acme" ];
-services.httpd = {
-  enable = true;
-  virtualHosts = {
-    "acmechallenge.example.com" = {
-      # Catchall vhost, will redirect users to HTTPS for all vhosts
-      serverAliases = [ "*.example.com" ];
-      # /var/lib/acme/.challenges must be writable by the ACME user and readable by the Apache user.
-      # By default, this is the case.
-      documentRoot = "/var/lib/acme/.challenges";
-      extraConfig = ''
-        RewriteEngine On
-        RewriteCond %{HTTPS} off
-        RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge [NC]
-        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
-      '';
+  # Alternative config for Apache
+  users.users.wwwrun.extraGroups = [ "acme" ];
+  services.httpd = {
+    enable = true;
+    virtualHosts = {
+      "acmechallenge.example.com" = {
+        # Catchall vhost, will redirect users to HTTPS for all vhosts
+        serverAliases = [ "*.example.com" ];
+        # /var/lib/acme/.challenges must be writable by the ACME user and readable by the Apache user.
+        # By default, this is the case.
+        documentRoot = "/var/lib/acme/.challenges";
+        extraConfig = ''
+          RewriteEngine On
+          RewriteCond %{HTTPS} off
+          RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge [NC]
+          RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
+        '';
+      };
     };
   };
-};
+}
 ```
 
 Now you need to configure ACME to generate a certificate.
 
 ```nix
-security.acme.certs."foo.example.com" = {
-  webroot = "/var/lib/acme/.challenges";
-  email = "foo@example.com";
-  # Ensure that the web server you use can read the generated certs
-  # Take a look at the group option for the web server you choose.
-  group = "nginx";
-  # Since we have a wildcard vhost to handle port 80,
-  # we can generate certs for anything!
-  # Just make sure your DNS resolves them.
-  extraDomainNames = [ "mail.example.com" ];
-};
+{
+  security.acme.certs."foo.example.com" = {
+    webroot = "/var/lib/acme/.challenges";
+    email = "foo@example.com";
+    # Ensure that the web server you use can read the generated certs
+    # Take a look at the group option for the web server you choose.
+    group = "nginx";
+    # Since we have a wildcard vhost to handle port 80,
+    # we can generate certs for anything!
+    # Just make sure your DNS resolves them.
+    extraDomainNames = [ "mail.example.com" ];
+  };
+}
 ```
 
 The private key {file}`key.pem` and certificate
@@ -168,31 +174,33 @@ for provider/server specific configuration values. For the sake of these
 docs, we will provide a fully self-hosted example using bind.
 
 ```nix
-services.bind = {
-  enable = true;
-  extraConfig = ''
-    include "/var/lib/secrets/dnskeys.conf";
-  '';
-  zones = [
-    rec {
-      name = "example.com";
-      file = "/var/db/bind/${name}";
-      master = true;
-      extraConfig = "allow-update { key rfc2136key.example.com.; };";
-    }
-  ];
-};
-
-# Now we can configure ACME
-security.acme.acceptTerms = true;
-security.acme.defaults.email = "admin+acme@example.com";
-security.acme.certs."example.com" = {
-  domain = "*.example.com";
-  dnsProvider = "rfc2136";
-  environmentFile = "/var/lib/secrets/certs.secret";
-  # We don't need to wait for propagation since this is a local DNS server
-  dnsPropagationCheck = false;
-};
+{
+  services.bind = {
+    enable = true;
+    extraConfig = ''
+      include "/var/lib/secrets/dnskeys.conf";
+    '';
+    zones = [
+      rec {
+        name = "example.com";
+        file = "/var/db/bind/${name}";
+        master = true;
+        extraConfig = "allow-update { key rfc2136key.example.com.; };";
+      }
+    ];
+  };
+
+  # Now we can configure ACME
+  security.acme.acceptTerms = true;
+  security.acme.defaults.email = "admin+acme@example.com";
+  security.acme.certs."example.com" = {
+    domain = "*.example.com";
+    dnsProvider = "rfc2136";
+    environmentFile = "/var/lib/secrets/certs.secret";
+    # We don't need to wait for propagation since this is a local DNS server
+    dnsPropagationCheck = false;
+  };
+}
 ```
 
 The {file}`dnskeys.conf` and {file}`certs.secret`
@@ -200,36 +208,38 @@ must be kept secure and thus you should not keep their contents in your
 Nix config. Instead, generate them one time with a systemd service:
 
 ```nix
-systemd.services.dns-rfc2136-conf = {
-  requiredBy = ["acme-example.com.service" "bind.service"];
-  before = ["acme-example.com.service" "bind.service"];
-  unitConfig = {
-    ConditionPathExists = "!/var/lib/secrets/dnskeys.conf";
-  };
-  serviceConfig = {
-    Type = "oneshot";
-    UMask = 0077;
+{
+  systemd.services.dns-rfc2136-conf = {
+    requiredBy = ["acme-example.com.service" "bind.service"];
+    before = ["acme-example.com.service" "bind.service"];
+    unitConfig = {
+      ConditionPathExists = "!/var/lib/secrets/dnskeys.conf";
+    };
+    serviceConfig = {
+      Type = "oneshot";
+      UMask = 0077;
+    };
+    path = [ pkgs.bind ];
+    script = ''
+      mkdir -p /var/lib/secrets
+      chmod 755 /var/lib/secrets
+      tsig-keygen rfc2136key.example.com > /var/lib/secrets/dnskeys.conf
+      chown named:root /var/lib/secrets/dnskeys.conf
+      chmod 400 /var/lib/secrets/dnskeys.conf
+
+      # extract secret value from the dnskeys.conf
+      while read x y; do if [ "$x" = "secret" ]; then secret="''${y:1:''${#y}-3}"; fi; done < /var/lib/secrets/dnskeys.conf
+
+      cat > /var/lib/secrets/certs.secret << EOF
+      RFC2136_NAMESERVER='127.0.0.1:53'
+      RFC2136_TSIG_ALGORITHM='hmac-sha256.'
+      RFC2136_TSIG_KEY='rfc2136key.example.com'
+      RFC2136_TSIG_SECRET='$secret'
+      EOF
+      chmod 400 /var/lib/secrets/certs.secret
+    '';
   };
-  path = [ pkgs.bind ];
-  script = ''
-    mkdir -p /var/lib/secrets
-    chmod 755 /var/lib/secrets
-    tsig-keygen rfc2136key.example.com > /var/lib/secrets/dnskeys.conf
-    chown named:root /var/lib/secrets/dnskeys.conf
-    chmod 400 /var/lib/secrets/dnskeys.conf
-
-    # extract secret value from the dnskeys.conf
-    while read x y; do if [ "$x" = "secret" ]; then secret="''${y:1:''${#y}-3}"; fi; done < /var/lib/secrets/dnskeys.conf
-
-    cat > /var/lib/secrets/certs.secret << EOF
-    RFC2136_NAMESERVER='127.0.0.1:53'
-    RFC2136_TSIG_ALGORITHM='hmac-sha256.'
-    RFC2136_TSIG_KEY='rfc2136key.example.com'
-    RFC2136_TSIG_SECRET='$secret'
-    EOF
-    chmod 400 /var/lib/secrets/certs.secret
-  '';
-};
+}
 ```
 
 Now you're all set to generate certs! You should monitor the first invocation
@@ -251,27 +261,29 @@ you will set them as defaults
 (e.g. [](#opt-security.acme.defaults.dnsProvider)).
 
 ```nix
-# Configure ACME appropriately
-security.acme.acceptTerms = true;
-security.acme.defaults.email = "admin+acme@example.com";
-security.acme.defaults = {
-  dnsProvider = "rfc2136";
-  environmentFile = "/var/lib/secrets/certs.secret";
-  # We don't need to wait for propagation since this is a local DNS server
-  dnsPropagationCheck = false;
-};
-
-# For each virtual host you would like to use DNS-01 validation with,
-# set acmeRoot = null
-services.nginx = {
-  enable = true;
-  virtualHosts = {
-    "foo.example.com" = {
-      enableACME = true;
-      acmeRoot = null;
+{
+  # Configure ACME appropriately
+  security.acme.acceptTerms = true;
+  security.acme.defaults.email = "admin+acme@example.com";
+  security.acme.defaults = {
+    dnsProvider = "rfc2136";
+    environmentFile = "/var/lib/secrets/certs.secret";
+    # We don't need to wait for propagation since this is a local DNS server
+    dnsPropagationCheck = false;
+  };
+
+  # For each virtual host you would like to use DNS-01 validation with,
+  # set acmeRoot = null
+  services.nginx = {
+    enable = true;
+    virtualHosts = {
+      "foo.example.com" = {
+        enableACME = true;
+        acmeRoot = null;
+      };
     };
   };
-};
+}
 ```
 
 And that's it! Next time your configuration is rebuilt, or when
@@ -288,39 +300,41 @@ Below is an example configuration for OpenSMTPD, but this pattern
 can be applied to any service.
 
 ```nix
-# Configure ACME however you like (DNS or HTTP validation), adding
-# the following configuration for the relevant certificate.
-# Note: You cannot use `systemctl reload` here as that would mean
-# the LoadCredential configuration below would be skipped and
-# the service would continue to use old certificates.
-security.acme.certs."mail.example.com".postRun = ''
-  systemctl restart opensmtpd
-'';
-
-# Now you must augment OpenSMTPD's systemd service to load
-# the certificate files.
-systemd.services.opensmtpd.requires = ["acme-finished-mail.example.com.target"];
-systemd.services.opensmtpd.serviceConfig.LoadCredential = let
-  certDir = config.security.acme.certs."mail.example.com".directory;
-in [
-  "cert.pem:${certDir}/cert.pem"
-  "key.pem:${certDir}/key.pem"
-];
-
-# Finally, configure OpenSMTPD to use these certs.
-services.opensmtpd = let
-  credsDir = "/run/credentials/opensmtpd.service";
-in {
-  enable = true;
-  setSendmail = false;
-  serverConfiguration = ''
-    pki mail.example.com cert "${credsDir}/cert.pem"
-    pki mail.example.com key "${credsDir}/key.pem"
-    listen on localhost tls pki mail.example.com
-    action act1 relay host smtp://127.0.0.1:10027
-    match for local action act1
+{
+  # Configure ACME however you like (DNS or HTTP validation), adding
+  # the following configuration for the relevant certificate.
+  # Note: You cannot use `systemctl reload` here as that would mean
+  # the LoadCredential configuration below would be skipped and
+  # the service would continue to use old certificates.
+  security.acme.certs."mail.example.com".postRun = ''
+    systemctl restart opensmtpd
   '';
-};
+
+  # Now you must augment OpenSMTPD's systemd service to load
+  # the certificate files.
+  systemd.services.opensmtpd.requires = ["acme-finished-mail.example.com.target"];
+  systemd.services.opensmtpd.serviceConfig.LoadCredential = let
+    certDir = config.security.acme.certs."mail.example.com".directory;
+  in [
+    "cert.pem:${certDir}/cert.pem"
+    "key.pem:${certDir}/key.pem"
+  ];
+
+  # Finally, configure OpenSMTPD to use these certs.
+  services.opensmtpd = let
+    credsDir = "/run/credentials/opensmtpd.service";
+  in {
+    enable = true;
+    setSendmail = false;
+    serverConfiguration = ''
+      pki mail.example.com cert "${credsDir}/cert.pem"
+      pki mail.example.com key "${credsDir}/key.pem"
+      listen on localhost tls pki mail.example.com
+      action act1 relay host smtp://127.0.0.1:10027
+      match for local action act1
+    '';
+  };
+}
 ```
 
 ## Regenerating certificates {#module-security-acme-regenerate}
diff --git a/nixos/modules/services/admin/docuum.nix b/nixos/modules/services/admin/docuum.nix
new file mode 100644
index 0000000000000..6f6cd4e027337
--- /dev/null
+++ b/nixos/modules/services/admin/docuum.nix
@@ -0,0 +1,45 @@
+{ config, pkgs, lib, utils, ... }:
+
+let
+  cfg = config.services.docuum;
+  inherit (lib) mkIf mkEnableOption mkOption getExe types;
+in
+{
+  options.services.docuum = {
+    enable = mkEnableOption "docuum daemon";
+
+    threshold = mkOption {
+      description = "Threshold for deletion in bytes, like `10 GB`, `10 GiB`, `10GB` or percentage-based thresholds like `50%`";
+      type = types.str;
+      default = "10 GB";
+      example = "50%";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = config.virtualisation.docker.enable;
+        message = "docuum requires docker on the host";
+      }
+    ];
+
+    systemd.services.docuum = {
+      after = [ "docker.socket" ];
+      requires = [ "docker.socket" ];
+      wantedBy = [ "multi-user.target" ];
+      path = [ config.virtualisation.docker.package ];
+      environment.HOME = "/var/lib/docuum";
+
+      serviceConfig = {
+        DynamicUser = true;
+        StateDirectory = "docuum";
+        SupplementaryGroups = [ "docker" ];
+        ExecStart = utils.escapeSystemdExecArgs [
+          (getExe pkgs.docuum)
+          "--threshold" cfg.threshold
+        ];
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/audio/castopod.md b/nixos/modules/services/audio/castopod.md
index ee8590737a7c7..40838cc77aa6a 100644
--- a/nixos/modules/services/audio/castopod.md
+++ b/nixos/modules/services/audio/castopod.md
@@ -7,16 +7,18 @@ Castopod is an open-source hosting platform made for podcasters who want to enga
 Use the following configuration to start a public instance of Castopod on `castopod.example.com` domain:
 
 ```nix
-networking.firewall.allowedTCPPorts = [ 80 443 ];
-services.castopod = {
-  enable = true;
-  database.createLocally = true;
-  nginx.virtualHost = {
-    serverName = "castopod.example.com";
-    enableACME = true;
-    forceSSL = true;
+{
+  networking.firewall.allowedTCPPorts = [ 80 443 ];
+  services.castopod = {
+    enable = true;
+    database.createLocally = true;
+    nginx.virtualHost = {
+      serverName = "castopod.example.com";
+      enableACME = true;
+      forceSSL = true;
+    };
   };
-};
+}
 ```
 
 Go to `https://castopod.example.com/cp-install` to create superadmin account after applying the above configuration.
diff --git a/nixos/modules/services/audio/roon-server.nix b/nixos/modules/services/audio/roon-server.nix
index 8691c08b0d365..8a6cf6ec6a419 100644
--- a/nixos/modules/services/audio/roon-server.nix
+++ b/nixos/modules/services/audio/roon-server.nix
@@ -9,6 +9,7 @@ in {
   options = {
     services.roon-server = {
       enable = mkEnableOption (lib.mdDoc "Roon Server");
+      package = lib.mkPackageOption pkgs "roon-server" { };
       openFirewall = mkOption {
         type = types.bool;
         default = false;
@@ -43,7 +44,7 @@ in {
       environment.ROON_ID_DIR = "/var/lib/${name}";
 
       serviceConfig = {
-        ExecStart = "${pkgs.roon-server}/bin/RoonServer";
+        ExecStart = "${lib.getExe cfg.package}";
         LimitNOFILE = 8192;
         User = cfg.user;
         Group = cfg.group;
diff --git a/nixos/modules/services/backup/borgbackup.md b/nixos/modules/services/backup/borgbackup.md
index 39141f6ec8587..2c91174732e1f 100644
--- a/nixos/modules/services/backup/borgbackup.md
+++ b/nixos/modules/services/backup/borgbackup.md
@@ -21,22 +21,21 @@ A complete list of options for the Borgbase module may be found
 ## Basic usage for a local backup {#opt-services-backup-borgbackup-local-directory}
 
 A very basic configuration for backing up to a locally accessible directory is:
-```
+```nix
 {
     opt.services.borgbackup.jobs = {
-      { rootBackup = {
-          paths = "/";
-          exclude = [ "/nix" "/path/to/local/repo" ];
-          repo = "/path/to/local/repo";
-          doInit = true;
-          encryption = {
-            mode = "repokey";
-            passphrase = "secret";
-          };
-          compression = "auto,lzma";
-          startAt = "weekly";
+      rootBackup = {
+        paths = "/";
+        exclude = [ "/nix" "/path/to/local/repo" ];
+        repo = "/path/to/local/repo";
+        doInit = true;
+        encryption = {
+          mode = "repokey";
+          passphrase = "secret";
         };
-      }
+        compression = "auto,lzma";
+        startAt = "weekly";
+      };
     };
 }
 ```
@@ -59,7 +58,7 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID78zmOyA+5uPG4Ot0hfAy+sLDPU1L4AiIoRYEIVbbQ/
 ```
 
 Add the following snippet to your NixOS configuration:
-```
+```nix
 {
   services.borgbackup.repos = {
     my_borg_repo = {
@@ -80,7 +79,7 @@ that you have stored a secret passphrasse in the file
 {file}`/run/keys/borgbackup_passphrase`, which should be only
 accessible by root
 
-```
+```nix
 {
   services.borgbackup.jobs = {
     backupToLocalServer = {
@@ -96,7 +95,7 @@ accessible by root
       startAt = "hourly";
     };
   };
-};
+}
 ```
 
 The following few commands (run as root) let you test your backup.
diff --git a/nixos/modules/services/databases/foundationdb.md b/nixos/modules/services/databases/foundationdb.md
index 0815c139152f3..9f7addc9c140c 100644
--- a/nixos/modules/services/databases/foundationdb.md
+++ b/nixos/modules/services/databases/foundationdb.md
@@ -15,9 +15,11 @@ key-value store.
 
 To enable FoundationDB, add the following to your
 {file}`configuration.nix`:
-```
-services.foundationdb.enable = true;
-services.foundationdb.package = pkgs.foundationdb71; # FoundationDB 7.1.x
+```nix
+{
+  services.foundationdb.enable = true;
+  services.foundationdb.package = pkgs.foundationdb71; # FoundationDB 7.1.x
+}
 ```
 
 The {option}`services.foundationdb.package` option is required, and
@@ -109,8 +111,10 @@ default configuration. See below for more on scaling to increase this.
 FoundationDB stores all data for all server processes under
 {file}`/var/lib/foundationdb`. You can override this using
 {option}`services.foundationdb.dataDir`, e.g.
-```
-services.foundationdb.dataDir = "/data/fdb";
+```nix
+{
+  services.foundationdb.dataDir = "/data/fdb";
+}
 ```
 
 Similarly, logs are stored under {file}`/var/log/foundationdb`
@@ -265,8 +269,10 @@ directories.
 For example, to create backups in {command}`/opt/fdb-backups`, first
 set up the paths in the module options:
 
-```
-services.foundationdb.extraReadWritePaths = [ "/opt/fdb-backups" ];
+```nix
+{
+  services.foundationdb.extraReadWritePaths = [ "/opt/fdb-backups" ];
+}
 ```
 
 Restart the FoundationDB service, and it will now be able to write to this
diff --git a/nixos/modules/services/databases/postgresql.md b/nixos/modules/services/databases/postgresql.md
index 3ff1f00fa9cfb..6cce8f542a532 100644
--- a/nixos/modules/services/databases/postgresql.md
+++ b/nixos/modules/services/databases/postgresql.md
@@ -15,9 +15,11 @@ PostgreSQL is an advanced, free relational database.
 ## Configuring {#module-services-postgres-configuring}
 
 To enable PostgreSQL, add the following to your {file}`configuration.nix`:
-```
-services.postgresql.enable = true;
-services.postgresql.package = pkgs.postgresql_15;
+```nix
+{
+  services.postgresql.enable = true;
+  services.postgresql.package = pkgs.postgresql_15;
+}
 ```
 Note that you are required to specify the desired version of PostgreSQL (e.g. `pkgs.postgresql_15`). Since upgrading your PostgreSQL version requires a database dump and reload (see below), NixOS cannot provide a default value for [](#opt-services.postgresql.package) such as the most recent release of PostgreSQL.
 
@@ -35,8 +37,10 @@ alice=>
 -->
 
 By default, PostgreSQL stores its databases in {file}`/var/lib/postgresql/$psqlSchema`. You can override this using [](#opt-services.postgresql.dataDir), e.g.
-```
-services.postgresql.dataDir = "/data/postgresql";
+```nix
+{
+  services.postgresql.dataDir = "/data/postgresql";
+}
 ```
 
 ## Initializing {#module-services-postgres-initializing}
@@ -95,16 +99,19 @@ databases from `ensureDatabases` and `extraUser1` from `ensureUsers`
 are already created.
 
 ```nix
+  {
     systemd.services.postgresql.postStart = lib.mkAfter ''
       $PSQL service1 -c 'GRANT SELECT ON ALL TABLES IN SCHEMA public TO "extraUser1"'
       $PSQL service1 -c 'GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO "extraUser1"'
       # ....
     '';
+  }
 ```
 
 ##### in intermediate oneshot service {#module-services-postgres-initializing-extra-permissions-superuser-oneshot}
 
 ```nix
+  {
     systemd.services."migrate-service1-db1" = {
       serviceConfig.Type = "oneshot";
       requiredBy = "service1.service";
@@ -119,6 +126,7 @@ are already created.
         # ....
       '';
     };
+  }
 ```
 
 #### as service user {#module-services-postgres-initializing-extra-permissions-service-user}
@@ -130,6 +138,7 @@ are already created.
 ##### in service `preStart` {#module-services-postgres-initializing-extra-permissions-service-user-pre-start}
 
 ```nix
+  {
     environment.PSQL = "psql --port=${toString services.postgresql.port}";
     path = [ postgresql ];
     systemd.services."service1".preStart = ''
@@ -137,11 +146,13 @@ are already created.
       $PSQL -c 'GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO "extraUser1"'
       # ....
     '';
+  }
 ```
 
 ##### in intermediate oneshot service {#module-services-postgres-initializing-extra-permissions-service-user-oneshot}
 
 ```nix
+  {
     systemd.services."migrate-service1-db1" = {
       serviceConfig.Type = "oneshot";
       requiredBy = "service1.service";
@@ -156,6 +167,7 @@ are already created.
         # ....
       '';
     };
+  }
 ```
 
 ## Upgrading {#module-services-postgres-upgrading}
@@ -174,7 +186,7 @@ $ nix-instantiate --eval -A postgresql_13.psqlSchema
 "13"
 ```
 For an upgrade, a script like this can be used to simplify the process:
-```
+```nix
 { config, pkgs, ... }:
 {
   environment.systemPackages = [
@@ -256,16 +268,18 @@ postgresql_15.pkgs.pg_partman        postgresql_15.pkgs.pgroonga
 ```
 
 To add plugins via NixOS configuration, set `services.postgresql.extraPlugins`:
-```
-services.postgresql.package = pkgs.postgresql_12;
-services.postgresql.extraPlugins = ps: with ps; [
-  pg_repack
-  postgis
-];
+```nix
+{
+  services.postgresql.package = pkgs.postgresql_12;
+  services.postgresql.extraPlugins = ps: with ps; [
+    pg_repack
+    postgis
+  ];
+}
 ```
 
 You can build custom PostgreSQL-with-plugins (to be used outside of NixOS) using function `.withPackages`. For example, creating a custom PostgreSQL package in an overlay can look like:
-```
+```nix
 self: super: {
   postgresql_custom = self.postgresql_12.withPackages (ps: [
     ps.pg_repack
@@ -275,7 +289,7 @@ self: super: {
 ```
 
 Here's a recipe on how to override a particular plugin through an overlay:
-```
+```nix
 self: super: {
   postgresql_15 = super.postgresql_15// {
     pkgs = super.postgresql_15.pkgs // {
diff --git a/nixos/modules/services/databases/tigerbeetle.md b/nixos/modules/services/databases/tigerbeetle.md
index 47394d4430598..12d920e7bcc77 100644
--- a/nixos/modules/services/databases/tigerbeetle.md
+++ b/nixos/modules/services/databases/tigerbeetle.md
@@ -7,8 +7,10 @@
 TigerBeetle is a distributed financial accounting database designed for mission critical safety and performance.
 
 To enable TigerBeetle, add the following to your {file}`configuration.nix`:
-```
+```nix
+{
   services.tigerbeetle.enable = true;
+}
 ```
 
 When first started, the TigerBeetle service will create its data file at {file}`/var/lib/tigerbeetle` unless the file already exists, in which case it will just use the existing file.
@@ -20,13 +22,15 @@ By default, TigerBeetle will only listen on a local interface.
 To configure it to listen on a different interface (and to configure it to connect to other replicas, if you're creating more than one), you'll have to set the `addresses` option.
 Note that the TigerBeetle module won't open any firewall ports automatically, so if you configure it to listen on an external interface, you'll need to ensure that connections can reach it:
 
-```
+```nix
+{
   services.tigerbeetle = {
     enable = true;
     addresses = [ "0.0.0.0:3001" ];
   };
 
   networking.firewall.allowedTCPPorts = [ 3001 ];
+}
 ```
 
 A complete list of options for TigerBeetle can be found [here](#opt-services.tigerbeetle.enable).
diff --git a/nixos/modules/services/desktop-managers/plasma6.nix b/nixos/modules/services/desktop-managers/plasma6.nix
index e20b431f0b58e..5f1f2cec79e8d 100644
--- a/nixos/modules/services/desktop-managers/plasma6.nix
+++ b/nixos/modules/services/desktop-managers/plasma6.nix
@@ -286,6 +286,7 @@ in {
     };
 
     programs.kdeconnect.package = kdePackages.kdeconnect-kde;
+    programs.partition-manager.package = kdePackages.partitionmanager;
 
     # FIXME: ugly hack. See #292632 for details.
     system.userActivationScripts.rebuildSycoca = activationScript;
diff --git a/nixos/modules/services/desktops/flatpak.md b/nixos/modules/services/desktops/flatpak.md
index af71d85b5a157..5299b32a03c7a 100644
--- a/nixos/modules/services/desktops/flatpak.md
+++ b/nixos/modules/services/desktops/flatpak.md
@@ -8,17 +8,21 @@ Flatpak is a system for building, distributing, and running sandboxed desktop
 applications on Linux.
 
 To enable Flatpak, add the following to your {file}`configuration.nix`:
-```
+```nix
+{
   services.flatpak.enable = true;
+}
 ```
 
 For the sandboxed apps to work correctly, desktop integration portals need to
 be installed. If you run GNOME, this will be handled automatically for you;
 in other cases, you will need to add something like the following to your
 {file}`configuration.nix`:
-```
+```nix
+{
   xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
   xdg.portal.config.common.default = "gtk";
+}
 ```
 
 Then, you will need to add a repository, for example,
diff --git a/nixos/modules/services/development/athens.md b/nixos/modules/services/development/athens.md
index 77663db509d59..2795930b0a029 100644
--- a/nixos/modules/services/development/athens.md
+++ b/nixos/modules/services/development/athens.md
@@ -18,7 +18,7 @@ A complete list of options for the Athens module may be found
 ## Basic usage for a caching proxy configuration {#opt-services-development-athens-caching-proxy}
 
 A very basic configuration for Athens that acts as a caching and forwarding HTTP proxy is:
-```
+```nix
 {
     services.athens = {
       enable = true;
@@ -28,7 +28,7 @@ A very basic configuration for Athens that acts as a caching and forwarding HTTP
 
 If you want to prevent Athens from writing to disk, you can instead configure it to cache modules only in memory:
 
-```
+```nix
 {
     services.athens = {
       enable = true;
@@ -39,10 +39,10 @@ If you want to prevent Athens from writing to disk, you can instead configure it
 
 To use the local proxy in Go builds, you can set the proxy as environment variable:
 
-```
+```nix
 {
   environment.variables = {
-    GOPROXY = "http://localhost:3000"
+    GOPROXY = "http://localhost:3000";
   };
 }
 ```
diff --git a/nixos/modules/services/development/blackfire.md b/nixos/modules/services/development/blackfire.md
index e2e7e4780c79c..5a7fbe68f7d28 100644
--- a/nixos/modules/services/development/blackfire.md
+++ b/nixos/modules/services/development/blackfire.md
@@ -7,7 +7,7 @@
 [Blackfire](https://blackfire.io) is a proprietary tool for profiling applications. There are several languages supported by the product but currently only PHP support is packaged in Nixpkgs. The back-end consists of a module that is loaded into the language runtime (called *probe*) and a service (*agent*) that the probe connects to and that sends the profiles to the server.
 
 To use it, you will need to enable the agent and the probe on your server. The exact method will depend on the way you use PHP but here is an example of NixOS configuration for PHP-FPM:
-```
+```nix
 let
   php = pkgs.php.withExtensions ({ enabled, all }: enabled ++ (with all; [
     blackfire
diff --git a/nixos/modules/services/development/livebook.md b/nixos/modules/services/development/livebook.md
index 5315f2c2755a0..aac9c58d081cd 100644
--- a/nixos/modules/services/development/livebook.md
+++ b/nixos/modules/services/development/livebook.md
@@ -9,7 +9,7 @@ Enabling the `livebook` service creates a user
 [`systemd`](https://www.freedesktop.org/wiki/Software/systemd/) unit
 which runs the server.
 
-```
+```nix
 { ... }:
 
 {
@@ -51,6 +51,8 @@ some features require additional packages.  For example, the machine
 learning Kinos require `gcc` and `gnumake`.  To add these, use
 `extraPackages`:
 
-```
-services.livebook.extraPackages = with pkgs; [ gcc gnumake ];
+```nix
+{
+  services.livebook.extraPackages = with pkgs; [ gcc gnumake ];
+}
 ```
diff --git a/nixos/modules/services/editors/emacs.md b/nixos/modules/services/editors/emacs.md
index 02f47b098d86c..885f927422bdc 100644
--- a/nixos/modules/services/editors/emacs.md
+++ b/nixos/modules/services/editors/emacs.md
@@ -178,7 +178,7 @@ file {file}`configuration.nix` to make it contain:
 ::: {.example #module-services-emacs-configuration-nix}
 ### Custom Emacs in `configuration.nix`
 
-```
+```nix
 {
  environment.systemPackages = [
    # [...]
@@ -203,7 +203,7 @@ adding it to your {file}`~/.config/nixpkgs/config.nix` (see
 ::: {.example #module-services-emacs-config-nix}
 ### Custom Emacs in `~/.config/nixpkgs/config.nix`
 
-```
+```nix
 {
   packageOverrides = super: let self = super.pkgs; in {
     myemacs = import ./emacs.nix { pkgs = self; };
@@ -228,7 +228,7 @@ only use {command}`emacsclient`), you can change your file
 ::: {.example #ex-emacsGtk3Nix}
 ### Custom Emacs build
 
-```
+```nix
 { pkgs ? import <nixpkgs> {} }:
 let
   myEmacs = (pkgs.emacs.override {
@@ -242,7 +242,7 @@ let
       rm $out/share/applications/emacs.desktop
     '';
   });
-in [...]
+in [ /* ... */ ]
 ```
 :::
 
@@ -262,8 +262,10 @@ with the user's login session.
 
 To install and enable the {command}`systemd` user service for Emacs
 daemon, add the following to your {file}`configuration.nix`:
-```
-services.emacs.enable = true;
+```nix
+{
+  services.emacs.enable = true;
+}
 ```
 
 The {var}`services.emacs.package` option allows a custom
@@ -323,9 +325,11 @@ In general, {command}`systemd` user services are globally enabled
 by symlinks in {file}`/etc/systemd/user`. In the case where
 Emacs daemon is not wanted for all users, it is possible to install the
 service but not globally enable it:
-```
-services.emacs.enable = false;
-services.emacs.install = true;
+```nix
+{
+  services.emacs.enable = false;
+  services.emacs.install = true;
+}
 ```
 
 To enable the {command}`systemd` user service for just the
diff --git a/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix b/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
index d29e0f542f55d..a4f93221475da 100644
--- a/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
+++ b/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
@@ -94,7 +94,7 @@ in
       { source = "${etcFiles}/etc/opt/brother/scanner/brscan5"; };
     environment.etc."opt/brother/scanner/models" =
       { source = "${etcFiles}/etc/opt/brother/scanner/brscan5/models"; };
-    environment.etc."sane.d/dll.d/brother5.conf".source = "${pkgs.brscan5}/etc/sane.d/dll.d/brother.conf";
+    environment.etc."sane.d/dll.d/brother5.conf".source = "${pkgs.brscan5}/etc/sane.d/dll.d/brother5.conf";
 
     assertions = [
       { assertion = all (x: !(null != x.ip && null != x.nodename)) netDeviceList;
diff --git a/nixos/modules/services/home-automation/homeassistant-satellite.nix b/nixos/modules/services/home-automation/homeassistant-satellite.nix
deleted file mode 100644
index 6ca428f2af818..0000000000000
--- a/nixos/modules/services/home-automation/homeassistant-satellite.nix
+++ /dev/null
@@ -1,225 +0,0 @@
-{ config
-, lib
-, pkgs
-, ...
-}:
-
-let
-  cfg = config.services.homeassistant-satellite;
-
-  inherit (lib)
-    escapeShellArg
-    escapeShellArgs
-    mkOption
-    mdDoc
-    mkEnableOption
-    mkIf
-    mkPackageOption
-    types
-    ;
-
-  inherit (builtins)
-    toString
-    ;
-
-  # override the package with the relevant vad dependencies
-  package = cfg.package.overridePythonAttrs (oldAttrs: {
-    propagatedBuildInputs = oldAttrs.propagatedBuildInputs
-      ++ lib.optional (cfg.vad == "webrtcvad") cfg.package.optional-dependencies.webrtc
-      ++ lib.optional (cfg.vad == "silero") cfg.package.optional-dependencies.silerovad
-      ++ lib.optional (cfg.pulseaudio.enable) cfg.package.optional-dependencies.pulseaudio;
-  });
-
-in
-
-{
-  meta.buildDocsInSandbox = false;
-
-  options.services.homeassistant-satellite = with types; {
-    enable = mkEnableOption (mdDoc "Home Assistant Satellite");
-
-    package = mkPackageOption pkgs "homeassistant-satellite" { };
-
-    user = mkOption {
-      type = str;
-      example = "alice";
-      description = mdDoc ''
-        User to run homeassistant-satellite under.
-      '';
-    };
-
-    group = mkOption {
-      type = str;
-      default = "users";
-      description = mdDoc ''
-        Group to run homeassistant-satellite under.
-      '';
-    };
-
-    host = mkOption {
-      type = str;
-      example = "home-assistant.local";
-      description = mdDoc ''
-        Hostname on which your Home Assistant instance can be reached.
-      '';
-    };
-
-    port = mkOption {
-      type = port;
-      example = 8123;
-      description = mdDoc ''
-        Port on which your Home Assistance can be reached.
-      '';
-      apply = toString;
-    };
-
-    protocol = mkOption {
-      type = enum [ "http" "https" ];
-      default = "http";
-      example = "https";
-      description = mdDoc ''
-        The transport protocol used to connect to Home Assistant.
-      '';
-    };
-
-    tokenFile = mkOption {
-      type = path;
-      example = "/run/keys/hass-token";
-      description = mdDoc ''
-        Path to a file containing a long-lived access token for your Home Assistant instance.
-      '';
-      apply = escapeShellArg;
-    };
-
-    sounds = {
-      awake = mkOption {
-        type = nullOr str;
-        default = null;
-        description = mdDoc ''
-          Audio file to play when the wake word is detected.
-        '';
-      };
-
-      done = mkOption {
-        type = nullOr str;
-        default = null;
-        description = mdDoc ''
-          Audio file to play when the voice command is done.
-        '';
-      };
-    };
-
-    vad = mkOption {
-      type = enum [ "disabled" "webrtcvad" "silero" ];
-      default = "disabled";
-      example = "silero";
-      description = mdDoc ''
-        Voice activity detection model. With `disabled` sound will be transmitted continously.
-      '';
-    };
-
-    pulseaudio = {
-      enable = mkEnableOption "recording/playback via PulseAudio or PipeWire";
-
-      socket = mkOption {
-        type = nullOr str;
-        default = null;
-        example = "/run/user/1000/pulse/native";
-        description = mdDoc ''
-          Path or hostname to connect with the PulseAudio server.
-        '';
-      };
-
-      duckingVolume = mkOption {
-        type = nullOr float;
-        default = null;
-        example = 0.4;
-        description = mdDoc ''
-          Reduce output volume (between 0 and 1) to this percentage value while recording.
-        '';
-      };
-
-      echoCancellation = mkEnableOption "acoustic echo cancellation";
-    };
-
-    extraArgs = mkOption {
-      type = listOf str;
-      default = [ ];
-      description = mdDoc ''
-        Extra arguments to pass to the commandline.
-      '';
-      apply = escapeShellArgs;
-    };
-  };
-
-  config = mkIf cfg.enable {
-    systemd.services."homeassistant-satellite" = {
-      description = "Home Assistant Satellite";
-      after = [
-        "network-online.target"
-      ];
-      wants = [
-        "network-online.target"
-      ];
-      wantedBy = [
-        "multi-user.target"
-      ];
-      path = with pkgs; [
-        ffmpeg-headless
-      ] ++ lib.optionals (!cfg.pulseaudio.enable) [
-        alsa-utils
-      ];
-      serviceConfig = {
-        User = cfg.user;
-        Group = cfg.group;
-        # https://github.com/rhasspy/hassio-addons/blob/master/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run
-        ExecStart = ''
-          ${package}/bin/homeassistant-satellite \
-            --host ${cfg.host} \
-            --port ${cfg.port} \
-            --protocol ${cfg.protocol} \
-            --token-file ${cfg.tokenFile} \
-            --vad ${cfg.vad} \
-            ${lib.optionalString cfg.pulseaudio.enable "--pulseaudio"}${lib.optionalString (cfg.pulseaudio.socket != null) "=${cfg.pulseaudio.socket}"} \
-            ${lib.optionalString (cfg.pulseaudio.enable && cfg.pulseaudio.duckingVolume != null) "--ducking-volume=${toString cfg.pulseaudio.duckingVolume}"} \
-            ${lib.optionalString (cfg.pulseaudio.enable && cfg.pulseaudio.echoCancellation) "--echo-cancel"} \
-            ${lib.optionalString (cfg.sounds.awake != null) "--awake-sound=${toString cfg.sounds.awake}"} \
-            ${lib.optionalString (cfg.sounds.done != null) "--done-sound=${toString cfg.sounds.done}"} \
-            ${cfg.extraArgs}
-        '';
-        CapabilityBoundingSet = "";
-        DeviceAllow = "";
-        DevicePolicy = "closed";
-        LockPersonality = true;
-        MemoryDenyWriteExecute = false; # onnxruntime/capi/onnxruntime_pybind11_state.so: cannot enable executable stack as shared object requires: Operation not permitted
-        PrivateDevices = true;
-        PrivateUsers = true;
-        ProtectHome = false; # Would deny access to local pulse/pipewire server
-        ProtectHostname = true;
-        ProtectKernelLogs = true;
-        ProtectKernelModules = true;
-        ProtectKernelTunables = true;
-        ProtectControlGroups = true;
-        ProtectProc = "invisible";
-        ProcSubset = "all"; # Error in cpuinfo: failed to parse processor information from /proc/cpuinfo
-        Restart = "always";
-        RestrictAddressFamilies = [
-          "AF_INET"
-          "AF_INET6"
-          "AF_UNIX"
-        ];
-        RestrictNamespaces = true;
-        RestrictRealtime = true;
-        SupplementaryGroups = [
-          "audio"
-        ];
-        SystemCallArchitectures = "native";
-        SystemCallFilter = [
-          "@system-service"
-          "~@privileged"
-        ];
-        UMask = "0077";
-      };
-    };
-  };
-}
diff --git a/nixos/modules/services/audio/wyoming/faster-whisper.nix b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
index 0c36e8c9ab059..0c36e8c9ab059 100644
--- a/nixos/modules/services/audio/wyoming/faster-whisper.nix
+++ b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
diff --git a/nixos/modules/services/audio/wyoming/openwakeword.nix b/nixos/modules/services/home-automation/wyoming/openwakeword.nix
index 252f70be2baa4..252f70be2baa4 100644
--- a/nixos/modules/services/audio/wyoming/openwakeword.nix
+++ b/nixos/modules/services/home-automation/wyoming/openwakeword.nix
diff --git a/nixos/modules/services/audio/wyoming/piper.nix b/nixos/modules/services/home-automation/wyoming/piper.nix
index 2828fdf078921..2828fdf078921 100644
--- a/nixos/modules/services/audio/wyoming/piper.nix
+++ b/nixos/modules/services/home-automation/wyoming/piper.nix
diff --git a/nixos/modules/services/home-automation/wyoming/satellite.nix b/nixos/modules/services/home-automation/wyoming/satellite.nix
new file mode 100644
index 0000000000000..531d375e703a3
--- /dev/null
+++ b/nixos/modules/services/home-automation/wyoming/satellite.nix
@@ -0,0 +1,244 @@
+{ config
+, lib
+, pkgs
+, ...
+}:
+
+let
+  cfg = config.services.wyoming.satellite;
+
+  inherit (lib)
+    elem
+    escapeShellArgs
+    getExe
+    literalExpression
+    mkOption
+    mkEnableOption
+    mkIf
+    mkPackageOption
+    optional
+    optionals
+    types
+  ;
+
+  finalPackage = cfg.package.overridePythonAttrs (oldAttrs: {
+    propagatedBuildInputs = oldAttrs.propagatedBuildInputs
+      # for audio enhancements like auto-gain, noise suppression
+      ++ cfg.package.optional-dependencies.webrtc
+      # vad is currently optional, because it is broken on aarch64-linux
+      ++ optionals cfg.vad.enable cfg.package.optional-dependencies.silerovad;
+    });
+in
+
+{
+  meta.buildDocsInSandbox = false;
+
+  options.services.wyoming.satellite = with types; {
+    enable = mkEnableOption "Wyoming Satellite";
+
+    package = mkPackageOption pkgs "wyoming-satellite" { };
+
+    user = mkOption {
+      type = str;
+      example = "alice";
+      description = ''
+        User to run wyoming-satellite under.
+      '';
+    };
+
+    group = mkOption {
+      type = str;
+      default = "users";
+      description = ''
+        Group to run wyoming-satellite under.
+      '';
+    };
+
+    uri = mkOption {
+      type = str;
+      default = "tcp://0.0.0.0:10700";
+      description = ''
+        URI where wyoming-satellite will bind its socket.
+      '';
+    };
+
+    name = mkOption {
+      type = str;
+      default = config.networking.hostName;
+      defaultText = literalExpression ''
+        config.networking.hostName
+      '';
+      description = ''
+        Name of the satellite.
+      '';
+    };
+
+    area = mkOption {
+      type = nullOr str;
+      default = null;
+      example = "Kitchen";
+      description = ''
+        Area to the satellite.
+      '';
+    };
+
+    microphone = {
+      command = mkOption {
+        type = str;
+        default = "arecord -r 16000 -c 1 -f S16_LE -t raw";
+        description = ''
+          Program to run for audio input.
+        '';
+      };
+
+      autoGain = mkOption {
+        type = ints.between 0 31;
+        default = 5;
+        example = 15;
+        description = ''
+          Automatic gain control in dbFS, with 31 being the loudest value. Set to 0 to disable.
+        '';
+      };
+
+      noiseSuppression = mkOption {
+        type = ints.between 0 4;
+        default = 2;
+        example = 3;
+        description = ''
+          Noise suppression level with 4 being the maximum suppression,
+          which may cause audio distortion. Set to 0 to disable.
+        '';
+      };
+    };
+
+    sound = {
+      command = mkOption {
+        type = nullOr str;
+        default = "aplay -r 22050 -c 1 -f S16_LE -t raw";
+        description = ''
+          Program to run for sound output.
+        '';
+      };
+    };
+
+    sounds = {
+      awake = mkOption {
+        type = nullOr path;
+        default = null;
+        description = ''
+          Path to audio file in WAV format to play when wake word is detected.
+        '';
+      };
+
+      done = mkOption {
+        type = nullOr path;
+        default = null;
+        description = ''
+          Path to audio file in WAV format to play when voice command recording has ended.
+        '';
+      };
+    };
+
+    vad = {
+      enable = mkOption {
+        type = bool;
+        default = true;
+        description = ''
+          Whether to enable voice activity detection.
+
+          Enabling will result in only streaming audio, when speech gets
+          detected.
+        '';
+      };
+    };
+
+    extraArgs = mkOption {
+      type = listOf str;
+      default = [ ];
+      description = ''
+        Extra arguments to pass to the executable.
+
+        Check `wyoming-satellite --help` for possible options.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services."wyoming-satellite" = {
+      description = "Wyoming Satellite";
+      after = [
+        "network-online.target"
+        "sound.target"
+      ];
+      wants = [
+        "network-online.target"
+        "sound.target"
+      ];
+      wantedBy = [
+        "multi-user.target"
+      ];
+      path = with pkgs; [
+        alsa-utils
+      ];
+      script = let
+        optionalParam = param: argument: optionals (!elem argument [ null 0 false ]) [
+          param argument
+        ];
+      in ''
+        export XDG_RUNTIME_DIR=/run/user/$UID
+        ${escapeShellArgs ([
+          (getExe finalPackage)
+          "--uri" cfg.uri
+          "--name" cfg.name
+          "--mic-command" cfg.microphone.command
+        ]
+        ++ optionalParam "--mic-auto-gain" cfg.microphone.autoGain
+        ++ optionalParam "--mic-noise-suppression" cfg.microphone.noiseSuppression
+        ++ optionalParam "--area" cfg.area
+        ++ optionalParam "--snd-command" cfg.sound.command
+        ++ optionalParam "--awake-wav" cfg.sounds.awake
+        ++ optionalParam "--done-wav" cfg.sounds.done
+        ++ optional cfg.vad.enable "--vad"
+        ++ cfg.extraArgs)}
+      '';
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        # https://github.com/rhasspy/hassio-addons/blob/master/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run
+        CapabilityBoundingSet = "";
+        DeviceAllow = "";
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = false; # onnxruntime/capi/onnxruntime_pybind11_state.so: cannot enable executable stack as shared object requires: Operation not permitted
+        PrivateDevices = true;
+        PrivateUsers = true;
+        ProtectHome = false; # Would deny access to local pulse/pipewire server
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectControlGroups = true;
+        ProtectProc = "invisible";
+        ProcSubset = "all"; # Error in cpuinfo: failed to parse processor information from /proc/cpuinfo
+        Restart = "always";
+        RestrictAddressFamilies = [
+          "AF_INET"
+          "AF_INET6"
+          "AF_UNIX"
+          "AF_NETLINK"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        SupplementaryGroups = [
+          "audio"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged"
+        ];
+        UMask = "0077";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/mail/mailman.md b/nixos/modules/services/mail/mailman.md
index 55b61f8a25828..446aa1f921b64 100644
--- a/nixos/modules/services/mail/mailman.md
+++ b/nixos/modules/services/mail/mailman.md
@@ -9,7 +9,7 @@ an existing, securely configured Postfix setup, as it does not automatically con
 ## Basic usage with Postfix {#module-services-mailman-basic-usage}
 
 For a basic configuration with Postfix as the MTA, the following settings are suggested:
-```
+```nix
 { config, ... }: {
   services.postfix = {
     enable = true;
@@ -50,7 +50,7 @@ necessary, but outside the scope of the Mailman module.
 ## Using with other MTAs {#module-services-mailman-other-mtas}
 
 Mailman also supports other MTA, though with a little bit more configuration. For example, to use Mailman with Exim, you can use the following settings:
-```
+```nix
 { config, ... }: {
   services = {
     mailman = {
diff --git a/nixos/modules/services/matrix/maubot.md b/nixos/modules/services/matrix/maubot.md
index f6a05db56cafd..d49066057a237 100644
--- a/nixos/modules/services/matrix/maubot.md
+++ b/nixos/modules/services/matrix/maubot.md
@@ -10,7 +10,9 @@ framework for Matrix.
 2. If you want to use PostgreSQL instead of SQLite, do this:
 
    ```nix
-   services.maubot.settings.database = "postgresql://maubot@localhost/maubot";
+   {
+     services.maubot.settings.database = "postgresql://maubot@localhost/maubot";
+   }
    ```
 
    If the PostgreSQL connection requires a password, you will have to
@@ -18,54 +20,58 @@ framework for Matrix.
 3. If you plan to expose your Maubot interface to the web, do something
    like this:
    ```nix
-   services.nginx.virtualHosts."matrix.example.org".locations = {
-     "/_matrix/maubot/" = {
-       proxyPass = "http://127.0.0.1:${toString config.services.maubot.settings.server.port}";
-       proxyWebsockets = true;
+   {
+     services.nginx.virtualHosts."matrix.example.org".locations = {
+       "/_matrix/maubot/" = {
+         proxyPass = "http://127.0.0.1:${toString config.services.maubot.settings.server.port}";
+         proxyWebsockets = true;
+       };
      };
-   };
-   services.maubot.settings.server.public_url = "matrix.example.org";
-   # do the following only if you want to use something other than /_matrix/maubot...
-   services.maubot.settings.server.ui_base_path = "/another/base/path";
+     services.maubot.settings.server.public_url = "matrix.example.org";
+     # do the following only if you want to use something other than /_matrix/maubot...
+     services.maubot.settings.server.ui_base_path = "/another/base/path";
+   }
    ```
 4. Optionally, set `services.maubot.pythonPackages` to a list of python3
    packages to make available for Maubot plugins.
 5. Optionally, set `services.maubot.plugins` to a list of Maubot
    plugins (full list available at https://plugins.maubot.xyz/):
    ```nix
-   services.maubot.plugins = with config.services.maubot.package.plugins; [
-     reactbot
-     # This will only change the default config! After you create a
-     # plugin instance, the default config will be copied into that
-     # instance's config in Maubot's database, and further base config
-     # changes won't affect the running plugin.
-     (rss.override {
-       base_config = {
-         update_interval = 60;
-         max_backoff = 7200;
-         spam_sleep = 2;
-         command_prefix = "rss";
-         admins = [ "@chayleaf:pavluk.org" ];
-       };
-     })
-   ];
-   # ...or...
-   services.maubot.plugins = config.services.maubot.package.plugins.allOfficialPlugins;
-   # ...or...
-   services.maubot.plugins = config.services.maubot.package.plugins.allPlugins;
-   # ...or...
-   services.maubot.plugins = with config.services.maubot.package.plugins; [
-     (weather.override {
-       # you can pass base_config as a string
-       base_config = ''
-         default_location: New York
-         default_units: M
-         default_language:
-         show_link: true
-         show_image: false
-       '';
-     })
-   ];
+   {
+     services.maubot.plugins = with config.services.maubot.package.plugins; [
+       reactbot
+       # This will only change the default config! After you create a
+       # plugin instance, the default config will be copied into that
+       # instance's config in Maubot's database, and further base config
+       # changes won't affect the running plugin.
+       (rss.override {
+         base_config = {
+           update_interval = 60;
+           max_backoff = 7200;
+           spam_sleep = 2;
+           command_prefix = "rss";
+           admins = [ "@chayleaf:pavluk.org" ];
+         };
+       })
+     ];
+     # ...or...
+     services.maubot.plugins = config.services.maubot.package.plugins.allOfficialPlugins;
+     # ...or...
+     services.maubot.plugins = config.services.maubot.package.plugins.allPlugins;
+     # ...or...
+     services.maubot.plugins = with config.services.maubot.package.plugins; [
+       (weather.override {
+         # you can pass base_config as a string
+         base_config = ''
+           default_location: New York
+           default_units: M
+           default_language:
+           show_link: true
+           show_image: false
+         '';
+       })
+     ];
+   }
    ```
 6. Start Maubot at least once before doing the following steps (it's
    necessary to generate the initial config).
diff --git a/nixos/modules/services/matrix/mjolnir.md b/nixos/modules/services/matrix/mjolnir.md
index f6994eeb8fa5b..2594f05ce27bb 100644
--- a/nixos/modules/services/matrix/mjolnir.md
+++ b/nixos/modules/services/matrix/mjolnir.md
@@ -46,7 +46,7 @@ autoconfigure a new Pantalaimon instance, which will connect to the homeserver
 set in [services.mjolnir.homeserverUrl](#opt-services.mjolnir.homeserverUrl) and Mjolnir itself
 will be configured to connect to the new Pantalaimon instance.
 
-```
+```nix
 {
   services.mjolnir = {
     enable = true;
@@ -78,7 +78,7 @@ uses across an entire homeserver.
 To use the Antispam Module, add `matrix-synapse-plugins.matrix-synapse-mjolnir-antispam`
 to the Synapse plugin list and enable the `mjolnir.Module` module.
 
-```
+```nix
 {
   services.matrix-synapse = {
     plugins = with pkgs; [
diff --git a/nixos/modules/services/matrix/synapse.md b/nixos/modules/services/matrix/synapse.md
index 9c9c025fc5f54..7f6587ce09df8 100644
--- a/nixos/modules/services/matrix/synapse.md
+++ b/nixos/modules/services/matrix/synapse.md
@@ -23,7 +23,7 @@ synapse server for the `example.org` domain, served from
 the host `myhostname.example.org`. For more information,
 please refer to the
 [installation instructions of Synapse](https://element-hq.github.io/synapse/latest/setup/installation.html) .
-```
+```nix
 { pkgs, lib, config, ... }:
 let
   fqdn = "${config.networking.hostName}.${config.networking.domain}";
@@ -158,7 +158,7 @@ in an additional file like this:
     by `matrix-synapse`.
   - Include the file like this in your configuration:
 
-    ```
+    ```nix
     {
       services.matrix-synapse.extraConfigFiles = [
         "/run/secrets/matrix-shared-secret"
@@ -190,7 +190,7 @@ fill in the required connection details automatically when you enter your
 Matrix Identifier. See
 [Try Matrix Now!](https://matrix.org/docs/projects/try-matrix-now.html)
 for a list of existing clients and their supported featureset.
-```
+```nix
 {
   services.nginx.virtualHosts."element.${fqdn}" = {
     enableACME = true;
diff --git a/nixos/modules/services/misc/anki-sync-server.md b/nixos/modules/services/misc/anki-sync-server.md
index 5d2b4da4d2fc2..f58d3d8ad0dab 100644
--- a/nixos/modules/services/misc/anki-sync-server.md
+++ b/nixos/modules/services/misc/anki-sync-server.md
@@ -16,7 +16,7 @@ unit which runs the sync server with an isolated user using the systemd
 `DynamicUser` option.
 
 This can be done by enabling the `anki-sync-server` service:
-```
+```nix
 { ... }:
 
 {
@@ -27,7 +27,7 @@ This can be done by enabling the `anki-sync-server` service:
 It is necessary to set at least one username-password pair under
 {option}`services.anki-sync-server.users`. For example
 
-```
+```nix
 {
   services.anki-sync-server.users = [
     {
@@ -50,7 +50,7 @@ you want to expose the sync server directly to other computers (not recommended
 in most circumstances, because the sync server doesn't use HTTPS), then set the
 following options:
 
-```
+```nix
 {
   services.anki-sync-server.host = "0.0.0.0";
   services.anki-sync-server.openFirewall = true;
diff --git a/nixos/modules/services/misc/forgejo.md b/nixos/modules/services/misc/forgejo.md
index 14b21933e6b09..f234ebf44aefb 100644
--- a/nixos/modules/services/misc/forgejo.md
+++ b/nixos/modules/services/misc/forgejo.md
@@ -57,23 +57,25 @@ locations and database, instead of having to copy or rename them.
 Make sure to disable `services.gitea`, when doing this.
 
 ```nix
-services.gitea.enable = false;
-
-services.forgejo = {
-  enable = true;
-  user = "gitea";
-  group = "gitea";
-  stateDir = "/var/lib/gitea";
-  database.name = "gitea";
-  database.user = "gitea";
-};
-
-users.users.gitea = {
-  home = "/var/lib/gitea";
-  useDefaultShell = true;
-  group = "gitea";
-  isSystemUser = true;
-};
-
-users.groups.gitea = {};
+{
+  services.gitea.enable = false;
+
+  services.forgejo = {
+    enable = true;
+    user = "gitea";
+    group = "gitea";
+    stateDir = "/var/lib/gitea";
+    database.name = "gitea";
+    database.user = "gitea";
+  };
+
+  users.users.gitea = {
+    home = "/var/lib/gitea";
+    useDefaultShell = true;
+    group = "gitea";
+    isSystemUser = true;
+  };
+
+  users.groups.gitea = {};
+}
 ```
diff --git a/nixos/modules/services/misc/gitlab.md b/nixos/modules/services/misc/gitlab.md
index 916b23584ed0c..f7a5a80274890 100644
--- a/nixos/modules/services/misc/gitlab.md
+++ b/nixos/modules/services/misc/gitlab.md
@@ -10,19 +10,21 @@ configure a webserver to proxy HTTP requests to the socket.
 
 For instance, the following configuration could be used to use nginx as
 frontend proxy:
-```
-services.nginx = {
-  enable = true;
-  recommendedGzipSettings = true;
-  recommendedOptimisation = true;
-  recommendedProxySettings = true;
-  recommendedTlsSettings = true;
-  virtualHosts."git.example.com" = {
-    enableACME = true;
-    forceSSL = true;
-    locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
+```nix
+{
+  services.nginx = {
+    enable = true;
+    recommendedGzipSettings = true;
+    recommendedOptimisation = true;
+    recommendedProxySettings = true;
+    recommendedTlsSettings = true;
+    virtualHosts."git.example.com" = {
+      enableACME = true;
+      forceSSL = true;
+      locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
+    };
   };
-};
+}
 ```
 
 ## Configuring {#module-services-gitlab-configuring}
@@ -35,36 +37,38 @@ The default state dir is `/var/gitlab/state`. This is where
 all data like the repositories and uploads will be stored.
 
 A basic configuration with some custom settings could look like this:
-```
-services.gitlab = {
-  enable = true;
-  databasePasswordFile = "/var/keys/gitlab/db_password";
-  initialRootPasswordFile = "/var/keys/gitlab/root_password";
-  https = true;
-  host = "git.example.com";
-  port = 443;
-  user = "git";
-  group = "git";
-  smtp = {
+```nix
+{
+  services.gitlab = {
     enable = true;
-    address = "localhost";
-    port = 25;
-  };
-  secrets = {
-    dbFile = "/var/keys/gitlab/db";
-    secretFile = "/var/keys/gitlab/secret";
-    otpFile = "/var/keys/gitlab/otp";
-    jwsFile = "/var/keys/gitlab/jws";
-  };
-  extraConfig = {
-    gitlab = {
-      email_from = "gitlab-no-reply@example.com";
-      email_display_name = "Example GitLab";
-      email_reply_to = "gitlab-no-reply@example.com";
-      default_projects_features = { builds = false; };
+    databasePasswordFile = "/var/keys/gitlab/db_password";
+    initialRootPasswordFile = "/var/keys/gitlab/root_password";
+    https = true;
+    host = "git.example.com";
+    port = 443;
+    user = "git";
+    group = "git";
+    smtp = {
+      enable = true;
+      address = "localhost";
+      port = 25;
+    };
+    secrets = {
+      dbFile = "/var/keys/gitlab/db";
+      secretFile = "/var/keys/gitlab/secret";
+      otpFile = "/var/keys/gitlab/otp";
+      jwsFile = "/var/keys/gitlab/jws";
+    };
+    extraConfig = {
+      gitlab = {
+        email_from = "gitlab-no-reply@example.com";
+        email_display_name = "Example GitLab";
+        email_reply_to = "gitlab-no-reply@example.com";
+        default_projects_features = { builds = false; };
+      };
     };
   };
-};
+}
 ```
 
 If you're setting up a new GitLab instance, generate new
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index e95ab0a112bc5..db62d6f90901f 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -1578,7 +1578,9 @@ in {
           rm "${cfg.statePath}/config/gitlab-workhorse.json"
         '';
         ExecStart =
-          "${cfg.packages.gitlab-workhorse}/bin/workhorse "
+          "${cfg.packages.gitlab-workhorse}/bin/${
+              optionalString (lib.versionAtLeast (lib.getVersion cfg.packages.gitlab-workhorse) "16.10") "gitlab-"
+            }workhorse "
           + "-listenUmask 0 "
           + "-listenNetwork unix "
           + "-listenAddr /run/gitlab/gitlab-workhorse.socket "
diff --git a/nixos/modules/services/misc/invidious-router.nix b/nixos/modules/services/misc/invidious-router.nix
new file mode 100644
index 0000000000000..01ef18dad5356
--- /dev/null
+++ b/nixos/modules/services/misc/invidious-router.nix
@@ -0,0 +1,121 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}: let
+  cfg = config.services.invidious-router;
+  settingsFormat = pkgs.formats.yaml {};
+  configFile = settingsFormat.generate "config.yaml" cfg.settings;
+in {
+  meta.maintainers = [lib.maintainers.s1ls];
+
+  options.services.invidious-router = {
+    enable = lib.mkEnableOption "Enables the invidious-router service";
+    port = lib.mkOption {
+      type = lib.types.port;
+      default = 8050;
+      description = lib.mdDoc ''
+        Port to bind to.
+      '';
+    };
+    address = lib.mkOption {
+      type = lib.types.str;
+      default = "127.0.0.1";
+      description = lib.mdDoc ''
+        Address on which invidious-router should listen on.
+      '';
+    };
+    settings = lib.mkOption {
+      type = lib.types.submodule {
+        freeformType = settingsFormat.type;
+      };
+      default = {
+        app = {
+          listen = "127.0.0.1:8050";
+          enable_youtube_fallback = false;
+          reload_instance_list_interval = "60s";
+        };
+        api = {
+          enabled = true;
+          url = "https://api.invidious.io/instances.json";
+          filter_regions = true;
+          allowed_regions = [
+            "AT"
+            "DE"
+            "CH"
+          ];
+        };
+        healthcheck = {
+          path = "/";
+          allowed_status_codes = [
+            200
+          ];
+          timeout = "1s";
+          interval = "10s";
+          filter_by_response_time = {
+            enabled = true;
+            qty_of_top_results = 3;
+          };
+          minimum_ratio = 0.2;
+          remove_no_ratio = true;
+          text_not_present = "YouTube is currently trying to block Invidious instances";
+        };
+      };
+      description = lib.mdDoc ''
+        Configuration for invidious-router.
+        Check https://gitlab.com/gaincoder/invidious-router#configuration
+        for configuration options.
+      '';
+    };
+    package = lib.mkOption {
+      type = lib.types.package;
+      default = pkgs.invidious-router;
+      defaultText = lib.literalExpression "pkgs.invidious-router";
+      description = lib.mdDoc ''
+        The invidious-router package to use.
+      '';
+    };
+    nginx = {
+      enable = lib.mkEnableOption (lib.mdDoc ''
+        Automatic nginx proxy configuration
+      '');
+      domain = lib.mkOption {
+        type = lib.types.str;
+        example = "invidious-router.example.com";
+        description = lib.mdDoc ''
+          The domain on which invidious-router should be served.
+        '';
+      };
+      extraDomains = lib.mkOption {
+        type = lib.types.listOf lib.types.str;
+        default = [];
+        description = lib.mdDoc ''
+          Additional domains to serve invidious-router on.
+        '';
+      };
+    };
+  };
+  config = lib.mkIf cfg.enable {
+    systemd.services.invidious-router = {
+      wantedBy = ["multi-user.target"];
+      serviceConfig = {
+        Restart = "on-failure";
+        ExecStart = "${lib.getExe cfg.package} --configfile ${configFile}";
+        DynamicUser = "yes";
+      };
+    };
+
+    services.nginx.virtualHosts = lib.mkIf cfg.nginx.enable {
+      ${cfg.nginx.domain} = {
+        locations."/" = {
+          recommendedProxySettings = true;
+          proxyPass = "http://${cfg.address}:${toString cfg.port}";
+        };
+        enableACME = true;
+        forceSSL = true;
+        serverAliases = cfg.nginx.extraDomains;
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/misc/libreddit.nix b/nixos/modules/services/misc/libreddit.nix
index 02d71c198e783..e125d975d7e2a 100644
--- a/nixos/modules/services/misc/libreddit.nix
+++ b/nixos/modules/services/misc/libreddit.nix
@@ -47,7 +47,7 @@ in
         after = [ "network.target" ];
         serviceConfig = {
           DynamicUser = true;
-          ExecStart = "${cfg.package}/bin/libreddit ${args}";
+          ExecStart = "${lib.getExe cfg.package} ${args}";
           AmbientCapabilities = lib.mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
           Restart = "on-failure";
           RestartSec = "2s";
diff --git a/nixos/modules/services/misc/mollysocket.nix b/nixos/modules/services/misc/mollysocket.nix
new file mode 100644
index 0000000000000..f40caa4a782ef
--- /dev/null
+++ b/nixos/modules/services/misc/mollysocket.nix
@@ -0,0 +1,133 @@
+{ config, lib, pkgs, ... }:
+
+let
+  inherit (lib) getExe mkIf mkOption mkEnableOption optionals types;
+
+  cfg = config.services.mollysocket;
+  configuration = format.generate "mollysocket.conf" cfg.settings;
+  format = pkgs.formats.toml { };
+  package = pkgs.writeShellScriptBin "mollysocket" ''
+    MOLLY_CONF=${configuration} exec ${getExe pkgs.mollysocket} "$@"
+  '';
+in {
+  options.services.mollysocket = {
+    enable = mkEnableOption ''
+      [MollySocket](https://github.com/mollyim/mollysocket) for getting Signal
+      notifications via UnifiedPush
+    '';
+
+    settings = mkOption {
+      default = { };
+      description = ''
+        Configuration for MollySocket. Available options are listed
+        [here](https://github.com/mollyim/mollysocket#configuration).
+      '';
+      type = types.submodule {
+        freeformType = format.type;
+        options = {
+          host = mkOption {
+            default = "127.0.0.1";
+            description = "Listening address of the web server";
+            type = types.str;
+          };
+
+          port = mkOption {
+            default = 8020;
+            description = "Listening port of the web server";
+            type = types.port;
+          };
+
+          allowed_endpoints = mkOption {
+            default = [ "*" ];
+            description = "List of UnifiedPush servers";
+            example = [ "https://ntfy.sh" ];
+            type = with types; listOf str;
+          };
+
+          allowed_uuids = mkOption {
+            default = [ "*" ];
+            description = "UUIDs of Signal accounts that may use this server";
+            example = [ "abcdef-12345-tuxyz-67890" ];
+            type = with types; listOf str;
+          };
+        };
+      };
+    };
+
+    environmentFile = mkOption {
+      default = null;
+      description = ''
+        Environment file (see {manpage}`systemd.exec(5)` "EnvironmentFile="
+        section for the syntax) passed to the service. This option can be
+        used to safely include secrets in the configuration.
+      '';
+      example = "/run/secrets/mollysocket";
+      type = with types; nullOr path;
+    };
+
+    logLevel = mkOption {
+      default = "info";
+      description = "Set the {env}`RUST_LOG` environment variable";
+      example = "debug";
+      type = types.str;
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [
+      package
+    ];
+
+    # see https://github.com/mollyim/mollysocket/blob/main/mollysocket.service
+    systemd.services.mollysocket = {
+      description = "MollySocket";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
+      environment.RUST_LOG = cfg.logLevel;
+      serviceConfig = let
+        capabilities = [ "" ] ++ optionals (cfg.settings.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
+      in {
+        EnvironmentFile = cfg.environmentFile;
+        ExecStart = "${getExe package} server";
+        KillSignal = "SIGINT";
+        Restart = "on-failure";
+        StateDirectory = "mollysocket";
+        TimeoutStopSec = 5;
+        WorkingDirectory = "/var/lib/mollysocket";
+
+        # hardening
+        AmbientCapabilities = capabilities;
+        CapabilityBoundingSet = capabilities;
+        DevicePolicy = "closed";
+        DynamicUser = true;
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@resources" "~@privileged" ];
+        UMask = "0077";
+      };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ dotlambda ];
+}
diff --git a/nixos/modules/services/misc/sourcehut/default.md b/nixos/modules/services/misc/sourcehut/default.md
index 44d58aa0bef3e..f965c395038a3 100644
--- a/nixos/modules/services/misc/sourcehut/default.md
+++ b/nixos/modules/services/misc/sourcehut/default.md
@@ -12,7 +12,7 @@ This NixOS module also provides basic configuration integrating Sourcehut into l
 and `services.postgresql` services.
 
 A very basic configuration may look like this:
-```
+```nix
 { pkgs, ... }:
 let
   fqdn =
@@ -66,9 +66,9 @@ in {
     # Settings to setup what certificates are used for which endpoint.
     virtualHosts = {
       "${fqdn}".enableACME = true;
-      "meta.${fqdn}".useACMEHost = fqdn:
-      "man.${fqdn}".useACMEHost = fqdn:
-      "git.${fqdn}".useACMEHost = fqdn:
+      "meta.${fqdn}".useACMEHost = fqdn;
+      "man.${fqdn}".useACMEHost = fqdn;
+      "git.${fqdn}".useACMEHost = fqdn;
     };
   };
 }
diff --git a/nixos/modules/services/misc/weechat.md b/nixos/modules/services/misc/weechat.md
index 21f41be5b4a0e..fb20ebe1e4db2 100644
--- a/nixos/modules/services/misc/weechat.md
+++ b/nixos/modules/services/misc/weechat.md
@@ -12,7 +12,7 @@ unit which runs the chat client in a detached
 session.
 
 This can be done by enabling the `weechat` service:
-```
+```nix
 { ... }:
 
 {
@@ -30,7 +30,7 @@ allow your another user to attach to this session, the
 `screenrc` needs to be tweaked by adding
 [multiuser](https://www.gnu.org/software/screen/manual/html_node/Multiuser.html#Multiuser)
 support:
-```
+```nix
 {
   programs.screen.screenrc = ''
     multiuser on
diff --git a/nixos/modules/services/misc/workout-tracker.nix b/nixos/modules/services/misc/workout-tracker.nix
new file mode 100644
index 0000000000000..13555504be302
--- /dev/null
+++ b/nixos/modules/services/misc/workout-tracker.nix
@@ -0,0 +1,83 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+
+let
+  inherit (lib) types;
+  cfg = config.services.workout-tracker;
+  stateDir = "workout-tracker";
+in
+
+{
+  options = {
+    services.workout-tracker = {
+      enable = lib.mkEnableOption "workout tracking web application for personal use (or family, friends), geared towards running and other GPX-based activities";
+
+      package = lib.mkPackageOption pkgs "workout-tracker" { };
+
+      address = lib.mkOption {
+        type = types.str;
+        default = "127.0.0.1";
+        description = "Web interface address.";
+      };
+
+      port = lib.mkOption {
+        type = types.port;
+        default = 8080;
+        description = "Web interface port.";
+      };
+
+      environmentFile = lib.mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        example = "/run/keys/workout-tracker.env";
+        description = ''
+          An environment file as defined in {manpage}`systemd.exec(5)`.
+
+          Secrets like `WT_JWT_ENCRYPTION_KEY` may be passed to the service without adding them
+          to the world-readable Nix store.
+        '';
+      };
+
+      settings = lib.mkOption {
+        type = types.attrsOf types.str;
+
+        default = { };
+        description = ''
+          Extra config options.
+        '';
+        example = {
+          WT_LOGGING = "true";
+          WT_DEBUG = "false";
+          WT_DATABASE_DRIVER = "sqlite";
+          WT_DSN = "./database.db";
+        };
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services.workout-tracker = {
+      description = "A workout tracking web application for personal use (or family, friends), geared towards running and other GPX-based activities";
+      wantedBy = [ "multi-user.target" ];
+      environment = {
+        WT_BIND = "${cfg.address}:${toString cfg.port}";
+        WT_DATABASE_DRIVER = "sqlite";
+        WT_DSN = "./database.db";
+      } // cfg.settings;
+      serviceConfig = {
+        ExecStart = lib.getExe cfg.package;
+        DynamicUser = true;
+        StateDirectory = stateDir;
+        WorkingDirectory = "%S/${stateDir}";
+        Restart = "always";
+        EnvironmentFile = lib.optional (cfg.environmentFile != null) cfg.environmentFile;
+      };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ bhankas ];
+}
diff --git a/nixos/modules/services/monitoring/certspotter.md b/nixos/modules/services/monitoring/certspotter.md
index 9bf6e1d946a04..e999bfe65ec3e 100644
--- a/nixos/modules/services/monitoring/certspotter.md
+++ b/nixos/modules/services/monitoring/certspotter.md
@@ -9,17 +9,19 @@ A basic config that notifies you of all certificate changes for your
 domain would look as follows:
 
 ```nix
-services.certspotter = {
-  enable = true;
-  # replace example.org with your domain name
-  watchlist = [ ".example.org" ];
-  emailRecipients = [ "webmaster@example.org" ];
-};
+{
+  services.certspotter = {
+    enable = true;
+    # replace example.org with your domain name
+    watchlist = [ ".example.org" ];
+    emailRecipients = [ "webmaster@example.org" ];
+  };
 
-# Configure an SMTP client
-programs.msmtp.enable = true;
-# Or you can use any other module that provides sendmail, like
-# services.nullmailer, services.opensmtpd, services.postfix
+  # Configure an SMTP client
+  programs.msmtp.enable = true;
+  # Or you can use any other module that provides sendmail, like
+  # services.nullmailer, services.opensmtpd, services.postfix
+}
 ```
 
 In this case, the leading dot in `".example.org"` means that Cert
@@ -59,16 +61,18 @@ For example, you can remove `emailRecipients` and send email
 notifications manually using the following hook:
 
 ```nix
-services.certspotter.hooks = [
-  (pkgs.writeShellScript "certspotter-hook" ''
-    function print_email() {
-      echo "Subject: [certspotter] $SUMMARY"
-      echo "Mime-Version: 1.0"
-      echo "Content-Type: text/plain; charset=US-ASCII"
-      echo
-      cat "$TEXT_FILENAME"
-    }
-    print_email | ${config.services.certspotter.sendmailPath} -i webmaster@example.org
-  '')
-];
+{
+  services.certspotter.hooks = [
+    (pkgs.writeShellScript "certspotter-hook" ''
+      function print_email() {
+        echo "Subject: [certspotter] $SUMMARY"
+        echo "Mime-Version: 1.0"
+        echo "Content-Type: text/plain; charset=US-ASCII"
+        echo
+        cat "$TEXT_FILENAME"
+      }
+      print_email | ${config.services.certspotter.sendmailPath} -i webmaster@example.org
+    '')
+  ];
+}
 ```
diff --git a/nixos/modules/services/monitoring/goss.md b/nixos/modules/services/monitoring/goss.md
index 1e636aa3bdf33..bf91d42011fa7 100644
--- a/nixos/modules/services/monitoring/goss.md
+++ b/nixos/modules/services/monitoring/goss.md
@@ -7,7 +7,7 @@ for validating a server's configuration.
 
 A minimal configuration looks like this:
 
-```
+```nix
 {
   services.goss = {
     enable = true;
diff --git a/nixos/modules/services/monitoring/parsedmarc.md b/nixos/modules/services/monitoring/parsedmarc.md
index eac07e0cc9fec..765846bbbaf36 100644
--- a/nixos/modules/services/monitoring/parsedmarc.md
+++ b/nixos/modules/services/monitoring/parsedmarc.md
@@ -11,15 +11,17 @@ email address and saves them to a local Elasticsearch instance looks
 like this:
 
 ```nix
-services.parsedmarc = {
-  enable = true;
-  settings.imap = {
-    host = "imap.example.com";
-    user = "alice@example.com";
-    password = "/path/to/imap_password_file";
+{
+  services.parsedmarc = {
+    enable = true;
+    settings.imap = {
+      host = "imap.example.com";
+      user = "alice@example.com";
+      password = "/path/to/imap_password_file";
+    };
+    provision.geoIp = false; # Not recommended!
   };
-  provision.geoIp = false; # Not recommended!
-};
+}
 ```
 
 Note that GeoIP provisioning is disabled in the example for
@@ -37,16 +39,18 @@ configured in the domain's dmarc policy is
 `dmarc@monitoring.example.com`.
 
 ```nix
-services.parsedmarc = {
-  enable = true;
-  provision = {
-    localMail = {
-      enable = true;
-      hostname = monitoring.example.com;
+{
+  services.parsedmarc = {
+    enable = true;
+    provision = {
+      localMail = {
+        enable = true;
+        hostname = monitoring.example.com;
+      };
+      geoIp = false; # Not recommended!
     };
-    geoIp = false; # Not recommended!
   };
-};
+}
 ```
 
 ## Grafana and GeoIP {#module-services-parsedmarc-grafana-geoip}
@@ -58,55 +62,57 @@ is automatically added as a Grafana datasource, and the dashboard is
 added to Grafana as well.
 
 ```nix
-services.parsedmarc = {
-  enable = true;
-  provision = {
-    localMail = {
-      enable = true;
-      hostname = url;
-    };
-    grafana = {
-      datasource = true;
-      dashboard = true;
+{
+  services.parsedmarc = {
+    enable = true;
+    provision = {
+      localMail = {
+        enable = true;
+        hostname = url;
+      };
+      grafana = {
+        datasource = true;
+        dashboard = true;
+      };
     };
   };
-};
 
-# Not required, but recommended for full functionality
-services.geoipupdate = {
-  settings = {
-    AccountID = 000000;
-    LicenseKey = "/path/to/license_key_file";
+  # Not required, but recommended for full functionality
+  services.geoipupdate = {
+    settings = {
+      AccountID = 000000;
+      LicenseKey = "/path/to/license_key_file";
+    };
   };
-};
 
-services.grafana = {
-  enable = true;
-  addr = "0.0.0.0";
-  domain = url;
-  rootUrl = "https://" + url;
-  protocol = "socket";
-  security = {
-    adminUser = "admin";
-    adminPasswordFile = "/path/to/admin_password_file";
-    secretKeyFile = "/path/to/secret_key_file";
+  services.grafana = {
+    enable = true;
+    addr = "0.0.0.0";
+    domain = url;
+    rootUrl = "https://" + url;
+    protocol = "socket";
+    security = {
+      adminUser = "admin";
+      adminPasswordFile = "/path/to/admin_password_file";
+      secretKeyFile = "/path/to/secret_key_file";
+    };
   };
-};
 
-services.nginx = {
-  enable = true;
-  recommendedTlsSettings = true;
-  recommendedOptimisation = true;
-  recommendedGzipSettings = true;
-  recommendedProxySettings = true;
-  upstreams.grafana.servers."unix:/${config.services.grafana.socket}" = {};
-  virtualHosts.${url} = {
-    root = config.services.grafana.staticRootPath;
-    enableACME = true;
-    forceSSL = true;
-    locations."/".tryFiles = "$uri @grafana";
-    locations."@grafana".proxyPass = "http://grafana";
+  services.nginx = {
+    enable = true;
+    recommendedTlsSettings = true;
+    recommendedOptimisation = true;
+    recommendedGzipSettings = true;
+    recommendedProxySettings = true;
+    upstreams.grafana.servers."unix:/${config.services.grafana.socket}" = {};
+    virtualHosts.${url} = {
+      root = config.services.grafana.staticRootPath;
+      enableACME = true;
+      forceSSL = true;
+      locations."/".tryFiles = "$uri @grafana";
+      locations."@grafana".proxyPass = "http://grafana";
+    };
   };
-};
-users.users.nginx.extraGroups = [ "grafana" ];
+  users.users.nginx.extraGroups = [ "grafana" ];
+}
 ```
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.md b/nixos/modules/services/monitoring/prometheus/exporters.md
index 34fadecadc749..b344534f6aee3 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.md
+++ b/nixos/modules/services/monitoring/prometheus/exporters.md
@@ -9,7 +9,8 @@ One of the most common exporters is the
 [node exporter](https://github.com/prometheus/node_exporter),
 it provides hardware and OS metrics from the host it's
 running on. The exporter could be configured as follows:
-```
+```nix
+{
   services.prometheus.exporters.node = {
     enable = true;
     port = 9100;
@@ -23,6 +24,7 @@ running on. The exporter could be configured as follows:
     openFirewall = true;
     firewallFilter = "-i br0 -p tcp -m tcp --dport 9100";
   };
+}
 ```
 It should now serve all metrics from the collectors that are explicitly
 enabled and the ones that are
@@ -35,7 +37,8 @@ configuration see `man configuration.nix` or search through
 the [available options](https://nixos.org/nixos/options.html#prometheus.exporters).
 
 Prometheus can now be configured to consume the metrics produced by the exporter:
-```
+```nix
+{
     services.prometheus = {
       # ...
 
@@ -49,7 +52,8 @@ Prometheus can now be configured to consume the metrics produced by the exporter
       ];
 
       # ...
-    }
+    };
+}
 ```
 
 ## Adding a new exporter {#module-services-prometheus-exporters-new-exporter}
@@ -75,7 +79,7 @@ example:
     `nixos/modules/services/monitoring/prometheus/exporters/`
     directory, which will be called postfix.nix and contains all exporter
     specific options and configuration:
-    ```
+    ```nix
     # nixpkgs/nixos/modules/services/prometheus/exporters/postfix.nix
     { config, lib, pkgs, options }:
 
@@ -148,7 +152,7 @@ example:
 Should an exporter option change at some point, it is possible to add
 information about the change to the exporter definition similar to
 `nixpkgs/nixos/modules/rename.nix`:
-```
+```nix
 { config, lib, pkgs, options }:
 
 with lib;
diff --git a/nixos/modules/services/network-filesystems/davfs2.nix b/nixos/modules/services/network-filesystems/davfs2.nix
index 8024cfba08be5..90bb5ee5e66cd 100644
--- a/nixos/modules/services/network-filesystems/davfs2.nix
+++ b/nixos/modules/services/network-filesystems/davfs2.nix
@@ -3,14 +3,22 @@
 with lib;
 
 let
+  toStr = value:
+    if true == value then "yes"
+    else if false == value then "no"
+    else toString value;
+
   cfg = config.services.davfs2;
-  cfgFile = pkgs.writeText "davfs2.conf" ''
-    dav_user ${cfg.davUser}
-    dav_group ${cfg.davGroup}
+  format = pkgs.formats.toml { };
+  configFile = let
+    settings = mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings;
+  in pkgs.writeText "davfs2.conf" ''
+    ${concatStringsSep "\n" settings}
     ${cfg.extraConfig}
   '';
 in
 {
+
   options.services.davfs2 = {
     enable = mkOption {
       type = types.bool;
@@ -49,13 +57,46 @@ in
       '';
       description = lib.mdDoc ''
         Extra lines appended to the configuration of davfs2.
+        See {manpage}`davfs2.conf(5)` for available settings.
+
+        **Note**: Please pass structured settings via
+        {option}`settings` instead, this option
+        will get deprecated in the future.
+      ''  ;
+    };
+
+    settings = mkOption {
+      type = types.submodule {
+        freeformType = format.type;
+      };
+      default = {};
+      example = literalExpression ''
+        {
+          kernel_fs = "coda";
+          proxy = "foo.bar:8080";
+          use_locks = 0;
+        }
+      '';
+      description = lib.mdDoc ''
+        Extra settings appended to the configuration of davfs2.
+        See {manpage}`davfs2.conf(5)` for available settings.
       ''  ;
     };
   };
 
   config = mkIf cfg.enable {
+
+    warnings = lib.optional (cfg.extraConfig != null) ''
+      services.davfs2.extraConfig will be deprecated in future releases, please use the settings option now.
+    '';
+
     environment.systemPackages = [ pkgs.davfs2 ];
-    environment.etc."davfs2/davfs2.conf".source = cfgFile;
+    environment.etc."davfs2/davfs2.conf".source = configFile;
+
+    services.davfs2.settings = {
+      dav_user = cfg.davUser;
+      dav_group = cfg.davGroup;
+    };
 
     users.groups = optionalAttrs (cfg.davGroup == "davfs2") {
       davfs2.gid = config.ids.gids.davfs2;
diff --git a/nixos/modules/services/network-filesystems/litestream/default.md b/nixos/modules/services/network-filesystems/litestream/default.md
index 8d8486507b77e..626d69df84a50 100644
--- a/nixos/modules/services/network-filesystems/litestream/default.md
+++ b/nixos/modules/services/network-filesystems/litestream/default.md
@@ -8,7 +8,7 @@ replication tool for SQLite.
 Litestream service is managed by a dedicated user named `litestream`
 which needs permission to the database file. Here's an example config which gives
 required permissions to access [grafana database](#opt-services.grafana.settings.database.path):
-```
+```nix
 { pkgs, ... }:
 {
   users.users.litestream.extraGroups = [ "grafana" ];
diff --git a/nixos/modules/services/networking/firefox-syncserver.md b/nixos/modules/services/networking/firefox-syncserver.md
index 4d8777d204bb2..f6b515e67f159 100644
--- a/nixos/modules/services/networking/firefox-syncserver.md
+++ b/nixos/modules/services/networking/firefox-syncserver.md
@@ -7,19 +7,21 @@ A storage server for Firefox Sync that you can easily host yourself.
 The absolute minimal configuration for the sync server looks like this:
 
 ```nix
-services.mysql.package = pkgs.mariadb;
-
-services.firefox-syncserver = {
-  enable = true;
-  secrets = builtins.toFile "sync-secrets" ''
-    SYNC_MASTER_SECRET=this-secret-is-actually-leaked-to-/nix/store
-  '';
-  singleNode = {
+{
+  services.mysql.package = pkgs.mariadb;
+
+  services.firefox-syncserver = {
     enable = true;
-    hostname = "localhost";
-    url = "http://localhost:5000";
+    secrets = builtins.toFile "sync-secrets" ''
+      SYNC_MASTER_SECRET=this-secret-is-actually-leaked-to-/nix/store
+    '';
+    singleNode = {
+      enable = true;
+      hostname = "localhost";
+      url = "http://localhost:5000";
+    };
   };
-};
+}
 ```
 
 This will start a sync server that is only accessible locally. Once the services is
diff --git a/nixos/modules/services/networking/mosquitto.md b/nixos/modules/services/networking/mosquitto.md
index 5cdb598151e51..66b3ad6cfa8f1 100644
--- a/nixos/modules/services/networking/mosquitto.md
+++ b/nixos/modules/services/networking/mosquitto.md
@@ -7,14 +7,16 @@ Mosquitto is a MQTT broker often used for IoT or home automation data transport.
 A minimal configuration for Mosquitto is
 
 ```nix
-services.mosquitto = {
-  enable = true;
-  listeners = [ {
-    acl = [ "pattern readwrite #" ];
-    omitPasswordAuth = true;
-    settings.allow_anonymous = true;
-  } ];
-};
+{
+  services.mosquitto = {
+    enable = true;
+    listeners = [ {
+      acl = [ "pattern readwrite #" ];
+      omitPasswordAuth = true;
+      settings.allow_anonymous = true;
+    } ];
+  };
+}
 ```
 
 This will start a broker on port 1883, listening on all interfaces of the machine, allowing
@@ -25,37 +27,42 @@ full read access to a user `monitor` and restricted write access to a user `serv
 like
 
 ```nix
-services.mosquitto = {
-  enable = true;
-  listeners = [ {
-    users = {
-      monitor = {
-        acl = [ "read #" ];
-        password = "monitor";
+{
+  services.mosquitto = {
+    enable = true;
+    listeners = [ {
+      users = {
+        monitor = {
+          acl = [ "read #" ];
+          password = "monitor";
+        };
+        service = {
+          acl = [ "write service/#" ];
+          password = "service";
+        };
       };
-      service = {
-        acl = [ "write service/#" ];
-        password = "service";
-      };
-    };
-  } ];
-};
+    } ];
+  };
+}
 ```
 
 TLS authentication is configured by setting TLS-related options of the listener:
 
 ```nix
-services.mosquitto = {
-  enable = true;
-  listeners = [ {
-    port = 8883; # port change is not required, but helpful to avoid mistakes
-    # ...
-    settings = {
-      cafile = "/path/to/mqtt.ca.pem";
-      certfile = "/path/to/mqtt.pem";
-      keyfile = "/path/to/mqtt.key";
-    };
-  } ];
+{
+  services.mosquitto = {
+    enable = true;
+    listeners = [ {
+      port = 8883; # port change is not required, but helpful to avoid mistakes
+      # ...
+      settings = {
+        cafile = "/path/to/mqtt.ca.pem";
+        certfile = "/path/to/mqtt.pem";
+        keyfile = "/path/to/mqtt.key";
+      };
+    } ];
+  };
+}
 ```
 
 ## Configuration {#module-services-mosquitto-config}
diff --git a/nixos/modules/services/networking/mycelium.nix b/nixos/modules/services/networking/mycelium.nix
index 9c4bca7c68618..9487a5daafee0 100644
--- a/nixos/modules/services/networking/mycelium.nix
+++ b/nixos/modules/services/networking/mycelium.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, ... }:
+{ config, pkgs, lib, utils, ... }:
 
 let
   cfg = config.services.mycelium;
@@ -46,6 +46,15 @@ in
         Adds the hosted peers from https://github.com/threefoldtech/mycelium#hosted-public-nodes.
       '';
     };
+    extraArgs = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      default = [ ];
+      description = ''
+        Extra command-line arguments to pass to mycelium.
+
+        See `mycelium --help` for all available options.
+      '';
+    };
   };
   config = lib.mkIf cfg.enable {
     networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall [ 9651 ];
@@ -87,6 +96,7 @@ in
           )
           "--tun-name"
           "mycelium"
+          "${utils.escapeSystemdExecArgs cfg.extraArgs}"
         ] ++
         (lib.optional (cfg.addHostedPublicNodes || cfg.peers != [ ]) "--peers")
         ++ cfg.peers ++ (lib.optionals cfg.addHostedPublicNodes [
@@ -130,4 +140,3 @@ in
     maintainers = with lib.maintainers; [ flokli lassulus ];
   };
 }
-
diff --git a/nixos/modules/services/networking/netbird.md b/nixos/modules/services/networking/netbird.md
index a326207becc8e..e1f6753cbd30c 100644
--- a/nixos/modules/services/networking/netbird.md
+++ b/nixos/modules/services/networking/netbird.md
@@ -5,7 +5,9 @@
 The absolute minimal configuration for the netbird daemon looks like this:
 
 ```nix
-services.netbird.enable = true;
+{
+  services.netbird.enable = true;
+}
 ```
 
 This will set up a netbird service listening on the port `51820` associated to the
@@ -14,7 +16,9 @@ This will set up a netbird service listening on the port `51820` associated to t
 It is strictly equivalent to setting:
 
 ```nix
-services.netbird.tunnels.wt0.stateDir = "netbird";
+{
+  services.netbird.tunnels.wt0.stateDir = "netbird";
+}
 ```
 
 The `enable` option is mainly kept for backward compatibility, as defining netbird
@@ -29,11 +33,13 @@ The following configuration will start a netbird daemon using the interface `wt1
 the port 51830. Its configuration file will then be located at `/var/lib/netbird-wt1/config.json`.
 
 ```nix
-services.netbird.tunnels = {
-  wt1 = {
-    port = 51830;
+{
+  services.netbird.tunnels = {
+    wt1 = {
+      port = 51830;
+    };
   };
-};
+}
 ```
 
 To interact with it, you will need to specify the correct daemon address:
@@ -48,9 +54,11 @@ It is also possible to overwrite default options passed to the service, for
 example:
 
 ```nix
-services.netbird.tunnels.wt1.environment = {
-  NB_DAEMON_ADDR = "unix:///var/run/toto.sock"
-};
+{
+  services.netbird.tunnels.wt1.environment = {
+    NB_DAEMON_ADDR = "unix:///var/run/toto.sock";
+  };
+}
 ```
 
 This will set the socket to interact with the netbird service to `/var/run/toto.sock`.
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index 573a02cbda9e1..1eaf065972d21 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -390,7 +390,7 @@ in
           };
         });
         default = [ ];
-        example = literalExpression ''[{ name = "03f0:4e1d"; script = "''${pkgs.modemmanager}/share/ModemManager/fcc-unlock.available.d/03f0:4e1d"; }]'';
+        example = literalExpression ''[{ id = "03f0:4e1d"; path = "''${pkgs.modemmanager}/share/ModemManager/fcc-unlock.available.d/03f0:4e1d"; }]'';
         description = lib.mdDoc ''
           List of FCC unlock scripts to enable on the system, behaving as described in
           https://modemmanager.org/docs/modemmanager/fcc-unlock/#integration-with-third-party-fcc-unlock-tools.
diff --git a/nixos/modules/services/networking/pleroma.md b/nixos/modules/services/networking/pleroma.md
index 7c499e1c616c2..c2313fd63e6a5 100644
--- a/nixos/modules/services/networking/pleroma.md
+++ b/nixos/modules/services/networking/pleroma.md
@@ -17,11 +17,13 @@ The `config.exs` file can be further customized following the instructions on th
 ## Initializing the database {#module-services-pleroma-initialize-db}
 
 First, the Postgresql service must be enabled in the NixOS configuration
-```
-services.postgresql = {
-  enable = true;
-  package = pkgs.postgresql_13;
-};
+```nix
+{
+  services.postgresql = {
+    enable = true;
+    package = pkgs.postgresql_13;
+  };
+}
 ```
 and activated with the usual
 ```ShellSession
@@ -38,43 +40,45 @@ $ sudo -u postgres psql -f setup.psql
 In this section we will enable the Pleroma service only locally, so its configurations can be improved incrementally.
 
 This is an example of configuration, where [](#opt-services.pleroma.configs) option contains the content of the file `config.exs`, generated [in the first section](#module-services-pleroma-generate-config), but with the secrets (database password, endpoint secret key, salts, etc.) removed. Removing secrets is important, because otherwise they will be stored publicly in the Nix store.
-```
-services.pleroma = {
-  enable = true;
-  secretConfigFile = "/var/lib/pleroma/secrets.exs";
-  configs = [
-    ''
-    import Config
-
-    config :pleroma, Pleroma.Web.Endpoint,
-      url: [host: "pleroma.example.net", scheme: "https", port: 443],
-      http: [ip: {127, 0, 0, 1}, port: 4000]
-
-    config :pleroma, :instance,
-      name: "Test",
-      email: "admin@example.net",
-      notify_email: "admin@example.net",
-      limit: 5000,
-      registrations_open: true
-
-    config :pleroma, :media_proxy,
-      enabled: false,
-      redirect_on_failure: true
-
-    config :pleroma, Pleroma.Repo,
-      adapter: Ecto.Adapters.Postgres,
-      username: "pleroma",
-      database: "pleroma",
-      hostname: "localhost"
-
-    # Configure web push notifications
-    config :web_push_encryption, :vapid_details,
-      subject: "mailto:admin@example.net"
-
-    # ... TO CONTINUE ...
-    ''
-  ];
-};
+```nix
+{
+  services.pleroma = {
+    enable = true;
+    secretConfigFile = "/var/lib/pleroma/secrets.exs";
+    configs = [
+      ''
+      import Config
+
+      config :pleroma, Pleroma.Web.Endpoint,
+        url: [host: "pleroma.example.net", scheme: "https", port: 443],
+        http: [ip: {127, 0, 0, 1}, port: 4000]
+
+      config :pleroma, :instance,
+        name: "Test",
+        email: "admin@example.net",
+        notify_email: "admin@example.net",
+        limit: 5000,
+        registrations_open: true
+
+      config :pleroma, :media_proxy,
+        enabled: false,
+        redirect_on_failure: true
+
+      config :pleroma, Pleroma.Repo,
+        adapter: Ecto.Adapters.Postgres,
+        username: "pleroma",
+        database: "pleroma",
+        hostname: "localhost"
+
+      # Configure web push notifications
+      config :web_push_encryption, :vapid_details,
+        subject: "mailto:admin@example.net"
+
+      # ... TO CONTINUE ...
+      ''
+    ];
+  };
+}
 ```
 
 Secrets must be moved into a file pointed by [](#opt-services.pleroma.secretConfigFile), in our case `/var/lib/pleroma/secrets.exs`. This file can be created copying the previously generated `config.exs` file and then removing all the settings, except the secrets. This is an example
@@ -121,60 +125,62 @@ $ pleroma_ctl user new <nickname> <email>  --admin --moderator --password <passw
 
 In this configuration, Pleroma is listening only on the local port 4000. Nginx can be configured as a Reverse Proxy, for forwarding requests from public ports to the Pleroma service. This is an example of configuration, using
 [Let's Encrypt](https://letsencrypt.org/) for the TLS certificates
-```
-security.acme = {
-  email = "root@example.net";
-  acceptTerms = true;
-};
-
-services.nginx = {
-  enable = true;
-  addSSL = true;
-
-  recommendedTlsSettings = true;
-  recommendedOptimisation = true;
-  recommendedGzipSettings = true;
-
-  recommendedProxySettings = false;
-  # NOTE: if enabled, the NixOS proxy optimizations will override the Pleroma
-  # specific settings, and they will enter in conflict.
-
-  virtualHosts = {
-    "pleroma.example.net" = {
-      http2 = true;
-      enableACME = true;
-      forceSSL = true;
-
-      locations."/" = {
-        proxyPass = "http://127.0.0.1:4000";
-
-        extraConfig = ''
-          etag on;
-          gzip on;
-
-          add_header 'Access-Control-Allow-Origin' '*' always;
-          add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
-          add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always;
-          add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' always;
-          if ($request_method = OPTIONS) {
-            return 204;
-          }
-          add_header X-XSS-Protection "1; mode=block";
-          add_header X-Permitted-Cross-Domain-Policies none;
-          add_header X-Frame-Options DENY;
-          add_header X-Content-Type-Options nosniff;
-          add_header Referrer-Policy same-origin;
-          add_header X-Download-Options noopen;
-          proxy_http_version 1.1;
-          proxy_set_header Upgrade $http_upgrade;
-          proxy_set_header Connection "upgrade";
-          proxy_set_header Host $host;
-
-          client_max_body_size 16m;
-          # NOTE: increase if users need to upload very big files
-        '';
+```nix
+{
+  security.acme = {
+    email = "root@example.net";
+    acceptTerms = true;
+  };
+
+  services.nginx = {
+    enable = true;
+    addSSL = true;
+
+    recommendedTlsSettings = true;
+    recommendedOptimisation = true;
+    recommendedGzipSettings = true;
+
+    recommendedProxySettings = false;
+    # NOTE: if enabled, the NixOS proxy optimizations will override the Pleroma
+    # specific settings, and they will enter in conflict.
+
+    virtualHosts = {
+      "pleroma.example.net" = {
+        http2 = true;
+        enableACME = true;
+        forceSSL = true;
+
+        locations."/" = {
+          proxyPass = "http://127.0.0.1:4000";
+
+          extraConfig = ''
+            etag on;
+            gzip on;
+
+            add_header 'Access-Control-Allow-Origin' '*' always;
+            add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
+            add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always;
+            add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' always;
+            if ($request_method = OPTIONS) {
+              return 204;
+            }
+            add_header X-XSS-Protection "1; mode=block";
+            add_header X-Permitted-Cross-Domain-Policies none;
+            add_header X-Frame-Options DENY;
+            add_header X-Content-Type-Options nosniff;
+            add_header Referrer-Policy same-origin;
+            add_header X-Download-Options noopen;
+            proxy_http_version 1.1;
+            proxy_set_header Upgrade $http_upgrade;
+            proxy_set_header Connection "upgrade";
+            proxy_set_header Host $host;
+
+            client_max_body_size 16m;
+            # NOTE: increase if users need to upload very big files
+          '';
+        };
       };
     };
   };
-};
+}
 ```
diff --git a/nixos/modules/services/networking/prosody.md b/nixos/modules/services/networking/prosody.md
index 2da2c242a98b9..d6eee4e29f0a2 100644
--- a/nixos/modules/services/networking/prosody.md
+++ b/nixos/modules/services/networking/prosody.md
@@ -25,25 +25,27 @@ A good configuration to start with, including a
 [Multi User Chat (MUC)](https://xmpp.org/extensions/xep-0045.html)
 endpoint as well as a [HTTP File Upload](https://xmpp.org/extensions/xep-0363.html)
 endpoint will look like this:
-```
-services.prosody = {
-  enable = true;
-  admins = [ "root@example.org" ];
-  ssl.cert = "/var/lib/acme/example.org/fullchain.pem";
-  ssl.key = "/var/lib/acme/example.org/key.pem";
-  virtualHosts."example.org" = {
-      enabled = true;
-      domain = "example.org";
-      ssl.cert = "/var/lib/acme/example.org/fullchain.pem";
-      ssl.key = "/var/lib/acme/example.org/key.pem";
-  };
-  muc = [ {
-      domain = "conference.example.org";
-  } ];
-  uploadHttp = {
-      domain = "upload.example.org";
+```nix
+{
+  services.prosody = {
+    enable = true;
+    admins = [ "root@example.org" ];
+    ssl.cert = "/var/lib/acme/example.org/fullchain.pem";
+    ssl.key = "/var/lib/acme/example.org/key.pem";
+    virtualHosts."example.org" = {
+        enabled = true;
+        domain = "example.org";
+        ssl.cert = "/var/lib/acme/example.org/fullchain.pem";
+        ssl.key = "/var/lib/acme/example.org/key.pem";
+    };
+    muc = [ {
+        domain = "conference.example.org";
+    } ];
+    uploadHttp = {
+        domain = "upload.example.org";
+    };
   };
-};
+}
 ```
 
 ## Let's Encrypt Configuration {#module-services-prosody-letsencrypt}
@@ -57,16 +59,18 @@ certificate by leveraging the ACME
 
 Provided the setup detailed in the previous section, you'll need the following acme configuration to generate
 a TLS certificate for the three endponits:
-```
-security.acme = {
-  email = "root@example.org";
-  acceptTerms = true;
-  certs = {
-    "example.org" = {
-      webroot = "/var/www/example.org";
-      email = "root@example.org";
-      extraDomainNames = [ "conference.example.org" "upload.example.org" ];
+```nix
+{
+  security.acme = {
+    email = "root@example.org";
+    acceptTerms = true;
+    certs = {
+      "example.org" = {
+        webroot = "/var/www/example.org";
+        email = "root@example.org";
+        extraDomainNames = [ "conference.example.org" "upload.example.org" ];
+      };
     };
   };
-};
+}
 ```
diff --git a/nixos/modules/services/networking/yggdrasil.md b/nixos/modules/services/networking/yggdrasil.md
index bbaea5bc74aaf..7b899f9d6ddb6 100644
--- a/nixos/modules/services/networking/yggdrasil.md
+++ b/nixos/modules/services/networking/yggdrasil.md
@@ -12,7 +12,7 @@ self-arranging IPv6 network.
 ### Simple ephemeral node {#module-services-networking-yggdrasil-configuration-simple}
 
 An annotated example of a simple configuration:
-```
+```nix
 {
   services.yggdrasil = {
     enable = true;
@@ -39,7 +39,7 @@ An annotated example of a simple configuration:
 ### Persistent node with prefix {#module-services-networking-yggdrasil-configuration-prefix}
 
 A node with a fixed address that announces a prefix:
-```
+```nix
 let
   address = "210:5217:69c0:9afc:1b95:b9f:8718:c3d2";
   prefix = "310:5217:69c0:9afc";
@@ -90,7 +90,7 @@ in {
 
 A NixOS container attached to the Yggdrasil network via a node running on the
 host:
-```
+```nix
 let
   yggPrefix64 = "310:5217:69c0:9afc";
     # Again, taken from the output of "yggdrasilctl getself".
diff --git a/nixos/modules/services/search/meilisearch.md b/nixos/modules/services/search/meilisearch.md
index 299f56bf82932..b9f65861b1d1c 100644
--- a/nixos/modules/services/search/meilisearch.md
+++ b/nixos/modules/services/search/meilisearch.md
@@ -7,7 +7,9 @@ Meilisearch is a lightweight, fast and powerful search engine. Think elastic sea
 the minimum to start meilisearch is
 
 ```nix
-services.meilisearch.enable = true;
+{
+  services.meilisearch.enable = true;
+}
 ```
 
 this will start the http server included with meilisearch on port 7700.
diff --git a/nixos/modules/services/security/usbguard.nix b/nixos/modules/services/security/usbguard.nix
index f167fbb2eca82..ff54176e13d3a 100644
--- a/nixos/modules/services/security/usbguard.nix
+++ b/nixos/modules/services/security/usbguard.nix
@@ -80,7 +80,7 @@ in
       };
 
       implicitPolicyTarget = mkOption {
-        type = policy;
+        type = types.enum [ "allow" "block" "reject" ];
         default = "block";
         description = lib.mdDoc ''
           How to treat USB devices that don't match any rule in the policy.
@@ -110,7 +110,7 @@ in
       };
 
       insertedDevicePolicy = mkOption {
-        type = policy;
+        type = types.enum [ "block" "reject" "apply-policy" ];
         default = "apply-policy";
         description = lib.mdDoc ''
           How to treat USB devices that are already connected after the daemon
diff --git a/nixos/modules/services/web-apps/akkoma.md b/nixos/modules/services/web-apps/akkoma.md
index 83dd1a8b35f23..13b074b228a41 100644
--- a/nixos/modules/services/web-apps/akkoma.md
+++ b/nixos/modules/services/web-apps/akkoma.md
@@ -19,21 +19,23 @@ be run behind a HTTP proxy on `fediverse.example.com`.
 
 
 ```nix
-services.akkoma.enable = true;
-services.akkoma.config = {
-  ":pleroma" = {
-    ":instance" = {
-      name = "My Akkoma instance";
-      description = "More detailed description";
-      email = "admin@example.com";
-      registration_open = false;
-    };
-
-    "Pleroma.Web.Endpoint" = {
-      url.host = "fediverse.example.com";
+{
+  services.akkoma.enable = true;
+  services.akkoma.config = {
+    ":pleroma" = {
+      ":instance" = {
+        name = "My Akkoma instance";
+        description = "More detailed description";
+        email = "admin@example.com";
+        registration_open = false;
+      };
+
+      "Pleroma.Web.Endpoint" = {
+        url.host = "fediverse.example.com";
+      };
     };
   };
-};
+}
 ```
 
 Please refer to the [configuration cheat sheet](https://docs.akkoma.dev/stable/configuration/cheatsheet/)
@@ -55,19 +57,21 @@ Although it is possible to expose Akkoma directly, it is common practice to oper
 HTTP reverse proxy such as nginx.
 
 ```nix
-services.akkoma.nginx = {
-  enableACME = true;
-  forceSSL = true;
-};
-
-services.nginx = {
-  enable = true;
-
-  clientMaxBodySize = "16m";
-  recommendedTlsSettings = true;
-  recommendedOptimisation = true;
-  recommendedGzipSettings = true;
-};
+{
+  services.akkoma.nginx = {
+    enableACME = true;
+    forceSSL = true;
+  };
+
+  services.nginx = {
+    enable = true;
+
+    clientMaxBodySize = "16m";
+    recommendedTlsSettings = true;
+    recommendedOptimisation = true;
+    recommendedGzipSettings = true;
+  };
+}
 ```
 
 Please refer to [](#module-security-acme) for details on how to provision an SSL/TLS certificate.
@@ -78,51 +82,53 @@ Without the media proxy function, Akkoma does not store any remote media like pi
 locally, and clients have to fetch them directly from the source server.
 
 ```nix
-# Enable nginx slice module distributed with Tengine
-services.nginx.package = pkgs.tengine;
-
-# Enable media proxy
-services.akkoma.config.":pleroma".":media_proxy" = {
-  enabled = true;
-  proxy_opts.redirect_on_failure = true;
-};
-
-# Adjust the persistent cache size as needed:
-#  Assuming an average object size of 128 KiB, around 1 MiB
-#  of memory is required for the key zone per GiB of cache.
-# Ensure that the cache directory exists and is writable by nginx.
-services.nginx.commonHttpConfig = ''
-  proxy_cache_path /var/cache/nginx/cache/akkoma-media-cache
-    levels= keys_zone=akkoma_media_cache:16m max_size=16g
-    inactive=1y use_temp_path=off;
-'';
-
-services.akkoma.nginx = {
-  locations."/proxy" = {
-    proxyPass = "http://unix:/run/akkoma/socket";
-
-    extraConfig = ''
-      proxy_cache akkoma_media_cache;
-
-      # Cache objects in slices of 1 MiB
-      slice 1m;
-      proxy_cache_key $host$uri$is_args$args$slice_range;
-      proxy_set_header Range $slice_range;
-
-      # Decouple proxy and upstream responses
-      proxy_buffering on;
-      proxy_cache_lock on;
-      proxy_ignore_client_abort on;
-
-      # Default cache times for various responses
-      proxy_cache_valid 200 1y;
-      proxy_cache_valid 206 301 304 1h;
-
-      # Allow serving of stale items
-      proxy_cache_use_stale error timeout invalid_header updating;
-    '';
+{
+  # Enable nginx slice module distributed with Tengine
+  services.nginx.package = pkgs.tengine;
+
+  # Enable media proxy
+  services.akkoma.config.":pleroma".":media_proxy" = {
+    enabled = true;
+    proxy_opts.redirect_on_failure = true;
   };
-};
+
+  # Adjust the persistent cache size as needed:
+  #  Assuming an average object size of 128 KiB, around 1 MiB
+  #  of memory is required for the key zone per GiB of cache.
+  # Ensure that the cache directory exists and is writable by nginx.
+  services.nginx.commonHttpConfig = ''
+    proxy_cache_path /var/cache/nginx/cache/akkoma-media-cache
+      levels= keys_zone=akkoma_media_cache:16m max_size=16g
+      inactive=1y use_temp_path=off;
+  '';
+
+  services.akkoma.nginx = {
+    locations."/proxy" = {
+      proxyPass = "http://unix:/run/akkoma/socket";
+
+      extraConfig = ''
+        proxy_cache akkoma_media_cache;
+
+        # Cache objects in slices of 1 MiB
+        slice 1m;
+        proxy_cache_key $host$uri$is_args$args$slice_range;
+        proxy_set_header Range $slice_range;
+
+        # Decouple proxy and upstream responses
+        proxy_buffering on;
+        proxy_cache_lock on;
+        proxy_ignore_client_abort on;
+
+        # Default cache times for various responses
+        proxy_cache_valid 200 1y;
+        proxy_cache_valid 206 301 304 1h;
+
+        # Allow serving of stale items
+        proxy_cache_use_stale error timeout invalid_header updating;
+      '';
+    };
+  };
+}
 ```
 
 #### Prefetch remote media {#modules-services-akkoma-prefetch-remote-media}
@@ -132,10 +138,12 @@ fetches all media associated with a post through the media proxy, as soon as the
 received by the instance.
 
 ```nix
-services.akkoma.config.":pleroma".":mrf".policies =
-  map (pkgs.formats.elixirConf { }).lib.mkRaw [
-    "Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy"
-];
+{
+  services.akkoma.config.":pleroma".":mrf".policies =
+    map (pkgs.formats.elixirConf { }).lib.mkRaw [
+      "Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy"
+  ];
+}
 ```
 
 #### Media previews {#modules-services-akkoma-media-previews}
@@ -143,11 +151,13 @@ services.akkoma.config.":pleroma".":mrf".policies =
 Akkoma can generate previews for media.
 
 ```nix
-services.akkoma.config.":pleroma".":media_preview_proxy" = {
-  enabled = true;
-  thumbnail_max_width = 1920;
-  thumbnail_max_height = 1080;
-};
+{
+  services.akkoma.config.":pleroma".":media_preview_proxy" = {
+    enabled = true;
+    thumbnail_max_width = 1920;
+    thumbnail_max_height = 1080;
+  };
+}
 ```
 
 ## Frontend management {#modules-services-akkoma-frontend-management}
@@ -160,29 +170,31 @@ The following example overrides the primary frontend’s default configuration u
 derivation.
 
 ```nix
-services.akkoma.frontends.primary.package = pkgs.runCommand "akkoma-fe" {
-  config = builtins.toJSON {
-    expertLevel = 1;
-    collapseMessageWithSubject = false;
-    stopGifs = false;
-    replyVisibility = "following";
-    webPushHideIfCW = true;
-    hideScopeNotice = true;
-    renderMisskeyMarkdown = false;
-    hideSiteFavicon = true;
-    postContentType = "text/markdown";
-    showNavShortcuts = false;
-  };
-  nativeBuildInputs = with pkgs; [ jq xorg.lndir ];
-  passAsFile = [ "config" ];
-} ''
-  mkdir $out
-  lndir ${pkgs.akkoma-frontends.akkoma-fe} $out
-
-  rm $out/static/config.json
-  jq -s add ${pkgs.akkoma-frontends.akkoma-fe}/static/config.json ${config} \
-    >$out/static/config.json
-'';
+{
+  services.akkoma.frontends.primary.package = pkgs.runCommand "akkoma-fe" {
+    config = builtins.toJSON {
+      expertLevel = 1;
+      collapseMessageWithSubject = false;
+      stopGifs = false;
+      replyVisibility = "following";
+      webPushHideIfCW = true;
+      hideScopeNotice = true;
+      renderMisskeyMarkdown = false;
+      hideSiteFavicon = true;
+      postContentType = "text/markdown";
+      showNavShortcuts = false;
+    };
+    nativeBuildInputs = with pkgs; [ jq xorg.lndir ];
+    passAsFile = [ "config" ];
+  } ''
+    mkdir $out
+    lndir ${pkgs.akkoma-frontends.akkoma-fe} $out
+
+    rm $out/static/config.json
+    jq -s add ${pkgs.akkoma-frontends.akkoma-fe}/static/config.json ${config} \
+      >$out/static/config.json
+  '';
+}
 ```
 
 ## Federation policies {#modules-services-akkoma-federation-policies}
@@ -198,28 +210,30 @@ of the fediverse and providing a pleasant experience to the users of an instance
 
 
 ```nix
-services.akkoma.config.":pleroma" = with (pkgs.formats.elixirConf { }).lib; {
-  ":mrf".policies = map mkRaw [
-    "Pleroma.Web.ActivityPub.MRF.SimplePolicy"
-  ];
-
-  ":mrf_simple" = {
-    # Tag all media as sensitive
-    media_nsfw = mkMap {
-      "nsfw.weird.kinky" = "Untagged NSFW content";
-    };
-
-    # Reject all activities except deletes
-    reject = mkMap {
-      "kiwifarms.cc" = "Persistent harassment of users, no moderation";
-    };
-
-    # Force posts to be visible by followers only
-    followers_only = mkMap {
-      "beta.birdsite.live" = "Avoid polluting timelines with Twitter posts";
+{
+  services.akkoma.config.":pleroma" = with (pkgs.formats.elixirConf { }).lib; {
+    ":mrf".policies = map mkRaw [
+      "Pleroma.Web.ActivityPub.MRF.SimplePolicy"
+    ];
+
+    ":mrf_simple" = {
+      # Tag all media as sensitive
+      media_nsfw = mkMap {
+        "nsfw.weird.kinky" = "Untagged NSFW content";
+      };
+
+      # Reject all activities except deletes
+      reject = mkMap {
+        "kiwifarms.cc" = "Persistent harassment of users, no moderation";
+      };
+
+      # Force posts to be visible by followers only
+      followers_only = mkMap {
+        "beta.birdsite.live" = "Avoid polluting timelines with Twitter posts";
+      };
     };
   };
-};
+}
 ```
 
 ## Upload filters {#modules-services-akkoma-upload-filters}
@@ -228,12 +242,14 @@ This example strips GPS and location metadata from uploads, deduplicates them an
 the file name.
 
 ```nix
-services.akkoma.config.":pleroma"."Pleroma.Upload".filters =
-  map (pkgs.formats.elixirConf { }).lib.mkRaw [
-    "Pleroma.Upload.Filter.Exiftool"
-    "Pleroma.Upload.Filter.Dedupe"
-    "Pleroma.Upload.Filter.AnonymizeFilename"
-  ];
+{
+  services.akkoma.config.":pleroma"."Pleroma.Upload".filters =
+    map (pkgs.formats.elixirConf { }).lib.mkRaw [
+      "Pleroma.Upload.Filter.Exiftool"
+      "Pleroma.Upload.Filter.Dedupe"
+      "Pleroma.Upload.Filter.AnonymizeFilename"
+    ];
+}
 ```
 
 ## Migration from Pleroma {#modules-services-akkoma-migration-pleroma}
@@ -286,9 +302,11 @@ To re‐use the Pleroma data in place, disable Pleroma and enable Akkoma, pointi
 Pleroma database and upload directory.
 
 ```nix
-# Adjust these settings according to the database name and upload directory path used by Pleroma
-services.akkoma.config.":pleroma"."Pleroma.Repo".database = "pleroma";
-services.akkoma.config.":pleroma".":instance".upload_dir = "/var/lib/pleroma/uploads";
+{
+  # Adjust these settings according to the database name and upload directory path used by Pleroma
+  services.akkoma.config.":pleroma"."Pleroma.Repo".database = "pleroma";
+  services.akkoma.config.":pleroma".":instance".upload_dir = "/var/lib/pleroma/uploads";
+}
 ```
 
 Please keep in mind that after the Akkoma service has been started, any migrations applied by
@@ -304,7 +322,9 @@ details.
 The Akkoma systemd service may be confined to a chroot with
 
 ```nix
-services.systemd.akkoma.confinement.enable = true;
+{
+  services.systemd.akkoma.confinement.enable = true;
+}
 ```
 
 Confinement of services is not generally supported in NixOS and therefore disabled by default.
diff --git a/nixos/modules/services/web-apps/c2fmzq-server.md b/nixos/modules/services/web-apps/c2fmzq-server.md
index 236953bd4ff7a..d8e59b3ad2103 100644
--- a/nixos/modules/services/web-apps/c2fmzq-server.md
+++ b/nixos/modules/services/web-apps/c2fmzq-server.md
@@ -4,7 +4,7 @@ c2FmZQ is an application that can securely encrypt, store, and share files,
 including but not limited to pictures and videos.
 
 The service `c2fmzq-server` can be enabled by setting
-```
+```nix
 {
   services.c2fmzq-server.enable = true;
 }
@@ -17,7 +17,7 @@ In principle the server can be exposed directly on a public interface and there
 are command line options to manage HTTPS certificates directly, but the module
 is designed to be served behind a reverse proxy or only accessed via localhost.
 
-```
+```nix
 {
   services.c2fmzq-server = {
     enable = true;
diff --git a/nixos/modules/services/web-apps/discourse.md b/nixos/modules/services/web-apps/discourse.md
index 35180bea87d90..d4b9c93c4ead0 100644
--- a/nixos/modules/services/web-apps/discourse.md
+++ b/nixos/modules/services/web-apps/discourse.md
@@ -6,20 +6,22 @@ modern and open source discussion platform.
 ## Basic usage {#module-services-discourse-basic-usage}
 
 A minimal configuration using Let's Encrypt for TLS certificates looks like this:
-```
-services.discourse = {
-  enable = true;
-  hostname = "discourse.example.com";
-  admin = {
-    email = "admin@example.com";
-    username = "admin";
-    fullName = "Administrator";
-    passwordFile = "/path/to/password_file";
+```nix
+{
+  services.discourse = {
+    enable = true;
+    hostname = "discourse.example.com";
+    admin = {
+      email = "admin@example.com";
+      username = "admin";
+      fullName = "Administrator";
+      passwordFile = "/path/to/password_file";
+    };
+    secretKeyBaseFile = "/path/to/secret_key_base_file";
   };
-  secretKeyBaseFile = "/path/to/secret_key_base_file";
-};
-security.acme.email = "me@example.com";
-security.acme.acceptTerms = true;
+  security.acme.email = "me@example.com";
+  security.acme.acceptTerms = true;
+}
 ```
 
 Provided a proper DNS setup, you'll be able to connect to the
@@ -34,20 +36,22 @@ the [](#opt-services.discourse.sslCertificate)
 and [](#opt-services.discourse.sslCertificateKey)
 options:
 
-```
-services.discourse = {
-  enable = true;
-  hostname = "discourse.example.com";
-  sslCertificate = "/path/to/ssl_certificate";
-  sslCertificateKey = "/path/to/ssl_certificate_key";
-  admin = {
-    email = "admin@example.com";
-    username = "admin";
-    fullName = "Administrator";
-    passwordFile = "/path/to/password_file";
+```nix
+{
+  services.discourse = {
+    enable = true;
+    hostname = "discourse.example.com";
+    sslCertificate = "/path/to/ssl_certificate";
+    sslCertificateKey = "/path/to/ssl_certificate_key";
+    admin = {
+      email = "admin@example.com";
+      username = "admin";
+      fullName = "Administrator";
+      passwordFile = "/path/to/password_file";
+    };
+    secretKeyBaseFile = "/path/to/secret_key_base_file";
   };
-  secretKeyBaseFile = "/path/to/secret_key_base_file";
-};
+}
 ```
 
 ## Database access {#module-services-discourse-database}
@@ -80,27 +84,29 @@ A basic setup which assumes you want to use your configured
 [hostname](#opt-services.discourse.hostname) as
 email domain can be done like this:
 
-```
-services.discourse = {
-  enable = true;
-  hostname = "discourse.example.com";
-  sslCertificate = "/path/to/ssl_certificate";
-  sslCertificateKey = "/path/to/ssl_certificate_key";
-  admin = {
-    email = "admin@example.com";
-    username = "admin";
-    fullName = "Administrator";
-    passwordFile = "/path/to/password_file";
-  };
-  mail.outgoing = {
-    serverAddress = "smtp.emailprovider.com";
-    port = 587;
-    username = "user@emailprovider.com";
-    passwordFile = "/path/to/smtp_password_file";
+```nix
+{
+  services.discourse = {
+    enable = true;
+    hostname = "discourse.example.com";
+    sslCertificate = "/path/to/ssl_certificate";
+    sslCertificateKey = "/path/to/ssl_certificate_key";
+    admin = {
+      email = "admin@example.com";
+      username = "admin";
+      fullName = "Administrator";
+      passwordFile = "/path/to/password_file";
+    };
+    mail.outgoing = {
+      serverAddress = "smtp.emailprovider.com";
+      port = 587;
+      username = "user@emailprovider.com";
+      passwordFile = "/path/to/smtp_password_file";
+    };
+    mail.incoming.enable = true;
+    secretKeyBaseFile = "/path/to/secret_key_base_file";
   };
-  mail.incoming.enable = true;
-  secretKeyBaseFile = "/path/to/secret_key_base_file";
-};
+}
 ```
 
 This assumes you have set up an MX record for the address you've
@@ -162,44 +168,46 @@ The following example sets the title and description of the
 Discourse instance and enables
 GitHub login in the site settings,
 and changes a few request limits in the backend settings:
-```
-services.discourse = {
-  enable = true;
-  hostname = "discourse.example.com";
-  sslCertificate = "/path/to/ssl_certificate";
-  sslCertificateKey = "/path/to/ssl_certificate_key";
-  admin = {
-    email = "admin@example.com";
-    username = "admin";
-    fullName = "Administrator";
-    passwordFile = "/path/to/password_file";
-  };
-  mail.outgoing = {
-    serverAddress = "smtp.emailprovider.com";
-    port = 587;
-    username = "user@emailprovider.com";
-    passwordFile = "/path/to/smtp_password_file";
-  };
-  mail.incoming.enable = true;
-  siteSettings = {
-    required = {
-      title = "My Cats";
-      site_description = "Discuss My Cats (and be nice plz)";
+```nix
+{
+  services.discourse = {
+    enable = true;
+    hostname = "discourse.example.com";
+    sslCertificate = "/path/to/ssl_certificate";
+    sslCertificateKey = "/path/to/ssl_certificate_key";
+    admin = {
+      email = "admin@example.com";
+      username = "admin";
+      fullName = "Administrator";
+      passwordFile = "/path/to/password_file";
     };
-    login = {
-      enable_github_logins = true;
-      github_client_id = "a2f6dfe838cb3206ce20";
-      github_client_secret._secret = /run/keys/discourse_github_client_secret;
+    mail.outgoing = {
+      serverAddress = "smtp.emailprovider.com";
+      port = 587;
+      username = "user@emailprovider.com";
+      passwordFile = "/path/to/smtp_password_file";
     };
+    mail.incoming.enable = true;
+    siteSettings = {
+      required = {
+        title = "My Cats";
+        site_description = "Discuss My Cats (and be nice plz)";
+      };
+      login = {
+        enable_github_logins = true;
+        github_client_id = "a2f6dfe838cb3206ce20";
+        github_client_secret._secret = /run/keys/discourse_github_client_secret;
+      };
+    };
+    backendSettings = {
+      max_reqs_per_ip_per_minute = 300;
+      max_reqs_per_ip_per_10_seconds = 60;
+      max_asset_reqs_per_ip_per_10_seconds = 250;
+      max_reqs_per_ip_mode = "warn+block";
+    };
+    secretKeyBaseFile = "/path/to/secret_key_base_file";
   };
-  backendSettings = {
-    max_reqs_per_ip_per_minute = 300;
-    max_reqs_per_ip_per_10_seconds = 60;
-    max_asset_reqs_per_ip_per_10_seconds = 250;
-    max_reqs_per_ip_mode = "warn+block";
-  };
-  secretKeyBaseFile = "/path/to/secret_key_base_file";
-};
+}
 ```
 
 In the resulting site settings file, the
@@ -253,34 +261,36 @@ and [discourse-solved](https://github.com/discourse/discourse-solved)
 plugins, and disable `discourse-spoiler-alert`
 by default:
 
-```
-services.discourse = {
-  enable = true;
-  hostname = "discourse.example.com";
-  sslCertificate = "/path/to/ssl_certificate";
-  sslCertificateKey = "/path/to/ssl_certificate_key";
-  admin = {
-    email = "admin@example.com";
-    username = "admin";
-    fullName = "Administrator";
-    passwordFile = "/path/to/password_file";
-  };
-  mail.outgoing = {
-    serverAddress = "smtp.emailprovider.com";
-    port = 587;
-    username = "user@emailprovider.com";
-    passwordFile = "/path/to/smtp_password_file";
-  };
-  mail.incoming.enable = true;
-  plugins = with config.services.discourse.package.plugins; [
-    discourse-spoiler-alert
-    discourse-solved
-  ];
-  siteSettings = {
-    plugins = {
-      spoiler_enabled = false;
+```nix
+{
+  services.discourse = {
+    enable = true;
+    hostname = "discourse.example.com";
+    sslCertificate = "/path/to/ssl_certificate";
+    sslCertificateKey = "/path/to/ssl_certificate_key";
+    admin = {
+      email = "admin@example.com";
+      username = "admin";
+      fullName = "Administrator";
+      passwordFile = "/path/to/password_file";
+    };
+    mail.outgoing = {
+      serverAddress = "smtp.emailprovider.com";
+      port = 587;
+      username = "user@emailprovider.com";
+      passwordFile = "/path/to/smtp_password_file";
+    };
+    mail.incoming.enable = true;
+    plugins = with config.services.discourse.package.plugins; [
+      discourse-spoiler-alert
+      discourse-solved
+    ];
+    siteSettings = {
+      plugins = {
+        spoiler_enabled = false;
+      };
     };
+    secretKeyBaseFile = "/path/to/secret_key_base_file";
   };
-  secretKeyBaseFile = "/path/to/secret_key_base_file";
-};
+}
 ```
diff --git a/nixos/modules/services/web-apps/gotosocial.md b/nixos/modules/services/web-apps/gotosocial.md
index a290d7d1893a1..b3540f0d5811f 100644
--- a/nixos/modules/services/web-apps/gotosocial.md
+++ b/nixos/modules/services/web-apps/gotosocial.md
@@ -8,17 +8,19 @@ The following configuration sets up the PostgreSQL as database backend and binds
 GoToSocial to `127.0.0.1:8080`, expecting to be run behind a HTTP proxy on `gotosocial.example.com`.
 
 ```nix
-services.gotosocial = {
-  enable = true;
-  setupPostgresqlDB = true;
-  settings = {
-    application-name = "My GoToSocial";
-    host = "gotosocial.example.com";
-    protocol = "https";
-    bind-address = "127.0.0.1";
-    port = 8080;
+{
+  services.gotosocial = {
+    enable = true;
+    setupPostgresqlDB = true;
+    settings = {
+      application-name = "My GoToSocial";
+      host = "gotosocial.example.com";
+      protocol = "https";
+      bind-address = "127.0.0.1";
+      port = 8080;
+    };
   };
-};
+}
 ```
 
 Please refer to the [GoToSocial Documentation](https://docs.gotosocial.org/en/latest/configuration/general/)
@@ -30,24 +32,26 @@ Although it is possible to expose GoToSocial directly, it is common practice to
 HTTP reverse proxy such as nginx.
 
 ```nix
-networking.firewall.allowedTCPPorts = [ 80 443 ];
-services.nginx = {
-  enable = true;
-  clientMaxBodySize = "40M";
-  virtualHosts = with config.services.gotosocial.settings; {
-    "${host}" = {
-      enableACME = true;
-      forceSSL = true;
-      locations = {
-        "/" = {
-          recommendedProxySettings = true;
-          proxyWebsockets = true;
-          proxyPass = "http://${bind-address}:${toString port}";
+{
+  networking.firewall.allowedTCPPorts = [ 80 443 ];
+  services.nginx = {
+    enable = true;
+    clientMaxBodySize = "40M";
+    virtualHosts = with config.services.gotosocial.settings; {
+      "${host}" = {
+        enableACME = true;
+        forceSSL = true;
+        locations = {
+          "/" = {
+            recommendedProxySettings = true;
+            proxyWebsockets = true;
+            proxyPass = "http://${bind-address}:${toString port}";
+          };
         };
       };
     };
   };
-};
+}
 ```
 
 Please refer to [](#module-security-acme) for details on how to provision an SSL/TLS certificate.
diff --git a/nixos/modules/services/web-apps/grocy.md b/nixos/modules/services/web-apps/grocy.md
index 62aad4b103df1..f4b5769c2479c 100644
--- a/nixos/modules/services/web-apps/grocy.md
+++ b/nixos/modules/services/web-apps/grocy.md
@@ -6,7 +6,7 @@
 ## Basic usage {#module-services-grocy-basic-usage}
 
 A very basic configuration may look like this:
-```
+```nix
 { pkgs, ... }:
 {
   services.grocy = {
@@ -29,7 +29,7 @@ of the application.
 
 The configuration for `grocy` is located at `/etc/grocy/config.php`.
 By default, the following settings can be defined in the NixOS-configuration:
-```
+```nix
 { pkgs, ... }:
 {
   services.grocy.settings = {
@@ -56,7 +56,7 @@ By default, the following settings can be defined in the NixOS-configuration:
 
 If you want to alter the configuration file on your own, you can do this manually with
 an expression like this:
-```
+```nix
 { lib, ... }:
 {
   environment.etc."grocy/config.php".text = lib.mkAfter ''
diff --git a/nixos/modules/services/web-apps/jitsi-meet.md b/nixos/modules/services/web-apps/jitsi-meet.md
index 060ef9752650a..577f82e315be5 100644
--- a/nixos/modules/services/web-apps/jitsi-meet.md
+++ b/nixos/modules/services/web-apps/jitsi-meet.md
@@ -6,7 +6,7 @@ private, self-hosted video conferencing solution.
 ## Basic usage {#module-services-jitsi-basic-usage}
 
 A minimal configuration using Let's Encrypt for TLS certificates looks like this:
-```
+```nix
 {
   services.jitsi-meet = {
     enable = true;
@@ -22,7 +22,7 @@ A minimal configuration using Let's Encrypt for TLS certificates looks like this
 ## Configuration {#module-services-jitsi-configuration}
 
 Here is the minimal configuration with additional configurations:
-```
+```nix
 {
   services.jitsi-meet = {
     enable = true;
diff --git a/nixos/modules/services/web-apps/jitsi-meet.nix b/nixos/modules/services/web-apps/jitsi-meet.nix
index c4505534d635e..f907aa68f55e1 100644
--- a/nixos/modules/services/web-apps/jitsi-meet.nix
+++ b/nixos/modules/services/web-apps/jitsi-meet.nix
@@ -188,7 +188,14 @@ in
       description = lib.mdDoc ''The port which the Excalidraw backend for Jitsi should listen to.'';
     };
 
-    secureDomain.enable = mkEnableOption (lib.mdDoc "Authenticated room creation");
+    secureDomain = {
+      enable = mkEnableOption (lib.mdDoc "Authenticated room creation");
+      authentication = mkOption {
+        type = types.str;
+        default = "internal_hashed";
+        description = lib.mdDoc ''The authentication type to be used by jitsi'';
+      };
+    };
   };
 
   config = mkIf cfg.enable {
@@ -309,7 +316,7 @@ in
         enabled = true;
         domain = cfg.hostName;
         extraConfig = ''
-          authentication = ${if cfg.secureDomain.enable then "\"internal_hashed\"" else "\"jitsi-anonymous\""}
+          authentication = ${if cfg.secureDomain.enable then "\"${cfg.secureDomain.authentication}\"" else "\"jitsi-anonymous\""}
           c2s_require_encryption = false
           admins = { "focus@auth.${cfg.hostName}" }
           smacks_max_unacked_stanzas = 5
diff --git a/nixos/modules/services/web-apps/keycloak.md b/nixos/modules/services/web-apps/keycloak.md
index aa8de40d642b1..020bee4003489 100644
--- a/nixos/modules/services/web-apps/keycloak.md
+++ b/nixos/modules/services/web-apps/keycloak.md
@@ -126,16 +126,18 @@ should be set to. See the description of
 ## Example configuration {#module-services-keycloak-example-config}
 
 A basic configuration with some custom settings could look like this:
-```
-services.keycloak = {
-  enable = true;
-  settings = {
-    hostname = "keycloak.example.com";
-    hostname-strict-backchannel = true;
+```nix
+{
+  services.keycloak = {
+    enable = true;
+    settings = {
+      hostname = "keycloak.example.com";
+      hostname-strict-backchannel = true;
+    };
+    initialAdminPassword = "e6Wcm0RrtegMEHl";  # change on first login
+    sslCertificate = "/run/keys/ssl_cert";
+    sslCertificateKey = "/run/keys/ssl_key";
+    database.passwordFile = "/run/keys/db_password";
   };
-  initialAdminPassword = "e6Wcm0RrtegMEHl";  # change on first login
-  sslCertificate = "/run/keys/ssl_cert";
-  sslCertificateKey = "/run/keys/ssl_key";
-  database.passwordFile = "/run/keys/db_password";
-};
+}
 ```
diff --git a/nixos/modules/services/web-apps/lemmy.md b/nixos/modules/services/web-apps/lemmy.md
index faafe096d1382..0ed23607d00b9 100644
--- a/nixos/modules/services/web-apps/lemmy.md
+++ b/nixos/modules/services/web-apps/lemmy.md
@@ -7,13 +7,15 @@ Lemmy is a federated alternative to reddit in rust.
 the minimum to start lemmy is
 
 ```nix
-services.lemmy = {
-  enable = true;
-  settings = {
-    hostname = "lemmy.union.rocks";
-    database.createLocally = true;
+{
+  services.lemmy = {
+    enable = true;
+    settings = {
+      hostname = "lemmy.union.rocks";
+      database.createLocally = true;
+    };
+    caddy.enable = true;
   };
-  caddy.enable = true;
 }
 ```
 
diff --git a/nixos/modules/services/web-apps/nextcloud.md b/nixos/modules/services/web-apps/nextcloud.md
index 5db83d7e44634..06a8712b0b8ae 100644
--- a/nixos/modules/services/web-apps/nextcloud.md
+++ b/nixos/modules/services/web-apps/nextcloud.md
@@ -25,7 +25,7 @@ to `true`, Nextcloud will automatically be configured to connect to it through
 socket.
 
 A very basic configuration may look like this:
-```
+```nix
 { pkgs, ... }:
 {
   services.nextcloud = {
@@ -130,7 +130,7 @@ settings `listen.owner` &amp; `listen.group` in the
 [corresponding `phpfpm` pool](#opt-services.phpfpm.pools).
 
 An exemplary configuration may look like this:
-```
+```nix
 { config, lib, pkgs, ... }: {
   services.nginx.enable = false;
   services.nextcloud = {
@@ -205,7 +205,7 @@ If major-releases will be abandoned by upstream, we should check first if those
 in NixOS for a safe upgrade-path before removing those. In that case we should keep those
 packages, but mark them as insecure in an expression like this (in
 `<nixpkgs/pkgs/servers/nextcloud/default.nix>`):
-```
+```nix
 /* ... */
 {
   nextcloud17 = generic {
diff --git a/nixos/modules/services/web-apps/peertube.nix b/nixos/modules/services/web-apps/peertube.nix
index 39c02c81c4231..76f8699135922 100644
--- a/nixos/modules/services/web-apps/peertube.nix
+++ b/nixos/modules/services/web-apps/peertube.nix
@@ -61,18 +61,16 @@ let
     eval -- "\$@"
   '';
 
-  peertubeCli = pkgs.writeShellScriptBin "peertube" ''
-    node ~/dist/server/tools/peertube.js $@
+  nginxCommonHeaders = lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.forceSSL ''
+    add_header Strict-Transport-Security 'max-age=31536000';
+  '' + lib.optionalString (config.services.nginx.virtualHosts.${cfg.localDomain}.quic && config.services.nginx.virtualHosts.${cfg.localDomain}.http3) ''
+    add_header Alt-Svc 'h3=":$server_port"; ma=604800';
   '';
 
-  nginxCommonHeaders = lib.optionalString cfg.enableWebHttps ''
-    add_header Strict-Transport-Security      'max-age=63072000; includeSubDomains';
-  '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
-    add_header Alt-Svc                        'h3=":443"; ma=86400';
-  '' + ''
-    add_header Access-Control-Allow-Origin    '*';
-    add_header Access-Control-Allow-Methods   'GET, OPTIONS';
-    add_header Access-Control-Allow-Headers   'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
+  nginxCommonHeadersExtra = ''
+    add_header Access-Control-Allow-Origin '*';
+    add_header Access-Control-Allow-Methods 'GET, OPTIONS';
+    add_header Access-Control-Allow-Headers 'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
   '';
 
 in {
@@ -330,6 +328,8 @@ in {
       }
     ];
 
+    environment.systemPackages = [ cfg.package.cli ];
+
     services.peertube.settings = lib.mkMerge [
       {
         listen = {
@@ -355,12 +355,13 @@ in {
           tmp_persistent = lib.mkDefault "/var/lib/peertube/storage/tmp_persistent/";
           bin = lib.mkDefault "/var/lib/peertube/storage/bin/";
           avatars = lib.mkDefault "/var/lib/peertube/storage/avatars/";
-          videos = lib.mkDefault "/var/lib/peertube/storage/videos/";
+          web_videos = lib.mkDefault "/var/lib/peertube/storage/web-videos/";
           streaming_playlists = lib.mkDefault "/var/lib/peertube/storage/streaming-playlists/";
           redundancy = lib.mkDefault "/var/lib/peertube/storage/redundancy/";
           logs = lib.mkDefault "/var/lib/peertube/storage/logs/";
           previews = lib.mkDefault "/var/lib/peertube/storage/previews/";
           thumbnails = lib.mkDefault "/var/lib/peertube/storage/thumbnails/";
+          storyboards = lib.mkDefault "/var/lib/peertube/storage/storyboards/";
           torrents = lib.mkDefault "/var/lib/peertube/storage/torrents/";
           captions = lib.mkDefault "/var/lib/peertube/storage/captions/";
           cache = lib.mkDefault "/var/lib/peertube/storage/cache/";
@@ -428,7 +429,7 @@ in {
 
       environment = env;
 
-      path = with pkgs; [ bashInteractive ffmpeg nodejs_18 openssl yarn python3 ];
+      path = with pkgs; [ nodejs_18 yarn ffmpeg-headless openssl ];
 
       script = ''
         #!/bin/sh
@@ -456,7 +457,7 @@ in {
         ln -sf ${cfg.package}/config/default.yaml /var/lib/peertube/config/default.yaml
         ln -sf ${cfg.package}/client/dist -T /var/lib/peertube/www/client
         ln -sf ${cfg.settings.storage.client_overrides} -T /var/lib/peertube/www/client-overrides
-        npm start
+        node dist/server
       '';
       serviceConfig = {
         Type = "simple";
@@ -488,6 +489,9 @@ in {
 
     services.nginx = lib.mkIf cfg.configureNginx {
       enable = true;
+      upstreams."peertube".servers = {
+        "127.0.0.1:${toString cfg.listenHttp}".fail_timeout = "0";
+      };
       virtualHosts."${cfg.localDomain}" = {
         root = "/var/lib/peertube/www";
 
@@ -497,14 +501,14 @@ in {
           priority = 1110;
         };
 
-        locations."= /api/v1/videos/upload-resumable" = {
+        locations."~ ^/api/v1/videos/(upload-resumable|([^/]+/source/replace-resumable))$" = {
           tryFiles = "/dev/null @api";
           priority = 1120;
 
           extraConfig = ''
-            client_max_body_size                        0;
-            proxy_request_buffering                     off;
-          '';
+            client_max_body_size 0;
+            proxy_request_buffering off;
+          '' + nginxCommonHeaders;
         };
 
         locations."~ ^/api/v1/videos/(upload|([^/]+/studio/edit))$" = {
@@ -513,13 +517,11 @@ in {
           priority = 1130;
 
           extraConfig = ''
-            client_max_body_size                        12G;
-            add_header X-File-Maximum-Size              8G always;
-          '' + lib.optionalString cfg.enableWebHttps ''
-            add_header Strict-Transport-Security        'max-age=63072000; includeSubDomains';
-          '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
-            add_header Alt-Svc                          'h3=":443"; ma=86400';
-          '';
+            limit_except POST HEAD { deny all; }
+
+            client_max_body_size 12G;
+            add_header X-File-Maximum-Size 8G always;
+          '' + nginxCommonHeaders;
         };
 
         locations."~ ^/api/v1/runners/jobs/[^/]+/(update|success)$" = {
@@ -528,13 +530,9 @@ in {
           priority = 1135;
 
           extraConfig = ''
-            client_max_body_size                        12G;
-            add_header X-File-Maximum-Size              8G always;
-          '' + lib.optionalString cfg.enableWebHttps ''
-            add_header Strict-Transport-Security        'max-age=63072000; includeSubDomains';
-          '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
-            add_header Alt-Svc                          'h3=":443"; ma=86400';
-          '';
+            client_max_body_size 12G;
+            add_header X-File-Maximum-Size 8G always;
+          '' + nginxCommonHeaders;
         };
 
         locations."~ ^/api/v1/(videos|video-playlists|video-channels|users/me)" = {
@@ -542,32 +540,28 @@ in {
           priority = 1140;
 
           extraConfig = ''
-            client_max_body_size                        6M;
-            add_header X-File-Maximum-Size              4M always;
-          '' + lib.optionalString cfg.enableWebHttps ''
-            add_header Strict-Transport-Security        'max-age=63072000; includeSubDomains';
-          '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
-            add_header Alt-Svc                          'h3=":443"; ma=86400';
-          '';
+            client_max_body_size 6M;
+            add_header X-File-Maximum-Size 4M always;
+          '' + nginxCommonHeaders;
         };
 
         locations."@api" = {
-          proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
+          proxyPass = "http://peertube";
           priority = 1150;
 
           extraConfig = ''
-            proxy_set_header X-Forwarded-For            $proxy_add_x_forwarded_for;
-            proxy_set_header Host                       $host;
-            proxy_set_header X-Real-IP                  $remote_addr;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
-            proxy_connect_timeout                       10m;
+            proxy_connect_timeout 10m;
 
-            proxy_send_timeout                          10m;
-            proxy_read_timeout                          10m;
+            proxy_send_timeout 10m;
+            proxy_read_timeout 10m;
 
-            client_max_body_size                        100k;
-            send_timeout                                10m;
-          '';
+            client_max_body_size 100k;
+            send_timeout 10m;
+          ''+ nginxCommonHeaders;
         };
 
         # Websocket
@@ -581,7 +575,7 @@ in {
           priority = 1220;
 
           extraConfig = ''
-            proxy_read_timeout                          15m;
+            proxy_read_timeout 15m;
           '';
         };
 
@@ -591,84 +585,82 @@ in {
         };
 
         locations."@api_websocket" = {
-          proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
+          proxyPass = "http://peertube";
           priority = 1240;
 
           extraConfig = ''
-            proxy_set_header X-Forwarded-For            $proxy_add_x_forwarded_for;
-            proxy_set_header Host                       $host;
-            proxy_set_header X-Real-IP                  $remote_addr;
-            proxy_set_header Upgrade                    $http_upgrade;
-            proxy_set_header Connection                 'upgrade';
-
-            proxy_http_version                          1.1;
-          '';
+            proxy_http_version 1.1;
+            proxy_set_header Upgrade $http_upgrade;
+            proxy_set_header Connection 'upgrade';
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+          '' + nginxCommonHeaders;
         };
 
         # Bypass PeerTube for performance reasons.
         locations."~ ^/client/(assets/images/(icons/icon-36x36\.png|icons/icon-48x48\.png|icons/icon-72x72\.png|icons/icon-96x96\.png|icons/icon-144x144\.png|icons/icon-192x192\.png|icons/icon-512x512\.png|logo\.svg|favicon\.png|default-playlist\.jpg|default-avatar-account\.png|default-avatar-account-48x48\.png|default-avatar-video-channel\.png|default-avatar-video-channel-48x48\.png))$" = {
           tryFiles = "/client-overrides/$1 /client/$1 $1";
           priority = 1310;
+
+          extraConfig = nginxCommonHeaders;
         };
 
         locations."~ ^/client/(.*\.(js|css|png|svg|woff2|otf|ttf|woff|eot))$" = {
           alias = "${cfg.package}/client/dist/$1";
           priority = 1320;
           extraConfig = ''
-            add_header Cache-Control                    'public, max-age=604800, immutable';
-          '' + lib.optionalString cfg.enableWebHttps ''
-            add_header Strict-Transport-Security        'max-age=63072000; includeSubDomains';
-          '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
-            add_header Alt-Svc                          'h3=":443"; ma=86400';
-          '';
+            add_header Cache-Control 'public, max-age=604800, immutable';
+          '' + nginxCommonHeaders;
         };
 
         locations."^~ /download/" = {
-          proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
+          proxyPass = "http://peertube";
           priority = 1410;
           extraConfig = ''
-            proxy_set_header X-Forwarded-For            $proxy_add_x_forwarded_for;
-            proxy_set_header Host                       $host;
-            proxy_set_header X-Real-IP                  $remote_addr;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
-            proxy_limit_rate                            5M;
-          '';
+            proxy_limit_rate 5M;
+          '' + nginxCommonHeaders;
         };
 
-        locations."^~ /static/streaming-playlists/private/" = {
-          proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
+        locations."^~ /static/streaming-playlists/hls/private/" = {
+          proxyPass = "http://peertube";
           priority = 1420;
           extraConfig = ''
-            proxy_set_header X-Forwarded-For            $proxy_add_x_forwarded_for;
-            proxy_set_header Host                       $host;
-            proxy_set_header X-Real-IP                  $remote_addr;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
-            proxy_limit_rate                            5M;
-          '';
+            proxy_limit_rate 5M;
+          '' + nginxCommonHeaders;
         };
 
         locations."^~ /static/web-videos/private/" = {
-          proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
+          proxyPass = "http://peertube";
           priority = 1430;
           extraConfig = ''
-            proxy_set_header X-Forwarded-For            $proxy_add_x_forwarded_for;
-            proxy_set_header Host                       $host;
-            proxy_set_header X-Real-IP                  $remote_addr;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
-            proxy_limit_rate                            5M;
-          '';
+            proxy_limit_rate 5M;
+          '' + nginxCommonHeaders;
         };
 
         locations."^~ /static/webseed/private/" = {
-          proxyPass = "http://127.0.0.1:${toString cfg.listenHttp}";
+          proxyPass = "http://peertube";
           priority = 1440;
           extraConfig = ''
-            proxy_set_header X-Forwarded-For            $proxy_add_x_forwarded_for;
-            proxy_set_header Host                       $host;
-            proxy_set_header X-Real-IP                  $remote_addr;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
-            proxy_limit_rate                            5M;
-          '';
+            proxy_limit_rate 5M;
+          '' + nginxCommonHeaders;
         };
 
         locations."^~ /static/redundancy/" = {
@@ -676,33 +668,35 @@ in {
           root = cfg.settings.storage.redundancy;
           priority = 1450;
           extraConfig = ''
-            set $peertube_limit_rate                    800k;
+            set $peertube_limit_rate 800k;
 
             if ($request_uri ~ -fragmented.mp4$) {
-              set $peertube_limit_rate                  5M;
+              set $peertube_limit_rate 5M;
             }
 
             if ($request_method = 'OPTIONS') {
               ${nginxCommonHeaders}
-              add_header Access-Control-Max-Age         1728000;
-              add_header Content-Type                   'text/plain charset=UTF-8';
-              add_header Content-Length                 0;
-              return                                    204;
+              ${nginxCommonHeadersExtra}
+              add_header Access-Control-Max-Age 1728000;
+              add_header Content-Type 'text/plain charset=UTF-8';
+              add_header Content-Length 0;
+              return 204;
             }
             if ($request_method = 'GET') {
               ${nginxCommonHeaders}
+              ${nginxCommonHeadersExtra}
 
-              access_log                                off;
+              access_log off;
             }
 
-            aio                                         threads;
-            sendfile                                    on;
-            sendfile_max_chunk                          1M;
+            aio threads;
+            sendfile on;
+            sendfile_max_chunk 1M;
 
-            limit_rate                                  $peertube_limit_rate;
-            limit_rate_after                            5M;
+            limit_rate $peertube_limit_rate;
+            limit_rate_after 5M;
 
-            rewrite ^/static/redundancy/(.*)$           /$1 break;
+            rewrite ^/static/redundancy/(.*)$ /$1 break;
           '';
         };
 
@@ -711,109 +705,111 @@ in {
           root = cfg.settings.storage.streaming_playlists;
           priority = 1460;
           extraConfig = ''
-            set $peertube_limit_rate                    800k;
+            set $peertube_limit_rate 800k;
 
             if ($request_uri ~ -fragmented.mp4$) {
-              set $peertube_limit_rate                  5M;
+              set $peertube_limit_rate 5M;
             }
 
             if ($request_method = 'OPTIONS') {
               ${nginxCommonHeaders}
-              add_header Access-Control-Max-Age         1728000;
-              add_header Content-Type                   'text/plain charset=UTF-8';
-              add_header Content-Length                 0;
-              return                                    204;
+              ${nginxCommonHeadersExtra}
+              add_header Access-Control-Max-Age 1728000;
+              add_header Content-Type 'text/plain charset=UTF-8';
+              add_header Content-Length 0;
+              return 204;
             }
             if ($request_method = 'GET') {
               ${nginxCommonHeaders}
+              ${nginxCommonHeadersExtra}
 
-              access_log                                off;
+              access_log off;
             }
 
-            aio                                         threads;
-            sendfile                                    on;
-            sendfile_max_chunk                          1M;
+            aio threads;
+            sendfile on;
+            sendfile_max_chunk 1M;
 
-            limit_rate                                  $peertube_limit_rate;
-            limit_rate_after                            5M;
+            limit_rate $peertube_limit_rate;
+            limit_rate_after 5M;
 
-            rewrite ^/static/streaming-playlists/(.*)$  /$1 break;
+            rewrite ^/static/streaming-playlists/(.*)$ /$1 break;
           '';
         };
 
         locations."^~ /static/web-videos/" = {
           tryFiles = "$uri @api";
-          root = cfg.settings.storage.streaming_playlists;
+          root = cfg.settings.storage.web_videos;
           priority = 1470;
           extraConfig = ''
-            set $peertube_limit_rate                    800k;
+            set $peertube_limit_rate 800k;
 
             if ($request_uri ~ -fragmented.mp4$) {
-              set $peertube_limit_rate                  5M;
+              set $peertube_limit_rate 5M;
             }
 
             if ($request_method = 'OPTIONS') {
               ${nginxCommonHeaders}
-              add_header Access-Control-Max-Age         1728000;
-              add_header Content-Type                   'text/plain charset=UTF-8';
-              add_header Content-Length                 0;
-              return                                    204;
+              ${nginxCommonHeadersExtra}
+              add_header Access-Control-Max-Age 1728000;
+              add_header Content-Type 'text/plain charset=UTF-8';
+              add_header Content-Length 0;
+              return 204;
             }
             if ($request_method = 'GET') {
               ${nginxCommonHeaders}
+              ${nginxCommonHeadersExtra}
 
-              access_log                                off;
+              access_log off;
             }
 
-            aio                                         threads;
-            sendfile                                    on;
-            sendfile_max_chunk                          1M;
+            aio threads;
+            sendfile on;
+            sendfile_max_chunk 1M;
 
-            limit_rate                                  $peertube_limit_rate;
-            limit_rate_after                            5M;
+            limit_rate $peertube_limit_rate;
+            limit_rate_after 5M;
 
-            rewrite ^/static/streaming-playlists/(.*)$  /$1 break;
+            rewrite ^/static/web-videos/(.*)$ /$1 break;
           '';
         };
 
         locations."^~ /static/webseed/" = {
           tryFiles = "$uri @api";
-          root = cfg.settings.storage.videos;
+          root = cfg.settings.storage.web_videos;
           priority = 1480;
           extraConfig = ''
-            set $peertube_limit_rate                    800k;
+            set $peertube_limit_rate 800k;
 
             if ($request_uri ~ -fragmented.mp4$) {
-              set $peertube_limit_rate                  5M;
+              set $peertube_limit_rate 5M;
             }
 
             if ($request_method = 'OPTIONS') {
               ${nginxCommonHeaders}
-              add_header Access-Control-Max-Age         1728000;
-              add_header Content-Type                   'text/plain charset=UTF-8';
-              add_header Content-Length                 0;
-              return                                    204;
+              ${nginxCommonHeadersExtra}
+              add_header Access-Control-Max-Age 1728000;
+              add_header Content-Type 'text/plain charset=UTF-8';
+              add_header Content-Length 0;
+              return 204;
             }
             if ($request_method = 'GET') {
               ${nginxCommonHeaders}
+              ${nginxCommonHeadersExtra}
 
-              access_log                                off;
+              access_log off;
             }
 
-            aio                                         threads;
-            sendfile                                    on;
-            sendfile_max_chunk                          1M;
+            aio threads;
+            sendfile on;
+            sendfile_max_chunk 1M;
 
-            limit_rate                                  $peertube_limit_rate;
-            limit_rate_after                            5M;
+            limit_rate $peertube_limit_rate;
+            limit_rate_after 5M;
 
-            rewrite ^/static/webseed/(.*)$              /$1 break;
+            rewrite ^/static/webseed/(.*)$ /web-videos/$1 break;
           '';
         };
-
-        extraConfig = lib.optionalString cfg.enableWebHttps ''
-          add_header Strict-Transport-Security          'max-age=63072000; includeSubDomains';
-        '';
       };
     };
 
@@ -848,7 +844,7 @@ in {
           home = cfg.package;
         };
       })
-      (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package peertubeEnv peertubeCli pkgs.ffmpeg pkgs.nodejs_18 pkgs.yarn ])
+      (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ peertubeEnv pkgs.nodejs_18 pkgs.yarn pkgs.ffmpeg-headless ])
       (lib.mkIf cfg.redis.enableUnixSocket {${config.services.peertube.user}.extraGroups = [ "redis-peertube" ];})
     ];
 
diff --git a/nixos/modules/services/web-apps/pict-rs.md b/nixos/modules/services/web-apps/pict-rs.md
index 2fa6bb3aebced..56c51e0d72594 100644
--- a/nixos/modules/services/web-apps/pict-rs.md
+++ b/nixos/modules/services/web-apps/pict-rs.md
@@ -7,7 +7,9 @@ pict-rs is a  a simple image hosting service.
 the minimum to start pict-rs is
 
 ```nix
-services.pict-rs.enable = true;
+{
+  services.pict-rs.enable = true;
+}
 ```
 
 this will start the http server on port 8080 by default.
diff --git a/nixos/modules/services/web-apps/plausible.md b/nixos/modules/services/web-apps/plausible.md
index 1328ce69441a0..d3673eabddd41 100644
--- a/nixos/modules/services/web-apps/plausible.md
+++ b/nixos/modules/services/web-apps/plausible.md
@@ -11,7 +11,7 @@ $ openssl rand -base64 64
 ```
 
 After that, `plausible` can be deployed like this:
-```
+```nix
 {
   services.plausible = {
     enable = true;
diff --git a/nixos/modules/services/web-apps/pretix.nix b/nixos/modules/services/web-apps/pretix.nix
index 2355f8c450a1e..22ee9769aa923 100644
--- a/nixos/modules/services/web-apps/pretix.nix
+++ b/nixos/modules/services/web-apps/pretix.nix
@@ -63,7 +63,7 @@ in
   };
 
   options.services.pretix = {
-    enable = mkEnableOption "pretix";
+    enable = mkEnableOption "Pretix, a ticket shop application for conferences, festivals, concerts, etc.";
 
     package = mkPackageOption pkgs "pretix" { };
 
diff --git a/nixos/modules/services/web-apps/suwayomi-server.md b/nixos/modules/services/web-apps/suwayomi-server.md
index 18e7a631443f4..2185556a87212 100644
--- a/nixos/modules/services/web-apps/suwayomi-server.md
+++ b/nixos/modules/services/web-apps/suwayomi-server.md
@@ -100,7 +100,7 @@ Not all the configuration options are available directly in this module, but you
       server = {
         port = 4567;
         autoDownloadNewChapters = false;
-        maxSourcesInParallel" = 6;
+        maxSourcesInParallel = 6;
         extensionRepos = [
           "https://raw.githubusercontent.com/MY_ACCOUNT/MY_REPO/repo/index.min.json"
         ];
diff --git a/nixos/modules/services/web-servers/garage.md b/nixos/modules/services/web-servers/garage.md
index 3a9b85ce06036..fbefd1914d873 100644
--- a/nixos/modules/services/web-servers/garage.md
+++ b/nixos/modules/services/web-servers/garage.md
@@ -80,7 +80,7 @@ If major-releases will be abandoned by upstream, we should check first if those
 in NixOS for a safe upgrade-path before removing those. In that case we should keep those
 packages, but mark them as insecure in an expression like this (in
 `<nixpkgs/pkgs/tools/filesystem/garage/default.nix>`):
-```
+```nix
 /* ... */
 {
   garage_0_7_3 = generic {
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.md b/nixos/modules/services/x11/desktop-managers/gnome.md
index aa36f66970ec4..2b4bd06df04f2 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome.md
+++ b/nixos/modules/services/x11/desktop-managers/gnome.md
@@ -8,9 +8,11 @@ All of the core apps, optional apps, games, and core developer tools from GNOME
 
 To enable the GNOME desktop use:
 
-```
-services.xserver.desktopManager.gnome.enable = true;
-services.xserver.displayManager.gdm.enable = true;
+```nix
+{
+  services.xserver.desktopManager.gnome.enable = true;
+  services.xserver.displayManager.gdm.enable = true;
+}
 ```
 
 ::: {.note}
@@ -23,8 +25,10 @@ The default applications used in NixOS are very minimal, inspired by the default
 
 If you’d like to only use the GNOME desktop and not the apps, you can disable them with:
 
-```
-services.gnome.core-utilities.enable = false;
+```nix
+{
+  services.gnome.core-utilities.enable = false;
+}
 ```
 
 and none of them will be installed.
@@ -37,9 +41,11 @@ Note that this mechanism can only exclude core utilities, games and core develop
 
 It is also possible to disable many of the [core services](https://github.com/NixOS/nixpkgs/blob/b8ec4fd2a4edc4e30d02ba7b1a2cc1358f3db1d5/nixos/modules/services/x11/desktop-managers/gnome.nix#L329-L348). For example, if you do not need indexing files, you can disable Tracker with:
 
-```
-services.gnome.tracker-miners.enable = false;
-services.gnome.tracker.enable = false;
+```nix
+{
+  services.gnome.tracker-miners.enable = false;
+  services.gnome.tracker.enable = false;
+}
 ```
 
 Note, however, that doing so is not supported and might break some applications. Notably, GNOME Music cannot work without Tracker.
@@ -48,39 +54,47 @@ Note, however, that doing so is not supported and might break some applications.
 
 You can install all of the GNOME games with:
 
-```
-services.gnome.games.enable = true;
+```nix
+{
+  services.gnome.games.enable = true;
+}
 ```
 
 ### GNOME core developer tools {#sec-gnome-core-developer-tools}
 
 You can install GNOME core developer tools with:
 
-```
-services.gnome.core-developer-tools.enable = true;
+```nix
+{
+  services.gnome.core-developer-tools.enable = true;
+}
 ```
 
 ## Enabling GNOME Flashback {#sec-gnome-enable-flashback}
 
 GNOME Flashback provides a desktop environment based on the classic GNOME 2 architecture. You can enable the default GNOME Flashback session, which uses the Metacity window manager, with:
 
-```
-services.xserver.desktopManager.gnome.flashback.enableMetacity = true;
+```nix
+{
+  services.xserver.desktopManager.gnome.flashback.enableMetacity = true;
+}
 ```
 
 It is also possible to create custom sessions that replace Metacity with a different window manager using [](#opt-services.xserver.desktopManager.gnome.flashback.customSessions).
 
 The following example uses `xmonad` window manager:
 
-```
-services.xserver.desktopManager.gnome.flashback.customSessions = [
-  {
-    wmName = "xmonad";
-    wmLabel = "XMonad";
-    wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad";
-    enableGnomePanel = false;
-  }
-];
+```nix
+{
+  services.xserver.desktopManager.gnome.flashback.customSessions = [
+    {
+      wmName = "xmonad";
+      wmLabel = "XMonad";
+      wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad";
+      enableGnomePanel = false;
+    }
+  ];
+}
 ```
 
 ## Icons and GTK Themes {#sec-gnome-icons-and-gtk-themes}
@@ -104,12 +118,14 @@ Some packages that include Shell extensions, like `gnome.gpaste`, don’t have t
 
 You can install them like any other package:
 
-```
-environment.systemPackages = [
-  gnomeExtensions.dash-to-dock
-  gnomeExtensions.gsconnect
-  gnomeExtensions.mpris-indicator-button
-];
+```nix
+{
+  environment.systemPackages = [
+    gnomeExtensions.dash-to-dock
+    gnomeExtensions.gsconnect
+    gnomeExtensions.mpris-indicator-button
+  ];
+}
 ```
 
 Unfortunately, we lack a way for these to be managed in a completely declarative way.
@@ -136,23 +152,25 @@ You can use `dconf-editor` tool to explore which GSettings you can set.
 
 ### Example {#sec-gnome-gsettings-overrides-example}
 
-```
-services.xserver.desktopManager.gnome = {
-  extraGSettingsOverrides = ''
-    # Change default background
-    [org.gnome.desktop.background]
-    picture-uri='file://${pkgs.nixos-artwork.wallpapers.mosaic-blue.gnomeFilePath}'
-
-    # Favorite apps in gnome-shell
-    [org.gnome.shell]
-    favorite-apps=['org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop']
-  '';
-
-  extraGSettingsOverridePackages = [
-    pkgs.gsettings-desktop-schemas # for org.gnome.desktop
-    pkgs.gnome.gnome-shell # for org.gnome.shell
-  ];
-};
+```nix
+{
+  services.xserver.desktopManager.gnome = {
+    extraGSettingsOverrides = ''
+      # Change default background
+      [org.gnome.desktop.background]
+      picture-uri='file://${pkgs.nixos-artwork.wallpapers.mosaic-blue.gnomeFilePath}'
+
+      # Favorite apps in gnome-shell
+      [org.gnome.shell]
+      favorite-apps=['org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop']
+    '';
+
+    extraGSettingsOverridePackages = [
+      pkgs.gsettings-desktop-schemas # for org.gnome.desktop
+      pkgs.gnome.gnome-shell # for org.gnome.shell
+    ];
+  };
+}
 ```
 
 ## Frequently Asked Questions {#sec-gnome-faq}
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.md b/nixos/modules/services/x11/desktop-managers/pantheon.md
index 1c14ede847495..ce251ec2d3940 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.md
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.md
@@ -5,17 +5,23 @@ Pantheon is the desktop environment created for the elementary OS distribution.
 ## Enabling Pantheon {#sec-pantheon-enable}
 
 All of Pantheon is working in NixOS and the applications should be available, aside from a few [exceptions](https://github.com/NixOS/nixpkgs/issues/58161). To enable Pantheon, set
-```
-services.xserver.desktopManager.pantheon.enable = true;
+```nix
+{
+  services.xserver.desktopManager.pantheon.enable = true;
+}
 ```
 This automatically enables LightDM and Pantheon's LightDM greeter. If you'd like to disable this, set
-```
-services.xserver.displayManager.lightdm.greeters.pantheon.enable = false;
-services.xserver.displayManager.lightdm.enable = false;
+```nix
+{
+  services.xserver.displayManager.lightdm.greeters.pantheon.enable = false;
+  services.xserver.displayManager.lightdm.enable = false;
+}
 ```
 but please be aware using Pantheon without LightDM as a display manager will break screenlocking from the UI. The NixOS module for Pantheon installs all of Pantheon's default applications. If you'd like to not install Pantheon's apps, set
-```
-services.pantheon.apps.enable = false;
+```nix
+{
+  services.pantheon.apps.enable = false;
+}
 ```
 You can also use [](#opt-environment.pantheon.excludePackages) to remove any other app (like `elementary-mail`).
 
@@ -29,30 +35,33 @@ Wingpanel and Switchboard work differently than they do in other distributions,
 to configure the programs with plugs or indicators.
 
 The difference in NixOS is both these programs are patched to load plugins from a directory that is the value of an environment variable. All of which is controlled in Nix. If you need to configure the particular packages manually you can override the packages like:
-```
+```nix
 wingpanel-with-indicators.override {
   indicators = [
     pkgs.some-special-indicator
   ];
-};
+}
 
+```
+```nix
 switchboard-with-plugs.override {
   plugs = [
     pkgs.some-special-plug
   ];
-};
+}
 ```
 please note that, like how the NixOS options describe these as extra plugins, this would only add to the default plugins included with the programs. If for some reason you'd like to configure which plugins to use exactly, both packages have an argument for this:
-```
+```nix
 wingpanel-with-indicators.override {
   useDefaultIndicators = false;
   indicators = specialListOfIndicators;
-};
-
+}
+```
+```nix
 switchboard-with-plugs.override {
   useDefaultPlugs = false;
   plugs = specialListOfPlugs;
-};
+}
 ```
 this could be most useful for testing a particular plug-in in isolation.
 
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 59bc142eeb7f9..2cfdc69b86e06 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -174,12 +174,38 @@ in
         # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1443
         pkgs.pantheon.mutter
       ];
-      systemd.packages = [
-        pkgs.pantheon.gnome-settings-daemon
+      systemd.packages = with pkgs; [
+        gnome.gnome-session
+        pantheon.gala
+        pantheon.gnome-settings-daemon
+        pantheon.elementary-session-settings
       ];
       programs.dconf.enable = true;
       networking.networkmanager.enable = mkDefault true;
 
+      systemd.user.targets."gnome-session-x11-services".wants = [
+        "org.gnome.SettingsDaemon.XSettings.service"
+      ];
+      systemd.user.targets."gnome-session-x11-services-ready".wants = [
+        "org.gnome.SettingsDaemon.XSettings.service"
+      ];
+
+      # https://github.com/elementary/gala/issues/1826#issuecomment-1890461298
+      systemd.user.services."io.elementary.gala.daemon@" = {
+        unitConfig = {
+          Description = "Gala Daemon";
+          BindsTo = "io.elementary.gala@.service";
+          After = "io.elementary.gala@.service";
+        };
+
+        serviceConfig = {
+          Type = "dbus";
+          BusName = "org.pantheon.gala.daemon";
+          ExecStart = "${pkgs.pantheon.gala}/bin/gala-daemon";
+          Slice = "session.slice";
+        };
+      };
+
       # Global environment
       environment.systemPackages = (with pkgs.pantheon; [
         elementary-session-settings
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 3e2d5780a5cb1..c22048c6692e9 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -40,7 +40,7 @@ let
         IFS=:
         for i in $XDG_CURRENT_DESKTOP; do
           case $i in
-            KDE|GNOME|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;;
+            KDE|GNOME|Pantheon|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;;
             *) ;;
           esac
         done
diff --git a/nixos/modules/services/x11/display-managers/xpra.nix b/nixos/modules/services/x11/display-managers/xpra.nix
index 0861530f21e84..3e7c6b01b3e91 100644
--- a/nixos/modules/services/x11/display-managers/xpra.nix
+++ b/nixos/modules/services/x11/display-managers/xpra.nix
@@ -251,7 +251,6 @@ in
 
     environment.systemPackages = [pkgs.xpra];
 
-    virtualisation.virtualbox.guest.x11 = false;
     hardware.pulseaudio.enable = mkDefault cfg.pulseaudio;
     hardware.pulseaudio.systemWide = mkDefault cfg.pulseaudio;
   };
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 453f414e2a862..c5b168e608a4d 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -111,7 +111,7 @@ let
     }
       ''
         echo 'Section "Files"' >> $out
-        echo $fontpath >> $out
+        echo "$fontpath" >> $out
 
         for i in ${toString fontsForXServer}; do
           if test "''${i:0:''${#NIX_STORE}}" == "$NIX_STORE"; then
@@ -121,11 +121,9 @@ let
           fi
         done
 
-        for i in $(find ${toString cfg.modules} -type d | sort); do
-          if test $(echo $i/*.so* | wc -w) -ne 0; then
-            echo "  ModulePath \"$i\"" >> $out
-          fi
-        done
+        ${concatMapStrings (m: ''
+        echo "  ModulePath \"${m}/lib/xorg/modules\"" >> "$out"
+        '') cfg.modules}
 
         echo '${cfg.filesSection}' >> $out
         echo 'EndSection' >> $out
diff --git a/nixos/modules/system/boot/clevis.md b/nixos/modules/system/boot/clevis.md
index dcbf55de60a83..39edc0fc38dfd 100644
--- a/nixos/modules/system/boot/clevis.md
+++ b/nixos/modules/system/boot/clevis.md
@@ -39,13 +39,17 @@ For more complete documentation on how to generate a secret with clevis, see the
 
 In order to activate unattended decryption of a resource at boot, enable the `clevis` module:
 
-```
-boot.initrd.clevis.enable = true;
+```nix
+{
+  boot.initrd.clevis.enable = true;
+}
 ```
 
 Then, specify the device you want to decrypt using a given clevis secret. Clevis will automatically try to decrypt the device at boot and will fallback to interactive unlocking if the decryption policy is not fulfilled.
-```
-boot.initrd.clevis.devices."/dev/nvme0n1p1".secretFile = ./nvme0n1p1.jwe;
+```nix
+{
+  boot.initrd.clevis.devices."/dev/nvme0n1p1".secretFile = ./nvme0n1p1.jwe;
+}
 ```
 
 Only `bcachefs`, `zfs` and `luks` encrypted devices are supported at this time.
diff --git a/nixos/modules/system/boot/initrd-ssh.nix b/nixos/modules/system/boot/initrd-ssh.nix
index 61e61f32bc5ee..43da2496d16c7 100644
--- a/nixos/modules/system/boot/initrd-ssh.nix
+++ b/nixos/modules/system/boot/initrd-ssh.nix
@@ -93,6 +93,21 @@ in
       defaultText = literalExpression "config.users.users.root.openssh.authorizedKeys.keys";
       description = lib.mdDoc ''
         Authorized keys for the root user on initrd.
+        You can combine the `authorizedKeys` and `authorizedKeyFiles` options.
+      '';
+      example = [
+        "ssh-rsa AAAAB3NzaC1yc2etc/etc/etcjwrsh8e596z6J0l7 example@host"
+        "ssh-ed25519 AAAAC3NzaCetcetera/etceteraJZMfk3QPfQ foo@bar"
+      ];
+    };
+
+    authorizedKeyFiles = mkOption {
+      type = types.listOf types.path;
+      default = config.users.users.root.openssh.authorizedKeys.keyFiles;
+      defaultText = literalExpression "config.users.users.root.openssh.authorizedKeys.keyFiles";
+      description = lib.mdDoc ''
+        Authorized keys taken from files for the root user on initrd.
+        You can combine the `authorizedKeyFiles` and `authorizedKeys` options.
       '';
     };
 
@@ -152,7 +167,7 @@ in
   in mkIf enabled {
     assertions = [
       {
-        assertion = cfg.authorizedKeys != [];
+        assertion = cfg.authorizedKeys != [] || cfg.authorizedKeyFiles != [];
         message = "You should specify at least one authorized key for initrd SSH";
       }
 
@@ -206,6 +221,9 @@ in
       ${concatStrings (map (key: ''
         echo ${escapeShellArg key} >> /root/.ssh/authorized_keys
       '') cfg.authorizedKeys)}
+      ${concatStrings (map (keyFile: ''
+        cat ${keyFile} >> /root/.ssh/authorized_keys
+      '') cfg.authorizedKeyFiles)}
 
       ${flip concatMapStrings cfg.hostKeys (path: ''
         # keys from Nix store are world-readable, which sshd doesn't like
@@ -236,9 +254,13 @@ in
 
       users.root.shell = mkIf (config.boot.initrd.network.ssh.shell != null) config.boot.initrd.network.ssh.shell;
 
-      contents."/etc/ssh/authorized_keys.d/root".text =
-        concatStringsSep "\n" config.boot.initrd.network.ssh.authorizedKeys;
-      contents."/etc/ssh/sshd_config".text = sshdConfig;
+      contents = {
+        "/etc/ssh/sshd_config".text = sshdConfig;
+        "/etc/ssh/authorized_keys.d/root".text =
+          concatStringsSep "\n" (
+            config.boot.initrd.network.ssh.authorizedKeys ++
+            (map (file: lib.fileContents file) config.boot.initrd.network.ssh.authorizedKeyFiles));
+      };
       storePaths = ["${package}/bin/sshd"];
 
       services.sshd = {
diff --git a/nixos/modules/virtualisation/incus.nix b/nixos/modules/virtualisation/incus.nix
index 1ceaa40cca9dc..7e75d78f667f1 100644
--- a/nixos/modules/virtualisation/incus.nix
+++ b/nixos/modules/virtualisation/incus.nix
@@ -60,8 +60,26 @@ let
   }'';
 
   # https://github.com/lxc/incus/blob/cff35a29ee3d7a2af1f937cbb6cf23776941854b/internal/server/instance/drivers/driver_qemu.go#L123
+  OVMF2MB = pkgs.OVMF.override {
+    secureBoot = true;
+    fdSize2MB = true;
+  };
   ovmf-prefix = if pkgs.stdenv.hostPlatform.isAarch64 then "AAVMF" else "OVMF";
   ovmf = pkgs.linkFarm "incus-ovmf" [
+    # 2MB must remain the default or existing VMs will fail to boot. New VMs will prefer 4MB
+    {
+      name = "OVMF_CODE.fd";
+      path = "${OVMF2MB.fd}/FV/${ovmf-prefix}_CODE.fd";
+    }
+    {
+      name = "OVMF_VARS.fd";
+      path = "${OVMF2MB.fd}/FV/${ovmf-prefix}_VARS.fd";
+    }
+    {
+      name = "OVMF_VARS.ms.fd";
+      path = "${OVMF2MB.fd}/FV/${ovmf-prefix}_VARS.fd";
+    }
+
     {
       name = "OVMF_CODE.4MB.fd";
       path = "${pkgs.OVMFFull.fd}/FV/${ovmf-prefix}_CODE.fd";
diff --git a/nixos/modules/virtualisation/virtualbox-guest.nix b/nixos/modules/virtualisation/virtualbox-guest.nix
index 94f70c65436c1..c2606968d3bed 100644
--- a/nixos/modules/virtualisation/virtualbox-guest.nix
+++ b/nixos/modules/virtualisation/virtualbox-guest.nix
@@ -5,14 +5,32 @@
 with lib;
 
 let
-
   cfg = config.virtualisation.virtualbox.guest;
   kernel = config.boot.kernelPackages;
 
-in
+  mkVirtualBoxUserService = serviceArgs: {
+    description = "VirtualBox Guest User Services ${serviceArgs}";
 
-{
+    wantedBy = [ "graphical-session.target" ];
+    partOf = [ "graphical-session.target" ];
+
+    # The graphical session may not be ready when starting the service
+    # Hence, check if the DISPLAY env var is set, otherwise fail, wait and retry again
+    startLimitBurst = 20;
+
+    unitConfig.ConditionVirtualization = "oracle";
 
+    # Check if the display environment is ready, otherwise fail
+    preStart = "${pkgs.bash}/bin/bash -c \"if [ -z $DISPLAY ]; then exit 1; fi\"";
+    serviceConfig = {
+      ExecStart = "@${kernel.virtualboxGuestAdditions}/bin/VBoxClient --foreground ${serviceArgs}";
+      # Wait after a failure, hoping that the display environment is ready after waiting
+      RestartSec = 2;
+      Restart = "always";
+    };
+  };
+in
+{
   ###### interface
 
   options.virtualisation.virtualbox.guest = {
@@ -22,32 +40,45 @@ in
       description = lib.mdDoc "Whether to enable the VirtualBox service and other guest additions.";
     };
 
-    x11 = mkOption {
+    clipboard = mkOption {
       default = true;
       type = types.bool;
-      description = lib.mdDoc "Whether to enable x11 graphics";
+      description = lib.mdDoc "Whether to enable clipboard support.";
+    };
+
+    seamless = mkOption {
+      default = true;
+      type = types.bool;
+      description = lib.mdDoc "Whether to enable seamless mode. When activated windows from the guest appear next to the windows of the host.";
+    };
+
+    draganddrop = mkOption {
+      default = true;
+      type = types.bool;
+      description = lib.mdDoc "Whether to enable drag and drop support.";
     };
   };
 
   ###### implementation
 
-  config = mkIf cfg.enable (mkMerge [{
-    assertions = [{
-      assertion = pkgs.stdenv.hostPlatform.isx86;
-      message = "Virtualbox not currently supported on ${pkgs.stdenv.hostPlatform.system}";
-    }];
+  config = mkIf cfg.enable (mkMerge [
+    {
+      assertions = [{
+        assertion = pkgs.stdenv.hostPlatform.isx86;
+        message = "Virtualbox not currently supported on ${pkgs.stdenv.hostPlatform.system}";
+      }];
 
-    environment.systemPackages = [ kernel.virtualboxGuestAdditions ];
+      environment.systemPackages = [ kernel.virtualboxGuestAdditions ];
 
-    boot.extraModulePackages = [ kernel.virtualboxGuestAdditions ];
+      boot.extraModulePackages = [ kernel.virtualboxGuestAdditions ];
 
-    boot.supportedFilesystems = [ "vboxsf" ];
-    boot.initrd.supportedFilesystems = [ "vboxsf" ];
+      boot.supportedFilesystems = [ "vboxsf" ];
+      boot.initrd.supportedFilesystems = [ "vboxsf" ];
 
-    users.groups.vboxsf.gid = config.ids.gids.vboxsf;
+      users.groups.vboxsf.gid = config.ids.gids.vboxsf;
 
-    systemd.services.virtualbox =
-      { description = "VirtualBox Guest Services";
+      systemd.services.virtualbox = {
+        description = "VirtualBox Guest Services";
 
         wantedBy = [ "multi-user.target" ];
         requires = [ "dev-vboxguest.device" ];
@@ -58,36 +89,27 @@ in
         serviceConfig.ExecStart = "@${kernel.virtualboxGuestAdditions}/bin/VBoxService VBoxService --foreground";
       };
 
-    services.udev.extraRules =
-      ''
-        # /dev/vboxuser is necessary for VBoxClient to work.  Maybe we
-        # should restrict this to logged-in users.
-        KERNEL=="vboxuser",  OWNER="root", GROUP="root", MODE="0666"
-
-        # Allow systemd dependencies on vboxguest.
-        SUBSYSTEM=="misc", KERNEL=="vboxguest", TAG+="systemd"
-      '';
-  } (mkIf cfg.x11 {
-    services.xserver.videoDrivers = [ "vmware" "virtualbox" "modesetting" ];
-
-    services.xserver.config =
-      ''
-        Section "InputDevice"
-          Identifier "VBoxMouse"
-          Driver "vboxmouse"
-        EndSection
-      '';
-
-    services.xserver.serverLayoutSection =
-      ''
-        InputDevice "VBoxMouse"
-      '';
-
-    services.xserver.displayManager.sessionCommands =
-      ''
-        PATH=${makeBinPath [ pkgs.gnugrep pkgs.which pkgs.xorg.xorgserver.out ]}:$PATH \
-          ${kernel.virtualboxGuestAdditions}/bin/VBoxClient-all
-      '';
-  })]);
-
+      services.udev.extraRules =
+        ''
+          # /dev/vboxuser is necessary for VBoxClient to work.  Maybe we
+          # should restrict this to logged-in users.
+          KERNEL=="vboxuser",  OWNER="root", GROUP="root", MODE="0666"
+
+          # Allow systemd dependencies on vboxguest.
+          SUBSYSTEM=="misc", KERNEL=="vboxguest", TAG+="systemd"
+        '';
+
+      systemd.user.services.virtualboxClientVmsvga = mkVirtualBoxUserService "--vmsvga-session";
+    }
+    (
+      mkIf cfg.clipboard {
+        systemd.user.services.virtualboxClientClipboard = mkVirtualBoxUserService "--clipboard";
+      }
+    )
+    (
+      mkIf cfg.seamless {
+        systemd.user.services.virtualboxClientSeamless = mkVirtualBoxUserService "--seamless";
+      }
+    )
+  ]);
 }
diff --git a/nixos/tests/agda.nix b/nixos/tests/agda.nix
index 6f51300111acf..a8e90725c06b0 100644
--- a/nixos/tests/agda.nix
+++ b/nixos/tests/agda.nix
@@ -25,13 +25,6 @@ in
   };
 
   testScript = ''
-    assert (
-        "${pkgs.agdaPackages.lib.interfaceFile "Everything.agda"}" == "Everything.agdai"
-    ), "wrong interface file for Everything.agda"
-    assert (
-        "${pkgs.agdaPackages.lib.interfaceFile "tmp/Everything.agda.md"}" == "tmp/Everything.agdai"
-    ), "wrong interface file for tmp/Everything.agda.md"
-
     # Minimal script that typechecks
     machine.succeed("touch TestEmpty.agda")
     machine.succeed("agda TestEmpty.agda")
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 9cff268ae1d15..6a6ef1f6f38b2 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -543,6 +543,7 @@ in {
   mobilizon = handleTest ./mobilizon.nix {};
   mod_perl = handleTest ./mod_perl.nix {};
   molly-brown = handleTest ./molly-brown.nix {};
+  mollysocket = handleTest ./mollysocket.nix { };
   monado = handleTest ./monado.nix {};
   monetdb = handleTest ./monetdb.nix {};
   monica = handleTest ./web-apps/monica.nix {};
@@ -991,6 +992,7 @@ in {
   wireguard = handleTest ./wireguard {};
   without-nix = handleTest ./without-nix.nix {};
   wmderland = handleTest ./wmderland.nix {};
+  workout-tracker = handleTest ./workout-tracker.nix {};
   wpa_supplicant = handleTest ./wpa_supplicant.nix {};
   wordpress = handleTest ./wordpress.nix {};
   wrappers = handleTest ./wrappers.nix {};
diff --git a/nixos/tests/lvm2/default.nix b/nixos/tests/lvm2/default.nix
index e0358ec2806fa..84f24cbc38593 100644
--- a/nixos/tests/lvm2/default.nix
+++ b/nixos/tests/lvm2/default.nix
@@ -36,9 +36,14 @@ lib.listToAttrs (
     lib.flip lib.concatMap kernelVersionsToTest (version:
       let
         v' = lib.replaceStrings [ "." ] [ "_" ] version;
+        mkXfsFlags = lib.optionalString (lib.versionOlder version "5.10") " -m bigtime=0 -m inobtcount=0 "
+                     + lib.optionalString (lib.versionOlder version "5.19") " -i nrext64=0 ";
       in
       lib.flip lib.mapAttrsToList tests (name: t:
-        lib.nameValuePair "lvm-${name}-linux-${v'}" (lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (t.test ({ kernelPackages = pkgs."linuxPackages_${v'}"; } // builtins.removeAttrs t [ "test" "kernelFilter" ])))
+        lib.nameValuePair "lvm-${name}-linux-${v'}" (lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (t.test ({
+          kernelPackages = pkgs."linuxPackages_${v'}";
+          inherit mkXfsFlags;
+        } // builtins.removeAttrs t [ "test" "kernelFilter" ])))
       )
     )
   )
diff --git a/nixos/tests/lvm2/systemd-stage-1.nix b/nixos/tests/lvm2/systemd-stage-1.nix
index 1c95aadfcb3f1..7f106e1b0dd64 100644
--- a/nixos/tests/lvm2/systemd-stage-1.nix
+++ b/nixos/tests/lvm2/systemd-stage-1.nix
@@ -1,4 +1,4 @@
-{ kernelPackages ? null, flavour }: let
+{ kernelPackages ? null, flavour, mkXfsFlags ? "" }: let
   preparationCode = {
     raid = ''
       machine.succeed("vgcreate test_vg /dev/vdb /dev/vdc")
@@ -71,7 +71,7 @@ in import ../make-test-python.nix ({ pkgs, lib, ... }: {
     boot.loader.systemd-boot.enable = true;
     boot.loader.efi.canTouchEfiVariables = true;
 
-    environment.systemPackages = with pkgs; [ e2fsprogs ]; # for mkfs.ext4
+    environment.systemPackages = with pkgs; [ xfsprogs ];
     boot = {
       initrd.systemd = {
         enable = true;
@@ -88,7 +88,7 @@ in import ../make-test-python.nix ({ pkgs, lib, ... }: {
     machine.wait_for_unit("multi-user.target")
     # Create a VG for the root
     ${preparationCode}
-    machine.succeed("mkfs.ext4 /dev/test_vg/test_lv")
+    machine.succeed("mkfs.xfs ${mkXfsFlags} /dev/test_vg/test_lv")
     machine.succeed("mkdir -p /mnt && mount /dev/test_vg/test_lv /mnt && echo hello > /mnt/test && umount /mnt")
 
     # Boot from LVM
diff --git a/nixos/tests/lvm2/thinpool.nix b/nixos/tests/lvm2/thinpool.nix
index f49c8980613ce..325bb87460b71 100644
--- a/nixos/tests/lvm2/thinpool.nix
+++ b/nixos/tests/lvm2/thinpool.nix
@@ -1,4 +1,4 @@
-{ kernelPackages ? null }:
+{ kernelPackages ? null, mkXfsFlags ? "" }:
 import ../make-test-python.nix ({ pkgs, lib, ... }: {
   name = "lvm2-thinpool";
   meta.maintainers = lib.teams.helsinki-systems.members;
@@ -18,7 +18,8 @@ import ../make-test-python.nix ({ pkgs, lib, ... }: {
   };
 
   testScript = let
-    mkXfsFlags = lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.10") "-m bigtime=0 -m inobtcount=0";
+    mkXfsFlags = lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.10") " -m bigtime=0 -m inobtcount=0 "
+               + lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.19") " -i nrext64=0 ";
   in ''
     machine.succeed("vgcreate test_vg /dev/vdb")
     machine.succeed("lvcreate -L 512M -T test_vg/test_thin_pool")
diff --git a/nixos/tests/lvm2/vdo.nix b/nixos/tests/lvm2/vdo.nix
index 75c1fc094e97f..18d25b7b366d0 100644
--- a/nixos/tests/lvm2/vdo.nix
+++ b/nixos/tests/lvm2/vdo.nix
@@ -1,4 +1,4 @@
-{ kernelPackages ? null }:
+{ kernelPackages ? null, mkXfsFlags ? "" }:
 import ../make-test-python.nix ({ pkgs, lib, ... }: {
   name = "lvm2-vdo";
   meta.maintainers = lib.teams.helsinki-systems.members;
@@ -17,7 +17,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... }: {
   testScript = ''
     machine.succeed("vgcreate test_vg /dev/vdb")
     machine.succeed("lvcreate --type vdo -n vdo_lv -L 6G -V 12G test_vg/vdo_pool_lv")
-    machine.succeed("mkfs.xfs -K /dev/test_vg/vdo_lv")
+    machine.succeed("mkfs.xfs ${mkXfsFlags} -K /dev/test_vg/vdo_lv")
     machine.succeed("mkdir /mnt; mount /dev/test_vg/vdo_lv /mnt")
     assert "/dev/mapper/test_vg-vdo_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
     machine.succeed("umount /mnt")
diff --git a/nixos/tests/make-test-python.nix b/nixos/tests/make-test-python.nix
index 32531fffd2bf3..28569f1d2955a 100644
--- a/nixos/tests/make-test-python.nix
+++ b/nixos/tests/make-test-python.nix
@@ -1,5 +1,5 @@
 f: {
-  system,
+  system ? builtins.currentSystem,
   pkgs ? import ../.. { inherit system; config = {}; overlays = []; },
   ...
 } @ args:
diff --git a/nixos/tests/mollysocket.nix b/nixos/tests/mollysocket.nix
new file mode 100644
index 0000000000000..8cbd0c0272e09
--- /dev/null
+++ b/nixos/tests/mollysocket.nix
@@ -0,0 +1,27 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+
+let
+  port = 1234;
+in {
+  name = "mollysocket";
+  meta.maintainers = with lib.maintainers; [ dotlambda ];
+
+  nodes.mollysocket = { ... }: {
+    services.mollysocket = {
+      enable = true;
+      settings = {
+        inherit port;
+      };
+    };
+  };
+
+  testScript = ''
+    import json
+
+    mollysocket.wait_for_unit("mollysocket.service")
+    mollysocket.wait_for_open_port(${toString port})
+
+    out = mollysocket.succeed("curl --fail http://127.0.0.1:${toString port}")
+    assert json.loads(out)["mollysocket"]["version"] == "${toString pkgs.mollysocket.version}"
+  '';
+})
diff --git a/nixos/tests/nixos-rebuild-install-bootloader.nix b/nixos/tests/nixos-rebuild-install-bootloader.nix
index 3ade90ea24a74..94554a93bd63b 100644
--- a/nixos/tests/nixos-rebuild-install-bootloader.nix
+++ b/nixos/tests/nixos-rebuild-install-bootloader.nix
@@ -60,7 +60,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       # Need to run `nixos-rebuild` twice because the first run will install
       # GRUB anyway
       with subtest("Switch system again and install bootloader"):
-          result = machine.succeed("nixos-rebuild switch --install-bootloader")
+          result = machine.succeed("nixos-rebuild switch --install-bootloader 2>&1")
           # install-grub2.pl messages
           assert "updating GRUB 2 menu..." in result
           assert "installing the GRUB 2 boot loader on /dev/vda..." in result
diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix
index 69a28c397bedc..14f92fa3af4a2 100644
--- a/nixos/tests/pantheon.nix
+++ b/nixos/tests/pantheon.nix
@@ -50,11 +50,11 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
             machine.wait_until_succeeds(f"pgrep -f {i}")
         for i in ["gala", "io.elementary.wingpanel", "plank"]:
             machine.wait_for_window(i)
-        machine.wait_for_unit("bamfdaemon.service", "${user.name}")
-        machine.wait_for_unit("io.elementary.files.xdg-desktop-portal.service", "${user.name}")
+        for i in ["io.elementary.gala.daemon@x11.service", "bamfdaemon.service", "io.elementary.files.xdg-desktop-portal.service"]:
+            machine.wait_for_unit(i, "${user.name}")
 
     with subtest("Check if various environment variables are set"):
-        cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf /run/current-system/sw/bin/gala)/environ"
+        cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf ${pkgs.pantheon.gala}/bin/gala)/environ"
         machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'Pantheon'")
         # Hopefully from the sessionPath option.
         machine.succeed(f"{cmd} | grep 'XDG_DATA_DIRS' | grep 'gsettings-schemas/pantheon-agent-geoclue2'")
diff --git a/nixos/tests/web-apps/peertube.nix b/nixos/tests/web-apps/peertube.nix
index 0e5f39c08a023..83c7cf03701e0 100644
--- a/nixos/tests/web-apps/peertube.nix
+++ b/nixos/tests/web-apps/peertube.nix
@@ -17,16 +17,18 @@ import ../make-test-python.nix ({pkgs, ...}:
       services.postgresql = {
         enable = true;
         enableTCPIP = true;
+        ensureDatabases = [ "peertube_test" ];
+        ensureUsers = [
+          {
+            name = "peertube_test";
+            ensureDBOwnership = true;
+          }
+        ];
         authentication = ''
-          hostnossl peertube_local peertube_test 192.168.2.11/32 md5
+          hostnossl peertube_test peertube_test 192.168.2.11/32 md5
         '';
         initialScript = pkgs.writeText "postgresql_init.sql" ''
           CREATE ROLE peertube_test LOGIN PASSWORD '0gUN0C1mgST6czvjZ8T9';
-          CREATE DATABASE peertube_local TEMPLATE template0 ENCODING UTF8;
-          GRANT ALL PRIVILEGES ON DATABASE peertube_local TO peertube_test;
-          \connect peertube_local
-          CREATE EXTENSION IF NOT EXISTS pg_trgm;
-          CREATE EXTENSION IF NOT EXISTS unaccent;
         '';
       };
 
@@ -41,6 +43,9 @@ import ../make-test-python.nix ({pkgs, ...}:
     server = { pkgs, ... }: {
       environment = {
         etc = {
+          "peertube/password-init-root".text = ''
+            PT_INITIAL_ROOT_PASSWORD=zw4SqYVdcsXUfRX8aaFX
+          '';
           "peertube/secrets-peertube".text = ''
             063d9c60d519597acef26003d5ecc32729083965d09181ef3949200cbe5f09ee
           '';
@@ -70,13 +75,15 @@ import ../make-test-python.nix ({pkgs, ...}:
         localDomain = "peertube.local";
         enableWebHttps = false;
 
+        serviceEnvironmentFile = "/etc/peertube/password-init-root";
+
         secrets = {
           secretsFile = "/etc/peertube/secrets-peertube";
         };
 
         database = {
           host = "192.168.2.10";
-          name = "peertube_local";
+          name = "peertube_test";
           user = "peertube_test";
           passwordFile = "/etc/peertube/password-posgressql-db";
         };
@@ -99,7 +106,7 @@ import ../make-test-python.nix ({pkgs, ...}:
     };
 
     client = {
-      environment.systemPackages = [ pkgs.jq ];
+      environment.systemPackages = [ pkgs.jq pkgs.peertube.cli ];
       networking = {
        interfaces.eth1 = {
           ipv4.addresses = [
@@ -130,7 +137,10 @@ import ../make-test-python.nix ({pkgs, ...}:
     client.succeed("curl --fail http://peertube.local:9000/api/v1/config/about | jq -r '.instance.name' | grep 'PeerTube\ Test\ Server'")
 
     # Check PeerTube CLI version
-    assert "${pkgs.peertube.version}" in server.succeed('su - peertube -s /bin/sh -c "peertube --version"')
+    client.succeed('peertube-cli auth add -u "http://peertube.local:9000" -U "root" --password "zw4SqYVdcsXUfRX8aaFX"')
+    client.succeed('peertube-cli auth list | grep "http://peertube.local:9000"')
+    client.succeed('peertube-cli auth del "http://peertube.local:9000"')
+    client.fail('peertube-cli auth list | grep "http://peertube.local:9000"')
 
     client.shutdown()
     server.shutdown()
diff --git a/nixos/tests/workout-tracker.nix b/nixos/tests/workout-tracker.nix
new file mode 100644
index 0000000000000..1ad509edf2d4c
--- /dev/null
+++ b/nixos/tests/workout-tracker.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix (
+  { lib, pkgs, ... }:
+
+  {
+    name = "workout-tracker";
+
+    meta.maintainers = with lib.maintainers; [ bhankas ];
+
+    nodes.machine =
+      { config, ... }:
+      {
+        virtualisation.memorySize = 2048;
+
+        services.workout-tracker.enable = true;
+      };
+
+    testScript = ''
+      start_all()
+      machine.wait_for_unit("workout-tracker.service")
+      # wait for workout-tracker to fully come up
+
+      with subtest("workout-tracker service starts"):
+          machine.wait_until_succeeds(
+              "curl -sSfL http://localhost:8080/ > /dev/null",
+              timeout=30
+          )
+    '';
+  }
+)
diff --git a/pkgs/README.md b/pkgs/README.md
index f8a79acdbd299..9529b7a2db2ed 100644
--- a/pkgs/README.md
+++ b/pkgs/README.md
@@ -417,31 +417,37 @@ In the file `pkgs/top-level/all-packages.nix` you can find fetch helpers, these
 - Bad: Uses `git://` which won't be proxied.
 
   ```nix
-  src = fetchgit {
-    url = "git://github.com/NixOS/nix.git";
-    rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
-    hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
+  {
+    src = fetchgit {
+      url = "git://github.com/NixOS/nix.git";
+      rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
+      hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
+    };
   }
   ```
 
 - Better: This is ok, but an archive fetch will still be faster.
 
   ```nix
-  src = fetchgit {
-    url = "https://github.com/NixOS/nix.git";
-    rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
-    hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
+  {
+    src = fetchgit {
+      url = "https://github.com/NixOS/nix.git";
+      rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
+      hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
+    };
   }
   ```
 
 - Best: Fetches a snapshot archive and you get the rev you want.
 
   ```nix
-  src = fetchFromGitHub {
-    owner = "NixOS";
-    repo = "nix";
-    rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
-    hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
+  {
+    src = fetchFromGitHub {
+      owner = "NixOS";
+      repo = "nix";
+      rev = "1f795f9f44607cc5bec70d1300150bfefcef2aae";
+      hash = "sha256-7D4m+saJjbSFP5hOwpQq2FGR2rr+psQMTcyb1ZvtXsQ=";
+    };
   }
   ```
 
@@ -506,13 +512,15 @@ Let's say Man-in-the-Middle (MITM) sits close to your network. Then instead of f
 Patches available online should be retrieved using `fetchpatch`.
 
 ```nix
-patches = [
-  (fetchpatch {
-    name = "fix-check-for-using-shared-freetype-lib.patch";
-    url = "http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=8f5d285";
-    hash = "sha256-uRcxaCjd+WAuGrXOmGfFeu79cUILwkRdBu48mwcBE7g=";
-  })
-];
+{
+  patches = [
+    (fetchpatch {
+      name = "fix-check-for-using-shared-freetype-lib.patch";
+      url = "http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=8f5d285";
+      hash = "sha256-uRcxaCjd+WAuGrXOmGfFeu79cUILwkRdBu48mwcBE7g=";
+    })
+  ];
+}
 ```
 
 Otherwise, you can add a `.patch` file to the `nixpkgs` repository. In the interest of keeping our maintenance burden to a minimum, only patches that are unique to `nixpkgs` should be added in this way.
@@ -520,7 +528,9 @@ Otherwise, you can add a `.patch` file to the `nixpkgs` repository. In the inter
 If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`. Check [the `fetchpatch` reference](https://nixos.org/manual/nixpkgs/unstable/#fetchpatch) for details.
 
 ```nix
-patches = [ ./0001-changes.patch ];
+{
+  patches = [ ./0001-changes.patch ];
+}
 ```
 
 If you do need to do create this sort of patch file, one way to do so is with git:
@@ -564,8 +574,10 @@ We use jbidwatcher as an example for a discontinued project here.
 
     For example in this case:
 
-    ```
-    jbidwatcher = throw "jbidwatcher was discontinued in march 2021"; # added 2021-03-15
+    ```nix
+    {
+      jbidwatcher = throw "jbidwatcher was discontinued in march 2021"; # added 2021-03-15
+    }
     ```
 
     The throw message should explain in short why the package was removed for users that still have it installed.
@@ -617,10 +629,10 @@ Here in the nixpkgs manual we describe mostly _package tests_; for _module tests
 For very simple tests, they can be written inline:
 
 ```nix
-{ …, yq-go }:
+{ /* ... , */ yq-go }:
 
 buildGoModule rec {
-  …
+  # …
 
   passthru.tests = {
     simple = runCommand "${pname}-test" {} ''
@@ -642,13 +654,13 @@ Add the tests in `passthru.tests` to the package definition like this:
 { stdenv, lib, fetchurl, callPackage }:
 
 stdenv.mkDerivation {
-  …
+  # …
 
   passthru.tests = {
     simple-execution = callPackage ./tests.nix { };
   };
 
-  meta = { … };
+  meta = { /* … */ };
 }
 ```
 
@@ -706,13 +718,13 @@ For example, assuming we're packaging `nginx`, we can link its module test via `
 { stdenv, lib, nixosTests }:
 
 stdenv.mkDerivation {
-  ...
+  # ...
 
   passthru.tests = {
     nginx = nixosTests.nginx;
   };
 
-  ...
+  # ...
 }
 ```
 
diff --git a/pkgs/applications/audio/alsa-scarlett-gui/default.nix b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
index 2b5aea7e5843c..9504a5e9521bf 100644
--- a/pkgs/applications/audio/alsa-scarlett-gui/default.nix
+++ b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
@@ -6,18 +6,19 @@
 , alsa-utils
 , alsa-lib
 , gtk4
+, openssl
 , wrapGAppsHook4
 }:
 
 stdenv.mkDerivation rec {
   pname = "alsa-scarlett-gui";
-  version = "0.3.3";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "geoffreybennett";
     repo = pname;
     rev = version;
-    sha256 = "sha256-lIwDNyzuvolDhTVCslCtUfbsC/TxKtxQF97h0zYxp9k=";
+    sha256 = "sha256-+74JRQn2xwgPHZSrp5b+uny0+aLnsFvx/cOKIdj4J40=";
   };
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
@@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "DESTDIR=\${out}" "PREFIX=''" ];
   sourceRoot = "${src.name}/src";
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 makeWrapper ];
-  buildInputs = [ gtk4 alsa-lib ];
+  buildInputs = [ gtk4 alsa-lib openssl ];
   postInstall = ''
     wrapProgram $out/bin/alsa-scarlett-gui --prefix PATH : ${lib.makeBinPath [ alsa-utils ]}
 
@@ -37,11 +38,11 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "fortify3" ];
 
   meta = with lib; {
-    description = "GUI for alsa controls presented by Focusrite Scarlett Gen 2/3 Mixer Driver";
+    description = "GUI for alsa controls presented by Focusrite Scarlett Gen 2/3/4 Mixer Driver";
     mainProgram = "alsa-scarlett-gui";
     homepage = "https://github.com/geoffreybennett/alsa-scarlett-gui";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ sebtm ];
+    maintainers = with maintainers; [ mdorman ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/famistudio/build-native-wrapper.nix b/pkgs/applications/audio/famistudio/build-native-wrapper.nix
new file mode 100644
index 0000000000000..ddee5bf5712dc
--- /dev/null
+++ b/pkgs/applications/audio/famistudio/build-native-wrapper.nix
@@ -0,0 +1,69 @@
+{ depname
+, version
+, src
+, sourceRoot
+, stdenv
+, lib
+, patches ? []
+, extraPostPatch ? ""
+, buildInputs ? []
+}:
+
+let
+  rebuildscriptName = if stdenv.hostPlatform.isLinux then
+    "build_linux"
+  else if stdenv.hostPlatform.isDarwin then
+    "build_macos"
+  else throw "Don't know how to rebuild FamiStudio's vendored ${depname} for ${stdenv.hostPlatform.system}";
+in
+stdenv.mkDerivation {
+  pname = "famistudio-nativedep-${depname}";
+  inherit version src sourceRoot patches buildInputs;
+
+  postPatch = let
+    libnameBase = lib.optionalString stdenv.hostPlatform.isLinux "lib" + depname;
+  in ''
+    # Use one name for build script, eases with patching
+    mv ${rebuildscriptName}.sh build.sh
+
+    # Scripts use hardcoded compilers and try to copy built libraries into FamiStudio's build tree
+    # Not all scripts use the same compiler, so don't fail on replacing that
+    substituteInPlace build.sh \
+      --replace-fail '../../FamiStudio/' "$out/lib/" \
+      --replace-quiet 'g++' "$CXX"
+
+    # Replacing gcc via sed, would break -static-libgcc otherwise
+    sed -i -e "s/^gcc/$CC/g" build.sh
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # Darwin rebuild scripts try to make a universal2 dylib
+    # - build dylib for non-hostPlatform
+    # - copy built library into special directory for later packaging script
+    # - join two dylibs together into a universal2 dylib
+    # Remove everything we don't need
+    sed -ri \
+      -e '/-target ${if stdenv.hostPlatform.isx86_64 then "arm64" else "x86_64"}/d' \
+      -e '/..\/..\/Setup/d' \
+      build.sh
+
+    # Replace joining multi-arch dylibs with copying dylib for target arch
+    substituteInPlace build.sh \
+      --replace-fail 'lipo -create -output ${libnameBase}.dylib' 'cp ${libnameBase}_${if stdenv.hostPlatform.isx86_64 then "x86_64" else "arm64"}.dylib ${libnameBase}.dylib #'
+  '' + extraPostPatch;
+
+  dontConfigure = true;
+  dontInstall = true; # rebuild script automatically installs
+
+  buildPhase = ''
+    runHook preBuild
+
+    mkdir -p $out/lib
+
+    # Delete all prebuilt libraries, make sure everything is rebuilt
+    find . -name '*.so' -or -name '*.dylib' -or -name '*.a' -delete
+
+    # When calling normally, an error won't cause derivation to fail
+    source ./build.sh
+
+    runHook postBuild
+  '';
+}
diff --git a/pkgs/applications/audio/famistudio/default.nix b/pkgs/applications/audio/famistudio/default.nix
index 9951f0ccfb078..7d738065ce3a3 100644
--- a/pkgs/applications/audio/famistudio/default.nix
+++ b/pkgs/applications/audio/famistudio/default.nix
@@ -1,59 +1,108 @@
-{ lib
-, stdenv
-, fetchzip
-, autoPatchelfHook
-, dotnet-runtime
+{ stdenv
+, lib
+, buildDotnetModule
+, callPackage
+, fetchFromGitHub
 , ffmpeg
-, libglvnd
+, glfw
+, libogg
+, libvorbis
 , makeWrapper
 , openal
+, portaudio
+, rtmidi
 }:
 
-stdenv.mkDerivation rec {
+let
+  csprojName = if stdenv.hostPlatform.isLinux then
+    "FamiStudio.Linux"
+  else if stdenv.hostPlatform.isDarwin then
+    "FamiStudio.Mac"
+  else throw "Don't know how to build FamiStudio for ${stdenv.hostPlatform.system}";
+in
+buildDotnetModule rec {
   pname = "famistudio";
   version = "4.1.3";
 
-  src = fetchzip {
-    url = "https://github.com/BleuBleu/FamiStudio/releases/download/${version}/FamiStudio${lib.strings.concatStrings (lib.splitVersion version)}-LinuxAMD64.zip";
-    stripRoot = false;
-    hash = "sha256-eAdv0oObczbs8QLGYbxCrdFk/gN5DOCJ1dp/tg8JWIc=";
+  src = fetchFromGitHub {
+    owner = "BleuBleu";
+    repo = "FamiStudio";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bryxhminkrTVe5qhGeMStZp3NTHBREXrsUlyQkfPkao=";
   };
 
-  strictDeps = true;
+  postPatch = let
+    libname = library: "${library}${stdenv.hostPlatform.extensions.sharedLibrary}";
+    buildNativeWrapper = args: callPackage ./build-native-wrapper.nix (args // {
+      inherit version src;
+      sourceRoot = "${src.name}/ThirdParty/${args.depname}";
+    });
+    nativeWrapperToReplaceFormat = args: let
+      libPrefix = lib.optionalString stdenv.hostPlatform.isLinux "lib";
+    in {
+      package = buildNativeWrapper args;
+      expectedName = "${libPrefix}${args.depname}";
+      ourName = "${libPrefix}${args.depname}";
+    };
+    librariesToReplace = [
+      # Unmodified native libraries that we can fully substitute
+      { package = glfw; expectedName = "libglfw"; ourName = "libglfw"; }
+      { package = rtmidi; expectedName = "librtmidi"; ourName = "librtmidi"; }
+    ] ++ lib.optionals stdenv.hostPlatform.isLinux [
+      { package = openal; expectedName = "libopenal32"; ourName = "libopenal"; }
+    ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+      { package = portaudio; expectedName = "libportaudio.2"; ourName = "libportaudio.2"; }
+    ] ++ [
+      # Native libraries, with extra code for the C# wrapping
+      (nativeWrapperToReplaceFormat { depname = "GifDec"; })
+      (nativeWrapperToReplaceFormat { depname = "NesSndEmu"; })
+      (nativeWrapperToReplaceFormat { depname = "NotSoFatso"; extraPostPatch = ''
+        # C++17 does not allow register storage class specifier
+        substituteInPlace build.sh \
+          --replace-fail "$CXX" "$CXX -std=c++14"
+      ''; })
+      (nativeWrapperToReplaceFormat { depname = "ShineMp3"; })
+      (nativeWrapperToReplaceFormat { depname = "Stb"; })
+      (nativeWrapperToReplaceFormat { depname = "Vorbis"; buildInputs = [ libogg libvorbis ]; })
+    ];
+    libraryReplaceArgs = lib.strings.concatMapStringsSep " "
+      (library: "--replace-fail '${libname library.expectedName}' '${lib.getLib library.package}/lib/${libname library.ourName}'")
+      librariesToReplace;
+  in ''
+    # Don't use any prebuilt libraries
+    rm FamiStudio/*.{dll,dylib,so*}
 
-  nativeBuildInputs = [
-    autoPatchelfHook
-    makeWrapper
-  ];
+    # Replace copying of vendored prebuilt native libraries with copying of our native libraries
+    substituteInPlace ${projectFile} ${libraryReplaceArgs}
 
-  buildInputs = [
-    dotnet-runtime
-    ffmpeg
-    libglvnd
-    openal
-  ];
+    # Un-hardcode target platform if set
+    sed -i -e '/PlatformTarget/d' ${projectFile}
 
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
+    # Don't require a special name to be preserved, our OpenAL isn't 32-bit
+    substituteInPlace FamiStudio/Source/AudioStreams/OpenALStream.cs \
+      --replace-fail 'libopenal32' 'libopenal'
+  '';
 
-    mkdir -p $out/{bin,lib/famistudio}
-    mv * $out/lib/famistudio
+  projectFile = "FamiStudio/${csprojName}.csproj";
+  nugetDeps = ./deps.nix;
 
-    makeWrapper ${lib.getExe dotnet-runtime} $out/bin/famistudio \
-      --add-flags $out/lib/famistudio/FamiStudio.dll \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libglvnd ]} \
-      --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
+  executables = [ "FamiStudio" ];
 
-    # Bundled openal lib freezes the application
-    rm $out/lib/famistudio/libopenal32.so
-    ln -s ${openal}/lib/libopenal.so $out/lib/famistudio/libopenal32.so
+  postInstall = ''
+    mkdir -p $out/share/famistudio
+    for datdir in Setup/Demo\ {Instruments,Songs}; do
+      cp -R "$datdir" $out/share/famistudio/
+    done
+  '';
 
-    runHook postInstall
+  postFixup = ''
+    # FFMpeg looked up from PATH
+    wrapProgram $out/bin/FamiStudio \
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
   '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     homepage = "https://famistudio.org/";
     description = "NES Music Editor";
@@ -62,10 +111,8 @@ stdenv.mkDerivation rec {
       or Famicom. It is targeted at both chiptune artists and NES homebrewers.
     '';
     license = licenses.mit;
-    # Maybe possible to build from source but I'm not too familiar with C# packaging
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ OPNA2608 ];
-    platforms = [ "x86_64-linux" ];
-    mainProgram = "famistudio";
+    platforms = platforms.unix;
+    mainProgram = "FamiStudio";
   };
 }
diff --git a/pkgs/applications/audio/famistudio/deps.nix b/pkgs/applications/audio/famistudio/deps.nix
new file mode 100644
index 0000000000000..f3a17967e25c8
--- /dev/null
+++ b/pkgs/applications/audio/famistudio/deps.nix
@@ -0,0 +1,5 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+]
diff --git a/pkgs/applications/audio/famistudio/update.sh b/pkgs/applications/audio/famistudio/update.sh
new file mode 100755
index 0000000000000..15657955c0251
--- /dev/null
+++ b/pkgs/applications/audio/famistudio/update.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+set -eo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath "./deps.nix")"
+
+new_version="$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
+    -s "https://api.github.com/repos/BleuBleu/FamiStudio/releases?per_page=1" | jq -r '.[0].tag_name')"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+if [[ "$new_version" == "$old_version" ]]; then
+    echo "Up to date"
+    exit 0
+fi
+
+cd ../../../..
+
+if [[ "$1" != "--deps-only" ]]; then
+    update-source-version famistudio "$new_version"
+fi
+
+$(nix-build . -A famistudio.fetch-deps --no-out-link) "$deps_file"
diff --git a/pkgs/applications/audio/jacktrip/default.nix b/pkgs/applications/audio/jacktrip/default.nix
index 150f05c5f53ed..f8fb4cedbc9ff 100644
--- a/pkgs/applications/audio/jacktrip/default.nix
+++ b/pkgs/applications/audio/jacktrip/default.nix
@@ -11,7 +11,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.4";
+  version = "2.2.5";
   pname = "jacktrip";
 
   src = fetchFromGitHub {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     repo = "jacktrip";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-H1zjBNEFPvZRDEaFOiL1ZAlHQsNxeT4WbXEOqg0+eFg=";
+    sha256 = "sha256-rZ8oaud+ovJ7t+SGnWe7QbqjQns1EkbbwpdE+rLr6nc=";
   };
 
   preConfigure = ''
diff --git a/pkgs/applications/audio/schismtracker/default.nix b/pkgs/applications/audio/schismtracker/default.nix
index 94b082fd84a4f..bc6a406ba2f5c 100644
--- a/pkgs/applications/audio/schismtracker/default.nix
+++ b/pkgs/applications/audio/schismtracker/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "schismtracker";
-  version = "20240308";
+  version = "20240328";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-6MzMmeD4HCS/7VTFTAcOhyKjz5NvzvDEzcSpHGUwFvM=";
+    sha256 = "sha256-hoP/14lbqsuQ37oJDErPoQWWk04UshImmApCFrf5wno=";
   };
 
   configureFlags = [ "--enable-dependency-tracking" ]
diff --git a/pkgs/applications/audio/spotify-player/default.nix b/pkgs/applications/audio/spotify-player/default.nix
index f3c6755645120..e4e02f03891b9 100644
--- a/pkgs/applications/audio/spotify-player/default.nix
+++ b/pkgs/applications/audio/spotify-player/default.nix
@@ -33,16 +33,16 @@ assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaud
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-player";
-  version = "0.17.1";
+  version = "0.17.2";
 
   src = fetchFromGitHub {
     owner = "aome510";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-1aq+J1dP+hGJHq3boxZLUFfLLSFDY2uN6BwYXqHjCtk=";
+    hash = "sha256-TwMQtyg8ygFTI5DgT5rBVkZE31U4puaANIo5S8W0TXU=";
   };
 
-  cargoHash = "sha256-nULTz1H52L1kiTtViYfvxL+jrJ0uDk68oe8t5Hd7aCU=";
+  cargoHash = "sha256-RTvMywRWdZiBgNMjlUGa4jlD0HYOL3ESkVppGlsl4So=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/applications/audio/squeezelite/default.nix
index 694dd04d12a94..5c1ed3905539f 100644
--- a/pkgs/applications/audio/squeezelite/default.nix
+++ b/pkgs/applications/audio/squeezelite/default.nix
@@ -45,13 +45,13 @@ stdenv.mkDerivation {
   pname = binName;
   # versions are specified in `squeezelite.h`
   # see https://github.com/ralph-irving/squeezelite/issues/29
-  version = "2.0.0.1473";
+  version = "2.0.0.1476";
 
   src = fetchFromGitHub {
     owner = "ralph-irving";
     repo = "squeezelite";
-    rev = "66c9b6a21834019a0230c39fcee74b6bf2891f7d";
-    hash = "sha256-MCH7vltF3jLGfxcRspXg9eQMx+e+lHSoxIanf91NrE0=";
+    rev = "7bba683e26f84b7dccc6ef5f40762a67b4f63606";
+    hash = "sha256-iRrZRnSIp8NbZ/Pi8WoQjyeBgxoU0mchNEf00W1Gsvo=";
   };
 
   buildInputs = [ flac libmad libvorbis mpg123 ]
diff --git a/pkgs/applications/audio/youtube-music/default.nix b/pkgs/applications/audio/youtube-music/default.nix
index 7f6b7865054f1..c56e2ba4c48fc 100644
--- a/pkgs/applications/audio/youtube-music/default.nix
+++ b/pkgs/applications/audio/youtube-music/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "youtube-music";
-  version = "3.3.1";
+  version = "3.3.5";
 
   src = fetchFromGitHub {
     owner = "th-ch";
     repo = "youtube-music";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-N6TzDTKvMyasksE0qcEGKeNjGAD08OzxpmpoQ11/ZW4=";
+    hash = "sha256-JOmcfe7xrKRaxJwj2No3e99HBYbX+ROTjHl5Frc2P9Q=";
   };
 
   pnpmDeps = stdenvNoCC.mkDerivation {
@@ -47,10 +47,10 @@ stdenv.mkDerivation (finalAttrs: {
     dontFixup = true;
     outputHashMode = "recursive";
     outputHash = {
-      x86_64-linux = "sha256-V6CSawxBWFbXmAPbck0xCXqRlANpqFAoqSAB4Duf8qM=";
-      aarch64-linux = "sha256-cqBn35soV14CmobKt0napRELio4HKKA8Iw3QSWTxzP8=";
-      x86_64-darwin = "sha256-DY9T1N8Hxr57/XisYT+u2+hQvYMIiyQ3UHeTuA6BhSY=";
-      aarch64-darwin = "sha256-3Zk0SyhVKaz5QdO69/xzWFZj9ueJS6GLWhfW7odWvHc=";
+      x86_64-linux = "sha256-K2yJdoi+bJpz0Xf2MHlFzQXbP+H3uVE2hYfkzoB7vBE=";
+      aarch64-linux = "sha256-ZiA6XKPnkoAl9m2vEJth2wyDxj61Efye4cUk+76znnM=";
+      x86_64-darwin = "sha256-wh5Y47c5qD2PctROP9AWqLDs7H5S2/8X0zxkSMkr1xQ=";
+      aarch64-darwin = "sha256-e2h4bLVnSEtZcHERsfkNmawgxQHQXxgXrNlFKB+IRTw=";
     }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   };
 
diff --git a/pkgs/applications/backup/unifi-protect-backup/default.nix b/pkgs/applications/backup/unifi-protect-backup/default.nix
index 4bd8546e8ad12..1eb0909bc09bf 100644
--- a/pkgs/applications/backup/unifi-protect-backup/default.nix
+++ b/pkgs/applications/backup/unifi-protect-backup/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "unifi-protect-backup";
-  version = "0.10.5";
+  version = "0.10.7";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ep1cman";
     repo = "unifi-protect-backup";
     rev = "refs/tags/v${version}";
-    hash = "sha256-la/YLodfAnVuM5On6u4dyDDUvaCotmDZtHdxgNnD31A=";
+    hash = "sha256-Ypx9drM9Ks3RR75lz2COflr6GF6Bm9D+GwJWPGwuq/c=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/blockchains/aperture/default.nix b/pkgs/applications/blockchains/aperture/default.nix
index c453d48c567ac..90591889df5d7 100644
--- a/pkgs/applications/blockchains/aperture/default.nix
+++ b/pkgs/applications/blockchains/aperture/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "aperture";
-  version = "0.2-beta";
+  version = "0.3-beta";
 
   src = fetchFromGitHub {
     owner = "lightninglabs";
     repo = "aperture";
     rev = "v${version}";
-    hash = "sha256-l1fpjCAg+1PGNotKrjFLoYOMEzRNXC1mfdjRPfE0DsY=";
+    hash = "sha256-PsmaNJxWkXiFDA7IGhT+Kx1GUvv23c8L8Jz21/b48oo=";
   };
 
-  vendorHash = "sha256-tWFFmRSDUZXijAUTgR8k4EERHwIEBOyZZZ9BGXso/tU=";
+  vendorHash = "sha256-rrDLdE7c6ykhdqOfRpuxyRO4xqYp3LZvovAppzy1wVw=";
 
   subPackages = [ "cmd/aperture" ];
 
@@ -22,7 +22,7 @@ buildGoModule rec {
     description = "L402 (Lightning HTTP 402) Reverse Proxy";
     homepage = "https://github.com/lightninglabs/aperture";
     license = licenses.mit;
-    maintainers = with maintainers; [ sputn1ck ];
+    maintainers = with maintainers; [ sputn1ck HannahMR ];
     mainProgram = "aperture";
   };
 }
diff --git a/pkgs/applications/blockchains/erigon/default.nix b/pkgs/applications/blockchains/erigon/default.nix
index ae77b64c7b04a..d76f090efa86f 100644
--- a/pkgs/applications/blockchains/erigon/default.nix
+++ b/pkgs/applications/blockchains/erigon/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "erigon";
-  version = "2.55.1";
+  version = "2.59.2";
 in
 buildGoModule {
   inherit pname version;
@@ -11,11 +11,11 @@ buildGoModule {
     owner = "ledgerwatch";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ttBJIx2QR3H5JFyquoGwZpWwT10r7X7GnGE4uEzuRZA=";
+    hash = "sha256-gSoaPoyPyryC1yzYaafnPXKpMNzI9fw9Yd0nKzziAKw=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-QLuWxec1gwMnVo0Zw8z4Ef8vzxc4xFpLL/TT986Sljo=";
+  vendorHash = "sha256-B3xbCI0szSAo9ULHDiqoTTR8tvgZUry7spDGuldu0lU=";
   proxyVendor = true;
 
   # Build errors in mdbx when format hardening is enabled:
@@ -34,6 +34,14 @@ buildGoModule {
     "cmd/rlpdump"
   ];
 
+  # Matches the tags to upstream's release build configuration
+  # https://github.com/ledgerwatch/erigon/blob/0c0dbe5f3a81cf8f16da8e4838312ab80ebe5302/.goreleaser.yml
+  #
+  # Enabling silkworm also breaks the build as it requires dynamically linked libraries.
+  # If we need it in the future, we should consider packaging silkworm and silkworm-go
+  # as depenedencies explicitly.
+  tags = "-tags=nosqlite,noboltdb,nosilkworm";
+
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
diff --git a/pkgs/applications/blockchains/exodus/default.nix b/pkgs/applications/blockchains/exodus/default.nix
index 60189088b2019..d1e389dc61407 100644
--- a/pkgs/applications/blockchains/exodus/default.nix
+++ b/pkgs/applications/blockchains/exodus/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exodus";
-  version = "24.11.5";
+  version = "24.13.3";
 
   src = fetchurl {
     name = "exodus-linux-x64-${version}.zip";
     url = "https://downloads.exodus.com/releases/${pname}-linux-x64-${version}.zip";
     curlOptsList = [ "--user-agent" "Mozilla/5.0" ];
-    sha256 = "sha256-sh6Ym+Dm5UIEiESIu1cuY8XSsnJcENCzW7b4S562ax8=";
+    sha256 = "sha256-hhPHWo+nQXgluB6qn57wndX1eslLv3lLpdxm+COGMO8=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/editors/codux/default.nix b/pkgs/applications/editors/codux/default.nix
index f74d554a8c73c..6e663e1e317b2 100644
--- a/pkgs/applications/editors/codux/default.nix
+++ b/pkgs/applications/editors/codux/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "codux";
-  version = "15.22.2";
+  version = "15.23.1";
 
   src = fetchurl {
     url = "https://github.com/wixplosives/codux-versions/releases/download/${version}/Codux-${version}.x86_64.AppImage";
-    sha256 = "sha256-aYGZPoA2Tux6pmpZFShkZB+os34jZczXsfmYN/pu+Ic=";
+    sha256 = "sha256-9ZzWsLEPEG+PDrDf9lU4ODGOD6/fvMbGBSo9BEQrkn4=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index 9a908039b8f5c..02cf40eb96392 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -85,6 +85,8 @@ in
 
   sv-kalender = callPackage ./manual-packages/sv-kalender { };
 
+  texpresso = callPackage ./manual-packages/texpresso { inherit (pkgs) texpresso; };
+
   tree-sitter-langs = callPackage ./manual-packages/tree-sitter-langs { final = self; };
 
   treesit-grammars = callPackage ./manual-packages/treesit-grammars { };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/texpresso/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/texpresso/default.nix
new file mode 100644
index 0000000000000..cd449ab0f5d9a
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/texpresso/default.nix
@@ -0,0 +1,19 @@
+{ lib
+, trivialBuild
+, texpresso
+}:
+trivialBuild {
+  pname = "texpresso";
+  version = texpresso.version;
+  src = texpresso.src;
+
+  preInstall = ''
+    cd emacs
+  '';
+
+  meta = {
+    inherit (texpresso.meta) homepage license;
+    description = "Emacs mode for TeXpresso";
+    maintainers = [ lib.maintainers.alexarice ];
+  };
+}
diff --git a/pkgs/applications/editors/helix/default.nix b/pkgs/applications/editors/helix/default.nix
index 323218f9437bf..698b4f8a1b16d 100644
--- a/pkgs/applications/editors/helix/default.nix
+++ b/pkgs/applications/editors/helix/default.nix
@@ -1,29 +1,18 @@
-{ fetchpatch, fetchzip, lib, rustPlatform, git, installShellFiles, makeWrapper }:
+{ fetchzip, lib, rustPlatform, git, installShellFiles, makeWrapper }:
 
 rustPlatform.buildRustPackage rec {
   pname = "helix";
-  version = "23.10";
+  version = "24.03";
 
   # This release tarball includes source code for the tree-sitter grammars,
   # which is not ordinarily part of the repository.
   src = fetchzip {
     url = "https://github.com/helix-editor/helix/releases/download/${version}/helix-${version}-source.tar.xz";
-    hash = "sha256-PH4n+zm5ShwOrzzQm0Sn8b8JzAW/CF8UzzKZYE3e2WA=";
+    hash = "sha256-1myVGFBwdLguZDPo1jrth/q2i5rn5R2+BVKIkCCUalc=";
     stripRoot = false;
   };
 
-  patches = [
-    # Fixes implicit int error in rescript grammar when building with clang 16.
-    # https://github.com/nkrkv/tree-sitter-rescript/pull/227.
-    (fetchpatch {
-      url = "https://github.com/nkrkv/tree-sitter-rescript/commit/ea93cbf7d9c52f925ed296b4714737e8088f3a19.patch";
-      hash = "sha256-gpGPiy+yEs+dMJEnE5O3WC7iSB/6PLJYBYRcdTx//+o=";
-      extraPrefix = "runtime/grammars/sources/rescript/";
-      stripLen = 1;
-    })
-  ];
-
-  cargoHash = "sha256-B8RO6BADDbPchowSfNVgviGvVgH23iF42DdhEBKBQzs=";
+  cargoHash = "sha256-THzPUVcmboVJHu3rJ6rev3GrkNilZRMlitCx7M1+HBE=";
 
   nativeBuildInputs = [ git installShellFiles makeWrapper ];
 
diff --git a/pkgs/applications/editors/jetbrains/bin/versions.json b/pkgs/applications/editors/jetbrains/bin/versions.json
index 35997b58c36fc..2169406eab8b6 100644
--- a/pkgs/applications/editors/jetbrains/bin/versions.json
+++ b/pkgs/applications/editors/jetbrains/bin/versions.json
@@ -19,10 +19,10 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "53e4efdf3388207d91f3e3767490172389cb92db449b951768af865b400ca7fe",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4.tar.gz",
-      "build_number": "233.14475.37"
+      "version": "2023.3.5",
+      "sha256": "ae964f1cc71072629baae84fb32e0d822c6cb9405fe4f724078b0decefe88e41",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.5.tar.gz",
+      "build_number": "233.15026.16"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
@@ -35,26 +35,26 @@
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "bf4cacb8b9f2cc2bf5661d19f1e240debd978a6e043d7e3c2a26f0ba3b409487",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.5.tar.gz",
-      "build_number": "233.14808.20"
+      "version": "2023.3.6",
+      "sha256": "96fb4117d4aedd32ace976f48b6618fe30480b3fbfa81adfef963eb720a442e1",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.6.tar.gz",
+      "build_number": "233.15026.17"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "869e534533de1dbce095db6e3fee4a63a3c8fd654052089b83d08b7808495634",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5.tar.gz",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "5e376677d4b9810f4171700ce9d9d3ece58f245ce8d9f2011b05966df5dd7ddd",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.6.tar.gz",
+      "build_number": "233.15026.9"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "86f45fb2f171ac1394e2c238c06b9e6e6308ce7982465ae0b86ffded2c329ef8",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5.tar.gz",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "2bf74ab0eeb8d8d998e7b59581b576786f72c6b70821eb50a2c96dcc0aa44954",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.6.tar.gz",
+      "build_number": "233.15026.9"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
@@ -67,27 +67,27 @@
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "05700ce1b36c0132ff0daf9ddc129e6f2adfbfbac01a55f5881bac8bbaecf66b",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5.tar.gz",
-      "build_number": "233.14808.18",
+      "version": "2023.3.6",
+      "sha256": "abf03a945460a92cfed41cc1f5cbaab0eb80799cdfbadaac15594a8ddeec1b7e",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.6.tar.gz",
+      "build_number": "233.15026.12",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "27546b7900c0da52baa9b14f88406c2b1244c570363e506f225bf101e65cea79",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4.tar.gz",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "d8ffc4a20b692d506b0e4c4439b77fabca7f3a0fdb7eaddeb6c9edd7cb3febaf",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.5.tar.gz",
+      "build_number": "233.15026.15"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "41367c6d92f69d33c0f375e4a058fef799be00d14437402371dc8ca3e5f1161e",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4.tar.gz",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "7e77390d7bba42843e950b1544da718913e6bae8543ce499c01484550df39004",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.5.tar.gz",
+      "build_number": "233.15026.15"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
@@ -100,26 +100,26 @@
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "2ba00db4538fcdbe116b767666529bfe3d015592d8c41234c94cff7f17086630",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5.tar.gz",
-      "build_number": "233.14808.14"
+      "version": "2023.3.6",
+      "sha256": "d431626f1207d872e708e144056bebd001e25da198e785904b0cc08112daebe8",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.6.tar.gz",
+      "build_number": "233.15026.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.tar.gz",
       "version": "2023.3 EAP",
-      "sha256": "51b6db1563d68326bd7c8defe1f6c04b428e1a592d06579edfeb0feb60c45077",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155.tar.gz",
-      "build_number": "233.14015.155"
+      "sha256": "489ea17a55e39ddb11e2ba5d98d69dd8353e228ff4ba618a969f0fd2ff55d730",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14475.74.tar.gz",
+      "build_number": "233.14475.74"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "236204a90d47e0dd25002078d3f032e51e03ce6bf214a78bebd28640bdd31908",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4.tar.gz",
-      "build_number": "233.14475.40"
+      "version": "2023.3.6",
+      "sha256": "deb38fe0f83a616cd07a2ec1243945ec15539c3d3a2e2f27294c5922737f0b5f",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.6.tar.gz",
+      "build_number": "233.15026.13"
     }
   },
   "aarch64-linux": {
@@ -142,10 +142,10 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "3dbc17eec909f5b4c99b08f07e15c4c5f86b30c3bbffac486bb1afcecfa47782",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4-aarch64.tar.gz",
-      "build_number": "233.14475.37"
+      "version": "2023.3.5",
+      "sha256": "966b2a9f8b7fc69738388a44b8ebd59b1cd1a5cf8f76b516bfce830500723732",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.15026.16"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
@@ -158,26 +158,26 @@
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "79d2f7bca00233710546198a80eb3beb55d0524cd0015781686a2cf9bc36fce8",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.5-aarch64.tar.gz",
-      "build_number": "233.14808.20"
+      "version": "2023.3.6",
+      "sha256": "b4d9159d61aafe431f83f42a7ab5d9e2748e3f3efa1ce915ff2bcf5674d02c80",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.6-aarch64.tar.gz",
+      "build_number": "233.15026.17"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "9a4f532f83becaee99d9e2c57c96f016da2d1b26c73ae8e220cc02361c222a5e",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5-aarch64.tar.gz",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "cfc98c4a09f6740ef47a3dbc8f2e71a66a8aab2eae3fb1b901c2db5dcce5f060",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.6-aarch64.tar.gz",
+      "build_number": "233.15026.9"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "620a164756338c49c4949dda24716b2269d88e92caddc7566d7fa8625c9ca5cb",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5-aarch64.tar.gz",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "4427884e3c9f63bad3c8b71c73f268dfc0df5963f87de915b632d14a415a6b9c",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.6-aarch64.tar.gz",
+      "build_number": "233.15026.9"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
@@ -190,27 +190,27 @@
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "bd3f4eca26332ecb1e0a62ffbeee7b0d527a17229bf9998179edb8c0b1e0c524",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5-aarch64.tar.gz",
-      "build_number": "233.14808.18",
+      "version": "2023.3.6",
+      "sha256": "697ffef0d76788fa35d4911a7d96f76261feec42df3a537773d29c4714b32635",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.6-aarch64.tar.gz",
+      "build_number": "233.15026.12",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "9c9678921b118f90519ba73543c63657d262e6aa7a7fe6b2293dcd5f26943531",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4-aarch64.tar.gz",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "99522aa803eb6fc1570f99286e5d710d5000378e0c116d9a62caea5c7a5ff95e",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.15026.15"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "4800ba2575ba2b277785f9d3c9fce05d552c623b41db220f7dfdd886874b7042",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4-aarch64.tar.gz",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "4a5aef97f10d19b3b4f9e34f244a84592bde730171e0596abcfde1baffb65be4",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.15026.15"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
@@ -223,26 +223,26 @@
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.tar.gz",
-      "version": "2023.3.5",
-      "sha256": "91fd717d04512170e181fd77f7cd0a63ef10e4f510a81d124d67a82d5d82a5d8",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5-aarch64.tar.gz",
-      "build_number": "233.14808.14"
+      "version": "2023.3.6",
+      "sha256": "038023de9fe12771043998cada293db8d1f869374cc48d276ac19c440cb25233",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.6-aarch64.tar.gz",
+      "build_number": "233.15026.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.tar.gz",
       "version": "2023.3 EAP",
-      "sha256": "d71b4d2eb3769a3acc2ebb3b3324ca376b86eb6788bf9e85467db8ee60f006c7",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155-aarch64.tar.gz",
-      "build_number": "233.14015.155"
+      "sha256": "e58fc90e714dd98483f10ed48588e2ce95bad049f4967193a8b0c294259ae2ab",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14475.74-aarch64.tar.gz",
+      "build_number": "233.14475.74"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.tar.gz",
-      "version": "2023.3.4",
-      "sha256": "2e072ee801d07961079ef183dec13561726e2c38df68e35fe4be51d8caac585c",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4-aarch64.tar.gz",
-      "build_number": "233.14475.40"
+      "version": "2023.3.6",
+      "sha256": "826ff930268394c1ffc649586c115f35a1630246ea23b3df4ba446a10b791cec",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.6-aarch64.tar.gz",
+      "build_number": "233.15026.13"
     }
   },
   "x86_64-darwin": {
@@ -265,10 +265,10 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}.dmg",
-      "version": "2023.3.4",
-      "sha256": "8bc75545a3c502a98e6e8360ab4d0e7639979456d87ec7cb508344d7e3066955",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4.dmg",
-      "build_number": "233.14475.37"
+      "version": "2023.3.5",
+      "sha256": "596ffeebc9620f5fe94ed104f601157810cc36fa20887a5a12fecb385402c304",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.5.dmg",
+      "build_number": "233.15026.16"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
@@ -281,26 +281,26 @@
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}.dmg",
-      "version": "2023.3.5",
-      "sha256": "2d76043909619e7fc59d87cda6c17fac03acaafc20f7a30da0219ef57415386f",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.5.dmg",
-      "build_number": "233.14808.20"
+      "version": "2023.3.6",
+      "sha256": "f83484fc068791733d1411a1ec74a6cbaf5b2ecb4ca2cce462eff6b16b7718a4",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.6.dmg",
+      "build_number": "233.15026.17"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.dmg",
-      "version": "2023.3.5",
-      "sha256": "f9ac332146ea4eb01b2d3789c042d62a024c6ccedb7e15bf9b09f506ef0663ac",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5.dmg",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "c26c884842e8a315430dcf1351255aac4385ab1abd16ccb8a8b1c407a1851355",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.6.dmg",
+      "build_number": "233.15026.9"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.dmg",
-      "version": "2023.3.5",
-      "sha256": "e31b7b572cb3e908e325707873d1cba53ccff0032c1876cfd7d1d998f247629b",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5.dmg",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "d54bf2088981678bf4026da4927d39ad686ee25e20dcf374785306076ec98f74",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.6.dmg",
+      "build_number": "233.15026.9"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
@@ -313,27 +313,27 @@
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg",
-      "version": "2023.3.5",
-      "sha256": "536836776189c54f6ba6dc61c344758ba1bc5c8b6191d09c69cfaeaa11ef33dd",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5.dmg",
-      "build_number": "233.14808.18",
+      "version": "2023.3.6",
+      "sha256": "1972219f45224fd3769fd78ba313ef6379c75d8b4980e049b438a2b2ebb5a977",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.6.dmg",
+      "build_number": "233.15026.12",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.dmg",
-      "version": "2023.3.4",
-      "sha256": "492268d99fec38fa81bd02772ed57b243403ecad1f5f28b3a1150502cf8b4a6c",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4.dmg",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "413b5d5975aef0cc4e8aef3a93719b2c2c3150082944841538c284f525d015e3",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.5.dmg",
+      "build_number": "233.15026.15"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.dmg",
-      "version": "2023.3.4",
-      "sha256": "59512bbe61a9332f02e78d34b85ab2563b5dac2fa9882519ed27cfcbccef5dc2",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4.dmg",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "315081d461086495ab07483c5ac3858f6354b1f7bc684114c0d3c511e7ab6932",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.5.dmg",
+      "build_number": "233.15026.15"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
@@ -346,26 +346,26 @@
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.dmg",
-      "version": "2023.3.5",
-      "sha256": "bb25d2e10187c87b809c9ce06ca5d05eb3675dd33bff587b3249117f4c290d01",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5.dmg",
-      "build_number": "233.14808.14"
+      "version": "2023.3.6",
+      "sha256": "50b9988942ead060eaf01b54aa8aebedf132df3a92b98018f1b78e922bff08f8",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.6.dmg",
+      "build_number": "233.15026.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.dmg",
       "version": "2023.3 EAP",
-      "sha256": "ceb2f78f0d018b66a2f81ad0e2facc7717e4d2f0fe0a3d3ef9277269afb64dee",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155.dmg",
-      "build_number": "233.14015.155"
+      "sha256": "7d32ac16748977a70830eafeae983138d2f18724ed8255aa6967ce7a329206ec",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14475.74.dmg",
+      "build_number": "233.14475.74"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.dmg",
-      "version": "2023.3.4",
-      "sha256": "5c7f2b3194bf49712456466bfdc58f20bd434f00128c4964d82e9744ee114cf8",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4.dmg",
-      "build_number": "233.14475.40"
+      "version": "2023.3.6",
+      "sha256": "03220e45e5308664d2c413eb1b928daf6f5b3600305526d0dd230b084bdfbb9c",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.6.dmg",
+      "build_number": "233.15026.13"
     }
   },
   "aarch64-darwin": {
@@ -388,10 +388,10 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.dmg",
-      "version": "2023.3.4",
-      "sha256": "2b87177f16dc4d31ff0dcf7206e03da3ff811c88ad18711170ca263e02d6ffa5",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4-aarch64.dmg",
-      "build_number": "233.14475.37"
+      "version": "2023.3.5",
+      "sha256": "b7a73513f9d463025ccd48c0c04a1621f1cda6f21eea4f9aa96a36d03032d957",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.5-aarch64.dmg",
+      "build_number": "233.15026.16"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
@@ -404,26 +404,26 @@
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.dmg",
-      "version": "2023.3.5",
-      "sha256": "2addb56238a56fc91fe6bbbaa5d7ae1d7adc223abb1a12e2575abf85425d1e54",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.5-aarch64.dmg",
-      "build_number": "233.14808.20"
+      "version": "2023.3.6",
+      "sha256": "dbf0131ac203ad5bf69a3fb50ded3a5088d207ba6b994d6c5b26b462708f980e",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.6-aarch64.dmg",
+      "build_number": "233.15026.17"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.dmg",
-      "version": "2023.3.5",
-      "sha256": "f1f3d2585e4dceff80e5e5ac5e532e5cc94bd6711167c429c3d3c7a6b3c81f09",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5-aarch64.dmg",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "501dc51bc9ac39722f3885bc6116cc426d17cd1ab9afc97e4f3f295049e2e0b3",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.6-aarch64.dmg",
+      "build_number": "233.15026.9"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg",
-      "version": "2023.3.5",
-      "sha256": "a81096a8f697967df1a2c8564267df81bbee24d88a10011dc3e4340efb66461a",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5-aarch64.dmg",
-      "build_number": "233.14808.21"
+      "version": "2023.3.6",
+      "sha256": "e3a606e04c86d7cfeacde69d00b974a8ad6b175a30d3ea6039afd226a740db25",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.6-aarch64.dmg",
+      "build_number": "233.15026.9"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
@@ -436,27 +436,27 @@
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg",
-      "version": "2023.3.5",
-      "sha256": "6b4da9083d0e4bd9725c7394981de66e9a633ad797dfb771baf65887b8d18471",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5-aarch64.dmg",
-      "build_number": "233.14808.18",
+      "version": "2023.3.6",
+      "sha256": "892404f4e835b3248094ebf64a7de2c1311b3446e0334ddf90033dc0f226d54b",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.6-aarch64.dmg",
+      "build_number": "233.15026.12",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.dmg",
-      "version": "2023.3.4",
-      "sha256": "885ed6dcb7b99147e345ce2d088e2636e8317a5e71ff67e9bc9d0f770266646e",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4-aarch64.dmg",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "a70dfac39bcd9a049094e1f168d35bb24d37a2b44135178996c50e460ab996fe",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.5-aarch64.dmg",
+      "build_number": "233.15026.15"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.dmg",
-      "version": "2023.3.4",
-      "sha256": "58dbf1628f59950d40be4ed73199ce92ef36be6735823d9566135ddea16c1718",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4-aarch64.dmg",
-      "build_number": "233.14475.56"
+      "version": "2023.3.5",
+      "sha256": "6fe15528a5b0badead7f807384ffd138d648fe76f5c684c905a584e204a51138",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.5-aarch64.dmg",
+      "build_number": "233.15026.15"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
@@ -469,26 +469,26 @@
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.dmg",
-      "version": "2023.3.5",
-      "sha256": "1ea4720ef6559a52901e8627dd100f25951419ab4ce592f602e5bb2359027b6b",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5-aarch64.dmg",
-      "build_number": "233.14808.14"
+      "version": "2023.3.6",
+      "sha256": "3baa33194fe9f826c88f868d76ff0eea3b2fbb7d73a65a910e83daa18ccff78e",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.6-aarch64.dmg",
+      "build_number": "233.15026.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.dmg",
       "version": "2023.3 EAP",
-      "sha256": "13c986d075c78e6a81db489247fc542014ad46da7cc7bd6fa1710be047ef0884",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155-aarch64.dmg",
-      "build_number": "233.14015.155"
+      "sha256": "f1a11b0d241671b5afe811a76a7e43777d04a4819a3e83432508d53f319deb8f",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14475.74-aarch64.dmg",
+      "build_number": "233.14475.74"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.dmg",
-      "version": "2023.3.4",
-      "sha256": "e8abaf52bc68a9da2873897de4f1aa89510323d4a12dc32fa98b192bc4eae5bc",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4-aarch64.dmg",
-      "build_number": "233.14475.40"
+      "version": "2023.3.6",
+      "sha256": "ea8262e07318b894f0019003b2df1038d647db0335904d8996827ddaf633c39a",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.6-aarch64.dmg",
+      "build_number": "233.15026.13"
     }
   }
 }
diff --git a/pkgs/applications/editors/jetbrains/plugins/plugins.json b/pkgs/applications/editors/jetbrains/plugins/plugins.json
index 388f0a46dfad6..1876001edcc49 100644
--- a/pkgs/applications/editors/jetbrains/plugins/plugins.json
+++ b/pkgs/applications/editors/jetbrains/plugins/plugins.json
@@ -17,17 +17,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14015.137": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14475.31": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14475.66": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip"
+        "233.13135.979": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.14015.137": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.14475.74": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip"
       },
       "name": "ideavim"
     },
@@ -36,7 +36,7 @@
         "idea-ultimate"
       ],
       "builds": {
-        "233.14808.21": "https://plugins.jetbrains.com/files/631/502576/python-233.14808.21.zip"
+        "233.15026.9": "https://plugins.jetbrains.com/files/631/509008/python-233.15026.9.zip"
       },
       "name": "python"
     },
@@ -48,7 +48,7 @@
       ],
       "builds": {
         "233.13135.979": null,
-        "233.14808.21": null
+        "233.15026.9": null
       },
       "name": "kotlin"
     },
@@ -71,15 +71,15 @@
       "builds": {
         "233.13135.979": null,
         "233.14015.137": null,
-        "233.14015.155": null,
-        "233.14475.31": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
-        "233.14475.66": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip"
+        "233.14475.31": null,
+        "233.14475.66": null,
+        "233.14475.74": null,
+        "233.15026.12": "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip"
       },
       "name": "ini"
     },
@@ -89,8 +89,8 @@
         "phpstorm"
       ],
       "builds": {
-        "233.14808.18": "https://plugins.jetbrains.com/files/7219/497847/Symfony_Plugin-2023.1.265.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/7219/497847/Symfony_Plugin-2023.1.265.zip"
+        "233.15026.12": "https://plugins.jetbrains.com/files/7219/509039/Symfony_Plugin-2023.1.266.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/7219/509039/Symfony_Plugin-2023.1.266.zip"
       },
       "name": "symfony-support"
     },
@@ -100,8 +100,8 @@
         "phpstorm"
       ],
       "builds": {
-        "233.14808.18": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip"
+        "233.15026.12": "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip"
       },
       "name": "php-annotations"
     },
@@ -115,10 +115,10 @@
       ],
       "builds": {
         "233.14015.137": "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/7322/484110/python-ce-233.14475.9.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip"
+        "233.14475.74": "https://plugins.jetbrains.com/files/7322/484110/python-ce-233.14475.9.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip"
       },
       "name": "python-community-edition"
     },
@@ -141,13 +141,13 @@
         "233.13135.979": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
         "233.14475.31": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip"
+        "233.15026.12": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip"
       },
       "name": "-deprecated-rust"
     },
@@ -170,13 +170,13 @@
         "233.13135.979": null,
         "233.14015.137": null,
         "233.14475.31": null,
-        "233.14475.40": null,
-        "233.14475.56": null,
         "233.14475.66": null,
-        "233.14808.14": null,
-        "233.14808.18": null,
-        "233.14808.20": null,
-        "233.14808.21": null
+        "233.15026.12": null,
+        "233.15026.13": null,
+        "233.15026.14": null,
+        "233.15026.15": null,
+        "233.15026.17": null,
+        "233.15026.9": null
       },
       "name": "-deprecated-rust-beta"
     },
@@ -190,10 +190,10 @@
         "ruby-mine"
       ],
       "builds": {
-        "233.14475.56": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip"
+        "233.15026.14": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip"
       },
       "name": "ide-features-trainer"
     },
@@ -216,15 +216,15 @@
       "builds": {
         "233.13135.979": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
         "233.14475.31": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip"
+        "233.14475.74": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip"
       },
       "name": "nixidea"
     },
@@ -234,8 +234,8 @@
         "idea-ultimate"
       ],
       "builds": {
-        "233.14808.20": "https://plugins.jetbrains.com/files/9568/502583/go-plugin-233.14808.21.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/9568/502583/go-plugin-233.14808.21.zip"
+        "233.15026.17": "https://plugins.jetbrains.com/files/9568/508998/go-plugin-233.15026.9.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/9568/508998/go-plugin-233.15026.9.zip"
       },
       "name": "go"
     },
@@ -258,15 +258,15 @@
       "builds": {
         "233.13135.979": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
         "233.14475.31": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip"
+        "233.14475.74": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip"
       },
       "name": "csv-editor"
     },
@@ -289,15 +289,15 @@
       "builds": {
         "233.13135.979": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
         "233.14475.31": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip"
+        "233.14475.74": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip"
       },
       "name": "vscode-keymap"
     },
@@ -320,15 +320,15 @@
       "builds": {
         "233.13135.979": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
         "233.14475.31": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip"
+        "233.14475.74": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip"
       },
       "name": "eclipse-keymap"
     },
@@ -351,15 +351,15 @@
       "builds": {
         "233.13135.979": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
         "233.14475.31": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip"
+        "233.14475.74": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip"
       },
       "name": "visual-studio-keymap"
     },
@@ -382,15 +382,15 @@
       "builds": {
         "233.13135.979": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "233.14015.137": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.155": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "233.14475.31": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14475.40": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14475.56": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "233.14475.66": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14808.14": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14808.18": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14808.20": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14808.21": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
+        "233.14475.74": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.15026.12": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.15026.13": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.15026.14": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.15026.15": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.15026.17": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.15026.9": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
       },
       "name": "darcula-pitch-black"
     },
@@ -411,17 +411,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14015.137": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14475.31": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14475.66": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip"
+        "233.13135.979": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.14015.137": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.14475.74": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip"
       },
       "name": "github-copilot"
     },
@@ -444,15 +444,15 @@
       "builds": {
         "233.13135.979": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.155": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "233.14475.31": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14475.40": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14475.56": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "233.14475.66": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14808.14": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14808.18": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14808.20": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
+        "233.14475.74": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.15026.12": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.15026.13": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.15026.14": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.15026.15": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.15026.17": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
       },
       "name": "netbeans-6-5-keymap"
     },
@@ -463,9 +463,9 @@
         "rust-rover"
       ],
       "builds": {
-        "233.14015.155": "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip",
-        "233.14475.31": "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip",
-        "233.14808.21": "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip"
+        "233.14475.31": "https://plugins.jetbrains.com/files/22407/507547/intellij-rust-233.24475.74.zip",
+        "233.14475.74": "https://plugins.jetbrains.com/files/22407/507547/intellij-rust-233.24475.74.zip",
+        "233.15026.9": "https://plugins.jetbrains.com/files/22407/507547/intellij-rust-233.24475.74.zip"
       },
       "name": "rust"
     }
@@ -476,21 +476,20 @@
     "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip": "sha256-IsmoWuUroAp1LLuphp4F1dun4tQOOitZxoG+Nxs5pYk=",
     "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip": "sha256-Nb2tSxL+mAY1qJ3waipgV8ep+0R/BaYnzz7zfwtLHmk=",
     "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar": "sha256-eXInfAqY3yEZRXCAuv3KGldM1pNKEioNwPB0rIGgJFw=",
-    "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip": "sha256-cUlxDF2aYw6od+dwLC3Gtv9tOzzMKo4NGZECBodIQPA=",
-    "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip": "sha256-/JuPSqFG6VyaDj2IQAYK3Lz7/FQWppfxxXUGuGQggrY=",
+    "https://plugins.jetbrains.com/files/164/507552/IdeaVim-2.10.1-signed.zip": "sha256-mztZWmQhGIuebUzj+FUOgYMMYMNRaiOi5TooNMInSdA=",
+    "https://plugins.jetbrains.com/files/17718/512366/github-copilot-intellij-1.5.1.5285.zip": "sha256-lep8ZUOjbV0tsfO/yEWJiHWtwm639zxpc/7L9rCKSsU=",
     "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip": "sha256-KrzZTKZMQqoEMw+vDUv2jjs0EX0leaPBkU8H/ecq/oI=",
-    "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip": "sha256-oFg2xlR3gB1DpmhqHlugSjnrBDgAHlwvroqwAHiUAzI=",
-    "https://plugins.jetbrains.com/files/631/502576/python-233.14808.21.zip": "sha256-1YN+brLdFOgcSQwLzafrjbIZ4NWBllaKulLCJ6MfdGI=",
-    "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip": "sha256-++4e6qSYfqoP3/M69xyNaNmkhyeX3h8dK9cJabeB5cY=",
-    "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip": "sha256-8uDtfKkWfYr2qTD4Etb/zne1IXiiVLKQGJHKIVtp5cI=",
-    "https://plugins.jetbrains.com/files/7219/497847/Symfony_Plugin-2023.1.265.zip": "sha256-lAAu2NamhKjGcVTu5cBlwSX8UP8bkKf9S++CW6xzvkk=",
-    "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip": "sha256-hT5K4w4lhvNwDzDMDSvsIDGj9lyaRqglfOhlbNdqpWs=",
+    "https://plugins.jetbrains.com/files/22407/507547/intellij-rust-233.24475.74.zip": "sha256-Ftyamb+ToQNrBxWrxC68e4nyCrX9cQ8ozcauJkmenmE=",
+    "https://plugins.jetbrains.com/files/631/509008/python-233.15026.9.zip": "sha256-Lb0TzM7vr8IZmahGMzdS9GXaxzrCKwG3NFspInRlOG0=",
+    "https://plugins.jetbrains.com/files/6981/509027/ini-233.15026.15.zip": "sha256-6sTD+OFO/yA7m5o0XqoJKLcQ4zAFro7Iy7WNPfA49xM=",
+    "https://plugins.jetbrains.com/files/7219/509039/Symfony_Plugin-2023.1.266.zip": "sha256-p0ixoyTuZ2N5LCkraLpG2JDRQsKc1JcJaj6CElkZvOY=",
+    "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip": "sha256-JIZ6Iq3sOcAm8fBXnjRrG9dqCZuD/WajyVmn1JjYMBA=",
     "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip": "sha256-yd70cSA/Icn5YlH4Q79cIWGFJ6huYUBDKk6vCIYa3DU=",
     "https://plugins.jetbrains.com/files/7322/484110/python-ce-233.14475.9.zip": "sha256-YMB/ewCKE1F/JXI8iau9pKkv9D5D9a8OiTVukkzTocA=",
     "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip": "sha256-PUBR9krJ26QrL2jTus0b+uhzkEkT+lGnBKy1f4i/U+w=",
     "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip": "sha256-+Lc/avYBLpyIV63DlbhAJtieHDv4HdggqdGFDw9iqN0=",
     "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip": "sha256-Hj/CsaQb1U3FN1x2+00Rq2NjC6AWrfuTJL1NiEssfJ4=",
     "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip": "sha256-Dwitpu5yLPWx+IUilpN5iqnN8FkKgaxUNjroBEx5lkM=",
-    "https://plugins.jetbrains.com/files/9568/502583/go-plugin-233.14808.21.zip": "sha256-QPZRPCCSta/q9hj0fVlmF26xebAKyUhh/dc27FgJHco="
+    "https://plugins.jetbrains.com/files/9568/508998/go-plugin-233.15026.9.zip": "sha256-K/qqFSrUIf0n4Wh2JGNRuT7SuGlPlQD/pjUI/EVTtxQ="
   }
 }
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index df4e856202e92..ded569df4d8df 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -16985,6 +16985,18 @@ final: prev:
     meta.homepage = "https://github.com/samodostal/image.nvim/";
   };
 
+  texpresso-vim = buildVimPlugin {
+    pname = "texpresso.vim";
+    version = "2024-03-08";
+    src = fetchFromGitHub {
+      owner = "let-def";
+      repo = "texpresso.vim";
+      rev = "04816dcdddc27e6c50fc2a4faff0ef1675a7ee8e";
+      sha256 = "08lzl0g1b287agscd345yg9cmxsj2vlbg83s1mgsa13qn81y6jga";
+    };
+    meta.homepage = "https://github.com/let-def/texpresso.vim/";
+  };
+
   tinykeymap = buildVimPlugin {
     pname = "tinykeymap";
     version = "2024-02-17";
@@ -17034,7 +17046,7 @@ final: prev:
   };
 
   jupytext-nvim = buildVimPlugin {
-    pname = "jupytest-nvim";
+    pname = "jupytext-nvim";
     version = "2024-01-24";
     src = fetchFromGitHub {
       owner = "GCBallesteros";
@@ -17045,5 +17057,29 @@ final: prev:
     meta.homepage = "https://github.com/GCBallesteros/jupytext.nvim/";
   };
 
+  improved-search-nvim = buildVimPlugin {
+    pname = "improved-search-nvim";
+    version = "2023-12-21";
+    src = fetchFromGitHub {
+      owner = "backdround";
+      repo = "improved-search.nvim";
+      rev = "9480bfb0e05f990a1658464c1d349dd2acfb9c34";
+      sha256 = "sha256-k35uJZfarjRskS9MgCjSQ3gfl57d+r8vWvw0Uq16Z30=";
+    };
+    meta.homepage = "https://github.com/backdround/improved-search.nvim/";
+  };
+
+  qmk-nvim = buildVimPlugin {
+    pname = "qmk-nvim";
+    version = "2024-02-15";
+    src = fetchFromGitHub {
+      owner = "codethread";
+      repo = "qmk.nvim";
+      rev = "67c1a94b10f7266ac01b0a2431dade70693edba9";
+      sha256 = "sha256-YKp9/unDL52guKRHI50DSPV8nXyPqAHY9mEHUMHFhmc=";
+    };
+    meta.homepage = "https://github.com/codethread/qmk.nvim/";
+  };
+
 
 }
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 6472f5c9a2485..720593f0487bf 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -395,6 +395,7 @@ https://github.com/edwinb/idris2-vim/,,
 https://github.com/3rd/image.nvim/,HEAD,
 https://github.com/samodostal/image.nvim/,HEAD,samodostal-image-nvim
 https://github.com/lewis6991/impatient.nvim/,,
+https://github.com/backdround/improved-search.nvim/,HEAD,
 https://github.com/smjonas/inc-rename.nvim/,HEAD,
 https://github.com/nishigori/increment-activator/,,
 https://github.com/haya14busa/incsearch-easymotion.vim/,,
@@ -760,6 +761,7 @@ https://github.com/purescript-contrib/purescript-vim/,,
 https://github.com/python-mode/python-mode/,,
 https://github.com/vim-python/python-syntax/,,
 https://github.com/AlphaTechnolog/pywal.nvim/,,
+https://github.com/codethread/qmk.nvim/,HEAD,
 https://github.com/quarto-dev/quarto-nvim/,,
 https://github.com/unblevable/quick-scope/,,
 https://github.com/stefandtw/quickfix-reflector.vim/,,
@@ -901,6 +903,7 @@ https://github.com/wincent/terminus/,,
 https://github.com/oberblastmeister/termwrapper.nvim/,,
 https://github.com/ternjs/tern_for_vim/,,
 https://github.com/KeitaNakamura/tex-conceal.vim/,,
+https://github.com/let-def/texpresso.vim/,HEAD,
 https://github.com/johmsalas/text-case.nvim/,HEAD,
 https://github.com/ron89/thesaurus_query.vim/,,
 https://github.com/itchyny/thumbnail.vim/,,
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index 6f61a18d83580..c274f1c14050d 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -20,6 +20,7 @@
 , millet
 , craftos-pc
 , shfmt
+, tinymist
 , typst-lsp
 , typst-preview
 , autoPatchelfHook
@@ -410,12 +411,12 @@ let
         mktplcRef = {
           name = "astro-vscode";
           publisher = "astro-build";
-          version = "2.3.3";
-          sha256 = "sha256-A7+7lnCPAtSWUfHLNKbYqKuTxi2Nx05Qdh5HCkT1dnM=";
+          version = "2.8.3";
+          sha256 = "sha256-A6m31eZMlOHF0yr9MjXmsFyXgH8zmq6WLRd/w85hGw0=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/astro-build.astro-vscode/changelog";
-          description = "Astro language support for VSCode";
+          description = "Astro language support for VS Code";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=astro-build.astro-vscode";
           homepage = "https://github.com/withastro/language-tools";
           license = lib.licenses.mit;
@@ -2345,6 +2346,22 @@ let
         };
       };
 
+      jbockle.jbockle-format-files = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "jbockle-format-files";
+          publisher = "jbockle";
+          version = "3.4.0";
+          sha256 = "sha256-BHw+T2EPdQq/wOD5kzvSln5SBFTYUXip8QDjnAGBfFY=";
+        };
+        meta = {
+          description = "A VSCode extension to formats all files in the current workspace";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=jbockle.jbockle-format-files";
+          homepage = "https://github.com/jbockle/format-files";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.wackbyte ];
+        };
+      };
+
       jdinhlife.gruvbox = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "gruvbox";
@@ -2835,10 +2852,13 @@ let
         mktplcRef = {
           name = "vscode-docker";
           publisher = "ms-azuretools";
-          version = "1.24.0";
-          sha256 = "sha256-zZ34KQrRPqVbfGdpYACuLMiMj4ZIWSnJIPac1yXD87k=";
+          version = "1.29.0";
+          sha256 = "sha256-mVRsVsolXj31WhbWnt3Xml+NnIq7Q2uHhUUd1zgW42c=";
         };
         meta = {
+          description = "Docker Extension for Visual Studio Code";
+          homepage = "https://github.com/microsoft/vscode-docker";
+          changelog = "https://marketplace.visualstudio.com/items/ms-azuretools.vscode-docker/changelog";
           license = lib.licenses.mit;
         };
       };
@@ -2931,6 +2951,23 @@ let
         };
       };
 
+      ms-toolsai.datawrangler = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "datawrangler";
+          publisher = "ms-toolsai";
+          version = "0.29.6";
+          sha256 = "sha256-9MR2+hb9YdjIGDfUkdLW41HOxhjeS/San49C8QRZ/YY=";
+        };
+
+        meta = {
+          description = "Data viewing, cleaning and preparation for tabular datasets";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-toolsai.datawrangler";
+          homepage = "https://github.com/microsoft/vscode-data-wrangler";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.katanallama ];
+        };
+      };
+
       ms-toolsai.jupyter = callPackage ./ms-toolsai.jupyter { };
 
       ms-toolsai.jupyter-keymap = buildVscodeMarketplaceExtension {
@@ -3169,6 +3206,37 @@ let
         };
       };
 
+      myriad-dreamin.tinymist = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "tinymist";
+          publisher = "myriad-dreamin";
+          # Please update the corresponding binary (tinymist) when updating
+          # this extension.
+          version = "0.11.1";
+          sha256 = "sha256-jyZBnT8UW94TVnZKZna1cJa/UIj+DwYwlAbU4pnaf04=";
+        };
+
+        nativeBuildInputs = [ jq moreutils ];
+
+        buildInputs = [
+          tinymist
+        ];
+
+        postInstall = ''
+          cd "$out/$installPrefix"
+          jq '.contributes.configuration.properties."tinymist.serverPath".default = "${lib.getExe tinymist}"' package.json | sponge package.json
+        '';
+
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/myriad-dreamin.tinymist/changelog";
+          description = "A VSCode extension for providing an integration solution for Typst";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=myriad-dreamin.tinymist";
+          homepage = "https://github.com/myriad-dreamin/tinymist";
+          license = lib.licenses.asl20;
+          maintainers = [ lib.maintainers.drupol ];
+        };
+      };
+
       naumovs.color-highlight = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "color-highlight";
@@ -3972,8 +4040,8 @@ let
         mktplcRef = {
           name = "svelte-vscode";
           publisher = "svelte";
-          version = "107.12.0";
-          sha256 = "036ri011fd0cf91iwv59j57m05mxliy27ms4di2y9jlk7jzmr4s2";
+          version = "108.3.3";
+          sha256 = "sha256-q7w8DPzBLpD+13v7RnyDdC3ocDKAihHBVt3pnwSTwio=";
         };
         meta = {
           changelog = "https://github.com/sveltejs/language-tools/releases";
diff --git a/pkgs/applications/emulators/cemu/default.nix b/pkgs/applications/emulators/cemu/default.nix
index cdc64ff8a9d7b..51454ea7ab164 100644
--- a/pkgs/applications/emulators/cemu/default.nix
+++ b/pkgs/applications/emulators/cemu/default.nix
@@ -46,13 +46,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "cemu";
-  version = "2.0-72";
+  version = "2.0-73";
 
   src = fetchFromGitHub {
     owner = "cemu-project";
     repo = "Cemu";
     rev = "v${version}";
-    hash = "sha256-4sy2pI+pOJ69JntfktrcXd00yL3fkQI14K02j0l4cuI=";
+    hash = "sha256-uiAga19DTFMq4/7ndOafkY/QvSJhWDSMMg8RV+KxN+E=";
   };
 
   patches = [
diff --git a/pkgs/applications/emulators/mame/default.nix b/pkgs/applications/emulators/mame/default.nix
index e2ed7e5f9c70f..c61b1662a6c4d 100644
--- a/pkgs/applications/emulators/mame/default.nix
+++ b/pkgs/applications/emulators/mame/default.nix
@@ -38,14 +38,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mame";
-  version = "0.263";
+  version = "0.264";
   srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
 
   src = fetchFromGitHub {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${srcVersion}";
-    hash = "sha256-6MH4dMGOekiiq4yE68dIAiWWfvQvFcvqKtT/Z1SQ1aY=";
+    hash = "sha256-0UWMBKM//XWm8PFl60JvTLGaDBMVZFnVrbX4omy2F4I=";
   };
 
   outputs = [ "out" "tools" ];
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index 459109e9247b1..9a51c13d15800 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -65,10 +65,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-pce-fast-libretro",
-            "rev": "9bfba0eb494cd994087cc41e5204cc11484ceae0",
-            "hash": "sha256-NnI3Yh4vD5edI0rWbiU2XXYppzv5FvoZr52ikOcTUo4="
+            "rev": "6210d0f8c262dcdaa5b76c28057cca6077f488fe",
+            "hash": "sha256-5qONcwTrawd6vMa7157lexFmuj9jdzSDVqt+KUvEm0I="
         },
-        "version": "unstable-2024-03-15"
+        "version": "unstable-2024-03-22"
     },
     "beetle-pcfx": {
         "fetcher": "fetchFromGitHub",
@@ -85,10 +85,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-psx-libretro",
-            "rev": "77060aa536c81075371c79621c95772fef765868",
-            "hash": "sha256-IZXn3Yn1BndRCjKCzzzcWyMBFBzKAoQ732XK32FiYK4="
+            "rev": "382e3ffce6880e89a8786f5c25a173f25d03df58",
+            "hash": "sha256-OeEAMRtZA/8ctRxSmnq4OR+5i6vDKSWITFnYiJdwac4="
         },
-        "version": "unstable-2024-03-15"
+        "version": "unstable-2024-03-22"
     },
     "beetle-saturn": {
         "fetcher": "fetchFromGitHub",
@@ -165,10 +165,10 @@
         "src": {
             "owner": "libretro",
             "repo": "bsnes-libretro",
-            "rev": "494d53b11d875a51f2de9e8fe25db038ae4c63fa",
-            "hash": "sha256-hLFT4m0900+2PAmVS41Z5uf3Ir2hg2pCbs2der8CG+k="
+            "rev": "51b378454e34f7535f8b627de5b81d33b0fa4cb0",
+            "hash": "sha256-oriFvt0RCt9Bd5DjjLSxMuswfazd31isvt5OxwwNuks="
         },
-        "version": "unstable-2024-03-15"
+        "version": "unstable-2024-03-22"
     },
     "bsnes-hd": {
         "fetcher": "fetchFromGitHub",
@@ -287,10 +287,10 @@
         "src": {
             "owner": "libretro",
             "repo": "fbneo",
-            "rev": "b6c6d883df5e9e9a9a5d4b9f09e796702b08d177",
-            "hash": "sha256-dLDtcjp68caRwc3wLj80Oj7HA/SlW7/eswbY1n3aRAc="
+            "rev": "fa70abd34f49d8c461165b65a4ad436a4245eb51",
+            "hash": "sha256-BaV+BY7jTw/6M4XmAAVSRQ9viftyaPZmG17TFgSFqOg="
         },
-        "version": "unstable-2024-03-21"
+        "version": "unstable-2024-03-27"
     },
     "fceumm": {
         "fetcher": "fetchFromGitHub",
@@ -307,11 +307,11 @@
         "src": {
             "owner": "flyinghead",
             "repo": "flycast",
-            "rev": "40cdef6c1c9bd73bf3a55d412e30c25bbcf2b59c",
-            "hash": "sha256-+3PqeLT6i2HesVaA5b13bavNqH0mqeFIkHfhusdzWYU=",
+            "rev": "c9fafa0ed176d1ffabae5c1a7a363d0ee276a972",
+            "hash": "sha256-ruqgen9X3CEY+PRZFVGNPhEDUUvH486paWphQfGCHew=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-03-19"
+        "version": "unstable-2024-03-26"
     },
     "fmsx": {
         "fetcher": "fetchFromGitHub",
@@ -348,10 +348,10 @@
         "src": {
             "owner": "libretro",
             "repo": "gambatte-libretro",
-            "rev": "b2dadf0c4ebcc70f04245d8bc1eefc2b8d56cbe3",
-            "hash": "sha256-GvZO2TJM8L65/aWp3KRsA7VpAmS6Gz3e64LDcOt97qc="
+            "rev": "cbda5ea9fd81d1be0220dfc690d05240655602e4",
+            "hash": "sha256-uLUIFDiPJ5ZSJPezZ24bDfd10AKDCHz4ATm2BBBGs9I="
         },
-        "version": "unstable-2024-03-15"
+        "version": "unstable-2024-03-22"
     },
     "genesis-plus-gx": {
         "fetcher": "fetchFromGitHub",
@@ -438,10 +438,10 @@
         "src": {
             "owner": "libretro",
             "repo": "mame2003-plus-libretro",
-            "rev": "8e60ed0217ff6206768d7bdc6313e86c4c852405",
-            "hash": "sha256-zq143CSDMSBQ/e7kntz63cTaKk552IKfCoRGmt5jYik="
+            "rev": "ee777f235b99d652890dedbc94337094968869d4",
+            "hash": "sha256-nfoZRymtbAsXWvb8MKFHUwQr0xRk9kLRtgPC2G2iAVE="
         },
-        "version": "unstable-2024-03-21"
+        "version": "unstable-2024-03-22"
     },
     "mame2010": {
         "fetcher": "fetchFromGitHub",
@@ -630,43 +630,43 @@
         "src": {
             "owner": "libretro",
             "repo": "pcsx_rearmed",
-            "rev": "2b2ac30d6905b3434d822c223b36957aef96a857",
-            "hash": "sha256-jBs3ccKXGX0wumQkGeoNpbsRfWFx5lTufUE0NhEfCtk="
+            "rev": "e2fb1389dc12376acb84e4993ed3b08760257252",
+            "hash": "sha256-h/Bjgyfp+8gx3VoxteJyXxI/z4ghyw/xdmwAGXidEkc="
         },
-        "version": "unstable-2024-03-21"
+        "version": "unstable-2024-03-25"
     },
     "picodrive": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "picodrive",
-            "rev": "d907d65692a45e126d0c7d6685cc8792b52bc577",
-            "hash": "sha256-CJJcWVueg3dbBT4r6W1y8Qj7iRwH7PupvFp+CKEII7o=",
+            "rev": "ad93670449a28825d4b2cebf2eeff72cf03377a9",
+            "hash": "sha256-AGupXJVUkOt7XjXE1s5Y3SzZjZBAujaAAsR0CgxfKe0=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-01-23"
+        "version": "unstable-2024-03-26"
     },
     "play": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "jpd002",
             "repo": "Play-",
-            "rev": "6e9fa384d6e94f552ba56c3233b38770c41b46af",
-            "hash": "sha256-KplGpF0d821ms/UA0GVtDVgdFQR6Xbl844GVPUId77Q=",
+            "rev": "08db12cefaad02eaa5265283e3ad0b51eeb8a633",
+            "hash": "sha256-1wO/iBnyGnBx+vIlnqaihAVrth3shCvogEX9TC59GaY=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-03-21"
+        "version": "unstable-2024-03-26"
     },
     "ppsspp": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "hrydgard",
             "repo": "ppsspp",
-            "rev": "cd85b4d5e8410dd9b5a9ee5c0e507abd0dc3ff29",
-            "hash": "sha256-a/Le2xFoLmRU8Q2WIegipt/kU49px20W7P6/zqQsspQ=",
+            "rev": "768174e19ca80bccadc067bd2c7adc0d35fb4602",
+            "hash": "sha256-V66SGvOAcw5lMOBID+qnsjuvKQkt1afl8wdiscKN3Us=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-03-21"
+        "version": "unstable-2024-03-27"
     },
     "prboom": {
         "fetcher": "fetchFromGitHub",
diff --git a/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix b/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
index 9456146ad1bfd..9ec985fca59d2 100644
--- a/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
+++ b/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "retroarch-joypad-autoconfig";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "retroarch-joypad-autoconfig";
     rev = "v${version}";
-    hash = "sha256-rmbZxXxHwIPb/zVBQiWTRPLVS+DXTrsw8d6t9nTg/ng=";
+    hash = "sha256-VZbdR9Tvc8FofBjApTskEZVwUzInEDM3YhZ14VWTyC0=";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix
index 12076557acfb7..84d8c62915736 100644
--- a/pkgs/applications/graphics/f3d/default.nix
+++ b/pkgs/applications/graphics/f3d/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "f3d";
-  version = "2.3.0";
+  version = "2.3.1";
 
   outputs = [ "out" "man" ];
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "f3d-app";
     repo = "f3d";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pr2xuCy5yoUuj2cjkTh3Xwpg3g7zBspjErEi5luRD6Y=";
+    hash = "sha256-A6PD++wZZfVp/3hV7yefQPhxTpvpZHN0h0pRCxA6vkU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/imgbrd-grabber/default.nix b/pkgs/applications/graphics/imgbrd-grabber/default.nix
index 0fa08c31c0a68..72d9d9cc1e01b 100644
--- a/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/pkgs/applications/graphics/imgbrd-grabber/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , cmake
 , fetchFromGitHub
 , wrapQtAppsHook
@@ -93,6 +94,7 @@ stdenv.mkDerivation rec {
     description = "Very customizable imageboard/booru downloader with powerful filenaming features";
     license = licenses.asl20;
     homepage = "https://bionus.github.io/imgbrd-grabber/";
+    mainProgram = "Grabber";
     maintainers = [ maintainers.evanjs ];
   };
 }
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index cd2a1f4b51845..fed6cb8732b93 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lightburn";
-  version = "1.5.04";
+  version = "1.5.05";
 
   nativeBuildInputs = [
     p7zip
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
-    sha256 = "sha256-cyQUv/KqdtDwCFo8CatJYdepgdWNwTSMyDLzOjvvO5c=";
+    sha256 = "sha256-rvskm0Br+3HqPo2DW/ZUIl8n3+UJKPlmkEtQofw05x4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/oculante/default.nix b/pkgs/applications/graphics/oculante/default.nix
index f83184a488aa6..fbbe037257bb8 100644
--- a/pkgs/applications/graphics/oculante/default.nix
+++ b/pkgs/applications/graphics/oculante/default.nix
@@ -22,16 +22,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oculante";
-  version = "0.8.16";
+  version = "0.8.17";
 
   src = fetchFromGitHub {
     owner = "woelper";
     repo = "oculante";
     rev = version;
-    hash = "sha256-C8USTDW5C+mjj/fr242is/42RpmUvcK3lUeaq0/BSGA=";
+    hash = "sha256-kSCmBdTh4Z6b49fItv68w+hdIFH98g8lCfIVqj08wgg=";
   };
 
-  cargoHash = "sha256-w8k0QG509PRHHB1e4WThYnM6R0PwWMbSBxs2B0zQ0ww=";
+  cargoHash = "sha256-vZwzIV0l9iHEf2Iz/n1jY9Ai+YU5UkeSJPSqDkKy+nI=";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/applications/graphics/pureref/default.nix b/pkgs/applications/graphics/pureref/default.nix
index 5a0774a09f430..825ea4c51e190 100644
--- a/pkgs/applications/graphics/pureref/default.nix
+++ b/pkgs/applications/graphics/pureref/default.nix
@@ -1,14 +1,16 @@
-{ lib, appimageTools, requireFile }:
+{ lib, appimageTools, runCommand, curl, gnugrep, cacert }:
 
 appimageTools.wrapType1 rec {
   pname = "pureref";
   version = "1.11.1";
 
-  src = requireFile {
-    name = "PureRef-${version}_x64.Appimage";
-    sha256 = "05naywdgykqrsgc3xybskr418cyvbx7vqs994yv9w8zf98gxvbvm";
-    url = "https://www.pureref.com/download.php";
-  };
+  src = runCommand "PureRef-${version}_x64.Appimage" {
+    nativeBuildInputs = [ curl gnugrep cacert ];
+    outputHash = "sha256-da/dH0ruI562JylpvE9f2zMUSJ56+T7Y0xlP/xr3yhY=";
+  } ''
+    key="$(curl "https://www.pureref.com/download.php" --silent | grep '%3D%3D' | cut -d '"' -f2)"
+    curl "https://www.pureref.com/files/build.php?build=LINUX64.Appimage&version=${version}&downloadKey=$key" --output $out
+  '';
 
   extraInstallCommands = ''
     mv $out/bin/${pname}-${version} $out/bin/${pname}
diff --git a/pkgs/applications/kde/partitionmanager/default.nix b/pkgs/applications/kde/partitionmanager/default.nix
index a898984d45021..90adde782c7fd 100644
--- a/pkgs/applications/kde/partitionmanager/default.nix
+++ b/pkgs/applications/kde/partitionmanager/default.nix
@@ -1,5 +1,4 @@
 { mkDerivation
-, fetchurl
 , lib
 , extra-cmake-modules
 , kdoctools
@@ -80,6 +79,10 @@ mkDerivation {
     )
   '';
 
+  passthru = {
+    inherit kpmcore;
+  };
+
   meta = with lib; {
     description = "KDE Partition Manager";
     longDescription = ''
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index c0fb3b336d0fc..8266f4bfd067f 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -16,7 +16,6 @@
   cudaSupport ? config.cudaSupport,
   dbus,
   embree,
-  fetchpatch,
   fetchurl,
   fetchzip,
   ffmpeg,
@@ -68,7 +67,7 @@
   pkg-config,
   potrace,
   pugixml,
-  python310Packages, # must use instead of python3.pkgs, see https://github.com/NixOS/nixpkgs/issues/211340
+  python311Packages, # must use instead of python3.pkgs, see https://github.com/NixOS/nixpkgs/issues/211340
   rocmPackages, # comes with a significantly larger closure size
   runCommand,
   spaceNavSupport ? stdenv.isLinux,
@@ -82,7 +81,7 @@
 }:
 
 let
-  python3Packages = python310Packages;
+  python3Packages = python311Packages;
   python3 = python3Packages.python;
   pyPkgsOpenusd = python3Packages.openusd.override { withOsl = false; };
 
@@ -100,25 +99,14 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "blender";
-  version = "4.0.2";
+  version = "4.1.0";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    hash = "sha256-qqDnKdp1kc+/RXcq92NFl32qp7EaCvNdmPkxPiRgd6M=";
+    hash = "sha256-3AAtguPDQMk4VcZoRzDQGAG2aaKbHMa3XuuZC6aecj8=";
   };
 
-  patches = [
-    ./draco.patch
-    (fetchpatch {
-      url = "https://projects.blender.org/blender/blender/commit/cf4365e555a759d5b3225bce77858374cb07faad.diff";
-      hash = "sha256-Nypd04yFSHYa7RBa8kNmoApqJrU4qpaOle3tkj44d4g=";
-    })
-    (fetchpatch {
-      # https://projects.blender.org/blender/blender/issues/117145
-      url = "https://projects.blender.org/blender/blender/commit/eb99895c972b6c713294f68a34798aa51d36034a.patch";
-      hash = "sha256-95nG5mW408lhKJ2BppgaUwBMMeXeGyBqho6mCfB53GI=";
-    })
-  ] ++ lib.optional stdenv.isDarwin ./darwin.patch;
+  patches = [ ./draco.patch ] ++ lib.optional stdenv.isDarwin ./darwin.patch;
 
   postPatch =
     (
@@ -247,7 +235,7 @@ stdenv.mkDerivation (finalAttrs: {
     ]
     ++ lib.optionals (!stdenv.isAarch64) [
       embree
-      openimagedenoise
+      (openimagedenoise.override { inherit cudaSupport; })
     ]
     ++ (
       if (!stdenv.isDarwin) then
diff --git a/pkgs/applications/misc/go-org/default.nix b/pkgs/applications/misc/go-org/default.nix
index 8aa5a3be717b4..4b0a2a9c41a7b 100644
--- a/pkgs/applications/misc/go-org/default.nix
+++ b/pkgs/applications/misc/go-org/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
     description = "Org-mode parser and static site generator in go";
     homepage = "https://niklasfasching.github.io/go-org";
     license = licenses.mit;
-    maintainers = with maintainers; [ payas ];
+    maintainers = with maintainers; [ bhankas ];
     mainProgram = "go-org";
   };
 }
diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix
index a24cff0942e1e..e4bf463ac4a30 100644
--- a/pkgs/applications/misc/gramps/default.nix
+++ b/pkgs/applications/misc/gramps/default.nix
@@ -23,7 +23,7 @@ let
   inherit (pythonPackages) buildPythonApplication pythonOlder;
 in
 buildPythonApplication rec {
-  version = "5.2.0";
+  version = "5.2.1";
   pname = "gramps";
   pyproject = true;
 
@@ -33,7 +33,7 @@ buildPythonApplication rec {
     owner = "gramps-project";
     repo = "gramps";
     rev = "v${version}";
-    hash = "sha256-8iQcaWLiBegVjcV16TfZbp8/4N/9f5pEl7mdV78CeEY=";
+    hash = "sha256-KgUc6AFLVFf3SYpjY/le0g4jNhGe4gpYcnkDEIZ/gxQ=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/koreader/default.nix b/pkgs/applications/misc/koreader/default.nix
index 857ca1d26a8eb..b9eea1c602cb7 100644
--- a/pkgs/applications/misc/koreader/default.nix
+++ b/pkgs/applications/misc/koreader/default.nix
@@ -14,15 +14,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "koreader";
-  version = "2023.04";
+  version = "2024.03.1";
 
 
   src = if stdenv.isAarch64 then fetchurl {
     url = "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-arm64.deb";
-    sha256 = "sha256-uuspjno0750hQMIB5HEhbV63wCna2izKOHEGIg/X0bU=";
+    hash = "sha256-9Bu+mWfJuPaH5nV71JMrcGipiZWfcf19KfVauCW92+I=";
   } else fetchurl {
     url = "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
-    sha256 = "sha256-tRUeRB1+UcWT49dchN0YDvd0L5n1YRdtMSFc8yy6m5o=";
+    hash = "sha256-EZ3iqp0A2BZwI343nvvp71RGQx6FPesUBy4Lha4Yz4U=";
   };
 
   src_repo = fetchFromGitHub {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "koreader";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-c3j6hs0W0H2jDg6JVfU6ov7r7kucbqrQqf9PAvYBcJ0=";
+    sha256 = "sha256-gHn1xqBc7M9wkek1Ja1gry8TKIuUxQP8T45x3z2S4uc=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index 27aeca89be60f..882481ace1e07 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: let
 
 in {
   pname = "logseq";
-  version = "0.10.7";
+  version = "0.10.8";
 
   src = fetchurl {
     url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
-    hash = "sha256-EC83D7tSpoDV6h363yIdX9IrTfoMd4b0hTVdW1T0pXg=";
+    hash = "sha256-kVnQ33gozrL6BOWQxUfiMypiIZOffeT2cMVMHIfsaWg=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/misc/oxker/default.nix b/pkgs/applications/misc/oxker/default.nix
index 5952345ec1c7c..6e97bad8f913b 100644
--- a/pkgs/applications/misc/oxker/default.nix
+++ b/pkgs/applications/misc/oxker/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oxker";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-cUM9+6BZcsrb850fm5mFWpo7/JmxwNDh+upHeE7+DU8=";
+    sha256 = "sha256-pHyIL5Jmldsa0ZNMiYpBD+9zxPv8Blg23nnWD2YmHMI=";
   };
 
-  cargoHash = "sha256-sFBI/+7oGjjUyr3PBkkqdgprGdcaYHtOvqFpkrF4Qx8=";
+  cargoHash = "sha256-N1Cv89njL9QCIs3HclcjsqgSUSMEckis8zyVqepeW70=";
 
   meta = with lib; {
     description = "A simple tui to view & control docker containers";
diff --git a/pkgs/applications/misc/qtpass/default.nix b/pkgs/applications/misc/qtpass/default.nix
index 26807bc42a1cd..ae26de760ee6d 100644
--- a/pkgs/applications/misc/qtpass/default.nix
+++ b/pkgs/applications/misc/qtpass/default.nix
@@ -1,18 +1,17 @@
-{ lib, mkDerivation, fetchFromGitHub
+{ fetchFromGitHub, lib, stdenv
 , git, gnupg, pass, pwgen, qrencode
-, fetchpatch
-, qtbase, qtsvg, qttools, qmake
+, qtbase, qtsvg, qttools, qmake, wrapQtAppsHook
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "qtpass";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
-    owner  = "IJHack";
-    repo   = "QtPass";
-    rev    = "v${version}";
-    sha256 = "0748hjvhjrybi33ci3c8hcr74k9pdrf5jv8npf9hrsrmdyy1kr9x";
+    owner = "IJHack";
+    repo = "QtPass";
+    rev = "v${version}";
+    sha256 = "sha256-oKLLmsuXD2Hb2LQ4tcJP2gpR6eLaM/JzDhRcRSpUPYI=";
   };
 
   postPatch = ''
@@ -22,17 +21,7 @@ mkDerivation rec {
 
   buildInputs = [ git gnupg pass qtbase qtsvg ];
 
-  nativeBuildInputs = [ qmake qttools ];
-
-  patches = [
-    # Fix path to pass-otp plugin `/usr/lib/password-store/extensions/otp.bash` being hardcoded.
-    # TODO: Remove when https://github.com/IJHack/QtPass/pull/499 is merged and available.
-    (fetchpatch {
-      name = "qtpass-Dont-hardcode-pass-otp-usr-lib-path.patch";
-      url = "https://github.com/IJHack/QtPass/commit/2ca9f0ec5a8d709c97a2433c5cd814040c82d4f3.patch";
-      sha256 = "0ljlvqxvarrz2a4j71i66aflrxi84zirb6cg9kvygnvhvm1zbc7d";
-    })
-  ];
+  nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
 
   # HACK `propagatedSandboxProfile` does not appear to actually propagate the sandbox profile from `qt5.qtbase`
   sandboxProfile = toString qtbase.__propagatedSandboxProfile;
diff --git a/pkgs/applications/misc/rm-improved/Cargo.lock.patch b/pkgs/applications/misc/rm-improved/Cargo.lock.patch
new file mode 100644
index 0000000000000..9905de7402c0e
--- /dev/null
+++ b/pkgs/applications/misc/rm-improved/Cargo.lock.patch
@@ -0,0 +1,262 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 975cb99..f49f6ec 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1,12 +1,29 @@
+ # This file is automatically @generated by Cargo.
+ # It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "addr2line"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
++
+ [[package]]
+ name = "ansi_term"
+-version = "0.11.0"
++version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+ dependencies = [
+- "winapi 0.3.8",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+@@ -17,54 +34,47 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+ dependencies = [
+  "hermit-abi",
+  "libc",
+- "winapi 0.3.8",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "backtrace"
+-version = "0.3.44"
++version = "0.3.69"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e4036b9bf40f3cf16aba72a3d65e8a520fc4bafcdc7079aea8f848c58c5b5536"
++checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+ dependencies = [
+- "backtrace-sys",
++ "addr2line",
++ "cc",
+  "cfg-if",
+  "libc",
++ "miniz_oxide",
++ "object",
+  "rustc-demangle",
+ ]
+ 
+-[[package]]
+-name = "backtrace-sys"
+-version = "0.1.32"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
+-dependencies = [
+- "cc",
+- "libc",
+-]
+-
+ [[package]]
+ name = "bitflags"
+-version = "1.2.1"
++version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+ 
+ [[package]]
+ name = "cc"
+-version = "1.0.50"
++version = "1.0.90"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+ 
+ [[package]]
+ name = "cfg-if"
+-version = "0.1.10"
++version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+ 
+ [[package]]
+ name = "clap"
+-version = "2.33.0"
++version = "2.34.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
++checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+ dependencies = [
+  "ansi_term",
+  "atty",
+@@ -77,19 +87,25 @@ dependencies = [
+ 
+ [[package]]
+ name = "error-chain"
+-version = "0.12.2"
++version = "0.12.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd"
++checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+ dependencies = [
+  "backtrace",
+  "version_check",
+ ]
+ 
+ [[package]]
+-name = "hermit-abi"
+-version = "0.1.8"
++name = "gimli"
++version = "0.28.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
++checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+ dependencies = [
+  "libc",
+ ]
+@@ -106,19 +122,37 @@ dependencies = [
+ 
+ [[package]]
+ name = "libc"
+-version = "0.2.67"
++version = "0.2.153"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018"
++checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+ 
+ [[package]]
+-name = "redox_syscall"
+-version = "0.1.56"
++name = "memchr"
++version = "2.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
++
++[[package]]
++name = "miniz_oxide"
++version = "0.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
++dependencies = [
++ "adler",
++]
++
++[[package]]
++name = "object"
++version = "0.32.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
++dependencies = [
++ "memchr",
++]
+ 
+ [[package]]
+ name = "rm-improved"
+-version = "0.13.0"
++version = "0.13.1"
+ dependencies = [
+  "clap",
+  "error-chain",
+@@ -128,9 +162,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "rustc-demangle"
+-version = "0.1.16"
++version = "0.1.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+ 
+ [[package]]
+ name = "same-file"
+@@ -159,32 +193,32 @@ dependencies = [
+ 
+ [[package]]
+ name = "time"
+-version = "0.1.42"
++version = "0.1.45"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
+ dependencies = [
+  "libc",
+- "redox_syscall",
+- "winapi 0.3.8",
++ "wasi",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "unicode-width"
+-version = "0.1.7"
++version = "0.1.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+ 
+ [[package]]
+ name = "vec_map"
+-version = "0.8.1"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+ 
+ [[package]]
+ name = "version_check"
+-version = "0.9.1"
++version = "0.9.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+ 
+ [[package]]
+ name = "walkdir"
+@@ -197,6 +231,12 @@ dependencies = [
+  "winapi 0.2.8",
+ ]
+ 
++[[package]]
++name = "wasi"
++version = "0.10.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
++
+ [[package]]
+ name = "winapi"
+ version = "0.2.8"
+@@ -205,9 +245,9 @@ checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+ 
+ [[package]]
+ name = "winapi"
+-version = "0.3.8"
++version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+ dependencies = [
+  "winapi-i686-pc-windows-gnu",
+  "winapi-x86_64-pc-windows-gnu",
diff --git a/pkgs/applications/misc/rm-improved/default.nix b/pkgs/applications/misc/rm-improved/default.nix
index be5fb6344494a..38fcfd3a339bd 100644
--- a/pkgs/applications/misc/rm-improved/default.nix
+++ b/pkgs/applications/misc/rm-improved/default.nix
@@ -2,22 +2,27 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rm-improved";
-  version = "0.13.0";
-
-  cargoSha256 = "0wgpr6gx9dpvf02xgvrdbyiqfz1k9vipnvriz3jg0cz7n1afqisj";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "nivekuil";
     repo = "rip";
-    rev = "0.13.0";
-    sha256 = "0d065xia4mwdhxkiqfg7pic6scfzipzmsvvx7l6l97w62lzpiqx3";
+    rev = version;
+    hash = "sha256-jbXmGPrb9PhmCSUFVcCqg8HjntS2mrYeNuaMsU+zIFI=";
   };
 
+  cargoHash = "sha256-05ebuPa8N+hz5BnqAdOCL6dnBqVsB9VN4HxfwL99gK0=";
+
+  cargoPatches = [
+    # Cargo.lock out-of-date
+    ./Cargo.lock.patch
+  ];
+
   meta = with lib; {
     description = "Replacement for rm with focus on safety, ergonomics and performance";
     homepage = "https://github.com/nivekuil/rip";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nils-degroot ];
     mainProgram = "rip";
-    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/applications/misc/rofi-emoji/default.nix b/pkgs/applications/misc/rofi-emoji/default.nix
index 921ba4ddd9b32..ac8518e6a2d4f 100644
--- a/pkgs/applications/misc/rofi-emoji/default.nix
+++ b/pkgs/applications/misc/rofi-emoji/default.nix
@@ -6,6 +6,9 @@
 , autoreconfHook
 , pkg-config
 
+, waylandSupport ? true
+, x11Support ? true
+
 , cairo
 , glib
 , libnotify
@@ -13,6 +16,8 @@
 , wl-clipboard
 , xclip
 , xsel
+, xdotool
+, wtype
 }:
 
 stdenv.mkDerivation rec {
@@ -38,9 +43,12 @@ stdenv.mkDerivation rec {
   postFixup = ''
     chmod +x $out/share/rofi-emoji/clipboard-adapter.sh
     wrapProgram $out/share/rofi-emoji/clipboard-adapter.sh \
-      --prefix PATH ":" ${lib.makeBinPath [ libnotify wl-clipboard xclip xsel ]}
+     --prefix PATH ":" ${lib.makeBinPath ([ libnotify wl-clipboard xclip xsel ]
+       ++ lib.optionals waylandSupport [ wtype ]
+       ++ lib.optionals x11Support [ xdotool ])}
   '';
 
+
   nativeBuildInputs = [
     autoreconfHook
     pkg-config
diff --git a/pkgs/applications/misc/slstatus/default.nix b/pkgs/applications/misc/slstatus/default.nix
index fcac061de0d14..94aad50bc1d37 100644
--- a/pkgs/applications/misc/slstatus/default.nix
+++ b/pkgs/applications/misc/slstatus/default.nix
@@ -8,6 +8,8 @@
 , libXdmcp
 , conf ? null
 , patches ? [ ]
+# update script dependencies
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
@@ -36,11 +38,13 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "PREFIX=$(out)" ];
 
+  passthru.updateScript = gitUpdater {};
+
   meta = with lib; {
     homepage = "https://tools.suckless.org/slstatus/";
     description = "status monitor for window managers that use WM_NAME like dwm";
     license = licenses.isc;
-    maintainers = with maintainers; [ oxzi ];
+    maintainers = with maintainers; [ oxzi qusic ];
     platforms = platforms.linux;
     mainProgram = "slstatus";
   };
diff --git a/pkgs/applications/misc/stog/asy.nix b/pkgs/applications/misc/stog/asy.nix
new file mode 100644
index 0000000000000..58f1cf35f4d47
--- /dev/null
+++ b/pkgs/applications/misc/stog/asy.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, stog, ocf_ppx }:
+
+buildDunePackage {
+  pname = "stog_asy";
+
+  inherit (stog) version src;
+
+  buildInputs = [ ocf_ppx ];
+  propagatedBuildInputs = [ stog ];
+
+  meta = stog.meta // {
+    description = "Stog plugin to include Asymptote results in documents";
+  };
+}
diff --git a/pkgs/applications/misc/stog/default.nix b/pkgs/applications/misc/stog/default.nix
index 17affeb3bbf65..b91624525483b 100644
--- a/pkgs/applications/misc/stog/default.nix
+++ b/pkgs/applications/misc/stog/default.nix
@@ -1,28 +1,18 @@
-{ lib, buildDunePackage, fetchFromGitLab, fetchpatch, ocaml
+{ lib, buildDunePackage, fetchFromGitLab
 , fmt, lwt_ppx, menhir, ocf_ppx, ppx_blob, xtmpl_ppx
 , dune-build-info, dune-site, higlo, logs, lwt, ocf, ptime, uri, uutf, xtmpl
 }:
 
-if lib.versionAtLeast ocaml.version "4.13"
-then throw "stog is not available for OCaml ${ocaml.version}"
-else
-
 buildDunePackage rec {
   pname = "stog";
-  version = "0.20.0";
-  minimalOCamlVersion = "4.12";
+  version = "1.0.0";
+  minimalOCamlVersion = "4.13";
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = "zoggy";
     repo = "stog";
     rev = version;
-    sha256 = "sha256:0krj5w4y05bcfx7hk9blmap8avl31gp7yi01lpqzs6ync23mvm0x";
-  };
-
-  # Compatibility with higlo 0.9
-  patches = fetchpatch {
-    url = "https://framagit.org/zoggy/stog/-/commit/ea0546ab4cda8cc5c4c820ebaf2e3dfddc2ab101.patch";
-    hash = "sha256-86GRHF9OjfcalGfA0Om2wXH99j4THCs9a4+o5ghuiJc=";
+    hash = "sha256-hMb6D6VSq2o2NjycwxZt3mZKy1FR+3afEwbOmTc991g=";
   };
 
   nativeBuildInputs = [ menhir ];
diff --git a/pkgs/applications/misc/stog/markdown.nix b/pkgs/applications/misc/stog/markdown.nix
new file mode 100644
index 0000000000000..48fd4a0b00967
--- /dev/null
+++ b/pkgs/applications/misc/stog/markdown.nix
@@ -0,0 +1,15 @@
+{ buildDunePackage, stog, ocf_ppx, omd }:
+
+buildDunePackage {
+  pname = "stog_markdown";
+
+  inherit (stog) version src;
+
+  buildInputs = [ ocf_ppx ];
+  propagatedBuildInputs = [ omd stog ];
+
+  meta = stog.meta // {
+    description = "Stog plugin to use markdown syntax";
+  };
+}
+
diff --git a/pkgs/applications/misc/xmrig/proxy.nix b/pkgs/applications/misc/xmrig/proxy.nix
index 23b6c07ba6c6c..20d79d6c4ac0c 100644
--- a/pkgs/applications/misc/xmrig/proxy.nix
+++ b/pkgs/applications/misc/xmrig/proxy.nix
@@ -13,13 +13,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "xmrig-proxy";
-  version = "6.21.0";
+  version = "6.21.1";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig-proxy";
     rev = "v${version}";
-    hash = "sha256-ICRzd1iCm/TciVe0RqVFiiY74RK0KpEGPJ2v+wSRIEo=";
+    hash = "sha256-70SYdO3uyPINanAoARd2lDwyiuc2f/gg4QuoDgoXjjs=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/avalanchego/default.nix b/pkgs/applications/networking/avalanchego/default.nix
index 83ca257a98b17..d06ced1189eed 100644
--- a/pkgs/applications/networking/avalanchego/default.nix
+++ b/pkgs/applications/networking/avalanchego/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "avalanchego";
-  version = "1.11.2";
+  version = "1.11.3";
 
   src = fetchFromGitHub {
     owner = "ava-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-E75lqQkaCub/WpxvVHB5YP1E1ygjUURJ1VWrjvcV96o=";
+    hash = "sha256-VeszkBExveXmajnVLHDp9Fc9xngnUKBbVY55L260rds=";
   };
 
-  vendorHash = "sha256-Xrr4QE0FN6sII4xOjPbhwBlNgEwOlogKRNStjrjH7H0=";
+  vendorHash = "sha256-8K8loSdeISkA06LBkZgro+mEbQEZY1sdzplq7IKZ4kI=";
   # go mod vendor has a bug, see: https://github.com/golang/go/issues/57529
   proxyVendor = true;
 
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 2c2c0813a88f0..dbee3360d20c5 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -94,11 +94,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.64.109";
+  version = "1.64.113";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    hash = "sha256-36igba0U3p8i7t91RxeG6PqlKYyHDDlj295ICcYmCNc=";
+    hash = "sha256-T0uVq1yxDXNi6x9ot5bs3NRaOQ+RwBThvULS6EZ+Bdg=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 56cdd2e0f3a6b..908442e2cb80a 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -28,12 +28,12 @@
         version = "2024-02-19";
       };
       ungoogled-patches = {
-        hash = "sha256-vaL5lClzUzksjeJ/qneQ0uJ7IO5pJKBXa/cEgRx8s70=";
-        rev = "123.0.6312.58-1";
+        hash = "sha256-ET/fAQCpCx1wadA52mcEA3lBlIZPIK/DX2r2vhGf79o=";
+        rev = "123.0.6312.86-1";
       };
     };
-    hash = "sha256-GrCYCUjxV16tinqrIqW4DQD51dKIgKNu2fLLz9Yqq7k=";
-    hash_deb_amd64 = "sha256-z+UC7wUsWAX7kPIgk8S9ujW2n6HlUp0m3zHTvsAiTps=";
-    version = "123.0.6312.58";
+    hash = "sha256-b72MiRv4uxolKE92tK224FvyA56NM3FcCjijkc9m3ro=";
+    hash_deb_amd64 = "sha256-JsEJw8aEptesRiCtIrfHRQu1xq27TzHSmUr+dsvnV7o=";
+    version = "123.0.6312.86";
   };
 }
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index d40532db8a16a..32005b5ae8c64 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.10.4";
+  version = "2.10.5";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    hash = "sha256-D7vkVvYLImC9dtqPU3Gxe5sQO92qxnx4533ykBm7u7c=";
+    hash = "sha256-koTNC6ClKgmrgrELxtGz4rKe/VV/9kPK99Cmm50aB94=";
   };
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-O13zMtrXgW3SiJmAn64/QW/CJN0+d0h0MMyEWKsy9WE=";
+  vendorHash = "sha256-BqXTjmeKfCCwdwJ3gSOyvKfuqkjN+0S/1xe5vM406Ig=";
 
   # Set target as ./cmd per cli-local
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L227
diff --git a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index 5f1259b351b81..bd640845331fb 100644
--- a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "cloudfoundry-cli";
-  version = "8.7.8";
+  version = "8.7.9";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-86FY7SfVZ9aEC72VP7KWj3p+wbAyLXLYtugP+Iv0G80=";
+    sha256 = "sha256-uFYeiw2hdX25mUBdudNCC4ZuFEoWyfghWmQR8IsQy+w=";
   };
-  vendorHash = "sha256-Y46d8g4KoS5DjMMnX8YjgJYg6ax891vlgH9INZZflJI=";
+  vendorHash = "sha256-lvSo8kl2du6Sv7zY3uheXaO6Qg+nblW0jpp2q8+1vyk=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/k0sctl/default.nix b/pkgs/applications/networking/cluster/k0sctl/default.nix
index 722c8401da2ac..674adcf585d6a 100644
--- a/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/pkgs/applications/networking/cluster/k0sctl/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "k0sctl";
-  version = "0.17.4";
+  version = "0.17.5";
 
   src = fetchFromGitHub {
     owner = "k0sproject";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-E9EIyBDYsLqfKsb25o1SEh0lUAT/xEtcHHlkunS5Meg=";
+    hash = "sha256-NHfS1iJtpt0t2iIqXBETiD4rpA2XzA8eOg5mP4N8El4=";
   };
 
-  vendorHash = "sha256-0P1v7mZ+k7Th8/cwxRNlhDodzyagv0V9ZBXy1BUGk+k=";
+  vendorHash = "sha256-MPTdOcNoveBnHMJ2YHqHuvOHHe6IdisZLc05qViA1YQ=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/networking/cluster/kaniko/default.nix b/pkgs/applications/networking/cluster/kaniko/default.nix
index 19fcad4c51eb8..4bf3357f31f83 100644
--- a/pkgs/applications/networking/cluster/kaniko/default.nix
+++ b/pkgs/applications/networking/cluster/kaniko/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "kaniko";
-  version = "1.21.1";
+  version = "1.22.0";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = "kaniko";
     rev = "v${version}";
-    hash = "sha256-mVoXJPNkG0VPTaZ1pg6oB5qa/bYQa9Gn82CoGRsVwWg=";
+    hash = "sha256-EL54lr5i6F4F9sdjQJZ3X+mmj4tWXVX2db8CkRe8WzI=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/karmor/default.nix b/pkgs/applications/networking/cluster/karmor/default.nix
index 7b61d9390b299..b87c022d67a8e 100644
--- a/pkgs/applications/networking/cluster/karmor/default.nix
+++ b/pkgs/applications/networking/cluster/karmor/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "karmor";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "kubearmor";
     repo = "kubearmor-client";
     rev = "v${version}";
-    hash = "sha256-hul348zF81oXTcvcfRpNYiiqfocS3HPwcPdXp7Ij91Y=";
+    hash = "sha256-NNCV/+Jh/tjc7SC4E9/gtiVthVmAxZBOyW3MFISbkH4=";
   };
 
   vendorHash = "sha256-CKOZxmUVZWFb7cc+amPwyMv5ScujWeipEqm95m63SYk=";
diff --git a/pkgs/applications/networking/cluster/krelay/default.nix b/pkgs/applications/networking/cluster/krelay/default.nix
index 6fad5b344c0d6..554c2717f31dc 100644
--- a/pkgs/applications/networking/cluster/krelay/default.nix
+++ b/pkgs/applications/networking/cluster/krelay/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "krelay";
-  version = "0.0.8";
+  version = "0.0.9";
 
   src = fetchFromGitHub {
     owner = "knight42";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-KR5lBLgzv9yjL3JvCjg8dxXWmPgagnnKxYtrPunAyXY=";
+    hash = "sha256-8UMbSsZzk9GPQR+d8ybqRQa1ouL6h8nzk/O7j0jJyk4=";
   };
 
   vendorHash = "sha256-vaWdJyPOLsrLrhipBvUCOHo/TjnJz4Qpvj3lvUPHomU=";
diff --git a/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix b/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
index 695d63db81654..7f22523e46bcd 100644
--- a/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubectl-view-secret";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "elsesiy";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IdbJQ3YCIPcp09/NORWGezqjbwktObN7TuQdq5uAN4A=";
+    hash = "sha256-5X5rOoERx6HoG3cOBpYm12anMXXDjTtHZzQOOlJeJSs=";
   };
 
-  vendorHash = "sha256-Q6OosaHDzq9a2Nt18LGiGJ1C2i1/BRYGaNEBeK0Ohiw=";
+  vendorHash = "sha256-oQvmS05nev+ypfkKAlTN+JbzPux5iAzHsojW8SxtB70=";
 
   subPackages = [ "./cmd/" ];
 
diff --git a/pkgs/applications/networking/cluster/kuma/default.nix b/pkgs/applications/networking/cluster/kuma/default.nix
index 865bc27f8b63c..d8da50b9f524f 100644
--- a/pkgs/applications/networking/cluster/kuma/default.nix
+++ b/pkgs/applications/networking/cluster/kuma/default.nix
@@ -15,17 +15,17 @@
 
 buildGoModule rec {
   inherit pname;
-  version = "2.6.2";
+  version = "2.6.3";
   tags = lib.optionals enableGateway [ "gateway" ];
 
   src = fetchFromGitHub {
     owner = "kumahq";
     repo = "kuma";
     rev = version;
-    hash = "sha256-BYnrDB86O2I1DliHpDU65dDbGVmzBhfus4cgb2HpPQ4=";
+    hash = "sha256-m/mCnX/VFUPd3+DY+7znes55myIiJ8+T51NPcgWOiZc=";
   };
 
-  vendorHash = "sha256-p3r0LXqv7X7OyDIlZKfe964fD+E+5lmrToP4rqborlo=";
+  vendorHash = "sha256-otrm8avM35/8WqjSO8V8hMAzsh51unyrMVDv4321xoY=";
 
   # no test files
   doCheck = false;
diff --git a/pkgs/applications/networking/cluster/lens/common.nix b/pkgs/applications/networking/cluster/lens/common.nix
deleted file mode 100644
index e14a176bf4640..0000000000000
--- a/pkgs/applications/networking/cluster/lens/common.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ fetchurl }:
-let
-  build = "2023.5.310801-latest";
-in
-{
-  pname = "lens-desktop";
-  version = "6.5.2";
-  sources = {
-    x86_64-darwin = fetchurl {
-      sha256 = "sha256-AGU1kOQEYBAGqWaxftqSNVdPEblPDujKSBjMeaVNx6M=";
-      url = "https://api.k8slens.dev/binaries/Lens-${build}.dmg";
-    };
-    aarch64-darwin = fetchurl {
-      sha256 = "sha256-Xx+6GPAfjioTrqfFS7cFh6deraR+TtqLlwLbVQxfN8g=";
-      url = "https://api.k8slens.dev/binaries/Lens-${build}-arm64.dmg";
-    };
-    x86_64-linux = fetchurl {
-      sha256 = "sha256-DPgeAhM8k6RXg1Qw2bqJFLPh5q2o7Va6EAe/InQNXLg=";
-      url = "https://api.k8slens.dev/binaries/Lens-${build}.x86_64.AppImage";
-    };
-  };
-}
diff --git a/pkgs/applications/networking/cluster/lens/darwin.nix b/pkgs/applications/networking/cluster/lens/darwin.nix
index e8f17422ec1ff..9b9b752b877ba 100644
--- a/pkgs/applications/networking/cluster/lens/darwin.nix
+++ b/pkgs/applications/networking/cluster/lens/darwin.nix
@@ -1,27 +1,20 @@
-{ lib, stdenv, undmg, fetchurl }:
-let
-  common = import ./common.nix { inherit fetchurl; };
-  inherit (stdenv.hostPlatform) system;
-in
-stdenv.mkDerivation rec {
-  inherit (common) pname version;
-  src = common.sources.${system} or (throw "Source for ${pname} is not available for ${system}");
+{ stdenv, pname, version, src, meta, undmg }:
 
-  appName = "Lens";
+stdenv.mkDerivation {
+  inherit pname version src meta;
 
-  sourceRoot = "${appName}.app";
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ undmg ];
 
-  buildInputs = [ undmg ];
   installPhase = ''
-    mkdir -p "$out/Applications/${appName}.app"
-    cp -R . "$out/Applications/${appName}.app"
+    runHook preInstall
+
+    mkdir -p "$out/Applications"
+    cp -R "Lens.app" "$out/Applications/Lens.app"
+
+    runHook postInstall
   '';
 
-  meta = with lib; {
-    description = "The Kubernetes IDE";
-    homepage = "https://k8slens.dev/";
-    license = licenses.lens;
-    maintainers = with maintainers; [ dbirks ];
-    platforms = [ "x86_64-darwin" "aarch64-darwin" ];
-  };
+  dontFixup = true;
 }
diff --git a/pkgs/applications/networking/cluster/lens/default.nix b/pkgs/applications/networking/cluster/lens/default.nix
index 455065b070362..3e32f8778f74e 100644
--- a/pkgs/applications/networking/cluster/lens/default.nix
+++ b/pkgs/applications/networking/cluster/lens/default.nix
@@ -1,5 +1,41 @@
-{ stdenv, callPackage }:
-if stdenv.isDarwin then
-  callPackage ./darwin.nix { }
+{ stdenv
+, callPackage
+, fetchurl
+, lib }:
+
+let
+
+  pname = "lens-desktop";
+  version = "2024.3.191333";
+
+  sources = {
+    x86_64-linux = {
+      url = "https://api.k8slens.dev/binaries/Lens-${version}-latest.x86_64.AppImage";
+      hash = "sha256-OywOjXzeW/5uyt50JrutiLgem9S1CrlwPFqfK6gUc7U=";
+    };
+    x86_64-darwin = {
+      url = "https://api.k8slens.dev/binaries/Lens-${version}-latest.dmg";
+      hash = "sha256-yf+WBcOdOM3XsfiXJThVws2r84vG2jwfNV1c+sq6A4s=";
+    };
+    aarch64-darwin = {
+      url = "https://api.k8slens.dev/binaries/Lens-${version}-latest-arm64.dmg";
+      hash = "sha256-hhd8MnwKWpvG7UebkeEoztS45SJVnpvvJ9Zy+y5swik=";
+    };
+  };
+
+  src = fetchurl {
+    inherit (sources.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}")) url hash;
+  };
+
+  meta = with lib; {
+    description = "The Kubernetes IDE";
+    homepage = "https://k8slens.dev/";
+    license = licenses.lens;
+    maintainers = with maintainers; [ dbirks RossComputerGuy starkca90 ];
+    platforms = builtins.attrNames sources;
+  };
+
+in if stdenv.isDarwin then
+  callPackage ./darwin.nix { inherit pname version src meta; }
 else
-  callPackage ./linux.nix { }
+  callPackage ./linux.nix { inherit pname version src meta; }
diff --git a/pkgs/applications/networking/cluster/lens/linux.nix b/pkgs/applications/networking/cluster/lens/linux.nix
index 8a21ceb432daf..b54285fdafcc6 100644
--- a/pkgs/applications/networking/cluster/lens/linux.nix
+++ b/pkgs/applications/networking/cluster/lens/linux.nix
@@ -1,19 +1,16 @@
-{ lib, fetchurl, appimageTools, makeWrapper, nss_latest, stdenv }:
+{ lib, stdenv, pname, version, src, meta, appimageTools, makeWrapper, nss_latest }:
 let
-  common = import ./common.nix { inherit fetchurl; };
 
-  inherit (stdenv.hostPlatform) system;
-
-  inherit (common) pname version;
-  src = common.sources.${stdenv.hostPlatform.system} or (throw "Source for ${pname} is not available for ${system}");
   name = "${pname}-${version}";
 
   appimageContents = appimageTools.extractType2 {
     inherit name src;
   };
+
 in
+
 appimageTools.wrapType2 {
-  inherit name src;
+  inherit name src meta;
 
   extraInstallCommands =
     ''
@@ -29,12 +26,4 @@ appimageTools.wrapType2 {
     '';
 
   extraPkgs = _: [ nss_latest ];
-
-  meta = with lib; {
-    description = "The Kubernetes IDE";
-    homepage = "https://k8slens.dev/";
-    license = licenses.lens;
-    maintainers = with maintainers; [ dbirks RossComputerGuy ];
-    platforms = [ "x86_64-linux" ];
-  };
 }
diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix
index 1e381c7470fbd..1c123a9374512 100644
--- a/pkgs/applications/networking/cluster/pachyderm/default.nix
+++ b/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pachyderm";
-  version = "2.9.0";
+  version = "2.9.2";
 
   src = fetchFromGitHub {
     owner = "pachyderm";
     repo = "pachyderm";
     rev = "v${version}";
-    hash = "sha256-5xC0D7XB1db3mxUkzIyvmVIxOlL8XX8Vxpmtf60BQNM=";
+    hash = "sha256-/9j7umcIffG5jAaUW/jmIX5CUD9dUq5/ZKhzbKx0Kw4=";
   };
 
-  vendorHash = "sha256-EW8DURf6URPQQMakHnRuF9Xh5iKh2y4cz6XYgXQwJM4=";
+  vendorHash = "sha256-6iwiepmzxZ4cGsPeHQDNFd2VuhmjTAX9kBdjaQPBMKU=";
 
   subPackages = [ "src/server/cmd/pachctl" ];
 
diff --git a/pkgs/applications/networking/cluster/popeye/default.nix b/pkgs/applications/networking/cluster/popeye/default.nix
index 4c21b95265fba..50acf8dceecbe 100644
--- a/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/pkgs/applications/networking/cluster/popeye/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "popeye";
-  version = "0.21.1";
+  version = "0.21.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "derailed";
     repo = "popeye";
-    sha256 = "sha256-zk3SMIvaFV6t+VCMvcmMaHpTEYx/LinaPLNXUU+JSwk=";
+    sha256 = "sha256-NhQER6XeicpQY0rYisGvkUCHYsURJqt6xVKc9F0CmtE=";
   };
 
   ldflags = [
diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index 80f642f9360ba..d3c0e1fd3f202 100644
--- a/pkgs/applications/networking/cluster/spark/default.nix
+++ b/pkgs/applications/networking/cluster/spark/default.nix
@@ -62,10 +62,18 @@ let
     });
 in
 {
+  # A note on EOL and removing old versions:
+  # According to spark's versioning policy (https://spark.apache.org/versioning-policy.html),
+  # minor releases are generally maintained with bugfixes for 18 months. But it doesn't
+  # make sense to remove a given minor version the moment it crosses this threshold.
+  # For example, spark 3.3.0 was released on 2022-06-09. It would have to be removed on 2023-12-09 if
+  # we strictly adhere to the EOL timeline, despite 3.3.4 being released one day before (2023-12-08).
+  # A better policy is to keep these versions around, and clean up EOL versions just before
+  # a new NixOS release.
   spark_3_5 = spark rec {
     pname = "spark";
-    version = "3.5.0";
-    hash = "sha256-f+a4a23aOM0GCDoZlZ7WNXs0Olzyh3yMtO8ZmEoYvZ4=";
+    version = "3.5.1";
+    hash = "sha256-ez6Hm8Ss3nl4mxOHyh67ugYH81/thNRMCja6MQ+9Tpg=";
   };
   spark_3_4 = spark rec {
     pname = "spark";
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index c2b51dbf5a010..b8a4be10f0f08 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.55.19";
+  version = "0.55.20";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ag5EmgX4xWbKBhXVsGTu5EtjXV3deGETPtsM9IpOr7s=";
+    hash = "sha256-F1+V99MxwPmtF4QHQ6/T1d8ss33R5qZOOP0B+xnGgzI=";
   };
 
   vendorHash = "sha256-ijAg0Y/dfNxDS/Jov7QYjlTZ4N4/jDMH/zCV0jdVXRc=";
diff --git a/pkgs/applications/networking/cluster/tf-summarize/default.nix b/pkgs/applications/networking/cluster/tf-summarize/default.nix
index 14fec4795db0c..09c6ee5ae0d74 100644
--- a/pkgs/applications/networking/cluster/tf-summarize/default.nix
+++ b/pkgs/applications/networking/cluster/tf-summarize/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "tf-summarize";
-  version = "0.3.9";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "dineshba";
     repo = "tf-summarize";
     rev = "v${version}";
-    hash = "sha256-rMpCNFuWgllvpi9PLyXAaV5IRphmPEI8HjBxKWgOydg=";
+    hash = "sha256-OmGJgy36Jv7/kyGg2y1cNS1r6n1C/plfC0s6q08Wox4=";
   };
 
   vendorHash = "sha256-nfontEgMj2qPbrM35iR7b65qrkWHCMY1v944iYdNLG8=";
diff --git a/pkgs/applications/networking/diswall/default.nix b/pkgs/applications/networking/diswall/default.nix
index 703b6c7456fa0..6afe93fee4712 100644
--- a/pkgs/applications/networking/diswall/default.nix
+++ b/pkgs/applications/networking/diswall/default.nix
@@ -5,20 +5,20 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "diswall";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "dis-works";
     repo = "diswall-rs";
     rev = "v${version}";
-    sha256 = "sha256-6XMw8fnuM1KyInYCw8DTonsj5gV9d+EuYfO5ggZ3YUU=";
+    sha256 = "sha256-HoIkozwRV0xz14mOTM4BXDzPShRAp8a3quhvtWwnQ2I=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Security
   ];
 
-  cargoHash = "sha256-So7XBC66y2SKbcjErg4Tnd/NcEpX5zYOEr60RvU9OOU=";
+  cargoHash = "sha256-KA2hwaEhY2G+H4+xVgin6xhmRfnGcJBBWj9xWtD0h9I=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index bf26bbd002bc7..92d7c73eb697a 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -22,12 +22,12 @@ python3.pkgs.buildPythonApplication rec {
     sed 's/[~<>=][^;]*//' -i requirements.txt
   '';
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     # See https://github.com/Flexget/Flexget/blob/master/requirements.txt
     apscheduler
     beautifulsoup4
diff --git a/pkgs/applications/networking/instant-messengers/iamb/default.nix b/pkgs/applications/networking/instant-messengers/iamb/default.nix
index 6e4e5276e582a..03d8b1cc13db1 100644
--- a/pkgs/applications/networking/instant-messengers/iamb/default.nix
+++ b/pkgs/applications/networking/instant-messengers/iamb/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "iamb";
-  version = "0.0.8";
+  version = "0.0.9";
 
   src = fetchFromGitHub {
     owner = "ulyssa";
     repo = "iamb";
     rev = "v${version}";
-    hash = "sha256-Mt4/UWySC6keoNvb1VDCVPoK24F0rmd0R47ZRPADkaw=";
+    hash = "sha256-UYc7iphpzqZPwhOn/ia7XvnnlIUvM7nSFBz67ZkXmNs=";
   };
 
-  cargoHash = "sha256-UbmeEcmUr3zx05Hk36tjsl0Y9ay7DNM1u/3lPqlXN2o=";
+  cargoHash = "sha256-982FdK6ej3Bbg4R9e43VSwlni837ZK4rkMkoeYMyW8E=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix
index 46c049b9d2f22..dffcdc6172f28 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop";
   dir = "Signal";
-  version = "6.46.0";
+  version = "7.3.0";
   url = "https://github.com/0mniteck/Signal-Desktop-Mobian/raw/${version}/builds/release/signal-desktop_${version}_arm64.deb";
-  hash = "sha256-rHmG2brzlQtYd3l5EFhjndPF5T7nQWzUhEe7LsEFVpc=";
+  hash = "sha256-RIOMIAXdBMr1Bi1TDFr4VD0w8JfBKzwEjpYS/DfV5kc=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
index 86f08b1067a11..2e13a66377358 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop-beta";
   dir = "Signal Beta";
-  version = "7.4.0-beta.1";
+  version = "7.4.0-beta.2";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
-  hash = "sha256-Pjz55iVBww7d7WIAonTeX+cdEobitltoAyOU79RY40c=";
+  hash = "sha256-oBkZ9BaKbmosTkC/OZFjt6PmU/9XqclyzbllwYPj3Q4=";
 }
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 10ea168355b30..0d4d46be06b4a 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.2.1";
+  version = "7.4.0";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-  hash = "sha256-IJ808xvPqGivccqH/mOMSHu/mU/JLFJ798UztwXWtm0=";
+  hash = "sha256-9a8Y8ncatynKspC/q0YxUWJj+nENr1ArwCZA9Ng8Mxk=";
 }
diff --git a/pkgs/applications/networking/mailreaders/betterbird/default.nix b/pkgs/applications/networking/mailreaders/betterbird/default.nix
index 6ca7c348969f4..b62b30ae60b36 100644
--- a/pkgs/applications/networking/mailreaders/betterbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/betterbird/default.nix
@@ -12,13 +12,13 @@
 let
   thunderbird-unwrapped = thunderbirdPackages.thunderbird-115;
 
-  version = "115.6.0";
+  version = "115.9.0";
   majVer = lib.versions.major version;
 
   betterbird-patches = fetchFromGitHub {
     owner = "Betterbird";
     repo = "thunderbird-patches";
-    rev = "${version}-bb21-correct-series-take2";
+    rev = "${version}-bb26-build2";
     postFetch = ''
       echo "Retrieving external patches"
 
@@ -36,7 +36,7 @@ let
       . ./external.sh
       rm external.sh
     '';
-    hash = "sha256-YERSRyLfFTexvAYmP9qG6joQkK5fSIvU4pNLhCyIbOY=";
+    hash = "sha256-0RlI30zxiueeXdLEXPZevc8QyKr667juHk0bTcqBB1w=";
   };
 in ((buildMozillaMach {
   pname = "betterbird";
@@ -50,7 +50,7 @@ in ((buildMozillaMach {
   src = fetchurl {
     # https://download.cdn.mozilla.net/pub/thunderbird/releases/
     url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-    hash = "sha256-Oxz5drDQ9IJVpgP4/+jiQ5Ds1b0oX8TRD+SOG6JRN0Q=";
+    hash = "sha256-Kut3ynA43289MG+cPSpOphWvDtzw9ykCFcpfMMEpDlc=";
   };
 
   extraPostPatch = thunderbird-unwrapped.extraPostPatch or "" + /* bash */ ''
@@ -65,8 +65,8 @@ in ((buildMozillaMach {
     cd $patches
     # fix FHS paths to libdbusmenu
     substituteInPlace 12-feature-linux-systray.patch \
-      --replace "/usr/include/libdbusmenu-glib-0.4/" "${lib.getDev libdbusmenu-gtk3}/include/libdbusmenu-glib-0.4/" \
-      --replace "/usr/include/libdbusmenu-gtk3-0.4/" "${lib.getDev libdbusmenu-gtk3}/include/libdbusmenu-gtk3-0.4/"
+      --replace-fail "/usr/include/libdbusmenu-glib-0.4/" "${lib.getDev libdbusmenu-gtk3}/include/libdbusmenu-glib-0.4/" \
+      --replace-fail "/usr/include/libdbusmenu-gtk3-0.4/" "${lib.getDev libdbusmenu-gtk3}/include/libdbusmenu-gtk3-0.4/"
     cd -
 
     chmod -R +w dom/base/test/gtest/
@@ -78,6 +78,11 @@ in ((buildMozillaMach {
         continue
       fi
 
+      # requires vendored icu, fails to link with our icu
+      if [[ $patch == 14-feature-regexp-searchterm.patch || $patch == 14-feature-regexp-searchterm-m-c.patch ]]; then
+        continue
+      fi
+
       echo Applying patch $patch.
       if [[ $patch == *-m-c.patch ]]; then
         git apply -p1 -v < $patches/$patch
diff --git a/pkgs/applications/networking/sync/storj-uplink/default.nix b/pkgs/applications/networking/sync/storj-uplink/default.nix
index 8f625a1fe1b09..e65ead7bd5c74 100644
--- a/pkgs/applications/networking/sync/storj-uplink/default.nix
+++ b/pkgs/applications/networking/sync/storj-uplink/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "storj-uplink";
-  version = "1.100.3";
+  version = "1.100.4";
 
   src = fetchFromGitHub {
     owner = "storj";
     repo = "storj";
     rev = "v${version}";
-    hash = "sha256-/aR6M/zL7xL+ujmGgu9J8Toiy7/0ou76nYJ0vwd5RVM=";
+    hash = "sha256-LPckEiuw+3WlEnW07jql+TFggB6mEzrvC7NI+pVBCLY=";
   };
 
   subPackages = [ "cmd/uplink" ];
diff --git a/pkgs/applications/networking/warp/default.nix b/pkgs/applications/networking/warp/default.nix
index 54e688c2e770d..52994f63e18c9 100644
--- a/pkgs/applications/networking/warp/default.nix
+++ b/pkgs/applications/networking/warp/default.nix
@@ -71,5 +71,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ dotlambda foo-dogsquared ];
     platforms = lib.platforms.all;
     mainProgram = "warp";
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/office/appflowy/default.nix b/pkgs/applications/office/appflowy/default.nix
index ee508a1d59b98..0ad06836f9057 100644
--- a/pkgs/applications/office/appflowy/default.nix
+++ b/pkgs/applications/office/appflowy/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "appflowy";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchzip {
     url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-${version}-linux-x86_64.tar.gz";
-    hash = "sha256-yXrdV/m6Ss9DyYleA5K7Wz1RUa8fznDJl5Yvco+jaiA=";
+    hash = "sha256-BFPtT8/DvSsZY1ckrXRZn6F0+pSRRZLoqc638JKUpjQ=";
     stripRoot = false;
   };
 
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 2808dd14e2c62..03eee188ac565 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -7,13 +7,13 @@
 
 let
   pname = "mendeley";
-  version = "2.110.2";
+  version = "2.111.0";
 
   executableName = "${pname}-reference-manager";
 
   src = fetchurl {
     url = "https://static.mendeley.com/bin/desktop/mendeley-reference-manager-${version}-x86_64.AppImage";
-    hash = "sha256-AJNNCPEwLAO1+Zub6Yyad5Zcsl35zf4dEboyGE9wSX8=";
+    hash = "sha256-tN76RKHETTMkJ239I6+a36RPTuWqYlCSs+tEP+BcB+M=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/office/planify/default.nix b/pkgs/applications/office/planify/default.nix
index 6bf0f20313f62..d01e0c45c9486 100644
--- a/pkgs/applications/office/planify/default.nix
+++ b/pkgs/applications/office/planify/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "planify";
-  version = "4.5.8";
+  version = "4.5.11";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planify";
     rev = version;
-    hash = "sha256-VTBnVVxv3hCyDKJlY/hE8oEDMNuMMWtm+NKzfD3tVzk=";
+    hash = "sha256-LMN+1ORp44uWVqzw1sjiZzx81s9l2msPFM3+sJ7qw8U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index c10b18a6f64a8..a0f0e0113d3d6 100644
--- a/pkgs/applications/office/treesheets/default.nix
+++ b/pkgs/applications/office/treesheets/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "unstable-2024-03-14";
+  version = "unstable-2024-03-30";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "4910f91cc067b1022d773a40d5762b0ebd47d0f3";
-    sha256 = "We3+Y2V2izsgem0fJ0/2pPj5tyjXhOEuubP7lIhnEQ0=";
+    rev = "f5b13ed93eacdd62851081d0730ec5f8b306c1e6";
+    sha256 = "CoIvJzfVmblMPH0J45ykpRF7CDLj/Dx+8MpkjiQkMkM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/quisk/default.nix b/pkgs/applications/radio/quisk/default.nix
index f0597b308a829..313f20bd0a6be 100644
--- a/pkgs/applications/radio/quisk/default.nix
+++ b/pkgs/applications/radio/quisk/default.nix
@@ -8,11 +8,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "quisk";
-  version = "4.2.29";
+  version = "4.2.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-xG6nRSk0txUMPPuNRK+hOeqLfCfPt6KcacAtcdZT5E8=";
+    sha256 = "sha256-1CpIb8Hj9hpsOkxhY3HNKaYYbWa5cZY5//WAzeuvY/o=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/biology/iqtree/default.nix b/pkgs/applications/science/biology/iqtree/default.nix
index 17b2ba9f9bdec..1f00876b58484 100644
--- a/pkgs/applications/science/biology/iqtree/default.nix
+++ b/pkgs/applications/science/biology/iqtree/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "iqtree";
-  version = "2.2.2.7";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "iqtree";
     repo = "iqtree2";
     rev = "v${version}";
-    hash = "sha256-XyjVo5TYMoB+ZOAGc4ivYqFGnEO1M7mhxXrG45TP44Y=";
+    hash = "sha256-GaNumiTGa6mxvFifv730JFgKrRxG41gJN+ci3imDbzs=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix
index 7c1312f27f25b..a4b1cd943e1bb 100644
--- a/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, fetchurl, gtk2, pkg-config, fftw, file,
-  pythonSupport ? false, python2Packages,
   gnome2,
   openexrSupport ? true, openexr,
   libzipSupport ? true, libzip,
@@ -15,10 +14,6 @@
   openglSupport ? !stdenv.isDarwin, libGL
 }:
 
-let
-    inherit (python2Packages) pygtk pygobject2 python;
-in
-
 stdenv.mkDerivation rec {
   pname = "gwyddion";
    version = "2.65";
@@ -43,9 +38,6 @@ stdenv.mkDerivation rec {
     optional libuniqueSupport libunique ++
     optional libzipSupport libzip;
 
-  propagatedBuildInputs = with lib;
-    optionals pythonSupport [ pygtk pygobject2 python gnome2.gtksourceview ];
-
   # This patch corrects problems with python support, but should apply cleanly
   # regardless of whether python support is enabled, and have no effects if
   # it is disabled.
diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix
index 93fec7149604b..a3a385802aaaa 100644
--- a/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/pkgs/applications/science/chemistry/octopus/default.nix
@@ -1,6 +1,9 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, cmake
+, pkg-config
+, ninja
 , gfortran
 , which
 , perl
@@ -14,15 +17,12 @@
 , gsl
 , netcdf
 , arpack
-, autoreconfHook
+, spglib
+, metis
 , scalapack
 , mpi
 , enableMpi ? true
 , python3
-, enableFma ? stdenv.hostPlatform.fmaSupport
-, enableFma4 ? stdenv.hostPlatform.fma4Support
-, enableAvx ? stdenv.hostPlatform.avx2Support
-, enableAvx512 ? stdenv.hostPlatform.avx512Support
 }:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
@@ -30,21 +30,23 @@ assert (blas.isILP64 == arpack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "13.0";
+  version = "14.0";
 
   src = fetchFromGitLab {
     owner = "octopus-code";
     repo = "octopus";
     rev = version;
-    sha256 = "sha256-CZ+Qmv6aBQ6w11mLvTP6QAJzaGs+vmmXuNGnSyAqVDU=";
+    sha256 = "sha256-wQ2I+10ZHLKamW3j6AUtq2KZVm6d29+JxYgwvBKz9DU=";
   };
 
   nativeBuildInputs = [
     which
     perl
     procps
-    autoreconfHook
+    cmake
     gfortran
+    pkg-config
+    ninja
   ];
 
   buildInputs = [
@@ -57,34 +59,20 @@ stdenv.mkDerivation rec {
     netcdf
     arpack
     libvdwxc
+    spglib
+    metis
     (python3.withPackages (ps: [ ps.pyyaml ]))
   ] ++ lib.optional enableMpi scalapack;
 
   propagatedBuildInputs = lib.optional enableMpi mpi;
   propagatedUserEnvPkgs = lib.optional enableMpi mpi;
 
-  configureFlags = with lib; [
-    "--with-yaml-prefix=${lib.getDev libyaml}"
-    "--with-blas=-lblas"
-    "--with-lapack=-llapack"
-    "--with-fftw-prefix=${lib.getDev fftw}"
-    "--with-gsl-prefix=${lib.getDev gsl}"
-    "--with-libxc-prefix=${lib.getDev libxc}"
-    "--with-libvdwxc"
-    "--enable-openmp"
-  ]
-  ++ optional enableFma "--enable-fma3"
-  ++ optional enableFma4 "--enable-fma4"
-  ++ optional enableAvx "--enable-avx"
-  ++ optional enableAvx512 "--enable-avx512"
-  ++ optionals enableMpi [
-    "--enable-mpi"
-    "--with-scalapack=-lscalapack"
-    "CC=mpicc"
-    "FC=mpif90"
+  cmakeFlags = [
+    (lib.cmakeBool "OCTOPUS_MPI" enableMpi)
+    (lib.cmakeBool "OCTOPUS_ScaLAPACK" enableMpi)
+    (lib.cmakeBool "OCTOPUS_OpenMP" true)
   ];
 
-
   nativeCheckInputs = lib.optional.enableMpi mpi;
   doCheck = false;
   checkTarget = "check-short";
diff --git a/pkgs/applications/science/logic/dafny/default.nix b/pkgs/applications/science/logic/dafny/default.nix
index 83d472c1abb18..acf4f05000bf1 100644
--- a/pkgs/applications/science/logic/dafny/default.nix
+++ b/pkgs/applications/science/logic/dafny/default.nix
@@ -8,13 +8,13 @@
 
 buildDotnetModule rec {
   pname = "Dafny";
-  version = "4.5.0";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "dafny-lang";
     repo = "dafny";
     rev = "v${version}";
-    hash = "sha256-NsQhJY++IaLyFc5jqo7TyZBcz0P8VUizGLxdIe9KEO4=";
+    hash = "sha256-3t0drxM7PZzrLbxBKYa6Gja2u6GK6Pc+ejoswag3P3k=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/logic/tamarin-prover/default.nix b/pkgs/applications/science/logic/tamarin-prover/default.nix
index 09ef2d7d46372..2aa92118b03a7 100644
--- a/pkgs/applications/science/logic/tamarin-prover/default.nix
+++ b/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -1,17 +1,23 @@
-{ haskellPackages, mkDerivation, fetchFromGitHub, fetchpatch, lib, stdenv
+{ haskellPackages, mkDerivation, fetchFromGitHub, applyPatches, lib, stdenv
 # the following are non-haskell dependencies
 , makeWrapper, which, maude, graphviz, glibcLocales
 }:
 
 let
   version = "1.8.0";
-  src = fetchFromGitHub {
-    owner  = "tamarin-prover";
-    repo   = "tamarin-prover";
-    rev    = version;
-    sha256 = "sha256-ujnaUdbjqajmkphOS4Fs4QBCRGX4JZkQ2p1X2jripww=";
+  src = applyPatches {
+      src = fetchFromGitHub {
+      owner  = "tamarin-prover";
+      repo   = "tamarin-prover";
+      rev    = version;
+      sha256 = "sha256-ujnaUdbjqajmkphOS4Fs4QBCRGX4JZkQ2p1X2jripww=";
+    };
+    patches = [
+      ./tamarin-prover-1.8.0-ghc-9.6.patch
+    ];
   };
 
+
   # tamarin has its own dependencies, but they're kept inside the repo,
   # no submodules. this factors out the common metadata among all derivations
   common = pname: src: {
@@ -34,7 +40,7 @@ let
   tamarin-prover-utils = mkDerivation (common "tamarin-prover-utils" (src + "/lib/utils") // {
     postPatch = replaceSymlinks;
     libraryHaskellDepends = with haskellPackages; [
-      base64-bytestring blaze-builder
+      base64-bytestring blaze-builder list-t
       dlist exceptions fclabels safe SHA syb
     ];
   });
@@ -93,8 +99,6 @@ mkDerivation (common "tamarin-prover" src // {
   isLibrary = false;
   isExecutable = true;
 
-  patches = [ ];
-
   # strip out unneeded deps manually
   doHaddock = false;
   enableSharedExecutables = false;
diff --git a/pkgs/applications/science/logic/tamarin-prover/tamarin-prover-1.8.0-ghc-9.6.patch b/pkgs/applications/science/logic/tamarin-prover/tamarin-prover-1.8.0-ghc-9.6.patch
new file mode 100644
index 0000000000000..f6a07f3646cad
--- /dev/null
+++ b/pkgs/applications/science/logic/tamarin-prover/tamarin-prover-1.8.0-ghc-9.6.patch
@@ -0,0 +1,237 @@
+commit 084bd5474d9ac687656c2a3a6b2e1d507febaa98
+Author: Artur Cygan <arczicygan@gmail.com>
+Date:   Mon Feb 26 10:04:48 2024 +0100
+
+    Update to GHC 9.6 (#618)
+    
+    Cherry-picked from b3e18f61e45d701d42d794bc91ccbb4c0e3834ec.
+    
+    Removing Control.Monad.List
+
+diff --git a/lib/sapic/src/Sapic/Exceptions.hs b/lib/sapic/src/Sapic/Exceptions.hs
+index 146b721e..b9962478 100644
+--- a/lib/sapic/src/Sapic/Exceptions.hs
++++ b/lib/sapic/src/Sapic/Exceptions.hs
+@@ -23,7 +23,6 @@ import Theory.Sapic
+ import Data.Label
+ import qualified Data.Maybe
+ import Theory.Text.Pretty
+-import Sapic.Annotation  --toAnProcess
+ import Theory.Sapic.Print (prettySapic)
+ import qualified Theory.Text.Pretty as Pretty
+ 
+@@ -67,14 +66,14 @@ data ExportException = UnsupportedBuiltinMS
+                        | UnsupportedTypes [String]
+ 
+ instance Show ExportException where
+-    
++
+     show (UnsupportedTypes incorrectFunctionUsages) = do
+         let functionsString = List.intercalate ", " incorrectFunctionUsages
+         (case length functionsString of
+           1 -> "The function " ++ functionsString ++ ", which is declared with a user-defined type, appears in a rewrite rule. "
+           _ -> "The functions " ++ functionsString ++ ", which are declared with a user-defined type, appear in a rewrite rule. ")
+         ++ "However, the translation of rules only works with bitstrings at the moment."
+-    show unsuppBuiltin = 
++    show unsuppBuiltin =
+         "The builtins bilinear-pairing and multiset are not supported for export. However, your model uses " ++
+         (case unsuppBuiltin of
+             UnsupportedBuiltinBP -> "bilinear-pairing."
+@@ -93,7 +92,7 @@ instance Show (SapicException an) where
+     show (InvalidPosition p) = "Invalid position:" ++ prettyPosition p
+     show (NotImplementedError s) = "This feature is not implemented yet. Sorry! " ++ s
+     show (ImplementationError s) = "You've encountered an error in the implementation: " ++ s
+-    show a@(ProcessNotWellformed e p) = "Process not well-formed: " ++ Pretty.render (text (show e) $-$ nest 2 (maybe emptyDoc prettySapic p))
++    show (ProcessNotWellformed e p) = "Process not well-formed: " ++ Pretty.render (text (show e) $-$ nest 2 (maybe emptyDoc prettySapic p))
+     show ReliableTransmissionButNoProcess = "The builtin support for reliable channels currently only affects the process calculus, but you have not specified a top-level process. Please remove \"builtins: reliable-channel\" to proceed."
+     show (CannotExpandPredicate facttag rstr) = "Undefined predicate "
+                               ++ showFactTagArity facttag
+@@ -135,7 +134,7 @@ instance Show WFerror where
+                               ++ prettySapicFunType t2
+                               ++ "."
+     show (FunctionNotDefined sym ) = "Function not defined " ++ show sym
+-        
++
+ 
+ instance Exception WFerror
+ instance (Typeable an) => Exception (SapicException an)
+diff --git a/lib/term/src/Term/Narrowing/Narrow.hs b/lib/term/src/Term/Narrowing/Narrow.hs
+index 56f145d9..88f89aa1 100644
+--- a/lib/term/src/Term/Narrowing/Narrow.hs
++++ b/lib/term/src/Term/Narrowing/Narrow.hs
+@@ -12,6 +12,7 @@ module Term.Narrowing.Narrow (
+ import           Term.Unification
+ import           Term.Positions
+ 
++import           Control.Monad
+ import           Control.Monad.Reader
+ 
+ import           Extension.Prelude
+diff --git a/lib/term/src/Term/Unification.hs b/lib/term/src/Term/Unification.hs
+index b5c107cd..fcf52128 100644
+--- a/lib/term/src/Term/Unification.hs
++++ b/lib/term/src/Term/Unification.hs
+@@ -61,7 +61,7 @@ module Term.Unification (
+   , pairDestMaudeSig
+   , symEncDestMaudeSig
+   , asymEncDestMaudeSig
+-  , signatureDestMaudeSig  
++  , signatureDestMaudeSig
+   , locationReportMaudeSig
+   , revealSignatureMaudeSig
+   , hashMaudeSig
+@@ -80,7 +80,7 @@ module Term.Unification (
+   , module Term.Rewriting.Definitions
+ ) where
+ 
+--- import           Control.Applicative
++import           Control.Monad
+ import           Control.Monad.RWS
+ import           Control.Monad.Except
+ import           Control.Monad.State
+diff --git a/lib/theory/src/Theory/Constraint/System/Guarded.hs b/lib/theory/src/Theory/Constraint/System/Guarded.hs
+index 99f985a8..3f0cd8d8 100644
+--- a/lib/theory/src/Theory/Constraint/System/Guarded.hs
++++ b/lib/theory/src/Theory/Constraint/System/Guarded.hs
+@@ -88,6 +88,7 @@ module Theory.Constraint.System.Guarded (
+ 
+ import           Control.Arrow
+ import           Control.DeepSeq
++import           Control.Monad
+ import           Control.Monad.Except
+ import           Control.Monad.Fresh              (MonadFresh, scopeFreshness)
+ import qualified Control.Monad.Trans.PreciseFresh as Precise (Fresh, evalFresh, evalFreshT)
+diff --git a/lib/utils/src/Control/Monad/Trans/Disj.hs b/lib/utils/src/Control/Monad/Trans/Disj.hs
+index 96dae742..b3b63825 100644
+--- a/lib/utils/src/Control/Monad/Trans/Disj.hs
++++ b/lib/utils/src/Control/Monad/Trans/Disj.hs
+@@ -18,10 +18,10 @@ module Control.Monad.Trans.Disj (
+   , runDisjT
+   ) where
+ 
+--- import Control.Applicative
+-import Control.Monad.List
+-import Control.Monad.Reader
++import Control.Monad
+ import Control.Monad.Disj.Class
++import Control.Monad.Reader
++import ListT
+ 
+ 
+ ------------------------------------------------------------------------------
+@@ -33,12 +33,12 @@ newtype DisjT m a = DisjT { unDisjT :: ListT m a }
+   deriving (Functor, Applicative, MonadTrans )
+ 
+ -- | Construct a 'DisjT' action.
+-disjT :: m [a] -> DisjT m a
+-disjT = DisjT . ListT
++disjT :: (Monad m, Foldable m) => m a -> DisjT m a
++disjT = DisjT . fromFoldable
+ 
+ -- | Run a 'DisjT' action.
+-runDisjT :: DisjT m a -> m [a]
+-runDisjT = runListT . unDisjT
++runDisjT :: Monad m => DisjT m a -> m [a]
++runDisjT = toList . unDisjT
+ 
+ 
+ 
+@@ -47,8 +47,6 @@ runDisjT = runListT . unDisjT
+ ------------
+ 
+ instance Monad m => Monad (DisjT m) where
+-    {-# INLINE return #-}
+-    return  = DisjT . return
+     {-# INLINE (>>=) #-}
+     m >>= f = DisjT $ (unDisjT . f) =<< unDisjT m
+ 
+diff --git a/lib/utils/tamarin-prover-utils.cabal b/lib/utils/tamarin-prover-utils.cabal
+index 75ed2b46..bb54d1e5 100644
+--- a/lib/utils/tamarin-prover-utils.cabal
++++ b/lib/utils/tamarin-prover-utils.cabal
+@@ -47,6 +47,7 @@ library
+       , deepseq
+       , dlist
+       , fclabels
++      , list-t
+       , mtl
+       , pretty
+       , safe
+diff --git a/src/Main/Mode/Batch.hs b/src/Main/Mode/Batch.hs
+index e7710682..d370da85 100644
+--- a/src/Main/Mode/Batch.hs
++++ b/src/Main/Mode/Batch.hs
+@@ -32,7 +32,8 @@ import           Main.TheoryLoader
+ import           Main.Utils
+ 
+ import           Theory.Module
+-import           Control.Monad.Except (MonadIO(liftIO), runExceptT)
++import           Control.Monad.Except (runExceptT)
++import           Control.Monad.IO.Class (MonadIO(liftIO))
+ import           System.Exit (die)
+ import Theory.Tools.Wellformedness (prettyWfErrorReport)
+ import           Text.Printf                     (printf)
+diff --git a/src/Main/TheoryLoader.hs b/src/Main/TheoryLoader.hs
+index 7fffb85b..71fba2b9 100644
+--- a/src/Main/TheoryLoader.hs
++++ b/src/Main/TheoryLoader.hs
+@@ -42,8 +42,6 @@ module Main.TheoryLoader (
+ 
+   ) where
+ 
+--- import           Debug.Trace
+-
+ import           Prelude                             hiding (id, (.))
+ 
+ import           Data.Char                           (toLower)
+@@ -58,8 +56,10 @@ import           Data.Bifunctor (Bifunctor(bimap))
+ import           Data.Bitraversable (Bitraversable(bitraverse))
+ 
+ import           Control.Category
+-import           Control.Exception (evaluate)
+ import           Control.DeepSeq (force)
++import           Control.Exception (evaluate)
++import           Control.Monad
++import           Control.Monad.IO.Class (MonadIO(liftIO))
+ 
+ import           System.Console.CmdArgs.Explicit
+ import           System.Timeout (timeout)
+@@ -387,10 +387,10 @@ closeTheory version thyOpts sign srcThy = do
+   deducThy   <- bitraverse (return . addMessageDeductionRuleVariants)
+                            (return . addMessageDeductionRuleVariantsDiff) transThy
+ 
+-  derivCheckSignature <- Control.Monad.Except.liftIO $ toSignatureWithMaude (get oMaudePath thyOpts) $ maudePublicSig (toSignaturePure sign)
++  derivCheckSignature <- liftIO $ toSignatureWithMaude (get oMaudePath thyOpts) $ maudePublicSig (toSignaturePure sign)
+   variableReport <- case compare derivChecks 0 of
+     EQ -> pure $ Just []
+-    _ -> Control.Monad.Except.liftIO $ timeout (1000000 * derivChecks) $ evaluate . force $ (either (\t -> checkVariableDeducability  t derivCheckSignature autoSources defaultProver)
++    _ -> liftIO $ timeout (1000000 * derivChecks) $ evaluate . force $ (either (\t -> checkVariableDeducability  t derivCheckSignature autoSources defaultProver)
+       (\t-> diffCheckVariableDeducability t derivCheckSignature autoSources defaultProver defaultDiffProver) deducThy)
+ 
+   let report = wellformednessReport  ++ (fromMaybe [(underlineTopic "Derivation Checks", Pretty.text "Derivation checks timed out. Use --derivcheck-timeout=INT to configure timeout, 0 to deactivate.")] variableReport)
+diff --git a/stack.yaml b/stack.yaml
+index 7267ba17..b53f6ff8 100644
+--- a/stack.yaml
++++ b/stack.yaml
+@@ -7,7 +7,7 @@ packages:
+ - lib/sapic/
+ - lib/export/
+ - lib/accountability/
+-resolver: lts-20.26
++resolver: lts-22.11
+ ghc-options:
+   "$everything": -Wall
+ nix:
+diff --git a/tamarin-prover.cabal b/tamarin-prover.cabal
+index 89a7e3a8..986274ea 100644
+--- a/tamarin-prover.cabal
++++ b/tamarin-prover.cabal
+@@ -106,7 +106,7 @@ executable tamarin-prover
+     default-language: Haskell2010
+ 
+     if flag(threaded)
+-        ghc-options:   -threaded -eventlog
++        ghc-options:   -threaded
+ 
+     -- -XFlexibleInstances
+ 
diff --git a/pkgs/applications/science/machine-learning/labelimg/default.nix b/pkgs/applications/science/machine-learning/labelimg/default.nix
index 244eaa05d695d..21174305b9e3e 100644
--- a/pkgs/applications/science/machine-learning/labelimg/default.nix
+++ b/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -1,38 +1,51 @@
-{ lib, python3Packages, fetchFromGitHub, qt5 }:
-  python3Packages.buildPythonApplication rec {
-    pname = "labelImg";
-    version = "1.8.3";
-    src = fetchFromGitHub {
-      owner = "tzutalin";
-      repo = "labelImg";
-      rev = "v${version}";
-      sha256 = "07v106fzlmxrbag4xm06m4mx9m0gckb27vpwsn7sap1bbgc1pap5";
-    };
-    nativeBuildInputs = with python3Packages; [
-      pyqt5
-      qt5.wrapQtAppsHook
-    ];
-    propagatedBuildInputs = with python3Packages; [
-      pyqt5
-      lxml
-      sip4
-    ];
-    preBuild = ''
-      make qt5py3
-    '';
-    postInstall = ''
-      cp libs/resources.py $out/${python3Packages.python.sitePackages}/libs
-    '';
-    dontWrapQtApps = true;
-    preFixup = ''
-      makeWrapperArgs+=("''${qtWrapperArgs[@]}")
-    '';
-    meta = with lib; {
-      description = "A graphical image annotation tool and label object bounding boxes in images";
-      mainProgram = "labelImg";
-      homepage = "https://github.com/tzutalin/labelImg";
-      license = licenses.mit;
-      platforms = platforms.linux;
-      maintainers = [ maintainers.cmcdragonkai ];
-    };
-  }
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  fetchpatch,
+  qt5,
+}:
+python3Packages.buildPythonApplication rec {
+  pname = "labelImg";
+  version = "1.8.6";
+  src = fetchFromGitHub {
+    owner = "tzutalin";
+    repo = "labelImg";
+    rev = "v${version}";
+    hash = "sha256-RJxCtiDOePajlrjy9cpKETSKsWlH/Dlu1iFMj2aO4XU=";
+  };
+  nativeBuildInputs = with python3Packages; [
+    pyqt5
+    qt5.wrapQtAppsHook
+  ];
+  patches = [
+    # fixes https://github.com/heartexlabs/labelImg/issues/838
+    # can be removed after next upstream version bump
+    (fetchpatch {
+      url = "https://github.com/heartexlabs/labelImg/commit/5c38b6bcddce895d646e944e3cddcb5b43bf8b8b.patch";
+      hash = "sha256-BmbnJS95RBfoNQT0E6JDJ/IZfBa+tv1C69+RVOSFdRA=";
+    })
+  ];
+  propagatedBuildInputs = with python3Packages; [
+    pyqt5
+    lxml
+  ];
+  preBuild = ''
+    make qt5py3
+  '';
+  postInstall = ''
+    cp libs/resources.py $out/${python3Packages.python.sitePackages}/libs
+  '';
+  dontWrapQtApps = true;
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  '';
+  meta = with lib; {
+    description = "A graphical image annotation tool and label object bounding boxes in images";
+    mainProgram = "labelImg";
+    homepage = "https://github.com/tzutalin/labelImg";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.cmcdragonkai ];
+  };
+}
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 669d3a3ab8f1e..57b20fe12d7c2 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, blas, lapack, gfortran, gmm, fltk, libjpeg
+{ lib, stdenv, fetchurl, cmake, blas, lapack, gfortran, gmm, fltk, libjpeg
 , zlib, libGL, libGLU, xorg, opencascade-occt
 , python ? null, enablePython ? false }:
 
@@ -7,11 +7,11 @@ assert enablePython -> (python != null);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.11.1";
+  version = "4.12.2";
 
   src = fetchurl {
     url = "https://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "sha256-xf4bfL1AOIioFJKfL9D11p4nYAIioYx4bbW3boAFs2U=";
+    hash = "sha256-E+CdnKgQLlxAFx1u4VDGaHQrmMOmylf4N/e2Th4q9I8=";
   };
 
   buildInputs = [
@@ -26,19 +26,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./fix-python.patch
-
-    # Pull upstream fix git gcc-13:
-    #   https://gitlab.onelab.info/gmsh/gmsh/-/issues/2416
-    (fetchpatch {
-      name = "gcc-13-p1.patch";
-      url = "https://gitlab.onelab.info/gmsh/gmsh/-/commit/fb81a9c9026700e078de947b4522cb39e543a86b.patch";
-      hash = "sha256-1GInFqQZvOgflC3eQTjmZ9uBGFASRNCpCwDACN3yTQ4=";
-    })
-    (fetchpatch {
-      name = "gcc-13-p2.patch";
-      url = "https://gitlab.onelab.info/gmsh/gmsh/-/commit/aceb09c807b78ea26555f99fcb16c4f87c31fb5a.patch";
-      hash = "sha256-6FI0hIvj8hglCvxoKV0GzT2/F/Wz+ddkxV/TLzzJBLU=";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/science/math/gmsh/fix-python.patch b/pkgs/applications/science/math/gmsh/fix-python.patch
index ac07c169c99b8..41c5c3b8f9760 100644
--- a/pkgs/applications/science/math/gmsh/fix-python.patch
+++ b/pkgs/applications/science/math/gmsh/fix-python.patch
@@ -1,50 +1,13 @@
 diff --git a/api/gmsh.py b/api/gmsh.py
-index 747acb203..02004da5d 100644
+index f525284..a225c85 100644
 --- a/api/gmsh.py
 +++ b/api/gmsh.py
-@@ -44,44 +44,7 @@ moduledir = os.path.dirname(os.path.realpath(__file__))
- parentdir1 = os.path.dirname(moduledir)
- parentdir2 = os.path.dirname(parentdir1)
+@@ -78,6 +78,8 @@ if not libpath:
+     else:
+         libpath = find_library("gmsh")
  
--if platform.system() == "Windows":
--    libname = "gmsh-4.11.dll"
--elif platform.system() == "Darwin":
--    libname = "libgmsh.4.11.dylib"
--else:
--    libname = "libgmsh.so.4.11"
--
--# check if the library is in the same directory as the module...
--libpath = os.path.join(moduledir, libname)
--
--# ... or in the parent directory or its lib or Lib subdirectory
--if not os.path.exists(libpath):
--    libpath = os.path.join(parentdir1, libname)
--if not os.path.exists(libpath):
--    libpath = os.path.join(parentdir1, "lib", libname)
--if not os.path.exists(libpath):
--    libpath = os.path.join(parentdir1, "Lib", libname)
--
--# ... or in the parent of the parent directory or its lib or Lib subdirectory
--if not os.path.exists(libpath):
--    libpath = os.path.join(parentdir2, libname)
--if not os.path.exists(libpath):
--    libpath = os.path.join(parentdir2, "lib", libname)
--if not os.path.exists(libpath):
--    libpath = os.path.join(parentdir2, "Lib", libname)
--
--# if we couldn't find it, use ctype's find_library utility...
--if not os.path.exists(libpath):
--    if platform.system() == "Windows":
--        libpath = find_library("gmsh-4.11")
--        if not libpath:
--            libpath = find_library("gmsh")
--    else:
--        libpath = find_library("gmsh")
--
--# ... and print a warning if everything failed
--if not os.path.exists(libpath):
--    print("Warning: could not find Gmsh shared library " + libname)
 +libpath = "@LIBPATH@"
- 
- lib = CDLL(libpath)
- 
++
+ # ... and print a warning if everything failed
+ if not libpath:
+     print("Warning: could not find Gmsh shared library " + libname +
diff --git a/pkgs/applications/science/math/gurobi/default.nix b/pkgs/applications/science/math/gurobi/default.nix
index 35b9e9d7a8d4a..53091e6a84e50 100644
--- a/pkgs/applications/science/math/gurobi/default.nix
+++ b/pkgs/applications/science/math/gurobi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gurobi";
-  version = "9.5.1";
+  version = "11.0.1";
 
   src = fetchurl {
     url = "https://packages.gurobi.com/${lib.versions.majorMinor version}/gurobi${version}_linux64.tar.gz";
-    sha256 = "sha256-+oKFnTPwj7iuudpmsPvZFxjtVzxTT1capSNyyd64kdo=";
+    hash = "sha256-oZ7Oz22e4k6cVF3TDFxp/pE+RuU+3p/CatTWj1ci5ZY=";
   };
 
   sourceRoot = "gurobi${builtins.replaceStrings ["."] [""] version}/linux64";
@@ -52,6 +52,6 @@ stdenv.mkDerivation rec {
     ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ wegank ];
   };
 }
diff --git a/pkgs/applications/science/math/pspp/default.nix b/pkgs/applications/science/math/pspp/default.nix
index 032ae257c5641..420b495e736e6 100644
--- a/pkgs/applications/science/math/pspp/default.nix
+++ b/pkgs/applications/science/math/pspp/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pspp";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchurl {
     url = "mirror://gnu/pspp/${pname}-${version}.tar.gz";
-    sha256 = "sha256-qPbLiGr1sIOENXm81vsZHAVKzOKMxotY58XwmZai2N8=";
+    sha256 = "sha256-jtuw8J6M+AEMrZ4FWeAjDX/FquRyHHVsNQVU3zMCTAA=";
   };
 
   nativeBuildInputs = [ pkg-config texinfo python3 makeWrapper ];
diff --git a/pkgs/applications/science/math/rofi-calc/default.nix b/pkgs/applications/science/math/rofi-calc/default.nix
index 6b15073675f73..be126e5fa3974 100644
--- a/pkgs/applications/science/math/rofi-calc/default.nix
+++ b/pkgs/applications/science/math/rofi-calc/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rofi-calc";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SGDORHX+lk6PS5/sPAmKZLfZD99/A7XvDPDnuAygDAM=";
+    sha256 = "sha256-uXaI8dwTRtg8LnFxopgXr9x/vEl8ixzIGOsSQQkAkoQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/misc/cytoscape/default.nix b/pkgs/applications/science/misc/cytoscape/default.nix
index f4aaac1a38234..1d42600d9770d 100644
--- a/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/pkgs/applications/science/misc/cytoscape/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cytoscape";
-  version = "3.10.1";
+  version = "3.10.2";
 
   src = fetchurl {
     url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
-    sha256 = "sha256-fqxAsnpMYCYj0hW2oxu/NH4PqesRlWPs5eDSeSjy1aU=";
+    sha256 = "sha256-ArT+g3GbtSxq3FvRi1H4z/kpsmcFCmKhzEJI4bCK44E=";
   };
 
   patches = [
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 628b40cd13008..1027590d0de84 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "snakemake";
-  version = "8.4.12";
+  version = "8.10.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ehQIrTw1+klFW+Hu4WsWaCJ0YoN2hIqryqqaoNQb1us=";
+    hash = "sha256-SZf//Z1rLHyvW/f0U6kEBzV1NjDEDG1OcFl9/JR+i/g=";
     # https://github.com/python-versioneer/python-versioneer/issues/217
     postFetch = ''
       sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#'
@@ -48,6 +48,7 @@ python3.pkgs.buildPythonApplication rec {
     snakemake-interface-executor-plugins
     snakemake-interface-common
     snakemake-interface-storage-plugins
+    snakemake-interface-report-plugins
     stopit
     tabulate
     throttler
diff --git a/pkgs/applications/science/molecular-dynamics/lammps/default.nix b/pkgs/applications/science/molecular-dynamics/lammps/default.nix
index 4c2a80c2f1b73..b881d339300c4 100644
--- a/pkgs/applications/science/molecular-dynamics/lammps/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/lammps/default.nix
@@ -7,7 +7,7 @@
 , blas
 , lapack
 , cmake
-, cudaPackages
+, autoAddDriverRunpath
 , pkg-config
 # Available list of packages can be found near here:
 #
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     # Although not always needed, it is needed if cmakeFlags include
     # GPU_API=cuda, and it doesn't users that don't enable the GPU package.
-    cudaPackages.autoAddDriverRunpath
+    autoAddDriverRunpath
   ];
 
   passthru = {
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index 537c1bfcd607e..714ff6b6c2c7a 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -11,7 +11,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commitizen";
-  version = "3.20.0";
+  version = "3.21.3";
   format = "pyproject";
 
   disabled = python3.pythonOlder "3.8";
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "commitizen-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-lruEkXgbND2Q49J9mnDSqDA4kWiUBIg1mI+s1a+V3ds=";
+    hash = "sha256-4Wz7PRAdsBZ0nX0hxu1XB5Uc13oP1wl86j5V0iHPBoA=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/version-management/forgejo/default.nix b/pkgs/applications/version-management/forgejo/default.nix
index d7098115dad84..0060dea785dde 100644
--- a/pkgs/applications/version-management/forgejo/default.nix
+++ b/pkgs/applications/version-management/forgejo/default.nix
@@ -59,11 +59,11 @@ buildGoModule rec {
   buildInputs = lib.optional pamSupport pam;
 
   patches = [
-    ./../gitea/static-root-path.patch
+    ./static-root-path.patch
   ];
 
   postPatch = ''
-    substituteInPlace modules/setting/setting.go --subst-var data
+    substituteInPlace modules/setting/server.go --subst-var data
   '';
 
   tags = lib.optional pamSupport "pam"
diff --git a/pkgs/applications/version-management/forgejo/static-root-path.patch b/pkgs/applications/version-management/forgejo/static-root-path.patch
new file mode 100644
index 0000000000000..7f70329c60407
--- /dev/null
+++ b/pkgs/applications/version-management/forgejo/static-root-path.patch
@@ -0,0 +1,13 @@
+diff --git a/modules/setting/server.go b/modules/setting/server.go
+index 183906268..fa02e8915 100644
+--- a/modules/setting/server.go
++++ b/modules/setting/server.go
+@@ -319,7 +319,7 @@ func loadServerFrom(rootCfg ConfigProvider) {
+ 	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
+ 	Log.DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
+ 	if len(StaticRootPath) == 0 {
+-		StaticRootPath = AppWorkPath
++		StaticRootPath = "@data@"
+ 	}
+ 	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(StaticRootPath)
+ 	StaticCacheTime = sec.Key("STATIC_CACHE_TIME").MustDuration(6 * time.Hour)
diff --git a/pkgs/applications/version-management/git-cliff/default.nix b/pkgs/applications/version-management/git-cliff/default.nix
index b8b2a28a7795a..fd840580cade3 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.1.2";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "git-cliff";
     rev = "v${version}";
-    hash = "sha256-5NWMpdrOWQcA3cxd5WNtnamnSMuZU3BGEMlRZ8NR+NE=";
+    hash = "sha256-pOmSVySn8QUpFLTXFXBVm1KTX9ny221t1xSxBRHkljQ=";
   };
 
-  cargoHash = "sha256-kIO3mD4SdQqlZYty8QWOBVvmaXujcEijeRONGYNZSng=";
+  cargoHash = "sha256-y0XTvSV8JE6nmSJfJKLw2Gt/D/yX12kbx2+RHqVCVWI=";
 
   # 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 ca63fb9b4c1ef..c043ff74b0d8f 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 = "11.1.0";
+  version = "13.0.1";
 
   src = fetchFromGitHub {
     owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    hash = "sha256-QQ+sIZzkzecs+pZBzsmCL048JZpMPvdYi0PRtMN4AhY=";
+    hash = "sha256-Ds3N5KUpB0HLRrKH/kpcBqtOtBD1fizYPsfKedBorTo=";
   };
 
   vendorHash = null;
@@ -56,7 +56,7 @@ buildGoModule rec {
   passthru.tests.version = testers.testVersion {
     package = git-town;
     command = "git-town --version";
-    version = "v${version}";
+    inherit version;
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index e5d3d257684a8..ef0902443c8ff 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -20,12 +20,12 @@
 
 buildGoModule rec {
   pname = "gitea";
-  version = "1.21.9";
+  version = "1.21.10";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
-    hash = "sha256-4o5pSkC9jl8rI68naorDrRE4Rm0/chj3+cRxZqoziIU=";
+    hash = "sha256-g/aDRIAKaPi8AWWJL4N8CZt2N4HBEWK7xSBvjrcPDD8=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index cedf8791fa790..a3160f1ce3a53 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -2,7 +2,7 @@
 , libXfixes, atk, gtk3, libXrender, pango, gnome, cairo, freetype, fontconfig
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
-, makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
+, makeDesktopItem, openssl, wrapGAppsHook, makeShellWrapper, at-spi2-atk, at-spi2-core, libuuid
 , e2fsprogs, krb5, libdrm, mesa, unzip, copyDesktopItems, libxshmfence, libxkbcommon, git
 , libGL, zlib, cacert
 }:
@@ -106,7 +106,7 @@ let
       comment = "Graphical Git client from Axosoft";
     }) ];
 
-    nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook ];
+    nativeBuildInputs = [ copyDesktopItems (wrapGAppsHook.override { makeWrapper = makeShellWrapper; }) ];
     buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
 
     # avoid double-wrapping
@@ -124,6 +124,10 @@ let
       runHook postInstall
     '';
 
+    preFixup = ''
+      gappsWrapperArgs+=(--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}")
+    '';
+
     postFixup = ''
       pushd $out/share/${pname}
       for file in gitkraken chrome-sandbox chrome_crashpad_handler; do
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index c0e35b7298b10..c0d38801216ba 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,15 +1,15 @@
 {
-  "version": "16.9.2",
-  "repo_hash": "sha256-pvmbxCySSc+Ug4W3cpXA6L7E3/I6J2A0BpcjFbR3YEI=",
-  "yarn_hash": "02vchjx17h6kk268pwrjqmrri0wa6vrljm7y5s23hwzir4v86slq",
+  "version": "16.10.1",
+  "repo_hash": "sha256-Bd2BvdWUJJm+hJZHFaW2PyMdaNTZWArpaQ3nY06BBBY=",
+  "yarn_hash": "0yzywfg4lqxjwm5cqsm4bn97zcrfvpnrs8rjrv9wv3xqvi9h9skd",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v16.9.2-ee",
+  "rev": "v16.10.1-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "16.9.2",
-    "GITLAB_PAGES_VERSION": "16.9.2",
-    "GITLAB_SHELL_VERSION": "14.33.0",
-    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.7.0",
-    "GITLAB_WORKHORSE_VERSION": "16.9.2"
+    "GITALY_SERVER_VERSION": "16.10.1",
+    "GITLAB_PAGES_VERSION": "16.10.1",
+    "GITLAB_SHELL_VERSION": "14.34.0",
+    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.8.0",
+    "GITLAB_WORKHORSE_VERSION": "16.10.1"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index 37789c27abefa..ad63b76f114f7 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -49,7 +49,7 @@ let
                 cp Cargo.lock $out
               '';
             };
-            hash = "sha256-csasA2RH1vwRdF/9/BpFmh0AKsP3xtGmrhCx6mbVf6k=";
+            hash = "sha256-7q2xWAsFkXHxkYNzIjPwJRy72xMXF278cpVzqGLt/9Y=";
           };
 
           dontBuild = false;
@@ -112,6 +112,8 @@ let
     GITLAB_LOG_PATH = "log";
     FOSS_ONLY = !gitlabEnterprise;
 
+    SKIP_YARN_INSTALL = 1;
+
     configurePhase = ''
       runHook preConfigure
 
@@ -142,11 +144,7 @@ let
     buildPhase = ''
       runHook preBuild
 
-      bundle exec rake gettext:compile RAILS_ENV=production NODE_ENV=production
-      bundle exec rake rake:assets:precompile RAILS_ENV=production NODE_ENV=production
-      bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production
-      bundle exec rake gitlab:assets:fix_urls RAILS_ENV=production NODE_ENV=production
-      bundle exec rake gitlab:assets:check_page_bundle_mixins_css_for_sideeffects RAILS_ENV=production NODE_ENV=production
+      bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production SKIP_YARN_INSTALL=true
 
       runHook postBuild
     '';
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 94e3648a0c877..7cdcebb5ba4de 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  version = "16.9.2";
+  version = "16.10.1";
   package_version = "v${lib.versions.major version}";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
 
@@ -18,10 +18,10 @@ let
       owner = "gitlab-org";
       repo = "gitaly";
       rev = "v${version}";
-      hash = "sha256-YlSZq7+YtV9mhZDoNZ7QStbZLQ/Vtt8H2ZW84ONvCq8=";
+      hash = "sha256-YMvxSQcvFj/ugTGjTThmwi1V9M+rc3fldrmChWzXKR8=";
     };
 
-    vendorHash = "sha256-aqwdeBjR8IGa1DsAXY1h7vq7OkuTgoDim5m40YKlcmo=";
+    vendorHash = "sha256-zaldiRg7fk/HncpfR7k+dDprsOp1ziQHgX8B4l7bwe0=";
 
     ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ];
 
diff --git a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
index 2d192219d8958..fbea45b432bda 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "gitlab-container-registry";
-  version = "3.90.0";
+  version = "3.91.0";
   rev = "v${version}-gitlab";
 
   # nixpkgs-update: no auto update
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "gitlab-org";
     repo = "container-registry";
     inherit rev;
-    hash = "sha256-bHRvvmVQFsdgYmVVucu1warn+SvCoIVh+C/U2uwi12E=";
+    hash = "sha256-C6tCwVfVZ9CMP0X5NiOdPAuSz5yeu9LAnvOPrq2QLJo=";
   };
 
-  vendorHash = "sha256-Zv5Xz1T/ZUM/kyEgZJKbDuIN2nufoHVAn4kD3SuvJCg=";
+  vendorHash = "sha256-KZWdM8Q8ipsgm7OoLyOuHo+4Vg2Nve+yZtTSUDgjOW4=";
 
   patches = [
     ./Disable-inmemory-storage-driver-test.patch
diff --git a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
index b3c29fe0ddc13..9b31c3b300a29 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gitlab-elasticsearch-indexer";
-  version = "4.7.0";
+  version = "4.8.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-elasticsearch-indexer";
     rev = "v${version}";
-    sha256 = "sha256-xkCG8PyOXQl2xqsq3INqYWGdcJpJgRsi/hB9creGTSM=";
+    sha256 = "sha256-JHUDZmGlZGyvsB4wgAnNyIEtosZG4ajZ4eBGumH97ZI=";
   };
 
-  vendorHash = "sha256-1eyIRlrgEQ6iiM2tom5S92BlsyaPVKZzSU3+Mmdxi+4=";
+  vendorHash = "sha256-ztRKXoXncY66XJVwlPn4ShLWTD4Cr0yYHoUdquJItDM=";
 
   buildInputs = [ icu ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
index 2a4bbb8930994..92ca11e7884ba 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "16.9.2";
+  version = "16.10.1";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    hash = "sha256-1ygIMatPcqvhjN5Zkuk0WXd9iW6fv3bLK9EZsIII/WM=";
+    hash = "sha256-jUTUYbkUad2WrI8lkktd2pr3+GPraEUXT+efOb7JcKw=";
   };
 
-  vendorHash = "sha256-ZjIjGZaZhxa3OvdaA4qD+Qza604mxe1u+zAUtIAKouo=";
+  vendorHash = "sha256-WrR4eZRAuYkhr7ZqP7OXqJ6uwvxzn+t+3OdBNcNaq0M=";
   subPackages = [ "." ];
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index ab79f9fac00a3..2b99cc36ba7ec 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,21 +2,21 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "14.33.0";
+  version = "14.34.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-0C3ODs2NElJQ+A6x9lZxSParTZc3q4YqWsw7DxwhODo=";
+    sha256 = "sha256-0LzZZn4kS5uRcj/uJgHvLvd6ZOLi1l4yaSqqRhmTYZs=";
   };
 
   buildInputs = [ ruby libkrb5 ];
 
   patches = [ ./remove-hardcoded-locations.patch ];
 
-  vendorHash = "sha256-sTAd/AbPx5WzBCzTDLvo/bDZcmz/xVhIhz9nFGBEYx4=";
+  vendorHash = "sha256-RtZ9d3cempY8PxaCPFJ2uEEorem6NDURHZPirr0SUjU=";
 
   postInstall = ''
     cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 8e58210af06ae..213989465b529 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "16.9.2";
+  version = "16.10.1";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/workhorse";
 
-  vendorHash = "sha256-RJ/CT8p1DpxmZcJLBeMDG77Zsn0Q6MiXsDcMK/LM2DA=";
+  vendorHash = "sha256-bbKX22Tb2pM+Wnyl1ojdA1nmT40Z5R99mDP1hLD+lco=";
   buildInputs = [ git ];
   ldflags = [ "-X main.Version=${version}" ];
   doCheck = false;
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index f60cd85d493de..dccd147ca501d 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -24,7 +24,7 @@ gem 'bundler-checksum', '~> 0.1.0', path: 'vendor/gems/bundler-checksum', requir
 # https://gitlab.com/gitlab-org/gitlab/-/issues/375713
 #
 # See https://docs.gitlab.com/ee/development/gemfile.html#upgrade-rails for guidelines when upgrading Rails
-gem 'rails', '~> 7.0.8' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'rails', '~> 7.0.8.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -49,10 +49,10 @@ gem 'responders', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'sprockets', '~> 3.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'view_component', '~> 3.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'view_component', '~> 3.11.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Supported DBs
-gem 'pg', '~> 1.5.4' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'pg', '~> 1.5.6' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'neighbor', '~> 0.2.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -134,10 +134,10 @@ gem 'net-ldap', '~> 0.17.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # API
 gem 'grape', '~> 2.0.0', feature_category: :api
-gem 'grape-entity', '~> 0.10.0', feature_category: :api
+gem 'grape-entity', '~> 0.10.2', feature_category: :api
 gem 'grape-swagger', '~> 2.0.1', group: [:development, :test], feature_category: :api
 gem 'grape-swagger-entity', '~> 0.5.1', group: [:development, :test], feature_category: :api
-gem 'grape-path-helpers', '~> 2.0.0', feature_category: :api
+gem 'grape-path-helpers', '~> 2.0.1', feature_category: :api
 gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # GraphQL API
@@ -148,7 +148,7 @@ gem 'apollo_upload_server', '~> 2.1.5', feature_category: :api
 gem 'graphlient', '~> 0.6.0', feature_category: :importers # Used by BulkImport feature (group::import)
 
 # Generate Fake data
-gem 'ffaker', '~> 2.10' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'ffaker', '~> 2.23' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'hashie', '~> 5.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -207,15 +207,15 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-api',   '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-core', '~> 3.191.1' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-core', '~> 3.191.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-s3', '~> 1.143.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-s3', '~> 1.144.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Markdown and HTML processing
 gem 'html-pipeline', '~> 2.14.3', feature_category: :team_planning
-gem 'deckar01-task_list', '2.3.3', feature_category: :team_planning
+gem 'deckar01-task_list', '2.3.4', feature_category: :team_planning
 gem 'gitlab-markup', '~> 1.9.0', require: 'github/markup' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'commonmarker', '~> 0.23.10', feature_category: :team_planning
 gem 'kramdown', '~> 2.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -230,7 +230,7 @@ gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/Missi
 gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'nokogiri', '~> 1.16' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'gitlab-glfm-markdown', '~> 0.0.12', feature_category: :team_planning
+gem 'gitlab-glfm-markdown', '~> 0.0.13', feature_category: :team_planning
 
 # Calendar rendering
 gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -240,7 +240,7 @@ gem 'diffy', '~> 3.4' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'diff_match_patch', '~> 0.1.0', path: 'vendor/gems/diff_match_patch', feature_category: :team_planning
 
 # Application server
-gem 'rack', '~> 2.2.8' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'rack', '~> 2.2.8.1' # rubocop:todo Gemfile/MissingFeatureCategory
 # https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually
 gem 'rack-timeout', '~> 0.6.3', require: 'rack/timeout/base' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -277,7 +277,7 @@ gem 're2', '2.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Misc
 
-gem 'semver_dialects', '~> 1.6.1', feature_category: :static_application_security_testing
+gem 'semver_dialects', '~> 2.0', feature_category: :static_application_security_testing
 gem 'version_sorter', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'csv_builder', path: 'gems/csv_builder' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -288,19 +288,20 @@ gem 'js_regex', '~> 3.8' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'device_detector' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Redis
-gem 'redis', '~> 4.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'redis-namespace', '~> 1.10.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'redis-namespace', '~> 1.10.0', feature_category: :redis
+gem 'redis', '~> 5.0.0', feature_category: :redis
+gem 'redis-clustering', '~> 5.0.0', feature_category: :redis
 gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Redis session store
 gem 'redis-actionpack', '~> 5.4.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Discord integration
-gem 'discordrb-webhooks', '~> 3.4', require: false, feature_category: :integrations
+gem 'discordrb-webhooks', '~> 3.5', require: false, feature_category: :integrations
 
 # Jira integration
-gem 'jira-ruby', '~> 2.1.4', feature_category: :integrations
-gem 'atlassian-jwt', '~> 0.2.0', feature_category: :integrations
+gem 'jira-ruby', '~> 2.3.0', feature_category: :integrations
+gem 'atlassian-jwt', '~> 0.2.1', feature_category: :integrations
 
 # Slack integration
 gem 'slack-messenger', '~> 2.3.4', feature_category: :integrations
@@ -340,9 +341,7 @@ gem 'gitlab_chronic_duration', '~> 0.12' # rubocop:todo Gemfile/MissingFeatureCa
 
 gem 'rack-proxy', '~> 0.7.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'sassc-rails', '~> 2.1.0', feature_category: :shared, require: false
-gem 'cssbundling-rails', '1.3.3', feature_category: :shared, require: false
-gem 'autoprefixer-rails', '10.2.5.1' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'cssbundling-rails', '1.4.0', feature_category: :shared
 gem 'terser', '1.0.2' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'click_house-client', path: 'gems/click_house-client', require: 'click_house/client' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -378,7 +377,10 @@ gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory
 # I18n
 gem 'rails-i18n', '~> 7.0', feature_category: :internationalization
 gem 'gettext_i18n_rails', '~> 1.11.0', feature_category: :internationalization
-gem 'gettext', '~> 3.3', require: false, group: [:development, :test], feature_category: :internationalization
+gem 'gettext', '~> 3.4', '>= 3.4.9',
+  require: false,
+  group: [:development, :test],
+  feature_category: :internationalization
 
 gem 'batch-loader', '~> 2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -412,11 +414,11 @@ group :development do
 
   gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'ruby-lsp', "~> 0.13.3", require: false, feature_category: :tooling
+  gem 'ruby-lsp', "~> 0.14.4", require: false, feature_category: :tooling
 
-  gem 'ruby-lsp-rails', "~> 0.2.8", feature_category: :tooling
+  gem 'ruby-lsp-rails', "~> 0.3.0", feature_category: :tooling
 
-  gem 'ruby-lsp-rspec', "~> 0.1.8", require: false, feature_category: :tooling
+  gem 'ruby-lsp-rspec', "~> 0.1.10", require: false, feature_category: :tooling
 end
 
 group :development, :test do
@@ -431,7 +433,7 @@ group :development, :test do
 
   gem 'database_cleaner-active_record', '~> 2.1.0', feature_category: :database
   gem 'factory_bot_rails', '~> 6.4.3' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'rspec-rails', '~> 6.1.0', feature_category: :shared
+  gem 'rspec-rails', '~> 6.1.1', feature_category: :shared
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.11.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -451,7 +453,7 @@ group :development, :test do
   # Profiling data from CI/CD pipelines
   gem 'influxdb-client', '~> 2.9', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'knapsack', '~> 1.21.1', feature_category: :tooling
+  gem 'knapsack', '~> 1.22.0', feature_category: :tooling
   gem 'crystalball', '~> 0.7.0', require: false, feature_category: :tooling
   gem 'test_file_finder', '~> 0.2.1', feature_category: :tooling
 
@@ -474,7 +476,7 @@ group :development, :test do
 end
 
 group :development, :test, :danger do
-  gem 'gitlab-dangerfiles', '~> 4.6.0', require: false, feature_category: :tooling
+  gem 'gitlab-dangerfiles', '~> 4.7.0', require: false, feature_category: :tooling
 end
 
 group :development, :test, :coverage do
@@ -498,31 +500,31 @@ end
 group :test do
   gem 'fuubar', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rspec-retry', '~> 0.6.2', feature_category: :tooling
-  gem 'rspec_profiling', '~> 0.0.6', feature_category: :tooling
+  gem 'rspec_profiling', '~> 0.0.8', feature_category: :tooling
   gem 'rspec-benchmark', '~> 0.6.0', feature_category: :tooling
   gem 'rspec-parameterized', '~> 1.0', require: false, feature_category: :tooling
-  gem 'os', '~> 1.1', feature_category: :tooling
+  gem 'os', '~> 1.1', '>= 1.1.4', feature_category: :tooling
 
   gem 'capybara', '~> 3.40' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'selenium-webdriver', '~> 4.17' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'selenium-webdriver', '~> 4.18', '>= 4.18.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'webmock', '~> 3.20.0' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'webmock', '~> 3.22.0' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'axe-core-rspec', '~> 4.8.0', feature_category: :tooling
+  gem 'axe-core-rspec', '~> 4.8.2', feature_category: :tooling
 
   # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
   gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'gitlab_quality-test_tooling', '~> 1.14.2', require: false, feature_category: :tooling
+  gem 'gitlab_quality-test_tooling', '~> 1.17.0', require: false, feature_category: :tooling
 end
 
 gem 'octokit', '~> 8.0', feature_category: :importers
@@ -557,14 +559,14 @@ gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 16.9.0-rc3', feature_category: :gitaly
+gem 'gitaly', '~> 16.10.0-rc1', feature_category: :gitaly
 
 # KAS GRPC protocol definitions
 gem 'kas-grpc', '~> 0.4.0', feature_category: :deployment_management
 
 gem 'grpc', '~> 1.60.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'google-protobuf', '~> 3.25', '>= 3.25.1' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'google-protobuf', '~> 3.25', '>= 3.25.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -577,7 +579,7 @@ gem 'gitlab-experiment', '~> 0.9.1', feature_category: :shared
 
 # Structured logging
 gem 'lograge', '~> 0.5' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'grape_logging', '~> 1.8', feature_category: :api
+gem 'grape_logging', '~> 1.8', '>= 1.8.4', feature_category: :api
 
 # DNS Lookup
 gem 'gitlab-net-dns', '~> 0.9.2' # rubocop:todo Gemfile/MissingFeatureCategory
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 8648c235f4917..e00e49f2f69e8 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -203,70 +203,70 @@ GEM
     acme-client (2.0.11)
       faraday (>= 1.0, < 3.0.0)
       faraday-retry (~> 1.0)
-    actioncable (7.0.8)
-      actionpack (= 7.0.8)
-      activesupport (= 7.0.8)
+    actioncable (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (7.0.8)
-      actionpack (= 7.0.8)
-      activejob (= 7.0.8)
-      activerecord (= 7.0.8)
-      activestorage (= 7.0.8)
-      activesupport (= 7.0.8)
+    actionmailbox (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activestorage (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       mail (>= 2.7.1)
       net-imap
       net-pop
       net-smtp
-    actionmailer (7.0.8)
-      actionpack (= 7.0.8)
-      actionview (= 7.0.8)
-      activejob (= 7.0.8)
-      activesupport (= 7.0.8)
+    actionmailer (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      actionview (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.8)
-      actionview (= 7.0.8)
-      activesupport (= 7.0.8)
+    actionpack (7.0.8.1)
+      actionview (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (7.0.8)
-      actionpack (= 7.0.8)
-      activerecord (= 7.0.8)
-      activestorage (= 7.0.8)
-      activesupport (= 7.0.8)
+    actiontext (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activestorage (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       globalid (>= 0.6.0)
       nokogiri (>= 1.8.5)
-    actionview (7.0.8)
-      activesupport (= 7.0.8)
+    actionview (7.0.8.1)
+      activesupport (= 7.0.8.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (7.0.8)
-      activesupport (= 7.0.8)
+    activejob (7.0.8.1)
+      activesupport (= 7.0.8.1)
       globalid (>= 0.3.6)
-    activemodel (7.0.8)
-      activesupport (= 7.0.8)
-    activerecord (7.0.8)
-      activemodel (= 7.0.8)
-      activesupport (= 7.0.8)
+    activemodel (7.0.8.1)
+      activesupport (= 7.0.8.1)
+    activerecord (7.0.8.1)
+      activemodel (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
     activerecord-explain-analyze (0.1.0)
       activerecord (>= 4)
       pg
-    activestorage (7.0.8)
-      actionpack (= 7.0.8)
-      activejob (= 7.0.8)
-      activerecord (= 7.0.8)
-      activesupport (= 7.0.8)
+    activestorage (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       marcel (~> 1.0)
       mini_mime (>= 1.1.0)
-    activesupport (7.0.8)
+    activesupport (7.0.8.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -302,8 +302,6 @@ GEM
     atlassian-jwt (0.2.1)
       jwt (~> 2.1)
     attr_required (1.0.1)
-    autoprefixer-rails (10.2.5.1)
-      execjs (> 0)
     awesome_print (1.9.2)
     awrence (1.2.1)
     aws-eventstream (1.3.0)
@@ -311,7 +309,7 @@ GEM
     aws-sdk-cloudformation (1.41.0)
       aws-sdk-core (~> 3, >= 3.99.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.191.1)
+    aws-sdk-core (3.191.3)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
@@ -319,7 +317,7 @@ GEM
     aws-sdk-kms (1.76.0)
       aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.143.0)
+    aws-sdk-s3 (1.144.0)
       aws-sdk-core (~> 3, >= 3.191.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
@@ -328,7 +326,7 @@ GEM
     axe-core-api (4.8.0)
       dumb_delegator
       virtus
-    axe-core-rspec (4.8.0)
+    axe-core-rspec (4.8.2)
       axe-core-api
       dumb_delegator
       virtus
@@ -392,7 +390,7 @@ GEM
       activesupport (>= 4.0.0)
       mime-types (>= 1.16)
       ssrf_filter (~> 1.0, < 1.1.0)
-    cbor (0.5.9.6)
+    cbor (0.5.9.8)
     character_set (1.8.0)
     charlock_holmes (0.7.7)
     chef-config (18.3.0)
@@ -435,7 +433,7 @@ GEM
       git
     css_parser (1.14.0)
       addressable
-    cssbundling-rails (1.3.3)
+    cssbundling-rails (1.4.0)
       railties (>= 6.0.0)
     cvss-suite (3.0.1)
     danger (9.4.2)
@@ -463,8 +461,8 @@ GEM
     dead_end (3.1.1)
     deb_version (1.0.2)
     debug_inspector (1.1.0)
-    deckar01-task_list (2.3.3)
-      html-pipeline
+    deckar01-task_list (2.3.4)
+      html-pipeline (~> 2.0)
     declarative (0.0.20)
     declarative_policy (1.1.0)
     deprecation_toolkit (1.5.1)
@@ -501,7 +499,7 @@ GEM
     diffy (3.4.2)
     digest-crc (0.6.5)
       rake (>= 12.0.0, < 14.0.0)
-    discordrb-webhooks (3.4.2)
+    discordrb-webhooks (3.5.0)
       rest-client (>= 2.0.0)
     docile (1.4.0)
     domain_name (0.5.20190701)
@@ -602,7 +600,7 @@ GEM
       faraday (>= 0.15)
     fast_blank (1.0.1)
     fast_gettext (2.3.0)
-    ffaker (2.10.0)
+    ffaker (2.23.0)
     ffi (1.15.5)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
@@ -685,14 +683,14 @@ GEM
     git (1.18.0)
       addressable (~> 2.8)
       rchardet (~> 1.8)
-    gitaly (16.9.0.pre.rc3)
+    gitaly (16.10.0.pre.rc1)
       grpc (~> 1.0)
     gitlab (4.19.0)
       httparty (~> 0.20)
       terminal-table (>= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-dangerfiles (4.6.0)
+    gitlab-dangerfiles (4.7.0)
       danger (>= 9.3.0)
       danger-gitlab (>= 8.0.0)
       rake (~> 13.0)
@@ -705,7 +703,7 @@ GEM
       fog-core (= 2.1.0)
       fog-json (~> 1.2.0)
       mime-types
-    gitlab-glfm-markdown (0.0.12)
+    gitlab-glfm-markdown (0.0.13)
       rb_sys (~> 0.9.86)
     gitlab-labkit (0.35.1)
       actionpack (>= 5.0.0, < 8.0.0)
@@ -741,7 +739,7 @@ GEM
       omniauth (>= 1.3, < 3)
       pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
       rubyntlm (~> 0.5)
-    gitlab_quality-test_tooling (1.14.2)
+    gitlab_quality-test_tooling (1.17.0)
       activesupport (>= 6.1, < 7.1)
       amatch (~> 0.4.1)
       gitlab (~> 4.19)
@@ -828,7 +826,7 @@ GEM
       google-cloud-core (~> 1.6)
       googleauth (>= 0.16.2, < 2.a)
       mini_mime (~> 1.0)
-    google-protobuf (3.25.2)
+    google-protobuf (3.25.3)
     googleapis-common-protos (1.4.0)
       google-protobuf (~> 3.14)
       googleapis-common-protos-types (~> 1.2)
@@ -850,7 +848,7 @@ GEM
       mustermann-grape (~> 1.0.0)
       rack (>= 1.3.0)
       rack-accept
-    grape-entity (0.10.0)
+    grape-entity (0.10.2)
       activesupport (>= 3.0.0)
       multi_json (>= 1.3.2)
     grape-path-helpers (2.0.1)
@@ -968,8 +966,8 @@ GEM
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
-    jaro_winkler (1.5.4)
-    jira-ruby (2.1.4)
+    jaro_winkler (1.5.6)
+    jira-ruby (2.3.0)
       activesupport
       atlassian-jwt
       multipart-post
@@ -1011,7 +1009,7 @@ GEM
     kaminari-core (1.2.2)
     kas-grpc (0.4.0)
       grpc (~> 1.0)
-    knapsack (1.21.1)
+    knapsack (1.22.0)
       rake
     kramdown (2.3.2)
       rexml
@@ -1270,7 +1268,7 @@ GEM
       tty-color (~> 0.5)
     peek (1.1.0)
       railties (>= 4.0.0)
-    pg (1.5.4)
+    pg (1.5.6)
     pg_query (5.1.0)
       google-protobuf (>= 3.22.3)
     plist (3.7.0)
@@ -1285,7 +1283,7 @@ GEM
     prime (0.1.2)
       forwardable
       singleton
-    prism (0.19.0)
+    prism (0.24.0)
     proc_to_ast (0.1.0)
       coderay
       parser
@@ -1312,7 +1310,7 @@ GEM
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.4.0)
     racc (1.6.2)
-    rack (2.2.8)
+    rack (2.2.8.1)
     rack-accept (0.4.5)
       rack (>= 0.4)
     rack-attack (6.7.0)
@@ -1334,20 +1332,20 @@ GEM
     rack-test (2.1.0)
       rack (>= 1.3)
     rack-timeout (0.6.3)
-    rails (7.0.8)
-      actioncable (= 7.0.8)
-      actionmailbox (= 7.0.8)
-      actionmailer (= 7.0.8)
-      actionpack (= 7.0.8)
-      actiontext (= 7.0.8)
-      actionview (= 7.0.8)
-      activejob (= 7.0.8)
-      activemodel (= 7.0.8)
-      activerecord (= 7.0.8)
-      activestorage (= 7.0.8)
-      activesupport (= 7.0.8)
+    rails (7.0.8.1)
+      actioncable (= 7.0.8.1)
+      actionmailbox (= 7.0.8.1)
+      actionmailer (= 7.0.8.1)
+      actionpack (= 7.0.8.1)
+      actiontext (= 7.0.8.1)
+      actionview (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activemodel (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activestorage (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       bundler (>= 1.15.0)
-      railties (= 7.0.8)
+      railties (= 7.0.8.1)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
       actionview (>= 5.0.1.rc1)
@@ -1361,9 +1359,9 @@ GEM
     rails-i18n (7.0.3)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 8)
-    railties (7.0.8)
-      actionpack (= 7.0.8)
-      activesupport (= 7.0.8)
+    railties (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -1374,7 +1372,7 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rb_sys (0.9.86)
-    rbtrace (0.4.14)
+    rbtrace (0.5.1)
       ffi (>= 1.0.6)
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
@@ -1385,13 +1383,19 @@ GEM
       json
     recursive-open-struct (1.1.3)
     redcarpet (3.6.0)
-    redis (4.8.0)
+    redis (5.0.8)
+      redis-client (>= 0.17.0)
     redis-actionpack (5.4.0)
       actionpack (>= 5, < 8)
       redis-rack (>= 2.1.0, < 4)
       redis-store (>= 1.1.0, < 2)
-    redis-client (0.19.0)
+    redis-client (0.21.1)
       connection_pool
+    redis-cluster-client (0.7.5)
+      redis-client (~> 0.12)
+    redis-clustering (5.0.8)
+      redis (= 5.0.8)
+      redis-cluster-client (>= 0.7.0)
     redis-namespace (1.10.0)
       redis (>= 4)
     redis-rack (3.0.0)
@@ -1454,7 +1458,7 @@ GEM
     rspec-parameterized-table_syntax (1.0.0)
       binding_of_caller
       rspec-parameterized-core (< 2)
-    rspec-rails (6.1.0)
+    rspec-rails (6.1.1)
       actionpack (>= 6.1)
       activesupport (>= 6.1)
       railties (>= 6.1)
@@ -1467,11 +1471,10 @@ GEM
     rspec-support (3.12.0)
     rspec_junit_formatter (0.6.0)
       rspec-core (>= 2, < 4, != 2.12.0)
-    rspec_profiling (0.0.6)
+    rspec_profiling (0.0.8)
       activerecord
-      pg
+      get_process_mem
       rails
-      sqlite3
     rubocop (1.57.2)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
@@ -1505,18 +1508,18 @@ GEM
     ruby-fogbugz (0.3.0)
       crack (~> 0.4)
       multipart-post (~> 2.0)
-    ruby-lsp (0.13.3)
+    ruby-lsp (0.14.4)
       language_server-protocol (~> 3.17.0)
-      prism (>= 0.19.0, < 0.20)
-      sorbet-runtime (>= 0.5.5685)
-    ruby-lsp-rails (0.2.8)
+      prism (>= 0.22.0, < 0.25)
+      sorbet-runtime (>= 0.5.10782)
+    ruby-lsp-rails (0.3.1)
       actionpack (>= 6.0)
       activerecord (>= 6.0)
       railties (>= 6.0)
-      ruby-lsp (>= 0.13.0, < 0.14.0)
+      ruby-lsp (>= 0.14.2, < 0.15.0)
       sorbet-runtime (>= 0.5.9897)
-    ruby-lsp-rspec (0.1.8)
-      ruby-lsp (~> 0.13.0)
+    ruby-lsp-rspec (0.1.10)
+      ruby-lsp (~> 0.14.0)
     ruby-magic (0.6.0)
       mini_portile2 (~> 2.8)
     ruby-openai (3.7.0)
@@ -1540,14 +1543,6 @@ GEM
     sanitize (6.0.2)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
-    sassc (2.4.0)
-      ffi (~> 1.9)
-    sassc-rails (2.1.2)
-      railties (>= 4.0.0)
-      sassc (>= 2.0)
-      sprockets (> 3.0)
-      sprockets-rails
-      tilt
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
@@ -1555,12 +1550,12 @@ GEM
     seed-fu (2.3.7)
       activerecord (>= 3.1)
       activesupport (>= 3.1)
-    selenium-webdriver (4.17.0)
+    selenium-webdriver (4.18.1)
       base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    semver_dialects (1.6.1)
+    semver_dialects (2.0.0)
       deb_version (~> 1.0.1)
       pastel (~> 0.8.0)
       thor (~> 1.3)
@@ -1622,7 +1617,7 @@ GEM
       thor (~> 1.0)
       tilt (~> 2.0)
       yard (~> 0.9, >= 0.9.24)
-    sorbet-runtime (0.5.11144)
+    sorbet-runtime (0.5.11266)
     spamcheck (1.3.0)
       grpc (~> 1.0)
     spring (4.1.0)
@@ -1636,8 +1631,6 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    sqlite3 (1.6.0)
-      mini_portile2 (~> 2.8.0)
     ssh_data (1.3.0)
     ssrf_filter (1.0.8)
     stackprof (0.2.25)
@@ -1678,7 +1671,7 @@ GEM
     test_file_finder (0.2.1)
       faraday (>= 1.0, < 3.0, != 2.0.0)
     text (1.3.1)
-    thor (1.3.0)
+    thor (1.3.1)
     thread_safe (0.3.6)
     thrift (0.16.0)
     tilt (2.0.11)
@@ -1759,7 +1752,7 @@ GEM
       activesupport (>= 3.0)
     version_gem (1.1.0)
     version_sorter (2.3.0)
-    view_component (3.8.0)
+    view_component (3.11.0)
       activesupport (>= 5.2.0, < 8.0)
       concurrent-ruby (~> 1.0)
       method_source (~> 1.0)
@@ -1790,7 +1783,7 @@ GEM
     webfinger (1.2.0)
       activesupport
       httpclient (>= 2.4)
-    webmock (3.20.0)
+    webmock (3.22.0)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -1833,14 +1826,13 @@ DEPENDENCIES
   asciidoctor-include-ext (~> 0.4.0)
   asciidoctor-kroki (~> 0.8.0)
   asciidoctor-plantuml (~> 0.0.16)
-  atlassian-jwt (~> 0.2.0)
+  atlassian-jwt (~> 0.2.1)
   attr_encrypted (~> 3.2.4)!
-  autoprefixer-rails (= 10.2.5.1)
   awesome_print
   aws-sdk-cloudformation (~> 1)
-  aws-sdk-core (~> 3.191.1)
-  aws-sdk-s3 (~> 1.143.0)
-  axe-core-rspec (~> 4.8.0)
+  aws-sdk-core (~> 3.191.3)
+  aws-sdk-s3 (~> 1.144.0)
+  axe-core-rspec (~> 4.8.2)
   babosa (~> 2.0)
   base32 (~> 0.3.0)
   batch-loader (~> 2.0.1)
@@ -1866,11 +1858,11 @@ DEPENDENCIES
   countries (~> 4.0.0)
   creole (~> 0.5.0)
   crystalball (~> 0.7.0)
-  cssbundling-rails (= 1.3.3)
+  cssbundling-rails (= 1.4.0)
   csv_builder!
   cvss-suite (~> 3.0.1)
   database_cleaner-active_record (~> 2.1.0)
-  deckar01-task_list (= 2.3.3)
+  deckar01-task_list (= 2.3.4)
   declarative_policy (~> 1.1.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
@@ -1881,7 +1873,7 @@ DEPENDENCIES
   devise-two-factor (~> 4.1.1)
   diff_match_patch (~> 0.1.0)!
   diffy (~> 3.4)
-  discordrb-webhooks (~> 3.4)
+  discordrb-webhooks (~> 3.5)
   doorkeeper (~> 5.6, >= 5.6.6)
   doorkeeper-openid_connect (~> 1.8, >= 1.8.7)
   duo_api (~> 1.3)
@@ -1896,7 +1888,7 @@ DEPENDENCIES
   faraday (~> 1.0)
   faraday_middleware-aws-sigv4 (~> 0.3.0)
   fast_blank (~> 1.0.1)
-  ffaker (~> 2.10)
+  ffaker (~> 2.23)
   flipper (~> 0.26.2)
   flipper-active_record (~> 0.26.2)
   flipper-active_support_cache_store (~> 0.26.2)
@@ -1907,15 +1899,15 @@ DEPENDENCIES
   fog-local (~> 0.8)
   fugit (~> 1.8.1)
   fuubar (~> 2.2.0)
-  gettext (~> 3.3)
+  gettext (~> 3.4, >= 3.4.9)
   gettext_i18n_rails (~> 1.11.0)
-  gitaly (~> 16.9.0.pre.rc3)
+  gitaly (~> 16.10.0.pre.rc1)
   gitlab-backup-cli!
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 4.6.0)
+  gitlab-dangerfiles (~> 4.7.0)
   gitlab-experiment (~> 0.9.1)
   gitlab-fog-azure-rm (~> 1.8.0)
-  gitlab-glfm-markdown (~> 0.0.12)
+  gitlab-glfm-markdown (~> 0.0.13)
   gitlab-housekeeper!
   gitlab-http!
   gitlab-labkit (~> 0.35.1)
@@ -1934,7 +1926,7 @@ DEPENDENCIES
   gitlab-utils!
   gitlab_chronic_duration (~> 0.12)
   gitlab_omniauth-ldap (~> 2.2.0)
-  gitlab_quality-test_tooling (~> 1.14.2)
+  gitlab_quality-test_tooling (~> 1.17.0)
   gon (~> 6.4.0)
   google-apis-androidpublisher_v3 (~> 0.34.0)
   google-apis-cloudbilling_v1 (~> 0.21.0)
@@ -1950,15 +1942,15 @@ DEPENDENCIES
   google-cloud-artifact_registry-v1 (~> 0.11.0)
   google-cloud-compute-v1 (~> 2.6.0)
   google-cloud-storage (~> 1.45.0)
-  google-protobuf (~> 3.25, >= 3.25.1)
+  google-protobuf (~> 3.25, >= 3.25.3)
   googleauth (~> 1.8.1)
   gpgme (~> 2.0.23)
   grape (~> 2.0.0)
-  grape-entity (~> 0.10.0)
-  grape-path-helpers (~> 2.0.0)
+  grape-entity (~> 0.10.2)
+  grape-path-helpers (~> 2.0.1)
   grape-swagger (~> 2.0.1)
   grape-swagger-entity (~> 0.5.1)
-  grape_logging (~> 1.8)
+  grape_logging (~> 1.8, >= 1.8.4)
   graphiql-rails (~> 1.8.0)
   graphlient (~> 0.6.0)
   graphlyte (~> 1.0.0)
@@ -1980,7 +1972,7 @@ DEPENDENCIES
   ipaddr (~> 1.2.5)
   ipaddress (~> 0.8.3)
   ipynbdiff!
-  jira-ruby (~> 2.1.4)
+  jira-ruby (~> 2.3.0)
   js_regex (~> 3.8)
   json (~> 2.6.3)
   json_schemer (~> 0.2.18)
@@ -1988,7 +1980,7 @@ DEPENDENCIES
   jwt (~> 2.5)
   kaminari (~> 1.2.2)
   kas-grpc (~> 0.4.0)
-  knapsack (~> 1.21.1)
+  knapsack (~> 1.22.0)
   kramdown (~> 2.3.1)
   kubeclient (~> 4.11.0)
   lefthook (~> 1.5.6)
@@ -2041,13 +2033,13 @@ DEPENDENCIES
   openid_connect (= 1.3.0)
   openssl (~> 3.0)
   org-ruby (~> 0.9.12)
-  os (~> 1.1)
+  os (~> 1.1, >= 1.1.4)
   pact (~> 1.64)
   parallel (~> 1.19)
   parser (~> 3.3, >= 3.3.0.2)
   parslet (~> 1.8)
   peek (~> 1.1)
-  pg (~> 1.5.4)
+  pg (~> 1.5.6)
   pg_query (~> 5.1.0)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
@@ -2056,21 +2048,22 @@ DEPENDENCIES
   pry-rails (~> 0.3.9)
   pry-shell (~> 0.6.4)
   puma (= 6.4.0)
-  rack (~> 2.2.8)
+  rack (~> 2.2.8.1)
   rack-attack (~> 6.7.0)
   rack-cors (~> 2.0.1)
   rack-oauth2 (~> 1.21.3)
   rack-proxy (~> 0.7.7)
   rack-timeout (~> 0.6.3)
-  rails (~> 7.0.8)
+  rails (~> 7.0.8.1)
   rails-controller-testing
   rails-i18n (~> 7.0)
   rainbow (~> 3.0)
   rbtrace (~> 0.4)
   re2 (= 2.7.0)
   recaptcha (~> 5.12)
-  redis (~> 4.8.0)
+  redis (~> 5.0.0)
   redis-actionpack (~> 5.4.0)
+  redis-clustering (~> 5.0.0)
   redis-namespace (~> 1.10.0)
   request_store (~> 1.5.1)
   responders (~> 3.0)
@@ -2080,15 +2073,15 @@ DEPENDENCIES
   rqrcode (~> 2.0)
   rspec-benchmark (~> 0.6.0)
   rspec-parameterized (~> 1.0)
-  rspec-rails (~> 6.1.0)
+  rspec-rails (~> 6.1.1)
   rspec-retry (~> 0.6.2)
   rspec_junit_formatter
-  rspec_profiling (~> 0.0.6)
+  rspec_profiling (~> 0.0.8)
   rubocop
   ruby-fogbugz (~> 0.3.0)
-  ruby-lsp (~> 0.13.3)
-  ruby-lsp-rails (~> 0.2.8)
-  ruby-lsp-rspec (~> 0.1.8)
+  ruby-lsp (~> 0.14.4)
+  ruby-lsp-rails (~> 0.3.0)
+  ruby-lsp-rspec (~> 0.1.10)
   ruby-magic (~> 0.6)
   ruby-openai (~> 3.7)
   ruby-progressbar (~> 1.10)
@@ -2096,11 +2089,10 @@ DEPENDENCIES
   rubyzip (~> 2.3.2)
   rugged (~> 1.6)
   sanitize (~> 6.0.2)
-  sassc-rails (~> 2.1.0)
   sd_notify (~> 0.1.0)
   seed-fu (~> 2.3.7)
-  selenium-webdriver (~> 4.17)
-  semver_dialects (~> 1.6.1)
+  selenium-webdriver (~> 4.18, >= 4.18.1)
+  semver_dialects (~> 2.0)
   sentry-rails (~> 5.10.0)
   sentry-raven (~> 3.1)
   sentry-ruby (~> 5.10.0)
@@ -2140,16 +2132,16 @@ DEPENDENCIES
   valid_email (~> 0.1)
   validates_hostname (~> 1.0.13)
   version_sorter (~> 2.3)
-  view_component (~> 3.8.0)
+  view_component (~> 3.11.0)
   vite_rails (~> 3.0.17)
   vite_ruby (~> 3.5.0)
   vmstat (~> 2.3.0)
   warning (~> 1.3.0)
   webauthn (~> 3.0)
-  webmock (~> 3.20.0)
+  webmock (~> 3.22.0)
   webrick (~> 1.8.1)
   wikicloth (= 0.8.1)
   yajl-ruby (~> 1.4.3)
 
 BUNDLED WITH
-   2.5.5
+   2.5.6
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 06b5399a08366..2520955593dee 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -17,10 +17,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "117vxic67jnw6q637kmsb3ryj0x485295pz9a9y4z8xn9bdlsl0z";
+      sha256 = "0j86qjs1zw34p0p7d5napa1vvwqlvm9nmv7ckxxhcba1qv4dspmw";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
@@ -28,10 +28,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r8ldj2giaz8cn49qkdqn5zc29gbsr5ky4fg6r7ali0yh1xh684l";
+      sha256 = "1f68h8cl6dqbz7mq3x43s0s82291nani3bz1hrxkk2qpgda23mw9";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
@@ -39,10 +39,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6gvj7ybniq89834hqww9rj2xypz9l91f8niwaws2yq1qklymr2";
+      sha256 = "077j47jsg0wqwx5b13n4h0g3g409b6kfrlazpzgjpa3pal74f7sc";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -50,10 +50,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l319p0gipfgq8bp8dvbv97qqb72rad9zcqn5snhgv20cmpqr69b";
+      sha256 = "0jh83rqd6glys1b2wsihzsln8yk6zdwgiyn9xncyiav9rcwjpkax";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
@@ -61,10 +61,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i47r3n2m8qm002gx7c0lx1pv15pr2zy57dm8j38x960rsb655pp";
+      sha256 = "044qi3zhzxlfq7slc2pb9ky9mdivp1m1sjyhjvnsi64ggq7cvr22";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -72,10 +72,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnpdwj1d8m6c2d90jp9cs50ggiz0jj02ls2h9lg68k4k8mnjbd2";
+      sha256 = "1ygpg75f3ffdcbxvf7s14xw3hcjin1nnx1nk3mg9mj2xc1nb60aa";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -83,32 +83,32 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cn1ic7ml75jm0c10s7cm5mvcgfnafj0kjvvjavpjcxgz6lxcqyb";
+      sha256 = "0yql9v4cd1xbqgnzlf3cv4a6sm26v2y4gsgcbbfgvfc0hhlfjklg";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activemodel = {
     dependencies = ["activesupport"];
-    groups = ["default" "development" "test"];
+    groups = ["default" "development" "monorepo" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "004w8zaz2g3y6lnrsvlcmljll0m3ndqpgwf0wfscgq6iysibiglm";
+      sha256 = "0grdpvglh0cj96qhlxjj9bcfqkh13c1pfpcwc9ld3aw0yzvsw5a1";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
-    groups = ["default" "test"];
+    groups = ["default" "development" "monorepo" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04wavps80q3pvhvfbmi4gs102y1p6mxbg8xylzvib35b6m92adpj";
+      sha256 = "0rlky1cr5kcdl0jad3nk5jpim6vjzbgkfhxnk7y492b3j2nznpcf";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activerecord-explain-analyze = {
     dependencies = ["activerecord" "pg"];
@@ -137,10 +137,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d6vm6alsp0g6f3548b615zxbz8l2wrmaikwgsf8kv11wf6swb4c";
+      sha256 = "0f4g3589i5ii4gdfazv6d9rjinr16aarh6g12v8378ck7jll3mhz";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -148,10 +148,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
+      sha256 = "0ff3x7q400flzhml131ix8zfwmh13h70rs6yzbzf513g781gbbxh";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   acts-as-taggable-on = {
     dependencies = ["activerecord"];
@@ -343,17 +343,6 @@ src:
     };
     version = "1.0.1";
   };
-  autoprefixer-rails = {
-    dependencies = ["execjs"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vlqwy2qkp39ibp7llj7ps53nvxav29c2yl451v1qdhj25zxc49p";
-      type = "gem";
-    };
-    version = "10.2.5.1";
-  };
   awesome_print = {
     groups = ["development" "test"];
     platforms = [];
@@ -411,10 +400,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fy80878z21j8py03ddf1ycsndzmnmw4jkbzw1mlrglwav08yq7q";
+      sha256 = "088nq8yz9n4p7pnhjwp9nbxlkj7jwchpkzvnl4nybfb1dkvk4dns";
       type = "gem";
     };
-    version = "3.191.1";
+    version = "3.191.3";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -433,10 +422,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1safbxycz517m2v981z8kbmdiqx9jypl093ia0mcrskkgh4fyb3s";
+      sha256 = "0ypg31pfzbd43n1m20cyf6gyrlv6m0c8hmk2p5hidy1y4pi34f6g";
       type = "gem";
     };
-    version = "1.143.0";
+    version = "1.144.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -466,10 +455,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07niarqd2lrbgnw00biyigc48lbdv4vy68p57myliz7k82nizidj";
+      sha256 = "14h4abf5h242a0vn2r05pkr8311qbxgkl63py7vbhx8bfpk1kq3i";
       type = "gem";
     };
-    version = "4.8.0";
+    version = "4.8.2";
   };
   axiom-types = {
     dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
@@ -772,10 +761,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+      sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y";
       type = "gem";
     };
-    version = "0.5.9.6";
+    version = "0.5.9.8";
   };
   CFPropertyList = {
     dependencies = ["rexml"];
@@ -1058,10 +1047,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m8qgrh70982xfdcylrm4zgh7pxq9ps539icnc7bqh1awl8k78aa";
+      sha256 = "1nzp4j1ll6llgbrvqk81gkz6fqgk33sx4k1fcvbm7v7h79jk8808";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.0";
   };
   csv_builder = {
     groups = ["default"];
@@ -1181,10 +1170,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n67q9rb4gsfs8k2fsd08xcfx13z7mcyyyrb9hi0sv0yz3rvm2li";
+      sha256 = "0rqn9jh45gsw045c6fm05875bpj2xbhnff5m5drmk9wy01zdrav6";
       type = "gem";
     };
-    version = "2.3.3";
+    version = "2.3.4";
   };
   declarative = {
     groups = ["default"];
@@ -1337,10 +1326,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0viw73jd9vs9f92a9q2vxcd29755h7w8jwz36jmvcdl2najainyg";
+      sha256 = "1c933kq48sqja1a2fc4ki9w8x5ajl6lp67hslka5k05hwfyaiysj";
       type = "gem";
     };
-    version = "3.4.2";
+    version = "3.5.0";
   };
   docile = {
     groups = ["coverage" "default" "development" "test"];
@@ -1876,14 +1865,14 @@ src:
     version = "2.3.0";
   };
   ffaker = {
-    groups = ["development" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3";
+      sha256 = "1644hpjg7k08dsjhljwg4grs49riaw6bxp5xf62jrac4q9fgnbcx";
       type = "gem";
     };
-    version = "2.10.0";
+    version = "2.23.0";
   };
   ffi = {
     groups = ["default" "development" "kerberos" "puma" "test"];
@@ -2160,10 +2149,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07q9fmk4mddfn12vl3jvj80rxmhixkl99hxff7zi385rwphki8an";
+      sha256 = "1nwc8mlpznq9b7rgcbxwzaj936pn0syjasxdhplpiz3iqbr64ca8";
       type = "gem";
     };
-    version = "16.9.0.pre.rc3";
+    version = "16.10.0.pre.rc1";
   };
   gitlab = {
     dependencies = ["httparty" "terminal-table"];
@@ -2203,10 +2192,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07kl43xcjfwdlcfvr7ifzggl6zpmm8q0lj8phlk3db8xgnqkf6s4";
+      sha256 = "1jj5w7h457cm2q0ds63kp29ybkq1h02gibn37y2r0wnbimm8fxi5";
       type = "gem";
     };
-    version = "4.6.0";
+    version = "4.7.0";
   };
   gitlab-experiment = {
     dependencies = ["activesupport" "request_store"];
@@ -2236,10 +2225,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mqwz2a4k9894d160k5a3mqm5g6p9rncgi4kx8w8dymbnz34bcli";
+      sha256 = "0nk9kp3zb2x1hpqirq7x2qqpmfsqq4izprbicxjb20bqvm4mvvdb";
       type = "gem";
     };
-    version = "0.0.12";
+    version = "0.0.13";
   };
   gitlab-housekeeper = {
     dependencies = ["activesupport" "awesome_print" "httparty" "rubocop"];
@@ -2433,10 +2422,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n7ndhxkjkz7pfdqvcp90lxxias3lz2ssabpv5a5nxayilr47qwy";
+      sha256 = "1d59k5c0y8vkmz7fjh7x455d4d19fpw4r9agv02vqyvp7glrbm34";
       type = "gem";
     };
-    version = "1.14.2";
+    version = "1.17.0";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -2728,10 +2717,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02sh4rp14wmpfv9r7xrap6xgcakg0lk6zjvq1gsi5y38swhn2blw";
+      sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r";
       type = "gem";
     };
-    version = "3.25.2";
+    version = "3.25.3";
   };
   googleapis-common-protos = {
     dependencies = ["google-protobuf" "googleapis-common-protos-types" "grpc"];
@@ -2790,14 +2779,14 @@ src:
   };
   grape-entity = {
     dependencies = ["activesupport" "multi_json"];
-    groups = ["default"];
+    groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zic5fx8s0424vdarhslmxdqmfnlfv3k4prfyxrrwvf9pdy1xvcs";
+      sha256 = "0wdm44s7l6jxqszybf58ar7699vlq7vj2zfsi8f9sh9mh5a89dcy";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.10.2";
   };
   grape-path-helpers = {
     dependencies = ["activesupport" "grape" "rake" "ruby2_keywords"];
@@ -3293,10 +3282,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
+      sha256 = "10fd3i92897blalxfkgc0jjv0qqx31v7cm7j2b6a3b97an0bfz80";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.5.6";
   };
   jira-ruby = {
     dependencies = ["activesupport" "atlassian-jwt" "multipart-post" "oauth"];
@@ -3304,10 +3293,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17nv98nz3jp7q5hbnniscavqh4xv53mnda1vxyg3ncn8raaw0rs2";
+      sha256 = "0qpbc97sag426h4hgcizqq2njxx5fridzxq6mq5s93jazxmnxwmb";
       type = "gem";
     };
-    version = "2.1.4";
+    version = "2.3.0";
   };
   jmespath = {
     groups = ["default"];
@@ -3454,10 +3443,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "056g86ndhq51303k4g3fhdfwhpr6cpzypxhlnp0wxjpbmli09xw2";
+      sha256 = "1jqs9shqg3nd6j3kzbh8gxv7ix1n877y64kdjzbrwjgz6ksqs9mx";
       type = "gem";
     };
-    version = "1.21.1";
+    version = "1.22.0";
   };
   kramdown = {
     dependencies = ["rexml"];
@@ -4614,14 +4603,14 @@ src:
     version = "1.1.0";
   };
   pg = {
-    groups = ["default" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
+      sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.5.6";
   };
   pg_query = {
     dependencies = ["google-protobuf"];
@@ -4692,10 +4681,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qiv9irrca2la1awqgvzsg7a17z2nydqyq43w4fhapdkq2l7xwa7";
+      sha256 = "0pgxgng905jbhp0pr54w4w2pr4nqcq80ijj48204bj4x4nigj8ji";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.24.0";
   };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
@@ -4830,10 +4819,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv";
+      sha256 = "10mpk0hl6hnv324fp1pfimi2nw9acj0z4gyhrph36qg84pk1s4m7";
       type = "gem";
     };
-    version = "2.2.8";
+    version = "2.2.8.1";
   };
   rack-accept = {
     dependencies = ["rack"];
@@ -4939,10 +4928,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rsqin156dawz7gzpy1ijs02afqcr4704vqj56s6yxng3a9ayhwf";
+      sha256 = "1v9dp9sgh8kk32r23mj66zjni7w1dv2h7mbaxgmazsf59a43gsvx";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -4994,10 +4983,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sfc16zrcn4jgf5xczb08n6prhmqqgg9f0b4mn73zlzg6cwmqchj";
+      sha256 = "08ga56kz6a37dnlmi7y45r19fcc7jzb62mrc3ifavbzggmhy7r62";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   rainbow = {
     groups = ["coverage" "default" "development" "test"];
@@ -5056,10 +5045,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+      sha256 = "1p65p6f917al0f07sn5ca9yj92f7mk52xgnp0ahqpyrb8r6sdjz8";
       type = "gem";
     };
-    version = "0.4.14";
+    version = "0.5.1";
   };
   rchardet = {
     groups = ["default" "development"];
@@ -5124,14 +5113,15 @@ src:
     version = "4.3.3";
   };
   redis = {
+    dependencies = ["redis-client"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i4a8hxxcxci3n8hhlm9a8wa7a9m58r6sjvh4749v7362i8cy010";
+      sha256 = "1n7k4sgx5vzsigp8c15flz4fclqy4j2a33vim7b2c2w5jyjhwxrv";
       type = "gem";
     };
-    version = "4.8.0";
+    version = "5.0.8";
   };
   redis-actionpack = {
     dependencies = ["actionpack" "redis-rack" "redis-store"];
@@ -5150,10 +5140,32 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9jaqsdc2s2qm713pdv19dawk1b11vxnfclsps7ra2szwisznbf";
+      sha256 = "0irk5j73aqhyv54q3vs88y5rp9a5fkvbdif7zn5q7m5d51h2375w";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.21.1";
+  };
+  redis-cluster-client = {
+    dependencies = ["redis-client"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12p7wi39zaldk8lr484j4j6w49502fxayinfs9f7l58pvag1rz8j";
+      type = "gem";
+    };
+    version = "0.7.5";
+  };
+  redis-clustering = {
+    dependencies = ["redis" "redis-cluster-client"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rp1yrqpvi29ar6mlqsyk36nxgh1drijb4f5xa76c057n7iksbwf";
+      type = "gem";
+    };
+    version = "5.0.8";
   };
   redis-namespace = {
     dependencies = ["redis"];
@@ -5428,10 +5440,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dpmbq2awsjiwn300cafp9fbvv86dl7zrb760anhmm1qw8yzg1my";
+      sha256 = "1clmx6qzdbpm1g8ycg38gjbqsbr8ccqi6hqyx88g8yckz1hrx55x";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.1";
   };
   rspec-retry = {
     dependencies = ["rspec-core"];
@@ -5466,15 +5478,15 @@ src:
     version = "0.6.0";
   };
   rspec_profiling = {
-    dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+    dependencies = ["activerecord" "get_process_mem" "rails"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vkfizrwxgs029s9imz8g3p55ggncls709hf98brmv6wg5znjibs";
+      sha256 = "0icl94f0mmw7g4h1qnsil0cw6zw7b5wv0ilxda01928vh5bf87mk";
       type = "gem";
     };
-    version = "0.0.6";
+    version = "0.0.8";
   };
   rubocop = {
     dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -5581,10 +5593,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b9aj7d1wh4s83mkfsvjgkikx83c7afyzy6k2940fx08hfrdqgb8";
+      sha256 = "1v0dwirw4mq7qkf5a7wvagil4ppvk4dw4ln8hs6rmf2xrf56ga5f";
       type = "gem";
     };
-    version = "0.13.3";
+    version = "0.14.4";
   };
   ruby-lsp-rails = {
     dependencies = ["actionpack" "activerecord" "railties" "ruby-lsp" "sorbet-runtime"];
@@ -5592,10 +5604,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j2pb9d9frdh6rpz5qcvhmqswqdmmxa392z2nv1rnk60cpxclc0p";
+      sha256 = "033kxj55pywnc4cjqcfb2jvn96nsa93m93qd2p636jf5hkqazq41";
       type = "gem";
     };
-    version = "0.2.8";
+    version = "0.3.1";
   };
   ruby-lsp-rspec = {
     dependencies = ["ruby-lsp"];
@@ -5603,10 +5615,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18qfm86bafybm93kz1bn2z86gwaax3c57i25g4lzgv6pp9aj5nr1";
+      sha256 = "0npxb9146yqfwpyx3bw375q8vx60ph2zgbvpai1dmgq8dfs3idki";
       type = "gem";
     };
-    version = "0.1.8";
+    version = "0.1.10";
   };
   ruby-magic = {
     dependencies = ["mini_portile2"];
@@ -5754,28 +5766,6 @@ src:
     };
     version = "6.0.2";
   };
-  sassc = {
-    dependencies = ["ffi"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
-      type = "gem";
-    };
-    version = "2.4.0";
-  };
-  sassc-rails = {
-    dependencies = ["railties" "sassc" "sprockets" "sprockets-rails" "tilt"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1d9djmwn36a5m8a83bpycs48g8kh1n2xkyvghn7dr6zwh4wdyksz";
-      type = "gem";
-    };
-    version = "2.1.2";
-  };
   sawyer = {
     dependencies = ["addressable" "faraday"];
     groups = ["danger" "default" "development" "test"];
@@ -5814,10 +5804,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g3l3invk95w1f72mpp0r4hc3vsc3070c1xd1wg76kfg2r182xnq";
+      sha256 = "1asysih4l1mv24wqxrbnz0c0454kw3dhqaj6nsa8pyn9fjjdms5b";
       type = "gem";
     };
-    version = "4.17.0";
+    version = "4.18.1";
   };
   semver_dialects = {
     dependencies = ["deb_version" "pastel" "thor" "tty-command"];
@@ -5825,10 +5815,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13jmbqzswvkq0xds2s1r6wnh78gfy2zbn35qvalhwj2qi4nmjpvf";
+      sha256 = "11s5nr5v81qjlf2glgqjisvnv12vmwsmi9abbzqkb1nqjhw43691";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "2.0.0";
   };
   sentry-rails = {
     dependencies = ["railties" "sentry-ruby"];
@@ -6076,10 +6066,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18280l1wgdmr9xhr4mzxr4ycskwbgjzd91vmdzx0dlp6xp2dydnb";
+      sha256 = "1fsq1k58isarg6ycg2ix9sw9a6391y12ss48m3hcryqi902w7cny";
       type = "gem";
     };
-    version = "0.5.11144";
+    version = "0.5.11266";
   };
   spamcheck = {
     dependencies = ["grpc"];
@@ -6145,17 +6135,6 @@ src:
     };
     version = "3.4.2";
   };
-  sqlite3 = {
-    dependencies = ["mini_portile2"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0f24qp50mc1qg8yvv7b3x73mh78d6mzd3b7rqib1ixfbsdiayx1x";
-      type = "gem";
-    };
-    version = "1.6.0";
-  };
   ssh_data = {
     groups = ["default"];
     platforms = [];
@@ -6398,14 +6377,14 @@ src:
     version = "1.3.1";
   };
   thor = {
-    groups = ["default" "development" "monorepo" "omnibus" "test"];
+    groups = ["default" "development" "omnibus" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
+      sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   thread_safe = {
     groups = ["default" "test"];
@@ -6812,10 +6791,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xn5q1mbhwalx16mj441pzbm8hkxdmwxwzdjcj86f3bfnpipzh9y";
+      sha256 = "1zy51z0whkm3fdpsbi8v4j8h5h3ia1zkc2j28amiznpqqvfc7539";
       type = "gem";
     };
-    version = "3.8.0";
+    version = "3.11.0";
   };
   virtus = {
     dependencies = ["axiom-types" "coercible" "descendants_tracker"];
@@ -6909,10 +6888,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rc3g9hhxi6v2l1cp9q3kcjd92bhmdbrb517l4v5pyzwq2nflcyc";
+      sha256 = "13jb9q0qv9ajw1ajr4cawnqj4h0dws3w5j4v5n6v3xk7a8rnjzr7";
       type = "gem";
     };
-    version = "3.20.0";
+    version = "3.22.0";
   };
   webrick = {
     groups = ["default" "development" "test"];
diff --git a/pkgs/applications/version-management/gitstatus/default.nix b/pkgs/applications/version-management/gitstatus/default.nix
index ccb1f07edeca4..2e2fc5af2c4c3 100644
--- a/pkgs/applications/version-management/gitstatus/default.nix
+++ b/pkgs/applications/version-management/gitstatus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitstatus";
-  version = "1.5.4";
+  version = "1.5.5";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
     rev = "v${version}";
-    sha256 = "sha256-mVfB3HWjvk4X8bmLEC/U8SKBRytTh/gjjuReqzN5qTk=";
+    sha256 = "sha256-b+9bwJ87VV6rbOPobkwMkDXGH34STjYPlt8wCRR5tEc=";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ];
diff --git a/pkgs/applications/version-management/lucky-commit/default.nix b/pkgs/applications/version-management/lucky-commit/default.nix
index 4e8db1fef606f..dcaca33f09522 100644
--- a/pkgs/applications/version-management/lucky-commit/default.nix
+++ b/pkgs/applications/version-management/lucky-commit/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lucky-commit";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "not-an-aardvark";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DrgZBzcJmqSP7iCHZyy623iRZYfTE/z/zzx7I+BAOBo=";
+    sha256 = "sha256-jxcsTtQcSuL+2vwdxIVxqTpKh8Bfvna+hkGt+Rx21FE=";
   };
 
-  cargoHash = "sha256-5P0CiLCf86Jul4EaIDqHGkp4XNifLKnWJZXtrLkpLMY=";
+  cargoHash = "sha256-8JkodGtMdYP/IIBqRcJFD5syiZi+VakDyX7VcvR0HLo=";
 
   buildInputs = lib.optional withOpenCL (if stdenv.isDarwin then OpenCL else ocl-icd);
 
diff --git a/pkgs/applications/version-management/tig/default.nix b/pkgs/applications/version-management/tig/default.nix
index 1cce34df66adb..d7bd912b44d5a 100644
--- a/pkgs/applications/version-management/tig/default.nix
+++ b/pkgs/applications/version-management/tig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tig";
-  version = "2.5.8";
+  version = "2.5.9";
 
   src = fetchFromGitHub {
     owner = "jonas";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-VuuqR5fj0YvqIfVPH7N3rpAfIbcTwOx9W3H60saCToQ=";
+    sha256 = "sha256-RASZgQUlt/5ivImowM+sNw8Oe8aVkuUNErfgddmFjic=";
   };
 
   nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
diff --git a/pkgs/applications/video/droidcam/default.nix b/pkgs/applications/video/droidcam/default.nix
index 4909fe6fa7865..a0841cda69bf9 100644
--- a/pkgs/applications/video/droidcam/default.nix
+++ b/pkgs/applications/video/droidcam/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "droidcam";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "aramg";
     repo = "droidcam";
     rev = "v${version}";
-    sha256 = "sha256-NZ6sKLE/Sq4VBJSf7iG0CgdVwmU8JXQH/utbobBEFi0=";
+    sha256 = "sha256-Pwq7PDj+MH1wzrUyfva2F2+oELm4Sb1EJPUUCsHYb7k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/mpv/scripts/default.nix b/pkgs/applications/video/mpv/scripts/default.nix
index 68ccc3b139d15..80f0a17a9cb7a 100644
--- a/pkgs/applications/video/mpv/scripts/default.nix
+++ b/pkgs/applications/video/mpv/scripts/default.nix
@@ -68,8 +68,11 @@ let
     convert = callPackage ./convert.nix { };
     cutter = callPackage ./cutter.nix { };
     inhibit-gnome = callPackage ./inhibit-gnome.nix { };
+    modernx = callPackage ./modernx.nix { };
+    modernx-zydezu = callPackage ./modernx-zydezu.nix { };
     mpris = callPackage ./mpris.nix { };
     mpv-cheatsheet = callPackage ./mpv-cheatsheet.nix { };
+    mpv-osc-modern = callPackage ./mpv-osc-modern.nix { };
     mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { };
     mpv-webm = callPackage ./mpv-webm.nix { };
     mpvacious = callPackage ./mpvacious.nix { };
diff --git a/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix b/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
new file mode 100644
index 0000000000000..3bf923e3902b3
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildLua
+, fetchFromGitHub
+, makeFontsConf
+, nix-update-script
+}:
+buildLua (finalAttrs: {
+  pname = "modernx-zydezu";
+  version = "0.2.8";
+
+  scriptPath = "modernx.lua";
+  src = fetchFromGitHub {
+    owner = "zydezu";
+    repo = "ModernX";
+    rev = finalAttrs.version;
+    hash = "sha256-rruscDutFyQCl5sTtQfmtYPcXKWU51/QFbghSOyMC9o=";
+  };
+
+  postInstall = ''
+    mkdir -p $out/share/fonts
+    cp -r *.ttf $out/share/fonts
+  '';
+  passthru.extraWrapperArgs = [
+    "--set"
+    "FONTCONFIG_FILE"
+    (toString (makeFontsConf {
+      fontDirectories = [ "${finalAttrs.finalPackage}/share/fonts" ];
+    }))
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "A modern OSC UI replacement for MPV that retains the functionality of the default OSC";
+    homepage = "https://github.com/zydezu/ModernX";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ Guanran928 ];
+  };
+})
diff --git a/pkgs/applications/video/mpv/scripts/modernx.nix b/pkgs/applications/video/mpv/scripts/modernx.nix
new file mode 100644
index 0000000000000..e6e9ec6110c4f
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/modernx.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildLua
+, fetchFromGitHub
+, makeFontsConf
+, nix-update-script
+}:
+buildLua (finalAttrs: {
+  pname = "modernx";
+  version = "0.6.0";
+
+  scriptPath = "modernx.lua";
+  src = fetchFromGitHub {
+    owner = "cyl0";
+    repo = "ModernX";
+    rev = finalAttrs.version;
+    hash = "sha256-Gpofl529VbmdN7eOThDAsNfNXNkUDDF82Rd+csXGOQg=";
+  };
+
+  postInstall = ''
+    mkdir -p $out/share/fonts
+    cp -r *.ttf $out/share/fonts
+  '';
+  passthru.extraWrapperArgs = [
+    "--set"
+    "FONTCONFIG_FILE"
+    (toString (makeFontsConf {
+      fontDirectories = [ "${finalAttrs.finalPackage}/share/fonts" ];
+    }))
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "A modern OSC UI replacement for MPV that retains the functionality of the default OSC";
+    homepage = "https://github.com/cyl0/ModernX";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ Guanran928 ];
+  };
+})
diff --git a/pkgs/applications/video/mpv/scripts/mpv-osc-modern.nix b/pkgs/applications/video/mpv/scripts/mpv-osc-modern.nix
new file mode 100644
index 0000000000000..ce32622d64d8f
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/mpv-osc-modern.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildLua
+, fetchFromGitHub
+, makeFontsConf
+, nix-update-script
+}:
+buildLua (finalAttrs: {
+  pname = "mpv-osc-modern";
+  version = "1.1.1";
+
+  scriptPath = "modern.lua";
+  src = fetchFromGitHub {
+    owner = "maoiscat";
+    repo = "mpv-osc-modern";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-RMUy8UpSRSCEPAbnGLpJ2NjDsDdkjq8cNsdGwsQ5ANU=";
+  };
+
+  postInstall = ''
+    mkdir -p $out/share/fonts
+    cp -r *.ttf $out/share/fonts
+  '';
+  passthru.extraWrapperArgs = [
+    "--set"
+    "FONTCONFIG_FILE"
+    (toString (makeFontsConf {
+      fontDirectories = [ "${finalAttrs.finalPackage}/share/fonts" ];
+    }))
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Another MPV OSC Script";
+    homepage = "https://github.com/maoiscat/mpv-osc-modern";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ Guanran928 ];
+  };
+})
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index fee1addf0e6d2..e3c344457f708 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -62,13 +62,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "obs-studio";
-  version = "30.1.0";
+  version = "30.1.1";
 
   src = fetchFromGitHub {
     owner = "obsproject";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    sha256 = "sha256-9rf3UGazEL5Obd6tqDwM5LOC6D1X6HNzs5sn5z1tOCA=";
+    sha256 = "sha256-1/8SsDAEBT8jEXKKQgA9JjUHM4/8UtcELUGFiHBB31g=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix b/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
index a56c18479fd15..f9a09b450bbb2 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-move-transition";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "exeldro";
     repo = "obs-move-transition";
     rev = version;
-    sha256 = "sha256-kQIDOjux+8d9V4VCxDtKuWpBKPjdB50WmOPYmzxOCTU=";
+    sha256 = "sha256-Y0FTNxwpCOp/3XkHxZ4H0ja840R7/c2dTDImUf5iZQE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index 180315e5072ff..5b62399a04651 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -10,7 +10,7 @@
 , youtube-dl
 , glib
 , ffmpeg
-, aria
+, aria2
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec {
     playsound
     ffmpeg
     matplotlib
-    aria
+    aria2
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/virtualization/distrobox/always-mount-nix.patch b/pkgs/applications/virtualization/distrobox/always-mount-nix.patch
deleted file mode 100644
index c5df13294e920..0000000000000
--- a/pkgs/applications/virtualization/distrobox/always-mount-nix.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-diff --git a/distrobox-create b/distrobox-create
-index 64e9911..136659d 100755
---- a/distrobox-create
-+++ b/distrobox-create
-@@ -74,6 +74,10 @@ unshare_ipc=0
- unshare_netns=0
- unshare_process=0
- unshare_devsys=0
-+
-+self_dir="$(dirname "$(realpath "$0")")"
-+nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
-+
- # Use cd + dirname + pwd so that we do not have relative paths in mount points
- # We're not using "realpath" here so that symlinks are not resolved this way
- # "realpath" would break situations like Nix or similar symlink based package
-@@ -98,6 +102,7 @@ version="1.6.0.1"
- # priority over system defaults
- # leave priority to environment variables.
- config_files="
-+	$nix_config_file
- 	/usr/share/distrobox/distrobox.conf
- 	/usr/share/defaults/distrobox/distrobox.conf
- 	/usr/etc/distrobox/distrobox.conf
-diff --git a/distrobox-enter b/distrobox-enter
-index 6d8998a..bb05437 100755
---- a/distrobox-enter
-+++ b/distrobox-enter
-@@ -75,10 +75,14 @@ skip_workdir=0
- verbose=0
- version="1.6.0.1"
- 
-+self_dir="$(dirname "$(realpath "$0")")"
-+nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
-+
- # Source configuration files, this is done in an hierarchy so local files have
- # priority over system defaults
- # leave priority to environment variables.
- config_files="
-+	$nix_config_file
- 	/usr/share/distrobox/distrobox.conf
- 	/usr/share/defaults/distrobox/distrobox.conf
- 	/usr/etc/distrobox/distrobox.conf
-diff --git a/distrobox-generate-entry b/distrobox-generate-entry
-index 3243691..6a7910a 100755
---- a/distrobox-generate-entry
-+++ b/distrobox-generate-entry
-@@ -45,10 +45,14 @@ icon_default="${HOME}/.local/share/icons/terminal-distrobox-icon.svg"
- verbose=0
- version="1.6.0.1"
- 
-+self_dir="$(dirname "$(realpath "$0")")"
-+nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
-+
- # Source configuration files, this is done in an hierarchy so local files have
- # priority over system defaults
- # leave priority to environment variables.
- config_files="
-+	$nix_config_file
- 	/usr/share/distrobox/distrobox.conf
- 	/usr/share/defaults/distrobox/distrobox.conf
- 	/usr/etc/distrobox/distrobox.conf
-diff --git a/distrobox-list b/distrobox-list
-index aaec85e..235e529 100755
---- a/distrobox-list
-+++ b/distrobox-list
-@@ -44,10 +44,14 @@ verbose=0
- version="1.6.0.1"
- container_manager="autodetect"
- 
-+self_dir="$(dirname "$(realpath "$0")")"
-+nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
-+
- # Source configuration files, this is done in an hierarchy so local files have
- # priority over system defaults
- # leave priority to environment variables.
- config_files="
-+	$nix_config_file
- 	/usr/share/distrobox/distrobox.conf
- 	/usr/share/defaults/distrobox/distrobox.conf
- 	/usr/etc/distrobox/distrobox.conf
-diff --git a/distrobox-rm b/distrobox-rm
-index 702c1dd..2e37538 100755
---- a/distrobox-rm
-+++ b/distrobox-rm
-@@ -54,10 +54,14 @@ rm_home=0
- response_rm_home="N"
- version="1.6.0.1"
- 
-+self_dir="$(dirname "$(realpath "$0")")"
-+nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
-+
- # Source configuration files, this is done in an hierarchy so local files have
- # priority over system defaults
- # leave priority to environment variables.
- config_files="
-+	$nix_config_file
- 	/usr/share/distrobox/distrobox.conf
- 	/usr/share/defaults/distrobox/distrobox.conf
- 	/usr/etc/distrobox/distrobox.conf
-diff --git a/distrobox-stop b/distrobox-stop
-index fd17cc1..e0dbc8f 100755
---- a/distrobox-stop
-+++ b/distrobox-stop
-@@ -52,10 +52,14 @@ non_interactive=0
- verbose=0
- version="1.6.0.1"
- 
-+self_dir="$(dirname "$(realpath "$0")")"
-+nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
-+
- # Source configuration files, this is done in an hierarchy so local files have
- # priority over system defaults
- # leave priority to environment variables.
- config_files="
-+	$nix_config_file
- 	/usr/share/distrobox/distrobox.conf
- 	/usr/share/defaults/distrobox/distrobox.conf
- 	/usr/etc/distrobox/distrobox.conf
-diff --git a/distrobox-upgrade b/distrobox-upgrade
-index ab5e96f..dc8d295 100755
---- a/distrobox-upgrade
-+++ b/distrobox-upgrade
-@@ -39,10 +39,14 @@ rootful=0
- verbose=0
- version="1.6.0.1"
- 
-+self_dir="$(dirname "$(realpath "$0")")"
-+nix_config_file="$(realpath "${self_dir}/../share/distrobox/distrobox.conf")"
-+
- # Source configuration files, this is done in an hierarchy so local files have
- # priority over system defaults
- # leave priority to environment variables.
- config_files="
-+	$nix_config_file
- 	/usr/share/distrobox/distrobox.conf
- 	/usr/share/defaults/distrobox/distrobox.conf
- 	/usr/etc/distrobox/distrobox.conf
diff --git a/pkgs/applications/virtualization/distrobox/default.nix b/pkgs/applications/virtualization/distrobox/default.nix
index 912117a016edc..4d5317201ad0d 100644
--- a/pkgs/applications/virtualization/distrobox/default.nix
+++ b/pkgs/applications/virtualization/distrobox/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "distrobox";
-  version = "1.6.0.1";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "89luca89";
     repo = "distrobox";
     rev = finalAttrs.version;
-    hash = "sha256-UWrXpb20IHcwadPpwbhSjvOP1MBXic5ay+nP+OEVQE4=";
+    hash = "sha256-mSka8QyoLjnaVEP23TtyzbPTBHDlnrSomVZdfw4PPng=";
   };
 
   dontConfigure = true;
@@ -16,9 +16,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  # https://github.com/89luca89/distrobox/pull/1080
-  patches = [ ./always-mount-nix.patch ];
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/applications/virtualization/kraft/default.nix b/pkgs/applications/virtualization/kraft/default.nix
index ca7384cdd19b1..c2e3425227b06 100644
--- a/pkgs/applications/virtualization/kraft/default.nix
+++ b/pkgs/applications/virtualization/kraft/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "kraftkit";
-  version = "0.7.5";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "unikraft";
     repo = "kraftkit";
     rev = "v${version}";
-    hash = "sha256-kuI1RSipPj7e8tsnThAEkL3bpmgAEKSQthubfjtklp0=";
+    hash = "sha256-XbA1nyiHG8aTXXcJ4puAMutLXrjgus1fdI0Rv+YHh7k=";
   };
 
-  vendorHash = "sha256-BPpUBGWzW4jkUgy/2oqvqXBNLmglUVTFA9XuGhUE1zo=";
+  vendorHash = "sha256-PnFBBRF5RH908wPAKQjyY4DiKYUq31uxNb9qYMwiybs=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index b75a5afdbde4b..314d8136b852c 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -1,4 +1,4 @@
-{ config, stdenv, fetchurl, fetchpatch, lib, acpica-tools, dev86, pam, libxslt, libxml2, wrapQtAppsHook
+{ config, stdenv, fetchurl, fetchpatch, callPackage, lib, acpica-tools, dev86, pam, libxslt, libxml2, wrapQtAppsHook
 , libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL2, libcap, libGL, libGLU
 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, libtpms, qtbase, qtx11extras
 , qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
@@ -35,6 +35,8 @@ let
   # The KVM build is not compatible to VirtualBox's kernel modules. So don't export
   # modsrc at all.
   withModsrc = !enableKvm;
+
+  virtualboxGuestAdditionsIso = callPackage guest-additions-iso/default.nix { };
 in stdenv.mkDerivation {
   pname = "virtualbox";
   inherit version;
@@ -249,7 +251,7 @@ in stdenv.mkDerivation {
 
     mkdir -p "$out/share/virtualbox"
     cp -rv src/VBox/Main/UnattendedTemplates "$out/share/virtualbox"
-    ln -s "${linuxPackages.virtualboxGuestAdditions.src}" "$out/share/virtualbox/VBoxGuestAdditions.iso"
+    ln -s "${virtualboxGuestAdditionsIso}/VBoxGuestAdditions_${version}.iso" "$out/share/virtualbox/VBoxGuestAdditions.iso"
   '';
 
   preFixup = optionalString (!headless) ''
@@ -262,7 +264,6 @@ in stdenv.mkDerivation {
   '';
 
   passthru = {
-    inherit version;       # for guest additions
     inherit extensionPack; # for inclusion in profile to prevent gc
     updateScript = ./update.sh;
   };
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix
new file mode 100644
index 0000000000000..d2f9bc62ba18b
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, lib, virtualbox}:
+
+let
+  inherit (virtualbox) version;
+in
+stdenv.mkDerivation rec {
+  pname = "VirtualBox-GuestAdditions-iso";
+  inherit version;
+
+  src = fetchurl {
+    url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
+    sha256 = "0efbcb9bf4722cb19292ae00eba29587432e918d3b1f70905deb70f7cf78e8ce";
+  };
+
+  buildCommand = ''
+    mkdir -p $out
+    cp $src $out/
+  '';
+
+  meta = {
+    description = "Guest additions ISO for VirtualBox";
+    longDescription = ''
+      ISO containing various add-ons which improves guests inside VirtualBox.
+    '';
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    license = lib.licenses.gpl2;
+    maintainers = [ lib.maintainers.sander lib.maintainers.friedrichaltheide ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix
new file mode 100644
index 0000000000000..298acba8439de
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix
@@ -0,0 +1,133 @@
+{ config, stdenv, kernel, fetchurl, lib, pam, libxslt
+, libX11, libXext, libXcursor, libXmu
+, glib, alsa-lib, libXrandr, dbus
+, pkg-config, which, zlib, xorg
+, yasm, patchelf, makeWrapper, makeself, nasm
+, linuxHeaders, openssl, libpulseaudio}:
+
+with lib;
+
+let
+  buildType = "release";
+
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "VirtualBox-GuestAdditions-builder-${kernel.version}";
+  version = "7.0.14";
+
+  src = fetchurl {
+    url = "https://download.virtualbox.org/virtualbox/${finalAttrs.version}/VirtualBox-${finalAttrs.version}.tar.bz2";
+    sha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9";
+  };
+
+  env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
+
+  nativeBuildInputs = [ patchelf makeWrapper pkg-config which yasm ];
+  buildInputs =  kernel.moduleBuildDependencies ++ [ libxslt libX11 libXext libXcursor
+    glib nasm alsa-lib makeself pam libXmu libXrandr linuxHeaders openssl libpulseaudio xorg.xorgserver ];
+
+  KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+  KERN_INCL = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/source/include";
+
+  prePatch = ''
+    rm -r src/VBox/Additions/x11/x11include/
+    rm -r src/libs/openssl-*/
+    rm -r src/libs/curl-*/
+  '';
+
+  patches = [
+    ../gcc-13.patch
+    # https://www.virtualbox.org/changeset/100258/vbox
+    ./no-legacy-xorg.patch
+    # https://www.virtualbox.org/changeset/102989/vbox
+    ./strlcpy-1.patch
+    # https://www.virtualbox.org/changeset/102990/vbox
+    ./strlcpy-2.patch
+  ];
+
+  postPatch = ''
+    set -x
+    sed -e 's@MKISOFS --version@MKISOFS -version@' \
+        -e 's@CXX_FLAGS="\(.*\)"@CXX_FLAGS="-std=c++17 \1"@' \
+        -i configure
+    ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux.so.2
+    ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2
+
+    substituteInPlace ./include/VBox/dbus-calls.h --replace-fail libdbus-1.so.3 ${dbus.lib}/lib/libdbus-1.so.3
+
+    substituteInPlace ./src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibDrmClient.cpp --replace-fail /usr/bin/VBoxDRMClient /run/current-system/sw/bin/VBoxDRMClient
+    substituteInPlace ./src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibDrmClient.cpp --replace-fail /usr/bin/VBoxClient /run/current-system/sw/bin/VBoxClient
+    substituteInPlace ./src/VBox/Additions/x11/VBoxClient/display.cpp --replace-fail /usr/X11/bin/xrandr ${xorg.xrandr}/bin/xrandr
+    substituteInPlace ./src/VBox/Additions/x11/vboxvideo/Makefile.kmk --replace-fail /usr/include/xorg "${xorg.xorgserver.dev}/include/xorg "
+  '';
+
+  configurePhase = ''
+      NIX_CFLAGS_COMPILE=$(echo "$NIX_CFLAGS_COMPILE" | sed 's,\-isystem ${lib.getDev stdenv.cc.libc}/include,,g')
+
+      cat >> LocalConfig.kmk <<LOCAL_CONFIG
+      VBOX_WITH_TESTCASES            :=
+      VBOX_WITH_TESTSUITE            :=
+      VBOX_WITH_VALIDATIONKIT        :=
+      VBOX_WITH_DOCS                 :=
+      VBOX_WITH_WARNINGS_AS_ERRORS   :=
+
+      VBOX_WITH_ORIGIN               :=
+      VBOX_PATH_APP_PRIVATE_ARCH_TOP := $out/share/virtualbox
+      VBOX_PATH_APP_PRIVATE_ARCH     := $out/libexec/virtualbox
+      VBOX_PATH_SHARED_LIBS          := $out/libexec/virtualbox
+      VBOX_WITH_RUNPATH              := $out/libexec/virtualbox
+      VBOX_PATH_APP_PRIVATE          := $out/share/virtualbox
+      VBOX_PATH_APP_DOCS             := $out/doc
+
+      VBOX_USE_SYSTEM_XORG_HEADERS := 1
+      VBOX_USE_SYSTEM_GL_HEADERS := 1
+      VBOX_NO_LEGACY_XORG_X11 := 1
+
+      SDK_VBoxOpenSslStatic_INCS := ${openssl.dev}/include/ssl
+
+      VBOX_ONLY_ADDITIONS := 1
+      VBOX_WITH_SHARED_CLIPBOARD := 1
+      VBOX_WITH_GUEST_PROPS := 1
+      VBOX_WITH_VMSVGA := 1
+      VBOX_WITH_SHARED_FOLDERS := 1
+      VBOX_WITH_GUEST_CONTROL := 1
+      VBOX_WITHOUT_LINUX_GUEST_PACKAGE := 1
+      VBOX_WITH_PAM :=
+
+      VBOX_BUILD_PUBLISHER := _NixOS
+      LOCAL_CONFIG
+
+      ./configure \
+        --only-additions \
+        --with-linux=${kernel.dev} \
+        --disable-kmods
+
+      sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${glib.dev}/lib/pkgconfig @' \
+        -i AutoConfig.kmk
+      sed -e 's@arch/x86/@@' \
+        -i Config.kmk
+
+      export USER=nix
+      set +x
+    '';
+
+  enableParallelBuilding = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    source env.sh
+    VBOX_ONLY_ADDITIONS=1 VBOX_ONLY_BUILD=1 kmk -j $NIX_BUILD_CORES BUILD_TYPE="${buildType}"
+    VBOX_ONLY_ADDITIONS=1 VBOX_ONLY_BUILD=1 kmk packing
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -rv ./out/linux.${if stdenv.hostPlatform.is32bit then "x86" else "amd64"}/${buildType}/bin/additions/VBoxGuestAdditions-${if stdenv.hostPlatform.is32bit then "x86" else "amd64"}.tar.bz2 $out/
+
+    runHook postInstall
+  '';
+})
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index a1c2c8d09e24e..ce23538ffc38e 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,9 +1,12 @@
-{ stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
-, zlib, xorg, dbus, virtualbox}:
+{ config, stdenv, kernel, callPackage, lib, dbus
+, libX11, libXext, libXcursor, libXmu, xorg
+, which, zlib, patchelf, makeWrapper
+}:
+
+with lib;
 
 let
-  version = virtualbox.version;
-  xserverVListFunc = builtins.elemAt (lib.splitVersion xorg.xorgserver.version);
+  virtualBoxNixGuestAdditionsBuilder = callPackage ./builder.nix { };
 
   # Forced to 1.18; vboxvideo doesn't seem to provide any newer ABI,
   # and nixpkgs doesn't support older ABIs anymore.
@@ -17,137 +20,94 @@ let
     { name = "libXfixes.so"; pkg = xorg.libXfixes; }
     { name = "libXrandr.so"; pkg = xorg.libXrandr; }
   ];
+in stdenv.mkDerivation {
+    pname = "VirtualBox-GuestAdditions";
+    version = "${virtualBoxNixGuestAdditionsBuilder.version}-${kernel.version}";
+
+    src = "${virtualBoxNixGuestAdditionsBuilder}/VBoxGuestAdditions-${if stdenv.hostPlatform.is32bit then "x86" else "amd64"}.tar.bz2";
+    sourceRoot = ".";
+
+    KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+    KERN_INCL = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/source/include";
+
+    hardeningDisable = [ "pic" ];
+
+    env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
+
+    nativeBuildInputs = [ patchelf makeWrapper ];
+    buildInputs = [ virtualBoxNixGuestAdditionsBuilder ] ++ kernel.moduleBuildDependencies;
+
+    buildPhase = ''
+      runHook preBuild
+
+      # Build kernel modules.
+      cd src
+      find . -type f | xargs sed 's/depmod -a/true/' -i
+      cd vboxguest-${virtualBoxNixGuestAdditionsBuilder.version}_NixOS
+      # Run just make first. If we only did make install, we get symbol warnings during build.
+      make
+      cd ../..
+
+      # Change the interpreter for various binaries
+      for i in sbin/VBoxService bin/{VBoxClient,VBoxControl,VBoxDRMClient} other/mount.vboxsf; do
+          patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} $i
+          patchelf --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc zlib
+            xorg.libX11 xorg.libXt xorg.libXext xorg.libXmu xorg.libXfixes xorg.libXcursor ]} $i
+      done
 
-in stdenv.mkDerivation rec {
-  name = "VirtualBox-GuestAdditions-${version}-${kernel.version}";
-
-  src = fetchurl {
-    url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "0efbcb9bf4722cb19292ae00eba29587432e918d3b1f70905deb70f7cf78e8ce";
-  };
-
-  KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
-  KERN_INCL = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/source/include";
-
-  hardeningDisable = [ "pic" ];
-
-  env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
-
-  nativeBuildInputs = [ patchelf makeWrapper ];
-  buildInputs = [ cdrkit ] ++ kernel.moduleBuildDependencies;
-
-
-  prePatch = ''
-    substituteInPlace src/vboxguest-${version}/vboxvideo/vbox_ttm.c \
-      --replace "<ttm/" "<drm/ttm/"
-  '';
-
-  patchFlags = [ "-p1" "-d" "src/vboxguest-${version}" ];
-
-  unpackPhase = ''
-    isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
-    chmod 755 ./VBoxLinuxAdditions.run
-    # An overflow leads the is-there-enough-space check to fail when there's too much space available, so fake how much space there is
-    sed -i 's/\$leftspace/16383/' VBoxLinuxAdditions.run
-    ./VBoxLinuxAdditions.run --noexec --keep
-
-    # Unpack files
-    cd install
-    tar xfvj VBoxGuestAdditions-${if stdenv.hostPlatform.is32bit then "x86" else "amd64"}.tar.bz2
-  '';
-
-  buildPhase = ''
-    # Build kernel modules.
-    cd src
-    find . -type f | xargs sed 's/depmod -a/true/' -i
-    cd vboxguest-${version}
-    # Run just make first. If we only did make install, we get symbol warnings during build.
-    make
-    cd ../..
-
-    # Change the interpreter for various binaries
-    for i in sbin/VBoxService bin/{VBoxClient,VBoxControl} other/mount.vboxsf; do
-        patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} $i
-        patchelf --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc zlib
-          xorg.libX11 xorg.libXt xorg.libXext xorg.libXmu xorg.libXfixes xorg.libXrandr xorg.libXcursor ]} $i
-    done
-
-    for i in lib/VBoxOGL*.so
-    do
-        patchelf --set-rpath ${lib.makeLibraryPath [ "$out"
-          xorg.libXcomposite xorg.libXdamage xorg.libXext xorg.libXfixes ]} $i
-    done
-
-    # FIXME: Virtualbox 4.3.22 moved VBoxClient-all (required by Guest Additions
-    # NixOS module) to 98vboxadd-xclient. For now, just work around it:
-    mv other/98vboxadd-xclient bin/VBoxClient-all
-
-    # Remove references to /usr from various scripts and files
-    sed -i -e "s|/usr/bin|$out/bin|" other/vboxclient.desktop
-    sed -i -e "s|/usr/bin|$out/bin|" bin/VBoxClient-all
-  '';
-
-  installPhase = ''
-    # Install kernel modules.
-    cd src/vboxguest-${version}
-    make install INSTALL_MOD_PATH=$out KBUILD_EXTRA_SYMBOLS=$PWD/vboxsf/Module.symvers
-    cd ../..
-
-    # Install binaries
-    install -D -m 755 other/mount.vboxsf $out/bin/mount.vboxsf
-    install -D -m 755 sbin/VBoxService $out/bin/VBoxService
-
-    mkdir -p $out/bin
-    install -m 755 bin/VBoxClient $out/bin
-    install -m 755 bin/VBoxControl $out/bin
-    install -m 755 bin/VBoxClient-all $out/bin
-
-    wrapProgram $out/bin/VBoxClient-all \
-            --prefix PATH : "${which}/bin"
-
-    # Don't install VBoxOGL for now
-    # It seems to be broken upstream too, and fixing it is far down the priority list:
-    # https://www.virtualbox.org/pipermail/vbox-dev/2017-June/014561.html
-    # Additionally, 3d support seems to rely on VBoxOGL.so being symlinked from
-    # libGL.so (which we can't), and Oracle doesn't plan on supporting libglvnd
-    # either. (#18457)
-    ## Install OpenGL libraries
-    #mkdir -p $out/lib
-    #cp -v lib/VBoxOGL*.so $out/lib
-    #mkdir -p $out/lib/dri
-    #ln -s $out/lib/VBoxOGL.so $out/lib/dri/vboxvideo_dri.so
-
-    # Install desktop file
-    mkdir -p $out/etc/xdg/autostart
-    cp -v other/vboxclient.desktop $out/etc/xdg/autostart
-
-    # Install Xorg drivers
-    mkdir -p $out/lib/xorg/modules/{drivers,input}
-    install -m 644 other/vboxvideo_drv_${xserverABI}.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
-  '';
-
-  # Stripping breaks these binaries for some reason.
-  dontStrip = true;
-
-  # Patch RUNPATH according to dlopenLibs (see the comment there).
-  postFixup = lib.concatMapStrings (library: ''
-    for i in $(grep -F ${lib.escapeShellArg library.name} -l -r $out/{lib,bin}); do
-      origRpath=$(patchelf --print-rpath "$i")
-      patchelf --set-rpath "$origRpath:${lib.makeLibraryPath [ library.pkg ]}" "$i"
-    done
-  '') dlopenLibs;
-
-  meta = {
-    description = "Guest additions for VirtualBox";
-    longDescription = ''
-      Various add-ons which makes NixOS work better as guest OS inside VirtualBox.
-      This add-on provides support for dynamic resizing of the X Display, shared
-      host/guest clipboard support and guest OpenGL support.
+      runHook postBuild
     '';
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    license = "GPL";
-    maintainers = [ lib.maintainers.sander lib.maintainers.friedrichaltheide ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
-    broken = stdenv.hostPlatform.is32bit && (kernel.kernelAtLeast "5.10");
-  };
-}
+
+    installPhase = ''
+      runHook preInstall
+
+      # Install kernel modules.
+      cd src/vboxguest-${virtualBoxNixGuestAdditionsBuilder.version}_NixOS
+      make install INSTALL_MOD_PATH=$out KBUILD_EXTRA_SYMBOLS=$PWD/vboxsf/Module.symvers
+      cd ../..
+
+      # Install binaries
+      install -D -m 755 other/mount.vboxsf $out/bin/mount.vboxsf
+      install -D -m 755 sbin/VBoxService $out/bin/VBoxService
+
+      mkdir -p $out/bin
+      install -m 755 bin/VBoxClient $out/bin
+      install -m 755 bin/VBoxControl $out/bin
+      install -m 755 bin/VBoxDRMClient $out/bin
+
+
+      # Don't install VBoxOGL for now
+      # It seems to be broken upstream too, and fixing it is far down the priority list:
+      # https://www.virtualbox.org/pipermail/vbox-dev/2017-June/014561.html
+      # Additionally, 3d support seems to rely on VBoxOGL.so being symlinked from
+      # libGL.so (which we can't), and Oracle doesn't plan on supporting libglvnd
+      # either. (#18457)
+
+      runHook postInstall
+    '';
+
+    # Stripping breaks these binaries for some reason.
+    dontStrip = true;
+
+    # Patch RUNPATH according to dlopenLibs (see the comment there).
+    postFixup = lib.concatMapStrings (library: ''
+      for i in $(grep -F ${lib.escapeShellArg library.name} -l -r $out/{lib,bin}); do
+        origRpath=$(patchelf --print-rpath "$i")
+        patchelf --set-rpath "$origRpath:${lib.makeLibraryPath [ library.pkg ]}" "$i"
+      done
+    '') dlopenLibs;
+
+    meta = {
+      description = "Guest additions for VirtualBox";
+      longDescription = ''
+        Various add-ons which makes NixOS work better as guest OS inside VirtualBox.
+        This add-on provides support for dynamic resizing of the virtual display, shared
+        host/guest clipboard support.
+      '';
+      sourceProvenance = with lib.sourceTypes; [ fromSource ];
+      license = licenses.gpl2;
+      maintainers = [ lib.maintainers.sander lib.maintainers.friedrichaltheide ];
+      platforms = [ "i686-linux" "x86_64-linux" ];
+      broken = stdenv.hostPlatform.is32bit && (kernel.kernelAtLeast "5.10");
+    };
+  }
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/no-legacy-xorg.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/no-legacy-xorg.patch
new file mode 100644
index 0000000000000..911cf0f0d5f0f
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/no-legacy-xorg.patch
@@ -0,0 +1,45 @@
+# https://www.virtualbox.org/changeset/100258/vbox
+diff --git a/src/VBox/Additions/linux/Makefile.kmk b/src/VBox/Additions/linux/Makefile.kmk
+index 0921b3fe619..de9e98b4989 100644
+--- a/src/VBox/Additions/linux/Makefile.kmk
++++ b/src/VBox/Additions/linux/Makefile.kmk
+@@ -136,23 +136,29 @@ VBOX_LNX_ADD_STRIP_SBIN += \
+ 	$(if $(VBOX_WITH_LIGHTDM_GREETER),vbox-greeter)
+ 
+ VBOX_LNX_ADD_STRIP_MOD = \
+-	vboxmouse_drv_70.so \
+-	vboxmouse_drv_71.so \
+-	vboxmouse_drv_13.so \
+-	vboxmouse_drv_14.so \
+-	vboxmouse_drv_15.so \
+-	vboxmouse_drv_16.so \
+-	$(addsuffix .so,$(filter-out %_32,$(filter vboxvideo_drv_%,$(DLLS)))) \
+ 	$(if $(VBOX_WITH_PAM),pam_vbox.so,) \
+ 	mount.vboxsf
+ 
++ifndef VBOX_NO_LEGACY_XORG_X11
++ VBOX_LNX_ADD_STRIP_MOD += \
++ 	vboxmouse_drv_70.so \
++ 	vboxmouse_drv_71.so \
++ 	vboxmouse_drv_13.so \
++ 	vboxmouse_drv_14.so \
++ 	vboxmouse_drv_15.so \
++ 	vboxmouse_drv_16.so \
++ 	$(addsuffix .so,$(filter-out %_32,$(filter vboxvideo_drv_%,$(DLLS))))
++endif
++
+ VBOX_LNX_ADD_MOD = \
+ 	98vboxadd-xclient \
+ 	x11config.sh
+ 
+-VBOX_LNX_ADD_STRIP_OBJ = \
+-	vboxmouse_drv.o \
+-	vboxvideo_drv.o
++ifndef VBOX_NO_LEGACY_XORG_X11
++ VBOX_LNX_ADD_STRIP_OBJ = \
++ 	vboxmouse_drv.o \
++ 	vboxvideo_drv.o
++endif
+ 
+ VBOX_LNX_ADD_INIT = \
+ 	vboxadd \
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch
new file mode 100644
index 0000000000000..642f5864d2082
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch
@@ -0,0 +1,29 @@
+# https://www.virtualbox.org/changeset/102989/vbox
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -244,4 +244,26 @@
+ #else  /* !RT_OS_LINUX && !__KERNEL__ */
+ # define RT_BCOPY_UNFORTIFIED(a_pDst, a_pSrc, a_cbToCopy)   memcpy((a_pDst), (a_pSrc), (a_cbToCopy))
++#endif /* !RT_OS_LINUX && !__KERNEL__ */
++
++/** @def RT_STRSCPY
++ * Copy string and NULL-terminate output buffer.
++ *
++ * This macro should mostly be used in Linux kernel code. This is
++ * the replacement for deprecated strlcpy. It was deprecated since 3.16.60
++ * when strscpy was introduced as an alternative. Finally, strlcpy was
++ * completely removed from kernel code in 6.8.0.
++ *
++ * @param   a_pDst          Pointer to the destination string buffer.
++ * @param   a_pSrc          Pointer to the source NULL-terminated string buffer.
++ * @param   a_cbToCopy      Size of destination buffer..
++ */
++#if defined(RT_OS_LINUX) && defined(__KERNEL__)
++# if (RTLNX_VER_MIN(3,16,60))
++#  define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# else /* < 3.16.60 */
++#  define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strlcpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# endif
++#else  /* !RT_OS_LINUX && !__KERNEL__ */
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
+ #endif /* !RT_OS_LINUX && !__KERNEL__ */
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch
new file mode 100644
index 0000000000000..15e546f89e79c
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch
@@ -0,0 +1,86 @@
+# https://www.virtualbox.org/changeset/102990/vbox
+--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
++++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
+@@ -1411,5 +1411,5 @@
+     }
+     else if (pParam->name[0] != 'd')
+-        strlcpy(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
++        RT_STRSCPY(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
+ 
+     return 0;
+@@ -1437,5 +1437,5 @@
+     }
+     else if (pParam->name[0] != 'd')
+-        strlcpy(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
++        RT_STRSCPY(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
+     return 0;
+ }
+@@ -1462,5 +1462,5 @@
+     }
+     else if (pParam->name[0] != 'd')
+-        strlcpy(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
++        RT_STRSCPY(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
+     return 0;
+ }
+
+# https://www.virtualbox.org/changeset/102990/vbox
+--- a/src/VBox/Additions/linux/drm/vbox_drv.h
++++ b/src/VBox/Additions/linux/drm/vbox_drv.h
+@@ -539,7 +539,5 @@
+ void vbox_irq_fini(struct vbox_private *vbox);
+ void vbox_report_hotplug(struct vbox_private *vbox);
+-#if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_MAJ_PREREQ(9,1) && !RTLNX_SUSE_MAJ_PREREQ(15,5)
+ irqreturn_t vbox_irq_handler(int irq, void *arg);
+-#endif
+ 
+ /* vbox_hgsmi.c */
+
+# https://www.virtualbox.org/changeset/102990/vbox
+--- a/src/VBox/Additions/linux/sharedfolders/regops.c
++++ b/src/VBox/Additions/linux/sharedfolders/regops.c
+@@ -3506,5 +3506,5 @@
+ 
+ /** file_operations::mmap wrapper for logging purposes. */
+-extern int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
++static int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
+ {
+     int rc;
+@@ -3787,5 +3787,5 @@
+ 
+ # if RTLNX_VER_MIN(5,19,0) || RTLNX_RHEL_RANGE(9,3, 9,99)
+-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
+                      unsigned len, struct page **pagep, void **fsdata)
+ {
+@@ -3794,5 +3794,5 @@
+ }
+ # else
+-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
+                      unsigned len, unsigned flags, struct page **pagep, void **fsdata)
+ {
+
+# https://www.virtualbox.org/changeset/102990/vbox
+--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c
++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c
+@@ -1409,5 +1409,5 @@
+     case Opt_iocharset:
+     case Opt_nls:
+-        strlcpy(info->nls_name, param->string, sizeof(info->nls_name));
++        RT_STRSCPY(info->nls_name, param->string, sizeof(info->nls_name));
+         break;
+     case Opt_uid:
+@@ -1470,5 +1470,5 @@
+         break;
+     case Opt_tag:
+-        strlcpy(info->szTag, param->string, sizeof(info->szTag));
++        RT_STRSCPY(info->szTag, param->string, sizeof(info->szTag));
+         break;
+     default:
+@@ -1529,5 +1529,5 @@
+ 
+     /* fc->source (the shared folder name) is set after vbsf_init_fs_ctx() */
+-    strlcpy(info->name, fc->source, sizeof(info->name));
++    RT_STRSCPY(info->name, fc->source, sizeof(info->name));
+ 
+ # if RTLNX_VER_MAX(5,3,0)
diff --git a/pkgs/applications/virtualization/virtualbox/update.sh b/pkgs/applications/virtualization/virtualbox/update.sh
index fcd02ae8a27b6..5269f85ee9389 100755
--- a/pkgs/applications/virtualization/virtualbox/update.sh
+++ b/pkgs/applications/virtualization/virtualbox/update.sh
@@ -24,20 +24,25 @@ if [ ! "$oldVersion" = "$latestVersion" ]; then
 
   virtualBoxShaSum=$(fileShaSum "$shaSums" "VirtualBox-$latestVersion.tar.bz2")
   extpackShaSum=$(fileShaSum "$shaSums" "Oracle_VM_VirtualBox_Extension_Pack-$latestVersion.vbox-extpack")
-  guestAdditionsShaSum=$(fileShaSum "$shaSums" "*VBoxGuestAdditions_$latestVersion.iso")
+  guestAdditionsIsoShaSum=$(fileShaSum "$shaSums" "*VBoxGuestAdditions_$latestVersion.iso")
 
   virtualboxNixFile=$(nixFile ${attr})
   extpackNixFile=$(nixFile ${attr}Extpack)
-  guestAdditionsNixFile=$(nixFile linuxPackages.${attr}GuestAdditions)
+  guestAdditionsIsoNixFile="pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix"
+  virtualboxGuestAdditionsNixFile="pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix"
 
+  virtualBoxOldShaSum=$(oldHash ${attr}Extpack)
   extpackOldShaSum=$(oldHash ${attr}Extpack)
-  guestAdditionsOldShaSum=$(oldHash linuxPackages.${attr}GuestAdditions.src)
 
   update-source-version $attr $latestVersion $virtualBoxShaSum
   sed -i -e 's|value = "'$extpackOldShaSum'"|value = "'$extpackShaSum'"|' $extpackNixFile
-  sed -i -e 's|sha256 = "'$guestAdditionsOldShaSum'"|sha256 = "'$guestAdditionsShaSum'"|' $guestAdditionsNixFile
+  sed -e "s/sha256 =.*;/sha256 = \"$guestAdditionsIsoShaSum\";/g" \
+      -i $guestAdditionsIsoNixFile
+  sed -e "s/version =.*;/version = \"$latestVersion\";/g" \
+      -e "s/sha256 =.*;/sha256 = \"$virtualBoxShaSum\";/g" \
+      -i $virtualboxGuestAdditionsNixFile
 
-  git add $virtualboxNixFile $extpackNixFile $guestAdditionsNixFile
+  git add $virtualboxNixFile $extpackNixFile $guestAdditionsIsoNixFile $virtualboxGuestAdditionsNixFile
   git commit -m "$attr: ${oldVersion} -> ${latestVersion}"
 else
   echo "$attr is already up-to-date"
diff --git a/pkgs/applications/window-managers/fvwm/3.nix b/pkgs/applications/window-managers/fvwm/3.nix
index 31d29af44d80a..83dffa0200081 100644
--- a/pkgs/applications/window-managers/fvwm/3.nix
+++ b/pkgs/applications/window-managers/fvwm/3.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fvwm3";
-  version = "1.0.9";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "fvwmorg";
     repo = "fvwm3";
     rev = finalAttrs.version;
-    hash = "sha256-SjAccEAQsrzfVCtesqULONmb9TLD5IF8uIwEX3UhrxU=";
+    hash = "sha256-y1buTWO1vHzloh2e4EK1dkD0uQa7lIFUbNMkEe5x6Vo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/hikari/default.nix b/pkgs/applications/window-managers/hikari/default.nix
deleted file mode 100644
index 508f13f985b24..0000000000000
--- a/pkgs/applications/window-managers/hikari/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ lib, stdenv, fetchzip
-, pkg-config, bmake
-, cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman
-, libucl, wayland, wayland-protocols, wlroots, mesa
-, features ? {
-    gammacontrol = true;
-    layershell   = true;
-    screencopy   = true;
-    xwayland     = true;
-  }
-}:
-
-stdenv.mkDerivation rec {
-  pname = "hikari";
-  version = "2.3.3";
-
-  src = fetchzip {
-    url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-5Ug0U3ESC5F/gj7bahnLYkeY/weSCj0QASwdFuWwdMI=";
-  };
-
-  nativeBuildInputs = [ pkg-config bmake ];
-
-  buildInputs = [
-    cairo
-    glib
-    libevdev
-    libinput
-    libxkbcommon
-    linux-pam
-    pango
-    pixman
-    libucl
-    mesa # for libEGL
-    wayland
-    wayland-protocols
-    wlroots
-  ];
-
-  enableParallelBuilding = true;
-
-  makeFlags = with lib; [ "PREFIX=$(out)" ]
-    ++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES"
-    ++ mapAttrsToList (feat: enabled:
-         optionalString enabled "WITH_${toUpper feat}=YES"
-       ) features;
-
-  postPatch = ''
-    # Can't suid in nix store
-    # Run hikari as root (it will drop privileges as early as possible), or create
-    # a systemd unit to give it the necessary permissions/capabilities.
-    substituteInPlace Makefile --replace '4555' '555'
-
-    sed -i 's@<drm_fourcc.h>@<libdrm/drm_fourcc.h>@' src/*.c
-  '';
-
-  meta = with lib; {
-    description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux";
-    homepage    = "https://hikari.acmelabs.space";
-    license     = licenses.bsd2;
-    platforms   = platforms.linux ++ platforms.freebsd;
-    maintainers = with maintainers; [ jpotier ];
-  };
-}
diff --git a/pkgs/applications/window-managers/wayfire/default.nix b/pkgs/applications/window-managers/wayfire/default.nix
index c633b19abc709..e6ed87ffabd32 100644
--- a/pkgs/applications/window-managers/wayfire/default.nix
+++ b/pkgs/applications/window-managers/wayfire/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, nixosTests
 , cmake
 , meson
 , ninja
@@ -26,14 +27,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wayfire";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "WayfireWM";
     repo = "wayfire";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-YI8N1rY71b2ulv7tAdah7sibG4qq3kY0/hyS0cls5to=";
+    hash = "sha256-OPGzPy0I6i3TvmA5KSWDb4Lsf66zM5X+Akckgs3wk2o=";
   };
 
   nativeBuildInputs = [
@@ -44,7 +45,6 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   buildInputs = [
-    wf-config
     libGL
     libdrm
     libexecinfo
@@ -54,14 +54,15 @@ stdenv.mkDerivation (finalAttrs: {
     libxkbcommon
     wayland-protocols
     xorg.xcbutilwm
-    wayland
-    cairo
-    pango
     nlohmann_json
   ];
 
   propagatedBuildInputs = [
+    wf-config
     wlroots
+    wayland
+    cairo
+    pango
   ];
 
   nativeCheckInputs = [
@@ -83,6 +84,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   passthru.providedSessions = [ "wayfire" ];
 
+  passthru.tests.mate = nixosTests.mate-wayland;
+
   meta = {
     homepage = "https://wayfire.org/";
     description = "3D Wayland compositor";
diff --git a/pkgs/applications/window-managers/wayfire/firedecor.nix b/pkgs/applications/window-managers/wayfire/firedecor.nix
index ce42f6fc68866..6fbe4b5575bba 100644
--- a/pkgs/applications/window-managers/wayfire/firedecor.nix
+++ b/pkgs/applications/window-managers/wayfire/firedecor.nix
@@ -5,17 +5,13 @@
 , ninja
 , pkg-config
 , boost
-, cairo
 , glib
 , libGL
 , libinput
 , librsvg
 , libxkbcommon
-, pango
 , udev
 , wayfire
-, wayland
-, wf-config
 , xcbutilwm
 , mate
 }:
@@ -39,17 +35,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     boost
-    cairo
     glib
     libGL
     libinput
     librsvg
     libxkbcommon
-    pango
     udev
     wayfire
-    wayland
-    wf-config
     xcbutilwm
   ];
 
diff --git a/pkgs/applications/window-managers/wayfire/focus-request.nix b/pkgs/applications/window-managers/wayfire/focus-request.nix
new file mode 100644
index 0000000000000..1e535e8ba751a
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/focus-request.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, wayfire
+, wf-config
+, wayland
+, pango
+, libinput
+, libxkbcommon
+, librsvg
+, libGL
+, xcbutilwm
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "focus-request";
+  version = "0.8.0.2";
+
+  src = fetchFromGitLab {
+    owner = "wayfireplugins";
+    repo = "focus-request";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-v0kGT+KrtfFJ/hp1Dr8izKVj6UHhuW6udHFjWt1y9TY=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    wayfire
+    wf-config
+    wayland
+    pango
+    libinput
+    libxkbcommon
+    librsvg
+    libGL
+    xcbutilwm
+  ];
+
+  env = {
+    PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
+  };
+
+  meta = {
+    homepage = "https://gitlab.com/wayfireplugins/focus-request";
+    description = "The wayfire plugin provides a mechanism to grant focus to views that make a focus self-request";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ rewine ];
+    inherit (wayfire.meta) platforms;
+  };
+})
diff --git a/pkgs/applications/window-managers/wayfire/plugins.nix b/pkgs/applications/window-managers/wayfire/plugins.nix
index b8af85aafd0da..e6663b477f711 100644
--- a/pkgs/applications/window-managers/wayfire/plugins.nix
+++ b/pkgs/applications/window-managers/wayfire/plugins.nix
@@ -5,9 +5,12 @@ lib.makeScope pkgs.newScope (self:
     inherit (self) callPackage;
   in {
     firedecor = callPackage ./firedecor.nix { };
+    focus-request = callPackage ./focus-request.nix { };
     wayfire-plugins-extra = callPackage ./wayfire-plugins-extra.nix { };
+    wayfire-shadows = callPackage ./wayfire-shadows.nix { };
     wcm = callPackage ./wcm.nix { };
     wf-shell = callPackage ./wf-shell.nix { };
     windecor = callPackage ./windecor.nix { };
+    wwp-switcher = callPackage ./wwp-switcher.nix { };
   }
 )
diff --git a/pkgs/applications/window-managers/wayfire/wayfire-plugins-extra.nix b/pkgs/applications/window-managers/wayfire/wayfire-plugins-extra.nix
index 9652664443691..62496c9f86004 100644
--- a/pkgs/applications/window-managers/wayfire/wayfire-plugins-extra.nix
+++ b/pkgs/applications/window-managers/wayfire/wayfire-plugins-extra.nix
@@ -1,45 +1,31 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , meson
 , ninja
 , pkg-config
 , wayfire
 , wf-config
-, gtkmm3
-, gtk-layer-shell
 , libevdev
 , libinput
 , libxkbcommon
+, nlohmann_json
 , xcbutilwm
+, gtkmm3
+, gtk-layer-shell
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wayfire-plugins-extra";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "WayfireWM";
     repo = "wayfire-plugins-extra";
     rev = "v${finalAttrs.version}";
-    fetchSubmodules = true;
-    hash = "sha256-OVyP1AgZ1d9DXFkbHnROwtSQIquEX5ccVIkcmCdDZtA=";
+    hash = "sha256-MF4tDzIZnnTXH2ZUxltIw1RP3pfRQFGrc/n9H47yW0g";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "check-dependency-libevdev.patch";
-      url = "https://github.com/WayfireWM/wayfire-plugins-extra/commit/f3bbf1fcbafd28016e36be7a5043bd82574ac9e4.patch";
-      hash = "sha256-8X1lpf8H8NuA845cIslahKDQKW/IA/KiMExU4Snk72o=";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace metadata/meson.build \
-      --replace "wayfire.get_variable(pkgconfig: 'metadatadir')" "join_paths(get_option('prefix'), 'share/wayfire/metadata')"
-  '';
-
   nativeBuildInputs = [
     meson
     ninja
@@ -52,12 +38,22 @@ stdenv.mkDerivation (finalAttrs: {
     libevdev
     libinput
     libxkbcommon
+    nlohmann_json
     xcbutilwm
     gtkmm3
     gtk-layer-shell
   ];
 
-  mesonFlags = [ "--sysconfdir /etc" ];
+  mesonFlags = [
+    # plugins in submodule, packaged individually
+    (lib.mesonBool "enable_windecor" false)
+    (lib.mesonBool "enable_wayfire_shadows" false)
+    (lib.mesonBool "enable_focus_request" false)
+  ];
+
+  env = {
+    PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
+  };
 
   meta = {
     homepage = "https://github.com/WayfireWM/wayfire-plugins-extra";
diff --git a/pkgs/applications/window-managers/wayfire/wayfire-shadows.nix b/pkgs/applications/window-managers/wayfire/wayfire-shadows.nix
new file mode 100644
index 0000000000000..fd91d78285dfe
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/wayfire-shadows.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, unstableGitUpdater
+, meson
+, ninja
+, pkg-config
+, wayfire
+, libxkbcommon
+, libGL
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wayfire-shadows";
+  version = "unstable-2024-03-28";
+
+  src = fetchFromGitHub {
+    owner = "timgott";
+    repo = "wayfire-shadows";
+    rev = "81699f6e4be65dcf3f7ad5155dfb4247b37b7997";
+    hash = "sha256-H9pqpHoeDfNBrtVLax57CUXVhU2XT+syAUZTYSJizxw=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    wayfire
+    libxkbcommon
+    libGL
+  ];
+
+  env = {
+    PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
+  };
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    homepage = "https://github.com/timgott/wayfire-shadows";
+    description = "Wayfire plugin that adds window shadows";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ rewine ];
+    inherit (wayfire.meta) platforms;
+  };
+})
diff --git a/pkgs/applications/window-managers/wayfire/wcm.nix b/pkgs/applications/window-managers/wayfire/wcm.nix
index 1acd161e6211b..fec3b1bfc7163 100644
--- a/pkgs/applications/window-managers/wayfire/wcm.nix
+++ b/pkgs/applications/window-managers/wayfire/wcm.nix
@@ -4,11 +4,9 @@
 , meson
 , ninja
 , pkg-config
-, wayland
 , wrapGAppsHook
 , wayfire
 , wf-shell
-, wf-config
 , wayland-scanner
 , wayland-protocols
 , gtk3
@@ -40,9 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     wayfire
-    wf-config
     wf-shell
-    wayland
     wayland-protocols
     gtk3
     gtkmm3
diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix
index b71e667b31ada..348ef56be5d89 100644
--- a/pkgs/applications/window-managers/wayfire/wf-shell.nix
+++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix
@@ -6,7 +6,6 @@
 , pkg-config
 , wayland-scanner
 , wayfire
-, wf-config
 , alsa-lib
 , gtkmm3
 , gtk-layer-shell
@@ -35,7 +34,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     wayfire
-    wf-config
     alsa-lib
     gtkmm3
     gtk-layer-shell
diff --git a/pkgs/applications/window-managers/wayfire/windecor.nix b/pkgs/applications/window-managers/wayfire/windecor.nix
index d3643aa180954..29c95ff1a91de 100644
--- a/pkgs/applications/window-managers/wayfire/windecor.nix
+++ b/pkgs/applications/window-managers/wayfire/windecor.nix
@@ -5,9 +5,6 @@
 , ninja
 , pkg-config
 , wayfire
-, wf-config
-, wayland
-, pango
 , eudev
 , libinput
 , libxkbcommon
@@ -40,9 +37,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     wayfire
-    wf-config
-    wayland
-    pango
     eudev
     libinput
     libxkbcommon
diff --git a/pkgs/applications/window-managers/wayfire/wwp-switcher.nix b/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
new file mode 100644
index 0000000000000..9ca4718e17096
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, unstableGitUpdater
+, meson
+, ninja
+, pkg-config
+, wayfire
+, libxkbcommon
+, libGL
+, libinput
+, gtk3
+, glibmm
+, xcbutilwm
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wwp-switcher";
+  version = "unstable-2023-09-09";
+
+  src = fetchFromGitHub {
+    owner = "wb9688";
+    repo = "wwp-switcher";
+    rev = "04711a0db133a899f507a86e81897296b793b4f3";
+    hash = "sha256-qMyEhSZJNxAoaELKI2h1v59QJnKJzFa76Q4/WtZqpIU";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    wayfire
+    libxkbcommon
+    libGL
+    libinput
+    gtk3
+    glibmm
+    xcbutilwm
+  ];
+
+  env = {
+    PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
+  };
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    homepage = "https://github.com/wb9688/wwp-switcher";
+    description = "A plugin to switch active window";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ rewine ];
+    inherit (wayfire.meta) platforms;
+  };
+})
diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix
index 893383a759aec..681d1ea681bb4 100644
--- a/pkgs/build-support/agda/default.nix
+++ b/pkgs/build-support/agda/default.nix
@@ -31,10 +31,9 @@ let
     mkdir -p $out/bin
     makeWrapper ${Agda}/bin/agda $out/bin/agda \
       --add-flags "--with-compiler=${ghc}/bin/ghc" \
-      --add-flags "--library-file=${library-file}" \
-      --add-flags "--local-interfaces"
+      --add-flags "--library-file=${library-file}"
     ln -s ${Agda}/bin/agda-mode $out/bin/agda-mode
-    ''; # Local interfaces has been added for now: See https://github.com/agda/agda/issues/4526
+    '';
 
   withPackages = arg: if builtins.isAttrs arg then withPackages' arg else withPackages' { pkgs = arg; };
 
@@ -76,13 +75,14 @@ let
         buildPhase = if buildPhase != null then buildPhase else ''
           runHook preBuild
           agda ${includePathArgs} ${everythingFile}
+          rm ${everythingFile} ${lib.interfaceFile Agda.version everythingFile}
           runHook postBuild
         '';
 
         installPhase = if installPhase != null then installPhase else ''
           runHook preInstall
           mkdir -p $out
-          find -not \( -path ${everythingFile} -or -path ${lib.interfaceFile everythingFile} \) -and \( ${concatMapStringsSep " -or " (p: "-name '*.${p}'") (extensions ++ extraExtensions)} \) -exec cp -p --parents -t "$out" {} +
+          find \( ${concatMapStringsSep " -or " (p: "-name '*.${p}'") (extensions ++ extraExtensions)} \) -exec cp -p --parents -t "$out" {} +
           runHook postInstall
         '';
 
diff --git a/pkgs/build-support/agda/lib.nix b/pkgs/build-support/agda/lib.nix
index e6e391b2ceddf..63fa6ccddba6b 100644
--- a/pkgs/build-support/agda/lib.nix
+++ b/pkgs/build-support/agda/lib.nix
@@ -2,11 +2,13 @@
 {
   /* Returns the Agda interface file to a given Agda file.
   *
+  * The resulting path may not be normalized.
+  *
   * Examples:
-  * interfaceFile "Everything.agda" == "Everything.agdai"
-  * interfaceFile "src/Everything.lagda.tex" == "src/Everything.agdai"
+  * interfaceFile pkgs.agda.version "./Everything.agda" == "_build/2.6.4.3/agda/./Everything.agdai"
+  * interfaceFile pkgs.agda.version "src/Everything.lagda.tex" == "_build/2.6.4.3/agda/src/Everything.agdai"
   */
-  interfaceFile = agdaFile: lib.head (builtins.match ''(.*\.)l?agda(\.(md|org|rst|tex|typ))?'' agdaFile) + "agdai";
+  interfaceFile = agdaVersion: agdaFile: "_build/" + agdaVersion + "/agda/" + lib.head (builtins.match ''(.*\.)l?agda(\.(md|org|rst|tex|typ))?'' agdaFile) + "agdai";
 
   /* Takes an arbitrary derivation and says whether it is an agda library package
   *  that is not marked as broken.
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 6b8a03932f5b2..86bd7e312cbd3 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -637,7 +637,7 @@ rec {
             if tag != null
             then tag
             else
-              lib.head (lib.strings.splitString "-" (baseNameOf result.outPath));
+              lib.head (lib.strings.splitString "-" (baseNameOf (builtins.unsafeDiscardStringContext result.outPath)));
         } ''
         ${lib.optionalString (tag == null) ''
           outName="$(basename "$out")"
@@ -1001,7 +1001,7 @@ rec {
               if tag != null
               then tag
               else
-                lib.head (lib.strings.splitString "-" (baseNameOf conf.outPath));
+                lib.head (lib.strings.splitString "-" (baseNameOf (builtins.unsafeDiscardStringContext conf.outPath)));
             paths = buildPackages.referencesByPopularity overallClosure;
             nativeBuildInputs = [ jq ];
           } ''
diff --git a/pkgs/build-support/go/module.nix b/pkgs/build-support/go/module.nix
index 153b675d48aef..ab8491da34cd4 100644
--- a/pkgs/build-support/go/module.nix
+++ b/pkgs/build-support/go/module.nix
@@ -16,7 +16,12 @@
   #
   # if vendorHash is null, then we won't fetch any dependencies and
   # rely on the vendor folder within the source.
-, vendorHash ? args'.vendorSha256 or (throw "buildGoModule: vendorHash is missing")
+, vendorHash ? throw (
+    if args'?vendorSha256 then
+      "buildGoModule: Expect vendorHash instead of vendorSha256"
+    else
+      "buildGoModule: vendorHash is missing"
+  )
   # Whether to delete the vendor folder supplied with the source.
 , deleteVendor ? false
   # Whether to fetch (go mod download) and proxy the vendor directory.
@@ -41,6 +46,8 @@
 
 , ldflags ? [ ]
 
+, GOFLAGS ? [ ]
+
   # needed for buildFlags{,Array} warning
 , buildFlags ? ""
 , buildFlagsArray ? ""
@@ -49,7 +56,6 @@
 }@args':
 
 assert goPackagePath != "" -> throw "`goPackagePath` is not needed with `buildGoModule`";
-assert (args' ? vendorHash && args' ? vendorSha256) -> throw "both `vendorHash` and `vendorSha256` set. only one can be set.";
 
 let
   args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "vendorHash" ];
@@ -145,7 +151,9 @@ let
 
     outputHashMode = "recursive";
     outputHash = vendorHash;
-    outputHashAlgo = if args' ? vendorSha256 || vendorHash == "" then "sha256" else null;
+    # Handle empty vendorHash; avoid
+    # error: empty hash requires explicit hash algorithm
+    outputHashAlgo = if vendorHash == "" then "sha256" else null;
   }).overrideAttrs overrideModAttrs;
 
   package = stdenv.mkDerivation (args // {
@@ -153,11 +161,13 @@ let
 
     inherit (go) GOOS GOARCH;
 
-    GOFLAGS = lib.optionals (!proxyVendor) [ "-mod=vendor" ] ++ lib.optionals (!allowGoReference) [ "-trimpath" ];
+    GOFLAGS = GOFLAGS
+      ++ lib.optional (!proxyVendor) "-mod=vendor"
+      ++ lib.optional (!allowGoReference) "-trimpath";
     inherit CGO_ENABLED enableParallelBuilding GO111MODULE GOTOOLCHAIN;
 
     # If not set to an explicit value, set the buildid empty for reproducibility.
-    ldflags = ldflags ++ lib.optionals (!lib.any (lib.hasPrefix "-buildid=") ldflags) [ "-buildid=" ];
+    ldflags = ldflags ++ lib.optional (!lib.any (lib.hasPrefix "-buildid=") ldflags) "-buildid=";
 
     configurePhase = args.configurePhase or (''
       runHook preConfigure
@@ -294,8 +304,7 @@ let
 
     disallowedReferences = lib.optional (!allowGoReference) go;
 
-    passthru = passthru // { inherit go goModules vendorHash; }
-                        // lib.optionalAttrs (args' ? vendorSha256 ) { inherit (args') vendorSha256; };
+    passthru = passthru // { inherit go goModules vendorHash; };
 
     meta = {
       # Add default meta information
@@ -303,8 +312,9 @@ let
     } // meta;
   });
 in
-lib.warnIf (args' ? vendorSha256) "`vendorSha256` is deprecated. Use `vendorHash` instead"
 lib.warnIf (buildFlags != "" || buildFlagsArray != "")
   "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
 lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule"
+lib.warnIf (builtins.elem "-trimpath" GOFLAGS) "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true"
+lib.warnIf (lib.any (lib.hasPrefix "-mod=") GOFLAGS) "use `proxyVendor` to control Go module/vendor behavior instead of setting `-mod=` in GOFLAGS"
   package
diff --git a/pkgs/build-support/go/package.nix b/pkgs/build-support/go/package.nix
index 8ca5ca0dca011..94a459c267f36 100644
--- a/pkgs/build-support/go/package.nix
+++ b/pkgs/build-support/go/package.nix
@@ -39,6 +39,8 @@
 
 , ldflags ? [ ]
 
+, GOFLAGS ? [ ]
+
 # needed for buildFlags{,Array} warning
 , buildFlags ? ""
 , buildFlagsArray ? ""
@@ -89,12 +91,12 @@ let
 
     GO111MODULE = "off";
     GOTOOLCHAIN = "local";
-    GOFLAGS = lib.optionals (!allowGoReference) [ "-trimpath" ];
+    GOFLAGS = GOFLAGS ++ lib.optional (!allowGoReference)  "-trimpath" ;
 
     GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
 
     # If not set to an explicit value, set the buildid empty for reproducibility.
-    ldflags = ldflags ++ lib.optionals (!lib.any (lib.hasPrefix "-buildid=") ldflags) [ "-buildid=" ];
+    ldflags = ldflags ++ lib.optional (!lib.any (lib.hasPrefix "-buildid=") ldflags) "-buildid=";
 
     configurePhase = args.configurePhase or (''
       runHook preConfigure
@@ -286,4 +288,5 @@ in
 lib.warnIf (buildFlags != "" || buildFlagsArray != "")
   "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
 lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule"
+lib.warnIf (builtins.elem "-trimpath" GOFLAGS) "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true"
   package
diff --git a/pkgs/build-support/lib/cmake.nix b/pkgs/build-support/lib/cmake.nix
index eff7bbca61a23..57fa586d34555 100644
--- a/pkgs/build-support/lib/cmake.nix
+++ b/pkgs/build-support/lib/cmake.nix
@@ -3,9 +3,8 @@
 let
   inherit (lib) findFirst isString optional optionals;
 
-  makeCMakeFlags = { cmakeFlags ? [], ... }:
-    cmakeFlags
-    ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([
+  cmakeFlags' =
+    optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([
       "-DCMAKE_SYSTEM_NAME=${findFirst isString "Generic" (optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"
     ] ++ optionals (stdenv.hostPlatform.uname.processor != null) [
       "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
@@ -24,6 +23,9 @@ let
     ] ++ optionals stdenv.hostPlatform.isStatic [
       "-DCMAKE_LINK_SEARCH_START_STATIC=ON"
     ]);
+
+  makeCMakeFlags = { cmakeFlags ? [], ... }: cmakeFlags ++ cmakeFlags';
+
 in
 {
   inherit makeCMakeFlags;
diff --git a/pkgs/build-support/lib/meson.nix b/pkgs/build-support/lib/meson.nix
index 395b573f85876..456c10fcb8eeb 100644
--- a/pkgs/build-support/lib/meson.nix
+++ b/pkgs/build-support/lib/meson.nix
@@ -9,25 +9,25 @@ let
     else if isx86_32  then "x86"
     else platform.uname.processor;
 
-  makeMesonFlags = { mesonFlags ? [], ... }:
-    let
-      crossFile = builtins.toFile "cross-file.conf" ''
-        [properties]
-        bindgen_clang_arguments = ['-target', '${stdenv.targetPlatform.config}']
-        needs_exe_wrapper = ${boolToString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform)}
-
-        [host_machine]
-        system = '${stdenv.targetPlatform.parsed.kernel.name}'
-        cpu_family = '${cpuFamily stdenv.targetPlatform}'
-        cpu = '${stdenv.targetPlatform.parsed.cpu.name}'
-        endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"}
-
-        [binaries]
-        llvm-config = 'llvm-config-native'
-        rust = ['rustc', '--target', '${stdenv.targetPlatform.rust.rustcTargetSpec}']
-      '';
-      crossFlags = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--cross-file=${crossFile}" ];
-    in crossFlags ++ mesonFlags;
+  crossFile = builtins.toFile "cross-file.conf" ''
+    [properties]
+    bindgen_clang_arguments = ['-target', '${stdenv.targetPlatform.config}']
+    needs_exe_wrapper = ${boolToString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform)}
+
+    [host_machine]
+    system = '${stdenv.targetPlatform.parsed.kernel.name}'
+    cpu_family = '${cpuFamily stdenv.targetPlatform}'
+    cpu = '${stdenv.targetPlatform.parsed.cpu.name}'
+    endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"}
+
+    [binaries]
+    llvm-config = 'llvm-config-native'
+    rust = ['rustc', '--target', '${stdenv.targetPlatform.rust.rustcTargetSpec}']
+  '';
+
+  crossFlags = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--cross-file=${crossFile}" ];
+
+  makeMesonFlags = { mesonFlags ? [], ... }: crossFlags ++ mesonFlags;
 
 in
 {
diff --git a/pkgs/by-name/README.md b/pkgs/by-name/README.md
index 52d2aac35e5d6..17214ded02c48 100644
--- a/pkgs/by-name/README.md
+++ b/pkgs/by-name/README.md
@@ -69,9 +69,11 @@ So instead it is preferable to use the same generic parameter name `libbar`
 and override its value in [`pkgs/top-level/all-packages.nix`](../top-level/all-packages.nix):
 
 ```nix
-libfoo = callPackage ../by-name/so/some-package/package.nix {
-  libbar = libbar_2;
-};
+{
+  libfoo = callPackage ../by-name/so/some-package/package.nix {
+    libbar = libbar_2;
+  };
+}
 ```
 
 ## Manual migration guidelines
@@ -132,13 +134,16 @@ but if you try to move the package to `pkgs/by-name`, it will fail check 2.
 This is often the case for packages with multiple versions, such as
 
 ```nix
+{
   foo_1 = callPackage ../tools/foo/1.nix { };
   foo_2 = callPackage ../tools/foo/2.nix { };
+}
 ```
 
 The best way to resolve this is to not use `callPackage` directly, such that check 1 doesn't trigger.
 This can be done by using `inherit` on a local package set:
 ```nix
+{
   inherit
     ({
       foo_1 = callPackage ../tools/foo/1.nix { };
@@ -147,6 +152,7 @@ This can be done by using `inherit` on a local package set:
     foo_1
     foo_2
     ;
+}
 ```
 
 While this may seem pointless, this can in fact help with future package set refactorings,
@@ -157,8 +163,10 @@ because it establishes a clear connection between related attributes.
 This is not required, but the above solution also allows refactoring the definitions into a separate file:
 
 ```nix
+{
   inherit (import ../tools/foo pkgs)
     foo_1 foo_2;
+}
 ```
 
 ```nix
@@ -173,8 +181,10 @@ Alternatively using [`callPackages`](https://nixos.org/manual/nixpkgs/unstable/#
 if `callPackage` isn't used underneath and you want the same `.override` arguments for all attributes:
 
 ```nix
+{
   inherit (callPackages ../tools/foo { })
     foo_1 foo_2;
+}
 ```
 
 ```nix
@@ -192,9 +202,11 @@ if `callPackage` isn't used underneath and you want the same `.override` argumen
 This is not required, but the above solution also allows exposing the package set as an attribute:
 
 ```nix
+{
   foo-versions = import ../tools/foo pkgs;
   # Or using callPackages
   # foo-versions = callPackages ../tools/foo { };
 
   inherit (foo-versions) foo_1 foo_2;
+}
 ```
diff --git a/pkgs/by-name/ad/advcpmv/package.nix b/pkgs/by-name/ad/advcpmv/package.nix
deleted file mode 100644
index ba4caea99cd3b..0000000000000
--- a/pkgs/by-name/ad/advcpmv/package.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ coreutils
-, fetchFromGitHub
-}:
-
-let
-  advcpmv-data = {
-    pname = "advcpmv";
-    patch-version = "0.9";
-    coreutils-version = "9.4";
-    version = "${advcpmv-data.patch-version}-${advcpmv-data.coreutils-version}";
-    src = fetchFromGitHub {
-      owner = "jarun";
-      repo = "advcpmv";
-      rev = "a1f8b505e691737db2f7f2b96275802c45f65c59";
-      hash = "sha256-IHfMu6PyGRPc87J/hbxMUdosmLq13K0oWa5fPLWKOvo=";
-    };
-    patch-file = advcpmv-data.src + "/advcpmv-${advcpmv-data.version}.patch";
-  };
-  coreutilsNoSingleBinary = coreutils.override { singleBinary = false; };
-in
-assert (advcpmv-data.coreutils-version == coreutils.version);
-coreutilsNoSingleBinary.overrideAttrs (old: {
-  inherit (advcpmv-data) pname version;
-
-  patches = (old.patches or [ ]) ++ [
-    advcpmv-data.patch-file
-  ];
-
-  outputs = [ "out" ]; # Since we don't need info files
-
-  configureFlags = (old.configureFlags or [ ]) ++ [
-    # To not conflict with regular coreutils
-    "--program-prefix=adv"
-  ];
-
-  # Only cpg and mvg are desired, the others are not touched and therefore can
-  # be removed. Equally, the info directory is removed.
-  postFixup = (old.postFixup or "") + ''
-    rm -rf $out/share/info
-    pushd $out/bin
-    mv advcp cpg
-    mv advmv mvg
-    rm adv*
-    mv cpg advcp
-    mv mvg advmv
-    ln -s advcp cpg
-    ln -s advcp acp
-    ln -s advmv mvg
-    ln -s advmv amv
-    popd
-  '';
-
-  meta = old.meta // {
-    homepage = "https://github.com/jarun/advcpmv";
-    description = "Patched cp and mv from Coreutils that provides progress bars";
-    longDescription = ''
-      Advanced Copy is a mod for the GNU cp and GNU mv tools which adds a
-      progress bar and provides some info on what's going on. It was written by
-      Florian Zwicke and released under the GPL.
-    '';
-  };
-})
diff --git a/pkgs/by-name/ad/adwsteamgtk/package.nix b/pkgs/by-name/ad/adwsteamgtk/package.nix
index f40843624fa8b..419541b28ed79 100644
--- a/pkgs/by-name/ad/adwsteamgtk/package.nix
+++ b/pkgs/by-name/ad/adwsteamgtk/package.nix
@@ -12,15 +12,15 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "adwsteamgtk";
-  version = "0.6.9";
+  version = "0.6.10";
   # built with meson, not a python format
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Foldex";
     repo = "AdwSteamGtk";
-    rev = "v${version}";
-    hash = "sha256-aHJxgSb7oZTRrfFVYdLimwhSGzdRjGf7dGTRA+ANQiM=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-sh4FLXG78i20Bt8pCCbhO6Sx815stjAZRLCD+X5Zk40=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/ap/aprx/package.nix b/pkgs/by-name/ap/aprx/package.nix
new file mode 100644
index 0000000000000..79cefac7545a9
--- /dev/null
+++ b/pkgs/by-name/ap/aprx/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, perl
+}:
+
+stdenv.mkDerivation {
+  pname = "aprx";
+  version = "2.9.1-unstable-2021-09-21";
+
+  src = fetchFromGitHub {
+    owner = "PhirePhly";
+    repo = "aprx";
+    rev = "2c84448fe6d897980234961a87ee4c1d4fad69ec";
+    sha256 = "sha256-01PB7FaG8GmPm1U15/3g1CfQwdYmf3ThZFdVh2zUAl4=";
+  };
+
+  nativeBuildInputs = [ perl ];
+
+  env.NIX_CFLAGS_COMPILE = toString ([
+    "-fcommon"
+    "-O2"
+  ] ++ lib.optional stdenv.cc.isClang "-Wno-error=implicit-int");
+
+  configureFlags = [
+    "--with-erlangstorage"
+    "--sbindir=$(out)/bin"
+    "--sysconfdir=$(out)/etc"
+    "--mandir=$(out)/share/man"
+  ];
+
+  makeFlags = [ "INSTALL=install" ];
+
+  preInstall = ''
+    mkdir -p $out/bin $out/share/man/man8 $out/etc
+  '';
+
+  meta = with lib; {
+    description = "A multitalented APRS i-gate / digipeater";
+    homepage = "http://thelifeofkenneth.com/aprx";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sarcasticadmin ];
+    mainProgram = "aprx";
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch b/pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch
new file mode 100644
index 0000000000000..64cf5af6d9b3b
--- /dev/null
+++ b/pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch
@@ -0,0 +1,38 @@
+diff --git a/src/window.py b/src/window.py
+index adc6d6d..1cb6bec 100644
+--- a/src/window.py
++++ b/src/window.py
+@@ -34,6 +34,15 @@ import unicodedata
+ import emoji
+ import os
+ 
++def get_data_dir():
++    xdg_data_home = os.environ.get('XDG_DATA_HOME')
++    if xdg_data_home and xdg_data_home.strip():
++        data_dir = os.path.join(xdg_data_home, 'ascii-draw', 'data')
++    else:
++        home = os.path.expanduser("~")
++        data_dir = os.path.join(home, '.local', 'share', 'ascii-draw', 'data')
++    return data_dir
++
+ @Gtk.Template(resource_path='/io/github/nokse22/asciidraw/ui/window.ui')
+ class AsciiDrawWindow(Adw.ApplicationWindow):
+     __gtype_name__ = 'AsciiDrawWindow'
+@@ -266,7 +275,7 @@ class AsciiDrawWindow(Adw.ApplicationWindow):
+ 
+         self.palettes = []
+ 
+-        directory_path = "/var/data/palettes"
++        directory_path = f"{get_data_dir()}/palettes"
+         os.makedirs(directory_path, exist_ok=True)
+ 
+         for filename in os.listdir(directory_path):
+@@ -316,7 +325,7 @@ class AsciiDrawWindow(Adw.ApplicationWindow):
+             self.char_carousel_go_next.set_sensitive(True)
+ 
+     def save_new_palette(self, palette):
+-        with open(f"/var/data/palettes/{palette.name}.txt", 'w') as file:
++        with open(f"{get_data_dir()}/palettes/{palette.name}.txt", 'w') as file:
+             file.write(palette.chars)
+ 
+     @Gtk.Template.Callback("char_pages_go_back")
diff --git a/pkgs/by-name/as/ascii-draw/package.nix b/pkgs/by-name/as/ascii-draw/package.nix
new file mode 100644
index 0000000000000..838eb01183718
--- /dev/null
+++ b/pkgs/by-name/as/ascii-draw/package.nix
@@ -0,0 +1,63 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, gobject-introspection
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "ascii-draw";
+  version = "0.3.0";
+  pyproject = false;
+
+  src = fetchFromGitHub {
+    owner = "Nokse22";
+    repo = "ascii-draw";
+    rev = "v${version}";
+    hash = "sha256-vI+j8OuQ3b6La0+7wWeoUtBal24dazlN/T0Bng5TgMo=";
+  };
+
+  # Temporary fix for autosaving to flatpak directory
+  # https://github.com/Nokse22/ascii-draw/issues/31
+  patches = [ ./fix_palette_data_dir.patch ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3
+    pyfiglet
+    emoji
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = {
+    description = "An app to draw diagrams or anything using only ASCII";
+    homepage = "https://github.com/Nokse22/ascii-draw";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "ascii-draw";
+    maintainers = with lib.maintainers; [ aleksana ];
+    # gnulib bindtextdomain is missing on various other unix platforms
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/as/ast-grep/package.nix b/pkgs/by-name/as/ast-grep/package.nix
index 3334e7128bd4f..ae496a7ad634e 100644
--- a/pkgs/by-name/as/ast-grep/package.nix
+++ b/pkgs/by-name/as/ast-grep/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ast-grep";
-  version = "0.19.4";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "ast-grep";
     repo = "ast-grep";
     rev = version;
-    hash = "sha256-hKqj3LVu/3ndGoZQYyH1yCm5vF0/Ck5bkTKjLIkcUys=";
+    hash = "sha256-vOHBrz/a42jRyQs7oJLkg3/ra3SMR9FKuiwJ9RrFizw=";
   };
 
-  cargoHash = "sha256-Fli97ANWHZvvBC6hImymELkpBqqrAOm006LROj3R3sM=";
+  cargoHash = "sha256-T30V9FYNmh2Rg5ZFc9elcf4ZbTR1vwieirawEs3a4sI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/au/autoAddDriverRunpath/auto-add-driver-runpath-hook.sh b/pkgs/by-name/au/autoAddDriverRunpath/auto-add-driver-runpath-hook.sh
new file mode 100644
index 0000000000000..5e9ed97375afb
--- /dev/null
+++ b/pkgs/by-name/au/autoAddDriverRunpath/auto-add-driver-runpath-hook.sh
@@ -0,0 +1,14 @@
+# shellcheck shell=bash
+# Run addDriverRunpath on all dynamically linked, ELF files
+echo "Sourcing auto-add-driver-runpath-hook"
+
+if [ -n "${dontUseAutoAddOpenGLRunpath-}" ]; then
+  echo "dontUseAutoAddOpenGLRunpath has been deprecated, please use dontUseAutoAddDriverRunpath instead"
+fi
+
+# Respect old toggle value to allow for people to gracefully transition
+# See: https://github.com/NixOS/nixpkgs/issues/141803 for transition roadmap
+if [ -z "${dontUseAutoAddDriverRunpath-}" -a -z "${dontUseAutoAddOpenGLRunpath-}" ]; then
+  echo "Using autoAddDriverRunpath"
+  postFixupHooks+=("autoFixElfFiles addDriverRunpath")
+fi
diff --git a/pkgs/by-name/au/autoAddDriverRunpath/package.nix b/pkgs/by-name/au/autoAddDriverRunpath/package.nix
new file mode 100644
index 0000000000000..36af8c90ffbb2
--- /dev/null
+++ b/pkgs/by-name/au/autoAddDriverRunpath/package.nix
@@ -0,0 +1,6 @@
+{ addDriverRunpath, autoFixElfFiles, makeSetupHook }:
+
+makeSetupHook {
+  name = "auto-add-driver-runpath-hook";
+  propagatedBuildInputs = [ addDriverRunpath autoFixElfFiles ];
+} ./auto-add-driver-runpath-hook.sh
diff --git a/pkgs/by-name/au/autoFixElfFiles/auto-fix-elf-files.sh b/pkgs/by-name/au/autoFixElfFiles/auto-fix-elf-files.sh
new file mode 100644
index 0000000000000..045ddd15b1dc8
--- /dev/null
+++ b/pkgs/by-name/au/autoFixElfFiles/auto-fix-elf-files.sh
@@ -0,0 +1,64 @@
+# shellcheck shell=bash
+# List all dynamically linked ELF files in the outputs and apply a generic fix
+# action provided as a parameter (currently used to add the CUDA or the
+# cuda_compat driver to the runpath of binaries)
+echo "Sourcing fix-elf-files.sh"
+
+# Returns the exit code of patchelf --print-rpath.
+# A return code of 0 (success) means the ELF file has a dynamic section, while
+# a non-zero return code means the ELF file is statically linked (or is not an
+# ELF file).
+elfHasDynamicSection() {
+  local libPath
+
+  if [[ $# -eq 0 ]]; then
+    echo "elfHasDynamicSection: no library path provided" >&2
+    exit 1
+  elif [[ $# -gt 1 ]]; then
+    echo "elfHasDynamicSection: too many arguments" >&2
+    exit 1
+  elif [[ "$1" == "" ]]; then
+    echo "elfHasDynamicSection: empty library path" >&2
+    exit 1
+  else
+    libPath="$1"
+    shift 1
+  fi
+
+  patchelf --print-rpath "$libPath" >& /dev/null
+  return $?
+}
+
+# Run a fix action on all dynamically linked ELF files in the outputs.
+autoFixElfFiles() {
+  local fixAction
+  local outputPaths
+
+  if [[ $# -eq 0 ]]; then
+    echo "autoFixElfFiles: no fix action provided" >&2
+    exit 1
+  elif [[ $# -gt 1 ]]; then
+    echo "autoFixElfFiles: too many arguments" >&2
+    exit 1
+  elif [[ "$1" == "" ]]; then
+    echo "autoFixElfFiles: empty fix action" >&2
+    exit 1
+  else
+    fixAction="$1"
+  fi
+
+  mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "${!o}"; done)
+
+  find "${outputPaths[@]}" -type f -print0  | while IFS= read -rd "" f; do
+    if ! isELF "$f"; then
+      continue
+    elif elfHasDynamicSection "$f"; then
+      # patchelf returns an error on statically linked ELF files, and in
+      # practice fixing actions all involve patchelf
+      echo "autoFixElfFiles: using $fixAction to fix $f" >&2
+      $fixAction "$f"
+    elif (( "${NIX_DEBUG:-0}" >= 1 )); then
+      echo "autoFixElfFiles: skipping a statically-linked ELF file $f"
+    fi
+  done
+}
diff --git a/pkgs/by-name/au/autoFixElfFiles/package.nix b/pkgs/by-name/au/autoFixElfFiles/package.nix
new file mode 100644
index 0000000000000..db8258e9b43b6
--- /dev/null
+++ b/pkgs/by-name/au/autoFixElfFiles/package.nix
@@ -0,0 +1,5 @@
+{ makeSetupHook }:
+
+makeSetupHook {
+  name = "auto-fix-elf-files";
+} ./auto-fix-elf-files.sh
diff --git a/pkgs/by-name/bo/boxbuddy/package.nix b/pkgs/by-name/bo/boxbuddy/package.nix
index 7885d551a5a24..db19ca5b3998e 100644
--- a/pkgs/by-name/bo/boxbuddy/package.nix
+++ b/pkgs/by-name/bo/boxbuddy/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "boxbuddy";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchFromGitHub {
     owner = "Dvlv";
     repo = "BoxBuddyRS";
     rev = version;
-    hash = "sha256-954jMFWSIDDqtMitgc8456SMcQLzi6LhLbVvOC45fxQ=";
+    hash = "sha256-XMLgUYOv2ObHqYxqPch5i0Q1/BvfDuC1Lti5FYAVmnk=";
   };
 
-  cargoHash = "sha256-08d0mPSGYySxw2uq16MNOu2Y39kjqyfZ8rJ2yTOL3/w=";
+  cargoHash = "sha256-zbhdGpF3TonGlvRXCWF00PhIc0k1ZO2xIMXuwYD90mY=";
 
   # The software assumes it is installed either in flatpak or in the home directory
   # so the xdg data path needs to be patched here
diff --git a/pkgs/by-name/bp/bpftop/package.nix b/pkgs/by-name/bp/bpftop/package.nix
index db954a57e0698..cb965fd67a74e 100644
--- a/pkgs/by-name/bp/bpftop/package.nix
+++ b/pkgs/by-name/bp/bpftop/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bpftop";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "Netflix";
     repo = "bpftop";
     rev = "v${version}";
-    hash = "sha256-5MrfnKbrL8VoQBhtIcNmbkUfdjBXhTUW3d0GypvCuY8=";
+    hash = "sha256-N5sszFVU1nMS6QQENa9JcgFKSSWs07bWn6usvV/QmX4=";
   };
 
-  cargoHash = "sha256-OjbsnhAY9KrGWgTDb3cxa1NIbdY2eaWlDXINC15Qk98=";
+  cargoHash = "sha256-yVNql4fSU1HhLKy8HYUbNnMnxgr/gPuqKol5O0ZDQlY=";
 
   buildInputs = [
     elfutils
diff --git a/pkgs/by-name/bt/bt-migrate/package.nix b/pkgs/by-name/bt/bt-migrate/package.nix
new file mode 100644
index 0000000000000..289e15960c0fa
--- /dev/null
+++ b/pkgs/by-name/bt/bt-migrate/package.nix
@@ -0,0 +1,65 @@
+{ lib
+, boost
+, cmake
+, cxxopts
+, digestpp
+, fetchFromGitHub
+, fmt
+, jsoncons
+, pugixml
+, sqlite
+, sqlite_orm
+, stdenv
+}:
+stdenv.mkDerivation {
+  pname = "bt-migrate";
+  version = "0-unstable-2023-08-17";
+
+  src = fetchFromGitHub {
+    owner = "mikedld";
+    repo = "bt-migrate";
+    rev = "e15a489c0c76f98355586ebbee08223af4e9bf50";
+    hash = "sha256-kA6yxhbIh3ThmgF8Zyoe3I79giLVmdNr9IIrw5Xx4s0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    boost
+    cxxopts
+    fmt
+    jsoncons
+    pugixml
+    sqlite_orm
+  ];
+
+  cmakeFlags = [
+    (lib.strings.cmakeBool "USE_VCPKG" false)
+    # NOTE: digestpp does not have proper CMake packaging (yet?)
+    (lib.strings.cmakeBool "USE_FETCHCONTENT" true)
+    (lib.strings.cmakeFeature "FETCHCONTENT_SOURCE_DIR_DIGESTPP" "${digestpp}/include/digestpp")
+  ];
+
+  # NOTE: no install target in CMake...
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp BtMigrate $out/bin
+
+    runHook postInstall
+  '';
+
+  strictDeps = true;
+
+  meta = with lib; {
+    description = "Torrent state migration tool";
+    homepage = "https://github.com/mikedld/bt-migrate?tab=readme-ov-file";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ambroisie ];
+    mainProgram = "BtMigrate";
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/bu/bunbun/package.nix b/pkgs/by-name/bu/bunbun/package.nix
new file mode 100644
index 0000000000000..79d158fb6ae70
--- /dev/null
+++ b/pkgs/by-name/bu/bunbun/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bunbun";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "devraza";
+    repo = "bunbun";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jqokKvJYu/xHJHJVuNlTns3cYPLx1osbRUrCpVTCJZ0=";
+  };
+
+  cargoHash = "sha256-dWZ5aNaHyTkEmkn88Dx5nCnGyiBmpJ6p5iYC7xj/mBw=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.IOKit
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  # Cargo.lock is outdated
+  preConfigure = ''
+    cargo update --offline
+  '';
+
+  meta = with lib; {
+    description = "A simple and adorable sysinfo utility written in Rust";
+    homepage = "https://github.com/devraza/bunbun";
+    changelog = "https://github.com/devraza/bunbun/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+    mainProgram = "bunbun";
+  };
+}
diff --git a/pkgs/by-name/bu/buttermanager/package.nix b/pkgs/by-name/bu/buttermanager/package.nix
new file mode 100644
index 0000000000000..fe738b3712195
--- /dev/null
+++ b/pkgs/by-name/bu/buttermanager/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, wrapGAppsHook
+, qt5
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "buttermanager";
+  version = "2.5.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "egara";
+    repo = "buttermanager";
+    rev = version;
+    hash = "sha256-MLYJt7OMYlTFk8FCAlZJ1RGlFFXKfeAthWGp4JN+PfY=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    pyqt5
+    pyyaml
+    sip
+    tkinter
+  ];
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    qt5.wrapQtAppsHook
+  ];
+
+  dontWrapQtApps = true;
+  dontWrapGApps = true;
+  makeWrapperArgs = [ "\${qtWrapperArgs[@]}" "\${gappsWrapperArgs[@]}"];
+
+  postInstall = ''
+    substituteInPlace packaging/buttermanager.desktop \
+      --replace-fail /opt/buttermanager/gui/buttermanager.svg buttermanager
+
+    install -Dm444 packaging/buttermanager.desktop -t $out/share/applications
+    install -Dm444 packaging/buttermanager.svg -t $out/share/icons/hicolor/scalable/apps
+  '';
+
+  meta = with lib; {
+    description = "Btrfs tool for managing snapshots, balancing filesystems and upgrading the system safetly";
+    homepage = "https://github.com/egara/buttermanager";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ t4ccer ];
+    mainProgram = "buttermanager";
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/by-name/ca/cargo-expand/package.nix
index 15c8706601f57..62b88be9618c8 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/by-name/ca/cargo-expand/package.nix
@@ -5,23 +5,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "1.0.80";
+  version = "1.0.81";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qK3ZpcY/kxOaRcmlD6AUkd4BVjX8ZcFz8NG60oHh5qo=";
+    hash = "sha256-ZOoMWvtuLDhbJu+qzVPHGTCqh2b3PHUggfxNtUW1DoU=";
   };
 
-  cargoHash = "sha256-c2h/ij2fWpJMoq8d60l2Ujw7Xnw8q39GmDlcPffpjMU=";
+  cargoHash = "sha256-cTz9ZR+79yPqTaDqXjSlqXd7NxHDl6Q75N26z+vi7ck=";
 
   meta = with lib; {
-    description = "A utility and Cargo subcommand designed to let people expand macros in their Rust source code";
-    mainProgram = "cargo-expand";
+    description = "Cargo subcommand to show result of macro expansion";
     homepage = "https://github.com/dtolnay/cargo-expand";
     changelog = "https://github.com/dtolnay/cargo-expand/releases/tag/${version}";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ figsoda xrelkd ];
+    mainProgram = "cargo-expand";
   };
 }
diff --git a/pkgs/by-name/cl/clash-verge-rev/package.nix b/pkgs/by-name/cl/clash-verge-rev/package.nix
index 576a994c1e739..95415d03cfec7 100644
--- a/pkgs/by-name/cl/clash-verge-rev/package.nix
+++ b/pkgs/by-name/cl/clash-verge-rev/package.nix
@@ -5,11 +5,11 @@
 
 clash-verge.overrideAttrs (old: rec {
   pname = "clash-verge-rev";
-  version = "1.5.10";
+  version = "1.5.11";
 
   src = fetchurl {
     url = "https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v${version}/clash-verge_${version}_amd64.deb";
-    hash = "sha256-xv6xKAjpHL4eyFEcgiuHZQi3EDhYkzGHAKbcKm4rIGk=";
+    hash = "sha256-FoNWCH4SE7DnKoDMwdUiTnWoFwHSUCAIDQhvgZdgyeU=";
   };
 
   meta = old.meta // (with lib; {
diff --git a/pkgs/by-name/co/cockpit/package.nix b/pkgs/by-name/co/cockpit/package.nix
index db977bafe822f..9ad68d2bf1e2e 100644
--- a/pkgs/by-name/co/cockpit/package.nix
+++ b/pkgs/by-name/co/cockpit/package.nix
@@ -44,13 +44,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "cockpit";
-  version = "313";
+  version = "314";
 
   src = fetchFromGitHub {
     owner = "cockpit-project";
     repo = "cockpit";
     rev = "refs/tags/${version}";
-    hash = "sha256-k/JbvotOcVs2OXwGOrnjY0xYRRgvk61p0o7VQTTPqz4=";
+    hash = "sha256-6iLfUqzBG/pvGNnzMJzMQqnNjPvKJtTHHCSBWtSwwFM=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/servers/consul/default.nix b/pkgs/by-name/co/consul/package.nix
index 7b29967c91b12..1a5eb769016dd 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/by-name/co/consul/package.nix
@@ -1,8 +1,14 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  nixosTests,
+  nix-update-script,
+}:
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.18.0";
+  version = "1.18.1";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
   # vendored. See
@@ -16,16 +22,17 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Xhh6Rrcv/FoBjzhWR59gQ/R4A3ynqWYS8djNe3CnGCE=";
+    hash = "sha256-r1xdz1rjvbvB93hRpvTNQwSqQLOJwqMhqCiXdIttY10=";
   };
 
-  passthru.tests.consul = nixosTests.consul;
-
   # This corresponds to paths with package main - normally unneeded but consul
   # has a split module structure in one repo
-  subPackages = ["." "connect/certgen"];
+  subPackages = [
+    "."
+    "connect/certgen"
+  ];
 
-  vendorHash = "sha256-pNFjLXjtgsK8fjCCmjYclZw1GM4BfyzkTuaRCRIMJ3c=";
+  vendorHash = "sha256-DcpEHJ88Ehz5m+ddMd44mYTz0agwYhoels5jWJzu1EM=";
 
   doCheck = false;
 
@@ -35,13 +42,27 @@ buildGoModule rec {
     "-X github.com/hashicorp/consul/version.VersionPrerelease="
   ];
 
+  passthru = {
+    tests = {
+      inherit (nixosTests) consul;
+    };
+
+    updateScript = nix-update-script { };
+  };
+
   meta = with lib; {
     description = "Tool for service discovery, monitoring and configuration";
     changelog = "https://github.com/hashicorp/consul/releases/tag/v${version}";
     homepage = "https://www.consul.io/";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsl11;
-    maintainers = with maintainers; [ pradeepchhetri vdemeester nh2 techknowlogick];
+    maintainers = with maintainers; [
+      adamcstephens
+      pradeepchhetri
+      vdemeester
+      nh2
+      techknowlogick
+    ];
     mainProgram = "consul";
   };
 }
diff --git a/pkgs/development/tools/cue/default.nix b/pkgs/by-name/cu/cue/package.nix
index 9ff5cc631b1f1..6f86bd745a242 100644
--- a/pkgs/development/tools/cue/default.nix
+++ b/pkgs/by-name/cu/cue/package.nix
@@ -4,50 +4,51 @@
 , installShellFiles
 , testers
 , cue
+, callPackage
 }:
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "cue-lang";
     repo = "cue";
     rev = "v${version}";
-    hash = "sha256-x8DXAKrkqrZE6mxkIfjMhxZBnFbQnqWhmrvjrFjnQuc=";
+    hash = "sha256-7gn8/35rpbyzSP4ZM21ig6Wsq5Tp18x1Ex/IVb2iE7k=";
   };
 
-  vendorHash = "sha256-Eq51sydt2eu3pSCRjepvxpU01T0vr0axx9XEk34db28=";
+  vendorHash = "sha256-0OZtKIDdEnQLnSj109EpGvaZvMIy7gPAZ+weHzYKGSg=";
 
-  subPackages = [ "cmd/cue" ];
+  subPackages = [ "cmd/*" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
   ldflags = [ "-s" "-w" "-X cuelang.org/go/cmd/cue/cmd.version=${version}" ];
 
   postInstall = ''
-    # Completions
     installShellCompletion --cmd cue \
       --bash <($out/bin/cue completion bash) \
       --fish <($out/bin/cue completion fish) \
       --zsh <($out/bin/cue completion zsh)
   '';
 
-  doInstallCheck = true;
-  installCheckPhase = ''
-    $out/bin/cue eval - <<<'a: "all good"' > /dev/null
-  '';
-
-  passthru.tests.version = testers.testVersion {
-    package = cue;
-    command = "cue version";
+  passthru = {
+    writeCueValidator = callPackage ./validator.nix { };
+    tests = {
+      test-001-all-good = callPackage ./tests/001-all-good.nix { };
+      version = testers.testVersion {
+        package = cue;
+        command = "cue version";
+      };
+    };
   };
 
   meta = with lib;  {
     description = "A data constraint language which aims to simplify tasks involving defining and using data";
-    mainProgram = "cue";
     homepage = "https://cuelang.org/";
     license = lib.licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "cue";
   };
 }
diff --git a/pkgs/by-name/cu/cue/tests/001-all-good.nix b/pkgs/by-name/cu/cue/tests/001-all-good.nix
new file mode 100644
index 0000000000000..d9919cd7fee45
--- /dev/null
+++ b/pkgs/by-name/cu/cue/tests/001-all-good.nix
@@ -0,0 +1,11 @@
+{ lib
+, cue
+, runCommand
+}:
+
+runCommand "cue-test-001-all-good-${cue.version}" {
+  nativeBuildInputs = [ cue ];
+  meta.timeout = 10;
+} ''
+    cue eval - <<<'a: "all good"' > $out
+  ''
diff --git a/pkgs/development/tools/cue/validator.nix b/pkgs/by-name/cu/cue/validator.nix
index cddc3fe342b72..cddc3fe342b72 100644
--- a/pkgs/development/tools/cue/validator.nix
+++ b/pkgs/by-name/cu/cue/validator.nix
diff --git a/pkgs/by-name/cv/cvemap/package.nix b/pkgs/by-name/cv/cvemap/package.nix
new file mode 100644
index 0000000000000..efd51d838e282
--- /dev/null
+++ b/pkgs/by-name/cv/cvemap/package.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "cvemap";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "projectdiscovery";
+    repo = "cvemap";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aeUYcgBTHWWLTuAXnnc73yXaC3yLZzruqvedUYCnht4=";
+  };
+
+  vendorHash = "sha256-VQGWi01mOP2N4oYsaDK7wn/+hSFEDHhSma9DOZ06Z3k=";
+
+  subPackages = [
+    "cmd/cvemap/"
+  ];
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Tool to work with CVEs";
+    homepage = "https://github.com/projectdiscovery/cvemap";
+    changelog = "https://github.com/projectdiscovery/cvemap/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "cvemap";
+  };
+}
diff --git a/pkgs/by-name/de/dep-scan/package.nix b/pkgs/by-name/de/dep-scan/package.nix
index 67f88409d99eb..74aa2530fbd09 100644
--- a/pkgs/by-name/de/dep-scan/package.nix
+++ b/pkgs/by-name/de/dep-scan/package.nix
@@ -5,26 +5,29 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dep-scan";
-  version = "5.2.12";
+  version = "5.2.14";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "owasp-dep-scan";
     repo = "dep-scan";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UoppQAokiWBcgTcSmwfoqrDKt/QHYd2NBR3CpNOqI4k=";
+    hash = "sha256-G8i/tGEDgjPnIP04nrbx4HseiaU6N1GJGSg78yhaqII=";
   };
 
   postPatch = ''
     substituteInPlace pytest.ini \
-      --replace " --cov-append --cov-report term --cov depscan" ""
+      --replace-fail " --cov-append --cov-report term --cov depscan" ""
+    # Already fixed by upstream
+    substituteInPlace pyproject.toml \
+      --replace-fail "==5.6.4" ">=5.6.4"
   '';
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     setuptools
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     appthreat-vulnerability-db
     cvss
     defusedxml
diff --git a/pkgs/by-name/di/digestpp/package.nix b/pkgs/by-name/di/digestpp/package.nix
new file mode 100644
index 0000000000000..84d88d8b66233
--- /dev/null
+++ b/pkgs/by-name/di/digestpp/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchFromGitHub
+, stdenvNoCC
+}:
+stdenvNoCC.mkDerivation {
+  pname = "digestpp";
+  version = "0-unstable-2023-11-07";
+
+  src = fetchFromGitHub {
+    owner = "kerukuro";
+    repo = "digestpp";
+    rev = "ebb699402c244e22c3aff61d2239bcb2e87b8ef8";
+    hash = "sha256-9X/P7DgZB6bSYjQWRli4iAXEFjhmACOVv3EYQrXuH5c=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/include/digestpp
+    cp -r *.hpp algorithm/ detail/ $out/include/digestpp
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "C++11 header-only message digest library";
+    homepage = "https://github.com/kerukuro/digestpp";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ ambroisie ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/do/docuum/package.nix b/pkgs/by-name/do/docuum/package.nix
new file mode 100644
index 0000000000000..65c455038e67a
--- /dev/null
+++ b/pkgs/by-name/do/docuum/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "docuum";
+  version = "0.23.1";
+
+  src = fetchFromGitHub {
+    owner = "stepchowfun";
+    repo = "docuum";
+    rev = "v${version}";
+    hash = "sha256-jZJkI4rk/8O6MsHjuDqmIiRc1LJpTajk/rSUVYnHiOs=";
+  };
+
+  cargoHash = "sha256-qBigfW0W3t0a43y99H22gmKBnhsu08Yd1CTTatsRfRs=";
+
+  checkFlags = [
+    # fails, no idea why
+    "--skip=format::tests::code_str_display"
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.IOKit
+  ];
+
+  meta = with lib; {
+    description = "Least recently used (LRU) eviction of Docker images";
+    homepage = "https://github.com/stepchowfun/docuum";
+    changelog = "https://github.com/stepchowfun/docuum/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "docuum";
+  };
+}
diff --git a/pkgs/by-name/do/doge/package.nix b/pkgs/by-name/do/doge/package.nix
index d35d6708bdf25..4b64f8a7dfff2 100644
--- a/pkgs/by-name/do/doge/package.nix
+++ b/pkgs/by-name/do/doge/package.nix
@@ -5,13 +5,13 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "doge";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "Olivia5k";
     repo = "doge";
     rev = version;
-    hash = "sha256-LmEbDQUZe/3lg/Ze+WUNyYfC8zMr88/rn10sL0jgbGA=";
+    hash = "sha256-CZw9Pz9YPVmDMOfDp5yIp/yStOvXEzAgb/HvKpxhQ8I=";
   };
 
   pyproject = true;
diff --git a/pkgs/by-name/do/dotnet-outdated/deps.nix b/pkgs/by-name/do/dotnet-outdated/deps.nix
new file mode 100644
index 0000000000000..5bcfeb832346e
--- /dev/null
+++ b/pkgs/by-name/do/dotnet-outdated/deps.nix
@@ -0,0 +1,42 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "CsvHelper"; version = "30.0.1"; sha256 = "0v01s672zcrd3fjwzh14dihbal3apzyg3dc80k05a90ljk8yh9wl"; })
+  (fetchNuGet { pname = "McMaster.Extensions.CommandLineUtils"; version = "4.0.2"; sha256 = "1x2a60vjq0n6mb7bfjlggbvp8vpq0m7ls5x4bwff2g2qxhw09rbv"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "7.0.0"; sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "7.0.0"; sha256 = "121zs4jp8iimgbpzm3wsglhjwkc06irg1pxy8c1zcdlsg34cfq1p"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "7.0.0"; sha256 = "181d7mp9307fs17lyy42f8cxnjwysddmpsalky4m0pqxcimnr6g7"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
+  (fetchNuGet { pname = "NuGet.Common"; version = "6.8.0"; sha256 = "0l3ij8iwy7wj6s7f93lzi9168r4wz8zyin6a08iwgk7hvq44cia1"; })
+  (fetchNuGet { pname = "NuGet.Configuration"; version = "6.8.0"; sha256 = "0x03p408smkmv1gv7pmvsia4lkn0xaj4wfrkl58pjf8bbv51y0yw"; })
+  (fetchNuGet { pname = "NuGet.Credentials"; version = "6.8.0"; sha256 = "0dypmdkibgm5d9imhjnpgpdi6kmg6cnlvc7lc9w4v7ijflril15l"; })
+  (fetchNuGet { pname = "NuGet.DependencyResolver.Core"; version = "6.8.0"; sha256 = "0da44ni1g6s3fkzmhymbcv98fcpd31bfmivq4cg90d0wiig85wvw"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "6.8.0"; sha256 = "0i2xvhgkjkjr496i3pg8hamwv6505fia45qhn7jg5m01wb3cvsjl"; })
+  (fetchNuGet { pname = "NuGet.LibraryModel"; version = "6.8.0"; sha256 = "13qn64jckc9fd7yx5nwsxpj1i9gndlks35w0bdsfy8gc791wqdy4"; })
+  (fetchNuGet { pname = "NuGet.Packaging"; version = "6.8.0"; sha256 = "031z4s905bxi94h3f0qy4j1b6jxdxgqgpkzqvvpfxch07szxcbim"; })
+  (fetchNuGet { pname = "NuGet.ProjectModel"; version = "6.8.0"; sha256 = "1619jxp12cggspnwpk2x99s6h4z7gbc6kyngkij5cjd5wwc05haj"; })
+  (fetchNuGet { pname = "NuGet.Protocol"; version = "6.8.0"; sha256 = "1d7hpdhrwv2fj7kzhqs6bp03vq9krv87jgxdhz0n9mih3zank4y0"; })
+  (fetchNuGet { pname = "NuGet.Versioning"; version = "6.8.0"; sha256 = "1sd25h46fd12ng780r02q4ijcx1imkb53kj1y2y7cwg5myh537ks"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
+  (fetchNuGet { pname = "System.Formats.Asn1"; version = "6.0.0"; sha256 = "1vvr7hs4qzjqb37r0w1mxq7xql2b17la63jwvmgv65s1hj00g8r9"; })
+  (fetchNuGet { pname = "System.IO.Abstractions"; version = "19.2.64"; sha256 = "1hgii2s97wima8cx2nabvmsg7ij6rl23x436zb9naj97kssfyxw4"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "5.0.0"; sha256 = "06hkx2za8jifpslkh491dfwzm5dxrsyxzj5lsc0achb6yzg4zqlw"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "6.0.4"; sha256 = "0hh5h38pnxmlrnvs72f2hzzpz4b2caiiv6xf8y7fzdg84r3imvfr"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.3"; sha256 = "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "19.2.64"; sha256 = "0ayrz1n777cgjgnp4iff90z43s9w3df62r93nkxg6wkga8v0dyr5"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "19.2.64"; sha256 = "0l2lv45mcr54b8h37bwqag9n9qbh8vyyxz88mw6pcdz2k3z475jc"; })
+]
diff --git a/pkgs/by-name/do/dotnet-outdated/package.nix b/pkgs/by-name/do/dotnet-outdated/package.nix
new file mode 100644
index 0000000000000..71e86de281aeb
--- /dev/null
+++ b/pkgs/by-name/do/dotnet-outdated/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchFromGitHub
+, buildDotnetModule
+, dotnetCorePackages
+}:
+let
+  dotnet-sdk = with dotnetCorePackages; combinePackages [ sdk_6_0 sdk_7_0 sdk_8_0 ];
+
+in buildDotnetModule rec {
+  pname = "dotnet-outdated";
+  version = "4.6.0";
+
+  src = fetchFromGitHub {
+    owner = "dotnet-outdated";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-U5qCM+Um8bRafrDpbI5TnSN1nQ8mQpZ5W8Jao2hdAPw=";
+  };
+
+  inherit dotnet-sdk;
+  dotnet-runtime = dotnetCorePackages.runtime_8_0;
+  useDotnetFromEnv = true;
+
+  nugetDeps = ./deps.nix;
+
+  projectFile = "src/DotNetOutdated/DotNetOutdated.csproj";
+  executables = "dotnet-outdated";
+
+  dotnetInstallFlags = [ "--framework" "net8.0" ];
+
+  meta = with lib; {
+    description = "A .NET Core global tool to display and update outdated NuGet packages in a project";
+    homepage = "https://github.com/dotnet-outdated/dotnet-outdated";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      # deps
+      binaryBytecode
+      binaryNativeCode
+    ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ emilioziniades ];
+    mainProgram = "dotnet-outdated";
+  };
+}
diff --git a/pkgs/by-name/dy/dynamodb-local/package.nix b/pkgs/by-name/dy/dynamodb-local/package.nix
index b22a5c2fd8c79..846f8cac68b4c 100644
--- a/pkgs/by-name/dy/dynamodb-local/package.nix
+++ b/pkgs/by-name/dy/dynamodb-local/package.nix
@@ -19,6 +19,7 @@ let
       "java.xml"
       "java.desktop"
       "java.management"
+      "java.naming"
     ];
     jdk = jdk_headless;
   };
diff --git a/pkgs/by-name/ez/eza/package.nix b/pkgs/by-name/ez/eza/package.nix
index 76064b122cbcd..73818c14c2a5f 100644
--- a/pkgs/by-name/ez/eza/package.nix
+++ b/pkgs/by-name/ez/eza/package.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "eza";
-  version = "0.18.8";
+  version = "0.18.9";
 
   src = fetchFromGitHub {
     owner = "eza-community";
     repo = "eza";
     rev = "v${version}";
-    hash = "sha256-VKBiISHZmSqLf/76svKHqmQtsj+Trz41GhCJxgGY76Y=";
+    hash = "sha256-SXGJTxTHCizgVBLp5fO5Appfe1B3+DFrobxc/aIlJRo=";
   };
 
-  cargoHash = "sha256-xFLnd0Pw3AtA4Nrg5rlqJj0fYOZ2xeNtS5vnAMWk4sc=";
+  cargoHash = "sha256-COq1WSX7DUoXb7ojISyzmDV/a3zqXI0oKCSsPPi4/CA=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
   buildInputs = [ zlib ]
diff --git a/pkgs/by-name/fa/fantomas/package.nix b/pkgs/by-name/fa/fantomas/package.nix
index b0e3677a92305..cbf8ba89dd38c 100644
--- a/pkgs/by-name/fa/fantomas/package.nix
+++ b/pkgs/by-name/fa/fantomas/package.nix
@@ -2,9 +2,9 @@
 
 buildDotnetGlobalTool {
   pname = "fantomas";
-  version = "6.2.3";
+  version = "6.3.0";
 
-  nugetSha256 = "sha256-Aol10o5Q7l8s6SdX0smVdi3ec2IgAx+gMksAMjXhIfU=";
+  nugetSha256 = "sha256-PWiyzkiDL8LBE/fwClS0d6PrE0D5pKYYZiMDZmyk9Y0=";
 
   meta = with lib; {
     description = "F# source code formatter";
diff --git a/pkgs/by-name/fa/fastcdr/package.nix b/pkgs/by-name/fa/fastcdr/package.nix
index ef9042b0982ee..d1976559b69d8 100644
--- a/pkgs/by-name/fa/fastcdr/package.nix
+++ b/pkgs/by-name/fa/fastcdr/package.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fastcdr";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "eProsima";
     repo = "Fast-CDR";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-hhYNgBLJCTZV/fgHEH7rxlTy+qpShAykxHLbPtPA/Uw=";
+    hash = "sha256-9eIPGGrDBsxLbX+oR++jg8ddUYKOC3nLnqg0q1bxPZU=";
   };
 
   patches = [
diff --git a/pkgs/by-name/fa/fastqc/package.nix b/pkgs/by-name/fa/fastqc/package.nix
new file mode 100644
index 0000000000000..e7973ab0d602c
--- /dev/null
+++ b/pkgs/by-name/fa/fastqc/package.nix
@@ -0,0 +1,83 @@
+{ lib,
+  stdenv,
+  fetchzip,
+  jre,
+  perl,
+  makeWrapper,
+  imagemagick,
+  makeDesktopItem,
+  copyDesktopItems,
+  desktopToDarwinBundle,
+  testers
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fastqc";
+  version = "0.12.1";
+
+  src = fetchzip {
+    url = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v${finalAttrs.version}.zip";
+    hash = "sha256-TenRG2x8ivJ2HM2ZpLaJShp0yI0Qc6K5lW5/NJFAa1I";
+  };
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper imagemagick ]
+                      ++ lib.optional stdenv.isLinux copyDesktopItems # postInstallHook
+                      ++ lib.optional stdenv.isDarwin desktopToDarwinBundle; #fixupOutputHook
+  buildInputs = [ jre perl];
+
+  desktopItem = (makeDesktopItem {
+    name = "FastQC";
+    exec = "fastqc";
+    icon = "fastqc";
+    desktopName = "FastQC";
+    comment = finalAttrs.meta.description;
+    categories = [ "Science" ];
+  });
+  desktopItems = [ finalAttrs.desktopItem ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,FastQC}
+    cp -r $src/* $out/FastQC
+
+    # Create desktop item
+    mkdir -p $out/share/{applications,icons}
+    # Freedesktop doesn't support windows ICO files. Use imagemagick to convert it to PNG
+    convert $out/FastQC/fastqc_icon.ico $out/share/icons/fastqc.png
+
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    makeWrapper $out/FastQC/fastqc $out/bin/fastqc --prefix PATH : ${jre}/bin
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = finalAttrs.finalPackage;
+    version = "v${finalAttrs.version}";
+  };
+
+  meta = {
+    description = "A quality control application for high throughput sequence data";
+    longDescription = ''
+    FastQC aims to provide a simple way to do some quality control checks on raw sequence data coming from high throughput sequencing pipelines. It provides a modular set of analyses which you can use to give a quick impression of whether your data has any problems of which you should be aware before doing any further analysis.
+
+    The main functions of FastQC are
+
+    - Import of data from BAM, SAM or FastQ files (any variant)
+    - Providing a quick overview to tell you in which areas there may be problems
+    - Summary graphs and tables to quickly assess your data
+    - Export of results to an HTML based permanent report
+    - Offline operation to allow automated generation of reports without running the interactive application
+    '';
+    homepage = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/";
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+    license = with lib.licenses; [ gpl3Plus asl20 ];
+    maintainers = [ lib.maintainers.dflores ];
+    mainProgram = "fastqc";
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/fi/fido2luks/0001-libcryptsetup-rs-bump-version-to-0.9-55.patch b/pkgs/by-name/fi/fido2luks/0001-libcryptsetup-rs-bump-version-to-0.9-55.patch
new file mode 100644
index 0000000000000..0d40ae23f345f
--- /dev/null
+++ b/pkgs/by-name/fi/fido2luks/0001-libcryptsetup-rs-bump-version-to-0.9-55.patch
@@ -0,0 +1,343 @@
+From 21d57c61575e76d80f812ff332b808bcc714a47b Mon Sep 17 00:00:00 2001
+From: Quantenzitrone <general@dev.quantenzitrone.eu>
+Date: Tue, 19 Mar 2024 17:46:17 +0100
+Subject: [PATCH 1/2] libcryptsetup-rs: bump version to 0.9 #55
+
+---
+ Cargo.lock | 146 ++++++++++++++++++++++++++++++++++++++++-------------
+ Cargo.toml |   2 +-
+ 2 files changed, 111 insertions(+), 37 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 530d1d4..343390f 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -73,25 +73,51 @@ version = "0.59.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8"
+ dependencies = [
+- "bitflags",
++ "bitflags 1.3.2",
+  "cexpr",
+  "clang-sys",
+  "lazy_static",
+  "lazycell",
+  "peeking_take_while",
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "regex",
+  "rustc-hash",
+  "shlex",
+ ]
+ 
++[[package]]
++name = "bindgen"
++version = "0.68.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
++dependencies = [
++ "bitflags 2.5.0",
++ "cexpr",
++ "clang-sys",
++ "lazy_static",
++ "lazycell",
++ "peeking_take_while",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
++ "regex",
++ "rustc-hash",
++ "shlex",
++ "syn 2.0.53",
++]
++
+ [[package]]
+ name = "bitflags"
+ version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+ 
++[[package]]
++name = "bitflags"
++version = "2.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
++
+ [[package]]
+ name = "bstr"
+ version = "0.2.17"
+@@ -166,7 +192,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+ dependencies = [
+  "ansi_term",
+  "atty",
+- "bitflags",
++ "bitflags 1.3.2",
+  "strsim 0.8.0",
+  "textwrap",
+  "unicode-width",
+@@ -179,7 +205,7 @@ version = "0.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+ dependencies = [
+- "bitflags",
++ "bitflags 1.3.2",
+ ]
+ 
+ [[package]]
+@@ -317,8 +343,8 @@ checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
+ dependencies = [
+  "fnv",
+  "ident_case",
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "strsim 0.9.3",
+  "syn 1.0.101",
+ ]
+@@ -330,7 +356,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
+ dependencies = [
+  "darling_core",
+- "quote 1.0.21",
++ "quote 1.0.35",
+  "syn 1.0.101",
+ ]
+ 
+@@ -342,8 +368,8 @@ checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0"
+ dependencies = [
+  "darling",
+  "derive_builder_core",
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "syn 1.0.101",
+ ]
+ 
+@@ -354,8 +380,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef"
+ dependencies = [
+  "darling",
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "syn 1.0.101",
+ ]
+ 
+@@ -381,8 +407,8 @@ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+ dependencies = [
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "syn 1.0.101",
+  "synstructure",
+ ]
+@@ -394,7 +420,8 @@ dependencies = [
+  "ctap_hmac",
+  "failure",
+  "hex",
+- "libcryptsetup-rs",
++ "libcryptsetup-rs 0.5.1",
++ "libcryptsetup-rs 0.9.2",
+  "ring",
+  "rpassword",
+  "serde",
+@@ -500,9 +527,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+ 
+ [[package]]
+ name = "libc"
+-version = "0.2.133"
++version = "0.2.153"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966"
++checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+ 
+ [[package]]
+ name = "libcryptsetup-rs"
+@@ -513,7 +540,25 @@ dependencies = [
+  "either",
+  "lazy_static",
+  "libc",
+- "libcryptsetup-rs-sys",
++ "libcryptsetup-rs-sys 0.2.1",
++ "pkg-config",
++ "semver",
++ "serde_json",
++ "uuid",
++]
++
++[[package]]
++name = "libcryptsetup-rs"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "67dd3f8d51b4feb4acc765c063d45434fb7926fe979b20ee6f95dcd974b4dc0c"
++dependencies = [
++ "bitflags 2.5.0",
++ "either",
++ "lazy_static",
++ "libc",
++ "libcryptsetup-rs-sys 0.3.0",
++ "log",
+  "pkg-config",
+  "semver",
+  "serde_json",
+@@ -526,7 +571,19 @@ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "0af91b644699911c839309edbb8c8f6addd61e6b9553aa6d02ba71c37597afbe"
+ dependencies = [
+- "bindgen",
++ "bindgen 0.59.2",
++ "cc",
++ "pkg-config",
++ "semver",
++]
++
++[[package]]
++name = "libcryptsetup-rs-sys"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "20fc299fd05078d353a895d940fc463d1008d94258fc8096c095467549324707"
++dependencies = [
++ "bindgen 0.68.1",
+  "cc",
+  "pkg-config",
+  "semver",
+@@ -542,6 +599,12 @@ dependencies = [
+  "winapi",
+ ]
+ 
++[[package]]
++name = "log"
++version = "0.4.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
++
+ [[package]]
+ name = "maybe-uninit"
+ version = "2.0.0"
+@@ -636,8 +699,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+ dependencies = [
+  "proc-macro-error-attr",
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "syn 1.0.101",
+  "version_check",
+ ]
+@@ -648,8 +711,8 @@ version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+ dependencies = [
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "version_check",
+ ]
+ 
+@@ -664,9 +727,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.44"
++version = "1.0.79"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7bd7356a8122b6c4a24a82b278680c73357984ca2fc79a0f9fa6dea7dced7c58"
++checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+ dependencies = [
+  "unicode-ident",
+ ]
+@@ -682,11 +745,11 @@ dependencies = [
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.21"
++version = "1.0.35"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
++checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+ dependencies = [
+- "proc-macro2 1.0.44",
++ "proc-macro2 1.0.79",
+ ]
+ 
+ [[package]]
+@@ -931,8 +994,8 @@ version = "1.0.145"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
+ dependencies = [
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "syn 1.0.101",
+ ]
+ 
+@@ -984,8 +1047,8 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+ dependencies = [
+  "heck",
+  "proc-macro-error",
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "syn 1.0.101",
+ ]
+ 
+@@ -1006,8 +1069,19 @@ version = "1.0.101"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2"
+ dependencies = [
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
++ "unicode-ident",
++]
++
++[[package]]
++name = "syn"
++version = "2.0.53"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
++dependencies = [
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "unicode-ident",
+ ]
+ 
+@@ -1017,8 +1091,8 @@ version = "0.12.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+ dependencies = [
+- "proc-macro2 1.0.44",
+- "quote 1.0.21",
++ "proc-macro2 1.0.79",
++ "quote 1.0.35",
+  "syn 1.0.101",
+  "unicode-xid 0.2.4",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index 7edf572..9386e13 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -31,7 +31,7 @@ hex = "0.3.2"
+ ring = "0.13.5"
+ failure = "0.1.5"
+ rpassword = "4.0.1"
+-libcryptsetup-rs = "0.5.1"
++libcryptsetup-rs = "0.9"
+ structopt = "0.3.2"
+ 
+ [profile.release]
+-- 
+2.43.2
+
diff --git a/pkgs/by-name/fi/fido2luks/0002-cargo-update.patch b/pkgs/by-name/fi/fido2luks/0002-cargo-update.patch
new file mode 100644
index 0000000000000..3e8ca4baaf9bf
--- /dev/null
+++ b/pkgs/by-name/fi/fido2luks/0002-cargo-update.patch
@@ -0,0 +1,654 @@
+From 3b097c545c3e6ffd1cd91d5ea73f20853b11d645 Mon Sep 17 00:00:00 2001
+From: Quantenzitrone <general@dev.quantenzitrone.eu>
+Date: Tue, 19 Mar 2024 17:46:55 +0100
+Subject: [PATCH 2/2] cargo update
+
+---
+ Cargo.lock | 281 ++++++++++++++++++++++++++++++++---------------------
+ 1 file changed, 170 insertions(+), 111 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 343390f..036047d 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4,9 +4,9 @@ version = 3
+ 
+ [[package]]
+ name = "addr2line"
+-version = "0.17.0"
++version = "0.21.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
++checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+ dependencies = [
+  "gimli",
+ ]
+@@ -17,6 +17,15 @@ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+ 
++[[package]]
++name = "aho-corasick"
++version = "1.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
++dependencies = [
++ "memchr",
++]
++
+ [[package]]
+ name = "ansi_term"
+ version = "0.12.1"
+@@ -54,9 +63,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+ 
+ [[package]]
+ name = "backtrace"
+-version = "0.3.66"
++version = "0.3.69"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"
++checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+ dependencies = [
+  "addr2line",
+  "cc",
+@@ -69,9 +78,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "bindgen"
+-version = "0.59.2"
++version = "0.63.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8"
++checksum = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
+ dependencies = [
+  "bitflags 1.3.2",
+  "cexpr",
+@@ -84,6 +93,7 @@ dependencies = [
+  "regex",
+  "rustc-hash",
+  "shlex",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -118,23 +128,11 @@ version = "2.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+ 
+-[[package]]
+-name = "bstr"
+-version = "0.2.17"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
+-dependencies = [
+- "lazy_static",
+- "memchr",
+- "regex-automata",
+- "serde",
+-]
+-
+ [[package]]
+ name = "byteorder"
+-version = "1.4.3"
++version = "1.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
++checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+ 
+ [[package]]
+ name = "cbor-codec"
+@@ -148,9 +146,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "cc"
+-version = "1.0.73"
++version = "1.0.90"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
++checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+ 
+ [[package]]
+ name = "cexpr"
+@@ -175,9 +173,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+ 
+ [[package]]
+ name = "clang-sys"
+-version = "1.4.0"
++version = "1.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
++checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
+ dependencies = [
+  "glob",
+  "libc",
+@@ -282,22 +280,21 @@ dependencies = [
+ 
+ [[package]]
+ name = "csv"
+-version = "1.1.6"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
++checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+ dependencies = [
+- "bstr",
+  "csv-core",
+- "itoa 0.4.8",
++ "itoa",
+  "ryu",
+  "serde",
+ ]
+ 
+ [[package]]
+ name = "csv-core"
+-version = "0.1.10"
++version = "0.1.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
++checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+ dependencies = [
+  "memchr",
+ ]
+@@ -346,7 +343,7 @@ dependencies = [
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+  "strsim 0.9.3",
+- "syn 1.0.101",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -357,7 +354,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
+ dependencies = [
+  "darling_core",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -370,7 +367,7 @@ dependencies = [
+  "derive_builder_core",
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -382,14 +379,14 @@ dependencies = [
+  "darling",
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+ name = "either"
+-version = "1.8.0"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
++checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+ 
+ [[package]]
+ name = "failure"
+@@ -409,7 +406,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+ dependencies = [
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 1.0.109",
+  "synstructure",
+ ]
+ 
+@@ -450,9 +447,9 @@ checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+ 
+ [[package]]
+ name = "getrandom"
+-version = "0.2.7"
++version = "0.2.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
++checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+ dependencies = [
+  "cfg-if 1.0.0",
+  "libc",
+@@ -461,15 +458,15 @@ dependencies = [
+ 
+ [[package]]
+ name = "gimli"
+-version = "0.26.2"
++version = "0.28.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d"
++checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+ 
+ [[package]]
+ name = "glob"
+-version = "0.3.0"
++version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+ 
+ [[package]]
+ name = "heck"
+@@ -503,15 +500,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+ 
+ [[package]]
+ name = "itoa"
+-version = "0.4.8"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+-
+-[[package]]
+-name = "itoa"
+-version = "1.0.3"
++version = "1.0.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
++checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+ 
+ [[package]]
+ name = "lazy_static"
+@@ -540,7 +531,7 @@ dependencies = [
+  "either",
+  "lazy_static",
+  "libc",
+- "libcryptsetup-rs-sys 0.2.1",
++ "libcryptsetup-rs-sys 0.2.4",
+  "pkg-config",
+  "semver",
+  "serde_json",
+@@ -567,11 +558,11 @@ dependencies = [
+ 
+ [[package]]
+ name = "libcryptsetup-rs-sys"
+-version = "0.2.1"
++version = "0.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0af91b644699911c839309edbb8c8f6addd61e6b9553aa6d02ba71c37597afbe"
++checksum = "d7c355c283a470a1a09924182b3606999786979697753df3c2206948dcd8f4eb"
+ dependencies = [
+- "bindgen 0.59.2",
++ "bindgen 0.63.0",
+  "cc",
+  "pkg-config",
+  "semver",
+@@ -591,12 +582,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "libloading"
+-version = "0.7.3"
++version = "0.8.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
++checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
+ dependencies = [
+  "cfg-if 1.0.0",
+- "winapi",
++ "windows-targets",
+ ]
+ 
+ [[package]]
+@@ -613,9 +604,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+ 
+ [[package]]
+ name = "memchr"
+-version = "2.5.0"
++version = "2.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
++checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+ 
+ [[package]]
+ name = "memoffset"
+@@ -634,18 +625,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+ 
+ [[package]]
+ name = "miniz_oxide"
+-version = "0.5.4"
++version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
++checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+ dependencies = [
+  "adler",
+ ]
+ 
+ [[package]]
+ name = "nom"
+-version = "7.1.1"
++version = "7.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
++checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+ dependencies = [
+  "memchr",
+  "minimal-lexical",
+@@ -664,18 +655,18 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-traits"
+-version = "0.2.15"
++version = "0.2.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
++checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+ dependencies = [
+  "autocfg 1.1.0",
+ ]
+ 
+ [[package]]
+ name = "object"
+-version = "0.29.0"
++version = "0.32.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53"
++checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+ dependencies = [
+  "memchr",
+ ]
+@@ -688,9 +679,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+ 
+ [[package]]
+ name = "pkg-config"
+-version = "0.3.25"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
++checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+ 
+ [[package]]
+ name = "proc-macro-error"
+@@ -701,7 +692,7 @@ dependencies = [
+  "proc-macro-error-attr",
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 1.0.109",
+  "version_check",
+ ]
+ 
+@@ -892,24 +883,32 @@ dependencies = [
+ 
+ [[package]]
+ name = "regex"
+-version = "1.6.0"
++version = "1.10.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
++checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+ dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-automata",
+  "regex-syntax",
+ ]
+ 
+ [[package]]
+ name = "regex-automata"
+-version = "0.1.10"
++version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
++checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++]
+ 
+ [[package]]
+ name = "regex-syntax"
+-version = "0.6.27"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
++checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+ 
+ [[package]]
+ name = "ring"
+@@ -948,9 +947,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "rustc-demangle"
+-version = "0.1.21"
++version = "0.1.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
++checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+ 
+ [[package]]
+ name = "rustc-hash"
+@@ -960,61 +959,64 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+ 
+ [[package]]
+ name = "rustc-serialize"
+-version = "0.3.24"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
++checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401"
+ 
+ [[package]]
+ name = "ryu"
+-version = "1.0.11"
++version = "1.0.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
++checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+ 
+ [[package]]
+ name = "scopeguard"
+-version = "1.1.0"
++version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+ 
+ [[package]]
+ name = "semver"
+-version = "1.0.14"
++version = "1.0.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
++checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+ 
+ [[package]]
+ name = "serde"
+-version = "1.0.145"
++version = "1.0.197"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
++checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
++dependencies = [
++ "serde_derive",
++]
+ 
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.145"
++version = "1.0.197"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
++checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+ dependencies = [
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 2.0.53",
+ ]
+ 
+ [[package]]
+ name = "serde_json"
+-version = "1.0.85"
++version = "1.0.114"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44"
++checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+ dependencies = [
+- "itoa 1.0.3",
++ "itoa",
+  "ryu",
+  "serde",
+ ]
+ 
+ [[package]]
+ name = "shlex"
+-version = "1.1.0"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
++checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+ 
+ [[package]]
+ name = "strsim"
+@@ -1049,7 +1051,7 @@ dependencies = [
+  "proc-macro-error",
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -1065,9 +1067,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "syn"
+-version = "1.0.101"
++version = "1.0.109"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2"
++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+ dependencies = [
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+@@ -1093,7 +1095,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+ dependencies = [
+  "proc-macro2 1.0.79",
+  "quote 1.0.35",
+- "syn 1.0.101",
++ "syn 1.0.109",
+  "unicode-xid 0.2.4",
+ ]
+ 
+@@ -1108,9 +1110,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "time"
+-version = "0.1.44"
++version = "0.1.45"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
++checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
+ dependencies = [
+  "libc",
+  "wasi 0.10.0+wasi-snapshot-preview1",
+@@ -1119,21 +1121,21 @@ dependencies = [
+ 
+ [[package]]
+ name = "unicode-ident"
+-version = "1.0.4"
++version = "1.0.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+ 
+ [[package]]
+ name = "unicode-segmentation"
+-version = "1.10.0"
++version = "1.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
++checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+ 
+ [[package]]
+ name = "unicode-width"
+-version = "0.1.10"
++version = "0.1.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
++checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+ 
+ [[package]]
+ name = "unicode-xid"
+@@ -1155,9 +1157,9 @@ checksum = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f"
+ 
+ [[package]]
+ name = "uuid"
+-version = "1.1.2"
++version = "1.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f"
++checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+ dependencies = [
+  "getrandom",
+ ]
+@@ -1207,3 +1209,60 @@ 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-targets"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
++dependencies = [
++ "windows_aarch64_gnullvm",
++ "windows_aarch64_msvc",
++ "windows_i686_gnu",
++ "windows_i686_msvc",
++ "windows_x86_64_gnu",
++ "windows_x86_64_gnullvm",
++ "windows_x86_64_msvc",
++]
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.52.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+-- 
+2.43.2
+
diff --git a/pkgs/by-name/fi/fido2luks/package.nix b/pkgs/by-name/fi/fido2luks/package.nix
new file mode 100644
index 0000000000000..0504959697c6a
--- /dev/null
+++ b/pkgs/by-name/fi/fido2luks/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  cryptsetup,
+  pkg-config,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "fido2luks";
+  version = "0.2.21";
+
+  src = fetchFromGitHub {
+    owner = "shimunn";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-bXwaFiRHURvS5KtTqIj+3GlGNbEulDgMDP51ZiO1w9o=";
+  };
+
+  cargoPatches = [
+    ./0001-libcryptsetup-rs-bump-version-to-0.9-55.patch
+    ./0002-cargo-update.patch
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+  ];
+
+  buildInputs = [ cryptsetup ];
+
+  cargoHash = "sha256-BcwcgQzNH1p9pOVbelaGTN7bKqDgvxD4Red2JeavpJQ=";
+
+  meta = {
+    description = "Decrypt your LUKS partition using a FIDO2 compatible authenticator";
+    homepage = "https://github.com/shimunn/fido2luks";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ mmahut ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/fi/files-cli/package.nix b/pkgs/by-name/fi/files-cli/package.nix
index 89b7854bc4f51..b09448fd18170 100644
--- a/pkgs/by-name/fi/files-cli/package.nix
+++ b/pkgs/by-name/fi/files-cli/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "files-cli";
-  version = "2.12.44";
+  version = "2.12.46";
 
   src = fetchFromGitHub {
     repo = "files-cli";
     owner = "files-com";
     rev = "v${version}";
-    hash = "sha256-6Y+MJCPDa64vCbg7aIqWuT6HaIFf36g++7STIVKj6GU=";
+    hash = "sha256-GloZt9vAh+b65iOy4qqrH1Os1Ygh45sP9lZepxTs0qc=";
   };
 
-  vendorHash = "sha256-gP41EI5rZuiGzPkzWOGB69o57YSVYIvpDaKHAHtFaHM=";
+  vendorHash = "sha256-pT8+s/xzsDXul8S+8JF18MRJv6FgoNDcwnL12Wkxryo=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/fl/flarectl/package.nix b/pkgs/by-name/fl/flarectl/package.nix
index a907ce7ae5c7c..e6497b05f91bd 100644
--- a/pkgs/by-name/fl/flarectl/package.nix
+++ b/pkgs/by-name/fl/flarectl/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.91.0";
+  version = "0.92.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-T9Xv7EDQfaGOIryvH8TVxrOcIrJWUEsnZ7PpU9Lmv3Y=";
+    hash = "sha256-nmDW8ALhyp5McnX86JN51kJSo0bUvwTsHnQkfKSxJMM=";
   };
 
   vendorHash = "sha256-F1fwzzBg60E7B9iPV0gziGB3WE1tcZ/6nMpnEyTjV1g=";
diff --git a/pkgs/by-name/fl/flashprog/package.nix b/pkgs/by-name/fl/flashprog/package.nix
index 7cf95b62e5c2e..509c0fb5504a1 100644
--- a/pkgs/by-name/fl/flashprog/package.nix
+++ b/pkgs/by-name/fl/flashprog/package.nix
@@ -2,15 +2,17 @@
 , installShellFiles
 , lib
 , libftdi1
-, libgpiod_1
+, libgpiod
 , libjaylink
 , libusb1
 , pciutils
 , pkg-config
 , stdenv
+, withJlink ? true
+, withGpio ? stdenv.isLinux
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "flashprog";
   version = "1.0.1";
 
@@ -24,24 +26,36 @@ stdenv.mkDerivation rec {
     installShellFiles
     pkg-config
   ];
-
   buildInputs = [
     libftdi1
-    libjaylink
     libusb1
   ] ++ lib.optionals (!stdenv.isDarwin) [
-    libgpiod_1
     pciutils
+  ] ++ lib.optionals (withJlink) [
+    libjaylink
+  ] ++ lib.optionals (withGpio) [
+    libgpiod
   ];
 
-  makeFlags = [ "PREFIX=$(out)" "libinstall" ]
-    ++ lib.optionals stdenv.isDarwin [ "CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no" ]
-    ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ "CONFIG_INTERNAL_X86=no" "CONFIG_INTERNAL_DMI=no" "CONFIG_RAYER_SPI=0" ];
+  makeFlags =
+    let
+      yesNo = flag: if flag then "yes" else "no";
+    in
+    [
+      "libinstall"
+      "PREFIX=$(out)"
+      "CONFIG_JLINK_SPI=${yesNo withJlink}"
+      "CONFIG_LINUX_GPIO_SPI=${yesNo withGpio}"
+      "CONFIG_ENABLE_LIBPCI_PROGRAMMERS=${yesNo (!stdenv.isDarwin)}"
+      "CONFIG_INTERNAL_X86=${yesNo (!(stdenv.isDarwin) && stdenv.isx86_64)}"
+      "CONFIG_INTERNAL_DMI=${yesNo (!(stdenv.isDarwin) && stdenv.isx86_64)}"
+      "CONFIG_RAYER_SPI=${yesNo (!(stdenv.isDarwin) && stdenv.isx86_64)}"
+    ];
 
   meta = with lib; {
     homepage = "https://flashprog.org";
     description = "Utility for reading, writing, erasing and verifying flash ROM chips";
-    license = with licenses; [ gpl2 gpl2Plus ];
+    license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ felixsinger ];
     platforms = platforms.all;
     mainProgram = "flashprog";
diff --git a/pkgs/by-name/fo/folio/package.nix b/pkgs/by-name/fo/folio/package.nix
index 08030d25def21..92bd8ca711d4c 100644
--- a/pkgs/by-name/fo/folio/package.nix
+++ b/pkgs/by-name/fo/folio/package.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "folio";
-  version = "24.08";
+  version = "24.09";
 
   src = fetchFromGitHub {
     owner = "toolstack";
     repo = "Folio";
     rev = version;
-    hash = "sha256-IwcLz5b2aEVUE0YS3qZ3238ksucQFpPl3eQGIjQo+pA=";
+    hash = "sha256-D9jjoOVDJa90tpb8AW93xLyXW/meyMp1pCYK52DsJN0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/gc/gcs/package.nix b/pkgs/by-name/gc/gcs/package.nix
index 406db2018624b..1493836491af4 100644
--- a/pkgs/by-name/gc/gcs/package.nix
+++ b/pkgs/by-name/gc/gcs/package.nix
@@ -56,7 +56,7 @@ buildGoModule rec {
   ];
 
   # flags are based on https://github.com/richardwilkes/gcs/blob/master/build.sh
-  flags = [ "-a -trimpath" ];
+  flags = [ "-a" ];
   ldflags = [ "-s" "-w" "-X github.com/richardwilkes/toolbox/cmdline.AppVersion=${version}" ];
 
   installPhase = ''
diff --git a/pkgs/by-name/gi/git-upstream/package.nix b/pkgs/by-name/gi/git-upstream/package.nix
new file mode 100644
index 0000000000000..26d63852b61f5
--- /dev/null
+++ b/pkgs/by-name/gi/git-upstream/package.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  nix-update-script,
+}: let
+  pname = "git-upstream";
+  version = "1.1.0";
+in
+  rustPlatform.buildRustPackage {
+    inherit pname version;
+
+    src = fetchFromGitHub {
+      owner = "9999years";
+      repo = pname;
+      rev = "refs/tags/v${version}";
+      hash = "sha256-Pq0Z1WwrTP7dCwk6V/E0zu9sLLWr3kNuT3aJRZuRzhI=";
+    };
+
+    cargoHash = "sha256-jNpleFrOvt1m2TXTeBXfhTSjWNpCknNoKooF2xsO46w=";
+
+    meta = with lib; {
+      homepage = "https://github.com/9999years/git-upstream";
+      description = "A shortcut for `git push --set-upstream`";
+      license = [licenses.mit];
+      maintainers = [maintainers._9999years];
+      mainProgram = "git-upstream";
+    };
+
+    passthru.updateScript = nix-update-script {};
+  }
diff --git a/pkgs/by-name/gi/gitu/package.nix b/pkgs/by-name/gi/gitu/package.nix
index c990d82bd1cec..fbe9d06906fe7 100644
--- a/pkgs/by-name/gi/gitu/package.nix
+++ b/pkgs/by-name/gi/gitu/package.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitu";
-  version = "0.8.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "altsem";
     repo = "gitu";
     rev = "v${version}";
-    hash = "sha256-L5i+CkU4J/qLJ2zk9QJ6KCuF4qOzKidWSzVOVvRNG20=";
+    hash = "sha256-SAGihNV6lTFq0adNh7QDm7Mcg7kVCKq2IstFe965Lcc=";
   };
 
-  cargoHash = "sha256-g65nbBhBZe6q5A2OQaWuiM6RRjxL6qom9ht8m+BmROk=";
+  cargoHash = "sha256-RfjefPr/NuZaT56JkP1pDpH7I7K0vhIelwASEBQFJFc=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/by-name/gl/glas/package.nix b/pkgs/by-name/gl/glas/package.nix
new file mode 100644
index 0000000000000..ef9390bc04c09
--- /dev/null
+++ b/pkgs/by-name/gl/glas/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "glas";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "maurobalbi";
+    repo = "glas";
+    rev = "v${version}";
+    sha256 = "sha256-y1sPDCHIfECEhKP6EQs3kDrX/yM+ni0irfPe1c50jJU=";
+  };
+
+  cargoHash = "sha256-h27NqsVOW+LM83xtSAV7cvlRbznGE87aJb2/WeSmfOY=";
+
+  doInstallCheck = true;
+  postInstallCheck = ''
+    $out/bin/glas --help > /dev/null
+  '';
+
+  meta = {
+    description = "A language server for the Gleam programming language.";
+    homepage = "https://github.com/maurobalbi/glas";
+    changelog = "https://github.com/maurobalbi/glas/tag/v${version}";
+    license = with lib.licenses; [
+      asl20
+      mit
+    ];
+    mainProgram = "glas";
+    maintainers = with lib.maintainers; [ bhankas ];
+  };
+}
diff --git a/pkgs/by-name/gl/glasskube/package.nix b/pkgs/by-name/gl/glasskube/package.nix
index e9130bb321da7..91d2dcceef7cf 100644
--- a/pkgs/by-name/gl/glasskube/package.nix
+++ b/pkgs/by-name/gl/glasskube/package.nix
@@ -1,31 +1,64 @@
 { lib
 , buildGoModule
+, buildNpmPackage
 , fetchFromGitHub
 , nix-update-script
 , installShellFiles
 }:
 
-buildGoModule rec {
-  pname = "glasskube";
-  version = "0.0.4";
-
-  src = fetchFromGitHub {
+let
+  version = "0.1.0";
+  gitSrc = fetchFromGitHub {
     owner = "glasskube";
     repo = "glasskube";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+5SinF85bU113C9B025DM83v8ApaXqLV4n1P9zZP3ns=";
+    hash = "sha256-iJjO4V2sK3e/SpDZ5Lfw7gILgZrI4CGg0wLLVKthGUE=";
+  };
+  web-bundle = buildNpmPackage rec {
+    inherit version;
+    pname = "glasskube-web-bundle";
+
+    src = gitSrc;
+
+    npmDepsHash = "sha256-nv2ng8gUOi9K46bDuWt/Y3S6AJovUWaqM+8uGiu/QSs=";
+
+    dontNpmInstall = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir $out
+      mv internal/web/root/static/bundle $out
+
+      runHook postInstall
+    '';
   };
 
-  vendorHash = "sha256-DBqO2EyB1TydsdK2GWJoFGGgTS+E62GogysPX4WtzYU=";
+in buildGoModule rec {
+  inherit version;
+  pname = "glasskube";
+
+  src = gitSrc;
+
+  vendorHash = "sha256-iFWcTzZP0DKJ9hrmfUWR4U/VX2zsR+3uojI+GRI2R3I=";
 
   CGO_ENABLED = 0;
 
-  ldflags = [ "-s" "-w" "-X github.com/glasskube/glasskube/internal/config.Version=${version}" "-X github.com/glasskube/glasskube/internal/config.Commit=${src.rev}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/glasskube/glasskube/internal/config.Version=${version}"
+    "-X github.com/glasskube/glasskube/internal/config.Commit=${src.rev}"
+  ];
 
   subPackages = [ "cmd/${pname}" "cmd/package-operator" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
+  preBuild = ''
+    cp -r ${web-bundle}/bundle internal/web/root/static/bundle
+  '';
+
   postInstall = ''
     # Completions
     installShellCompletion --cmd glasskube \
@@ -37,9 +70,11 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "The missing Package Manager for Kubernetes featuring a GUI and a CLI";
+    description =
+      "The missing Package Manager for Kubernetes featuring a GUI and a CLI";
     homepage = "https://github.com/glasskube/glasskube";
-    changelog = "https://github.com/glasskube/glasskube/releases/tag/v${version}";
+    changelog =
+      "https://github.com/glasskube/glasskube/releases/tag/v${version}";
     maintainers = with maintainers; [ jakuzure ];
     license = licenses.asl20;
     mainProgram = "glasskube";
diff --git a/pkgs/by-name/go/goldwarden/package.nix b/pkgs/by-name/go/goldwarden/package.nix
index 35b18ab1e51c4..ad80debb3ee61 100644
--- a/pkgs/by-name/go/goldwarden/package.nix
+++ b/pkgs/by-name/go/goldwarden/package.nix
@@ -1,43 +1,102 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, makeBinaryWrapper
+, fetchpatch
+, gobject-introspection
+, gtk4
+, libadwaita
 , libfido2
-, dbus
-, pinentry-gnome3
-, nix-update-script
+, libnotify
+, python3
+, wrapGAppsHook
 }:
 
 buildGoModule rec {
   pname = "goldwarden";
-  version = "0.2.13";
+  version = "0.2.13-unstable-2024-03-14";
 
   src = fetchFromGitHub {
     owner = "quexten";
     repo = "goldwarden";
-    rev = "v${version}";
-    hash = "sha256-4KxPtsIEW46p+cFx6yeSdNlsffy9U31k+ZSkE6V0AFc=";
+    rev = "d6e1cd263365611e520a2ef6c7847c9da19362f1";
+    hash = "sha256-IItKOmE0xHKO2u5jp7R20/T2eSvQ3QCxlzp6R4oiqf8=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/quexten/goldwarden/pull/140/commits/c134a0e61d51079c44865f68ab65cfb3aea6f8f2.patch";
+      hash = "sha256-nClC/FYq3muXMeYXln+VVGUhanqElEgJRosWeSTNlmM=";
+    })
+    (fetchpatch {
+      url = "https://github.com/quexten/goldwarden/pull/140/commits/86d4f907fba241fd66d0fb3c109c0281a9766bb4.patch";
+      hash = "sha256-A8PBzfyd2blFIjCeO4xOVJMQjnEPwtK4wTcRcfsjyDk=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace browserbiometrics/chrome-com.8bit.bitwarden.json browserbiometrics/mozilla-com.8bit.bitwarden.json \
+      --replace-fail "@PATH@" "$out/bin/goldwarden"
+
+    substituteInPlace gui/com.quexten.Goldwarden.desktop \
+      --replace-fail "Exec=goldwarden_ui_main.py" "Exec=$out/bin/goldwarden-gui"
+    substituteInPlace gui/src/gui/browserbiometrics.py \
+      --replace-fail "flatpak run --filesystem=home --command=goldwarden com.quexten.Goldwarden" "goldwarden"
+    substituteInPlace gui/src/gui/ssh.py \
+      --replace-fail "flatpak run --command=goldwarden com.quexten.Goldwarden" "goldwarden" \
+      --replace-fail 'SSH_AUTH_SOCK=/home/$USER/.var/app/com.quexten.Goldwarden/data/ssh-auth-sock' 'SSH_AUTH_SOCK=/home/$USER/.goldwarden-ssh-agent.sock'
+    substituteInPlace gui/src/{linux/main.py,linux/monitors/dbus_monitor.py,gui/settings.py} \
+      --replace-fail "python3" "${(python3.buildEnv.override { extraLibs = pythonPath; }).interpreter}"
+  '';
+
   vendorHash = "sha256-IH0p7t1qInA9rNYv6ekxDN/BT5Kguhh4cZfmL+iqwVU=";
 
   ldflags = [ "-s" "-w" ];
 
-  nativeBuildInputs = [makeBinaryWrapper];
+  nativeBuildInputs = [
+    gobject-introspection
+    python3.pkgs.wrapPython
+    wrapGAppsHook
+  ];
 
-  buildInputs = [libfido2];
+  buildInputs = [
+    gtk4
+    libadwaita
+    libfido2
+    libnotify
+  ];
+
+  pythonPath = with python3.pkgs; [
+    dbus-python
+    pygobject3
+    tendo
+  ];
 
   postInstall = ''
-    wrapProgram $out/bin/goldwarden \
-      --suffix PATH : ${lib.makeBinPath [dbus pinentry-gnome3]}
+    chmod +x gui/goldwarden_ui_main.py
+    ln -s $out/share/goldwarden/goldwarden_ui_main.py $out/bin/goldwarden-gui
+    mkdir -p $out/share/goldwarden
+    cp -r gui/* $out/share/goldwarden/
+    rm $out/share/goldwarden/{com.quexten.Goldwarden.desktop,com.quexten.Goldwarden.metainfo.xml,goldwarden.svg,python3-requirements.json,requirements.txt}
+
+    install -D gui/com.quexten.Goldwarden.desktop -t $out/share/applications
+    install -D gui/goldwarden.svg -t $out/share/icons/hicolor/scalable/apps
+    install -Dm644 gui/com.quexten.Goldwarden.metainfo.xml -t $out/share/metainfo
+    install -Dm644 resources/com.quexten.goldwarden.policy -t $out/share/polkit-1/actions
 
-    install -Dm644 $src/resources/com.quexten.goldwarden.policy -t $out/share/polkit-1/actions
+    install -D browserbiometrics/chrome-com.8bit.bitwarden.json $out/etc/chrome/native-messaging-hosts/com.8bit.bitwarden.json
+    install -D browserbiometrics/chrome-com.8bit.bitwarden.json $out/etc/chromium/native-messaging-hosts/com.8bit.bitwarden.json
+    install -D browserbiometrics/chrome-com.8bit.bitwarden.json $out/etc/edge/native-messaging-hosts/com.8bit.bitwarden.json
+    install -D browserbiometrics/mozilla-com.8bit.bitwarden.json $out/lib/mozilla/native-messaging-hosts/com.8bit.bitwarden.json
   '';
 
-  passthru.updateScript = nix-update-script {};
+  dontWrapGApps = true;
+  postFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+    wrapPythonProgramsIn $out/share/goldwarden "$out/share/goldwarden $pythonPath"
+  '';
 
   meta = with lib; {
-    description = "A feature-packed Bitwarden compatible desktop integration";
+    description = "Feature-packed Bitwarden compatible desktop integration";
     homepage = "https://github.com/quexten/goldwarden";
     license = licenses.mit;
     maintainers = with maintainers; [ arthsmn ];
diff --git a/pkgs/by-name/gt/gtkhash/package.nix b/pkgs/by-name/gt/gtkhash/package.nix
new file mode 100644
index 0000000000000..63d0c788c976b
--- /dev/null
+++ b/pkgs/by-name/gt/gtkhash/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, meson
+, ninja
+, cmake
+, pkg-config
+, wrapGAppsHook
+, gtk3
+, glib
+, openssl
+, nettle
+, libb2
+, libgcrypt
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gtkhash";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    repo = "gtkhash";
+    owner = "gtkhash";
+    rev = "v${version}";
+    hash = "sha256-XpgTolpTSsW3i0xk19tt4cn9qANoeiq7YnBBR6g8ioU=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    cmake
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    openssl
+    nettle
+    libb2
+    libgcrypt
+  ];
+
+  strictDeps = true;
+  meta = with lib; {
+    description = "A cross-platform desktop utility for computing message digests or checksums";
+    homepage = "https://gtkhash.org";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ByteSudoer ];
+    mainProgram = "gtkhash";
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/gt/gtrash/package.nix b/pkgs/by-name/gt/gtrash/package.nix
index aee737aa83dff..fb354bada06c2 100644
--- a/pkgs/by-name/gt/gtrash/package.nix
+++ b/pkgs/by-name/gt/gtrash/package.nix
@@ -23,7 +23,6 @@ buildGoModule rec {
   doCheck = false;
 
   CGO_ENABLED = 0;
-  GOFLAGS = [ "-trimpath" ];
   ldflags = [
     "-s"
     "-w"
diff --git a/pkgs/by-name/ha/hacompanion/package.nix b/pkgs/by-name/ha/hacompanion/package.nix
index dbf8be29cb463..eeb1cd7fe8a2c 100644
--- a/pkgs/by-name/ha/hacompanion/package.nix
+++ b/pkgs/by-name/ha/hacompanion/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "hacompanion";
-  version = "1.0.11";
+  version = "1.0.12";
 
   src = fetchFromGitHub {
     owner = "tobias-kuendig";
     repo = "hacompanion";
     rev = "v${version}";
-    hash = "sha256-gTsA5XBjLlm/cITwQwYNudPK9SbSEaiAIjjdvRS3+8Q=";
+    hash = "sha256-3uPn139e8TyP0rE9hfRKw192YyexG+f3KmlHMmgCN7A=";
   };
 
   vendorHash = "sha256-ZZ8nxN+zUeFhSXyoHLMgzeFllnIkKdoVnbVK5KjrLEQ=";
diff --git a/pkgs/applications/networking/irc/halloy/Cargo.lock b/pkgs/by-name/ha/halloy/Cargo.lock
index bd8a9f07c52ac..55f2600e614aa 100644
--- a/pkgs/applications/networking/irc/halloy/Cargo.lock
+++ b/pkgs/by-name/ha/halloy/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "ab_glyph"
-version = "0.2.21"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39"
+checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225"
 dependencies = [
  "ab_glyph_rasterizer",
  "owned_ttf_parser",
@@ -20,9 +20,9 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
 
 [[package]]
 name = "addr2line"
-version = "0.19.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -35,20 +35,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.7"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "getrandom",
@@ -59,9 +48,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -80,9 +69,9 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "android-activity"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39b801912a977c3fd52d80511fe1c0c8480c6f957f21ae2ce1b92ffe970cf4b9"
+checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
 dependencies = [
  "android-properties",
  "bitflags 2.4.2",
@@ -137,9 +126,9 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
 
 [[package]]
 name = "arrayvec"
-version = "0.7.2"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "as-raw-xcb-connection"
@@ -162,32 +151,34 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
 dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
 ]
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.5.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand 1.9.0",
- "futures-lite",
+ "fastrand 2.0.1",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
@@ -197,10 +188,10 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
 ]
 
 [[package]]
@@ -209,80 +200,127 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "cfg-if",
  "concurrent-queue",
- "futures-lite",
+ "futures-lite 1.13.0",
  "log",
  "parking",
  "polling 2.8.0",
- "rustix 0.37.19",
+ "rustix 0.37.27",
  "slab",
- "socket2",
+ "socket2 0.4.10",
  "waker-fn",
 ]
 
 [[package]]
+name = "async-io"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
+dependencies = [
+ "async-lock 3.3.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "parking",
+ "polling 3.5.0",
+ "rustix 0.38.31",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "async-lock"
-version = "2.7.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
 dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-process"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
 dependencies = [
- "async-io",
- "async-lock",
- "autocfg",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
  "blocking",
  "cfg-if",
- "event-listener",
- "futures-lite",
- "rustix 0.37.19",
- "signal-hook",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
+checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.3.2",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.31",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.4.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.69"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b2d0f03b3640e3a630367e40c468cb7f309529c708ed1d88597047b0e7c6ef7"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "atomic-waker"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "autocfg"
@@ -292,24 +330,24 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "backtrace"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
  "cfg-if",
  "libc",
- "miniz_oxide 0.6.2",
+ "miniz_oxide",
  "object",
  "rustc-demangle",
 ]
 
 [[package]]
 name = "base64"
-version = "0.21.2"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bit-set"
@@ -380,56 +418,57 @@ dependencies = [
 
 [[package]]
 name = "blocking"
-version = "1.3.1"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
  "async-channel",
- "async-lock",
+ "async-lock 3.3.0",
  "async-task",
- "atomic-waker",
- "fastrand 1.9.0",
- "futures-lite",
- "log",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "piper",
+ "tracing",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.13.1"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.4.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "calloop"
@@ -439,8 +478,8 @@ checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
  "bitflags 2.4.2",
  "log",
- "polling 3.3.2",
- "rustix 0.38.30",
+ "polling 3.5.0",
+ "rustix 0.38.31",
  "slab",
  "thiserror",
 ]
@@ -452,18 +491,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
  "calloop",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "wayland-backend",
- "wayland-client 0.31.2",
+ "wayland-client",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
@@ -492,25 +532,24 @@ checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "serde",
- "time 0.1.45",
  "wasm-bindgen",
- "winapi",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "clipboard-win"
-version = "5.0.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c57002a5d9be777c1ef967e33674dac9ebd310d8893e4e3437b14d5f0f6372cc"
+checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
 dependencies = [
  "error-code",
 ]
@@ -528,21 +567,21 @@ dependencies = [
 
 [[package]]
 name = "clipboard_wayland"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f6364a9f7a66f2ac1a1a098aa1c7f6b686f2496c6ac5e5c0d773445df912747"
+checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
 dependencies = [
  "smithay-clipboard",
 ]
 
 [[package]]
 name = "clipboard_x11"
-version = "0.4.0"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921"
+checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
 dependencies = [
  "thiserror",
- "x11rb 0.9.0",
+ "x11rb",
 ]
 
 [[package]]
@@ -563,15 +602,14 @@ dependencies = [
 
 [[package]]
 name = "cocoa-foundation"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
 dependencies = [
  "bitflags 1.3.2",
  "block",
  "core-foundation",
  "core-graphics-types",
- "foreign-types 0.3.2",
  "libc",
  "objc",
 ]
@@ -635,18 +673,18 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.2.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -654,9 +692,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "core-graphics"
@@ -673,13 +711,12 @@ dependencies = [
 
 [[package]]
 name = "core-graphics-types"
-version = "0.1.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
- "foreign-types 0.3.2",
  "libc",
 ]
 
@@ -706,64 +743,46 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
- "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.9.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crunchy"
@@ -783,12 +802,12 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -804,7 +823,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307"
 dependencies = [
  "bitflags 2.4.2",
- "libloading 0.8.0",
+ "libloading 0.8.3",
  "winapi",
 ]
 
@@ -827,10 +846,20 @@ dependencies = [
  "seahash",
  "serde",
  "serde_json",
- "serde_yaml",
  "thiserror",
+ "timeago",
  "tokio",
  "tokio-stream",
+ "toml",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
 ]
 
 [[package]]
@@ -887,7 +916,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
- "libloading 0.8.0",
+ "libloading 0.8.3",
 ]
 
 [[package]]
@@ -906,7 +935,7 @@ dependencies = [
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "rustix 0.38.30",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -916,7 +945,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "rustix 0.38.30",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -937,17 +966,18 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "embed-resource"
-version = "2.1.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80663502655af01a2902dff3f06869330782267924bf1788410b74edcd93770a"
+checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d"
 dependencies = [
  "cc",
+ "memchr",
  "rustc_version",
  "toml",
  "vswhom",
@@ -956,9 +986,9 @@ dependencies = [
 
 [[package]]
 name = "enumflags2"
-version = "0.7.7"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -966,13 +996,13 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.7"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -993,9 +1023,9 @@ dependencies = [
 
 [[package]]
 name = "error-code"
-version = "3.0.0"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "281e452d3bad4005426416cdba5ccfd4f5c1280e10099e21db27f7c1c28347fc"
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 
 [[package]]
 name = "etagere"
@@ -1023,16 +1053,69 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.2.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "exr"
-version = "1.6.4"
+version = "1.72.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56"
+checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
 dependencies = [
  "bit_field",
  "flume",
  "half",
  "lebe",
- "miniz_oxide 0.7.1",
+ "miniz_oxide",
  "rayon-core",
  "smallvec",
  "zune-inflate",
@@ -1061,9 +1144,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1079,28 +1162,30 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.26"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.7.1",
+ "miniz_oxide",
 ]
 
 [[package]]
 name = "flume"
-version = "0.10.14"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project",
  "spin",
 ]
 
 [[package]]
+name = "font-types"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b7f6040d337bd44434ab21fc6509154edf2cece88b23758d9d64654c4e7730b"
+
+[[package]]
 name = "fontconfig-parser"
 version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1120,7 +1205,7 @@ dependencies = [
  "memmap2 0.8.0",
  "slotmap",
  "tinyvec",
- "ttf-parser 0.19.0",
+ "ttf-parser 0.19.2",
 ]
 
 [[package]]
@@ -1150,7 +1235,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1167,9 +1252,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1182,9 +1267,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1192,15 +1277,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1210,9 +1295,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
@@ -1230,33 +1315,46 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-lite"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1282,42 +1380,30 @@ dependencies = [
 
 [[package]]
 name = "gethostname"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "gethostname"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
- "js-sys",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "wasm-bindgen",
+ "wasi",
 ]
 
 [[package]]
 name = "gif"
-version = "0.12.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
 dependencies = [
  "color_quant",
  "weezl",
@@ -1325,9 +1411,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.2"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "gl_generator"
@@ -1342,9 +1428,9 @@ dependencies = [
 
 [[package]]
 name = "glam"
-version = "0.24.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad83ab008a4fa3b31dfa713dd41b5a9bdea1e94e4cf1e2fc274ffbd49b0271d3"
+checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
 
 [[package]]
 name = "glow"
@@ -1413,22 +1499,22 @@ dependencies = [
 
 [[package]]
 name = "gpu-descriptor"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a"
+checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "gpu-descriptor-types",
- "hashbrown 0.12.3",
+ "hashbrown",
 ]
 
 [[package]]
 name = "gpu-descriptor-types"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126"
+checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -1443,9 +1529,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -1474,20 +1560,11 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash 0.7.6",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.7",
+ "ahash",
  "allocator-api2",
 ]
 
@@ -1500,7 +1577,7 @@ dependencies = [
  "bitflags 2.4.2",
  "com",
  "libc",
- "libloading 0.8.0",
+ "libloading 0.8.3",
  "thiserror",
  "widestring",
  "winapi",
@@ -1514,18 +1591,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1541,16 +1609,16 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.56"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows 0.48.0",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -1564,10 +1632,9 @@ dependencies = [
 
 [[package]]
 name = "iced"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
- "iced_core",
  "iced_futures",
  "iced_renderer",
  "iced_widget",
@@ -1578,12 +1645,14 @@ dependencies = [
 
 [[package]]
 name = "iced_core"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
+ "glam",
  "log",
  "num-traits",
+ "once_cell",
  "palette",
  "raw-window-handle",
  "smol_str",
@@ -1594,8 +1663,8 @@ dependencies = [
 
 [[package]]
 name = "iced_futures"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
  "futures",
  "iced_core",
@@ -1607,13 +1676,12 @@ dependencies = [
 
 [[package]]
 name = "iced_graphics"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "bytemuck",
  "cosmic-text",
- "glam",
  "half",
  "iced_core",
  "iced_futures",
@@ -1630,8 +1698,8 @@ dependencies = [
 
 [[package]]
 name = "iced_renderer"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
@@ -1642,28 +1710,19 @@ dependencies = [
 
 [[package]]
 name = "iced_runtime"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
  "iced_core",
  "iced_futures",
+ "raw-window-handle",
  "thiserror",
 ]
 
 [[package]]
-name = "iced_style"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
-dependencies = [
- "iced_core",
- "once_cell",
- "palette",
-]
-
-[[package]]
 name = "iced_tiny_skia"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
  "bytemuck",
  "cosmic-text",
@@ -1678,10 +1737,10 @@ dependencies = [
 
 [[package]]
 name = "iced_wgpu"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "bytemuck",
  "futures",
  "glam",
@@ -1695,12 +1754,11 @@ dependencies = [
 
 [[package]]
 name = "iced_widget"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
- "iced_style",
  "num-traits",
  "ouroboros",
  "thiserror",
@@ -1709,12 +1767,11 @@ dependencies = [
 
 [[package]]
 name = "iced_winit"
-version = "0.12.0"
-source = "git+https://github.com/tarkah/iced?rev=f9db8d1efe68634b7b06ce07f12ea33a3e37d79c#f9db8d1efe68634b7b06ce07f12ea33a3e37d79c"
+version = "0.13.0-dev"
+source = "git+https://github.com/iced-rs/iced?rev=3d915d3cb30e5d08829aa2928676a53c505a601e#3d915d3cb30e5d08829aa2928676a53c505a601e"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
- "iced_style",
  "log",
  "thiserror",
  "tracing",
@@ -1737,9 +1794,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.6"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -1747,7 +1804,6 @@ dependencies = [
  "exr",
  "gif",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
  "qoi",
@@ -1756,22 +1812,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -1789,7 +1835,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -1836,6 +1882,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "isolang"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe50d48c77760c55188549098b9a7f6e37ae980c586a24693d6b01c3b2010c3c"
+dependencies = [
+ "phf",
+]
+
+[[package]]
 name = "itertools"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1846,9 +1901,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jni"
@@ -1874,27 +1929,27 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 dependencies = [
  "rayon",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1915,7 +1970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
 dependencies = [
  "libc",
- "libloading 0.8.0",
+ "libloading 0.8.3",
  "pkg-config",
 ]
 
@@ -1927,11 +1982,12 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
 
 [[package]]
 name = "kurbo"
-version = "0.9.5"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b"
+checksum = "1618d4ebd923e97d67e7cd363d80aef35fe961005cbbbb3d2dad8bdd1bc63440"
 dependencies = [
  "arrayvec",
+ "smallvec",
 ]
 
 [[package]]
@@ -1948,9 +2004,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libloading"
@@ -1964,12 +2020,12 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.8.0"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -1979,6 +2035,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
 name = "linux-raw-sys"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1998,9 +2076,9 @@ checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
 
 [[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -2008,30 +2086,30 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "lru"
-version = "0.12.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
 dependencies = [
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
 name = "mac-notification-sys"
-version = "0.5.6"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5"
+checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64"
 dependencies = [
  "cc",
  "dirs-next",
  "objc-foundation",
  "objc_id",
- "time 0.3.23",
+ "time",
 ]
 
 [[package]]
@@ -2045,18 +2123,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memmap2"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
-dependencies = [
- "libc",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -2078,15 +2147,6 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
@@ -2126,18 +2186,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2145,12 +2196,12 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "windows-sys 0.48.0",
 ]
 
@@ -2162,15 +2213,15 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
 
 [[package]]
 name = "naga"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8878eb410fc90853da3908aebfe61d73d26d4437ef850b70050461f939509899"
+checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843"
 dependencies = [
  "bit-set",
  "bitflags 2.4.2",
  "codespan-reporting",
  "hexf-parse",
- "indexmap 2.2.1",
+ "indexmap",
  "log",
  "num-traits",
  "rustc-hash",
@@ -2181,15 +2232,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nanorand"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
 name = "native-tls"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2239,40 +2281,14 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.22.3"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags 1.3.2",
- "cc",
- "cfg-if",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.26.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
  "memoffset 0.7.1",
- "static_assertions",
 ]
 
 [[package]]
@@ -2287,9 +2303,9 @@ dependencies = [
 
 [[package]]
 name = "notify-rust"
-version = "4.8.0"
+version = "4.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bfa211d18e360f08e36c364308f394b5eb23a6629150690e109a916dc6f610e"
+checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226"
 dependencies = [
  "log",
  "mac-notification-sys",
@@ -2299,42 +2315,27 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.2.6",
+ "hermit-abi",
  "libc",
 ]
 
@@ -2353,10 +2354,10 @@ version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2422,9 +2423,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.30.3"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
@@ -2437,9 +2438,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
-version = "5.0.1"
+version = "5.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90878fb664448b54c4e592455ad02831e23a3f7e157374a8b95654731aac7349"
+checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32"
 dependencies = [
  "is-wsl",
  "libc",
@@ -2448,11 +2449,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.55"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types 0.3.2",
  "libc",
@@ -2469,7 +2470,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2480,9 +2481,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.90"
+version = "0.9.101"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
 dependencies = [
  "cc",
  "libc",
@@ -2492,11 +2493,11 @@ dependencies = [
 
 [[package]]
 name = "orbclient"
-version = "0.3.45"
+version = "0.3.47"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "221d488cd70617f1bd599ed8ceb659df2147d9393717954d82a0f5e8032a6ab1"
+checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166"
 dependencies = [
- "redox_syscall 0.3.5",
+ "libredox 0.0.2",
 ]
 
 [[package]]
@@ -2511,9 +2512,9 @@ dependencies = [
 
 [[package]]
 name = "ouroboros"
-version = "0.17.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d813b7b31a82efae94bd30ffaac09aec85efc18db2d5ec3aead1a220ee954351"
+checksum = "97b7be5a8a3462b752f4be3ff2b2bf2f7f1d00834902e46be2a4d68b87b0573c"
 dependencies = [
  "aliasable",
  "ouroboros_macro",
@@ -2522,31 +2523,32 @@ dependencies = [
 
 [[package]]
 name = "ouroboros_macro"
-version = "0.17.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a56f651b4dd45ae3ac3d260ced32eaf0620cddaae5f26c69b554a9016594726"
+checksum = "b645dcde5f119c2c454a92d0dfa271a2a3b205da92e4292a68ead4bdbfde1f33"
 dependencies = [
  "heck",
- "proc-macro-error",
+ "itertools",
  "proc-macro2",
+ "proc-macro2-diagnostics",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "owned_ttf_parser"
-version = "0.19.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4"
+checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7"
 dependencies = [
- "ttf-parser 0.19.0",
+ "ttf-parser 0.20.0",
 ]
 
 [[package]]
 name = "palette"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d38e6e5ca1612e2081cc31188f08c3cba630ce4ba44709a153f1a0f38d678f2"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -2556,20 +2558,20 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e05d1c929301fee6830dafa764341118829b2535c216b0571e3821ecac5c885b"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "parking"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -2589,7 +2591,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.7",
+ "parking_lot_core 0.9.9",
 ]
 
 [[package]]
@@ -2608,15 +2610,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.7"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
+ "redox_syscall 0.4.1",
  "smallvec",
- "windows-sys 0.45.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -2633,15 +2635,15 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
 
 [[package]]
 name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "phf"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
 dependencies = [
  "phf_macros",
  "phf_shared",
@@ -2649,9 +2651,9 @@ dependencies = [
 
 [[package]]
 name = "phf_generator"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
 dependencies = [
  "phf_shared",
  "rand",
@@ -2659,51 +2661,31 @@ dependencies = [
 
 [[package]]
 name = "phf_macros"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
 dependencies = [
  "phf_generator",
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "phf_shared"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
 dependencies = [
  "siphasher",
 ]
 
 [[package]]
-name = "pin-project"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
-[[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -2712,22 +2694,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "png"
-version = "0.17.8"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide 0.7.1",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -2748,19 +2741,25 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.2"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "tracing",
  "windows-sys 0.52.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"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2779,47 +2778,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "toml_edit",
+ "toml_edit 0.19.15",
 ]
 
 [[package]]
-name = "proc-macro-error"
-version = "1.0.4"
+name = "proc-macro-crate"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
 dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
+ "toml_edit 0.21.1",
 ]
 
 [[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
+name = "proc-macro2"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
+ "unicode-ident",
 ]
 
 [[package]]
-name = "proc-macro2"
-version = "1.0.78"
+name = "proc-macro2-diagnostics"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
 dependencies = [
- "unicode-ident",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "version_check",
+ "yansi",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.8"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "332cd62e95873ea4f41f3dfd6bbbfc5b52aec892d7e8d534197c4720a0bbbab2"
+checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
 
 [[package]]
 name = "qoi"
@@ -2832,9 +2829,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.23.1"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "memchr",
 ]
@@ -2895,9 +2892,9 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
 
 [[package]]
 name = "rangemap"
-version = "1.4.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
+checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
 
 [[package]]
 name = "raw-window-handle"
@@ -2907,9 +2904,9 @@ checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
 dependencies = [
  "either",
  "rayon-core",
@@ -2917,14 +2914,21 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
+]
+
+[[package]]
+name = "read-fonts"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ea23eedb4d938031b6d4343222444608727a6aa68ec355e13588d9947ffe92"
+dependencies = [
+ "font-types",
 ]
 
 [[package]]
@@ -2956,20 +2960,32 @@ dependencies = [
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.16",
+ "libredox 0.0.1",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.3"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2978,15 +2994,15 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "renderdoc-sys"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b"
+checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832"
 
 [[package]]
 name = "roxmltree"
@@ -3017,9 +3033,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.19"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
@@ -3031,9 +3047,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.30"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
  "bitflags 2.4.2",
  "errno",
@@ -3061,9 +3077,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -3076,11 +3092,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.21"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3091,9 +3107,9 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sctk-adwaita"
@@ -3104,7 +3120,7 @@ dependencies = [
  "ab_glyph",
  "log",
  "memmap2 0.9.4",
- "smithay-client-toolkit 0.18.0",
+ "smithay-client-toolkit",
  "tiny-skia",
 ]
 
@@ -3116,9 +3132,9 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
 
 [[package]]
 name = "security-framework"
-version = "2.9.1"
+version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -3129,9 +3145,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -3145,35 +3161,35 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.99"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -3182,42 +3198,29 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.13"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f0a21fba416426ac927b1691996e82079f8b6156e920c85345f135b2e9ba2de"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde_yaml"
-version = "0.9.31"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
- "indexmap 2.2.1",
- "itoa",
- "ryu",
  "serde",
- "unsafe-libyaml",
 ]
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -3225,16 +3228,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "signal-hook"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
 name = "signal-hook-registry"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3245,63 +3238,45 @@ dependencies = [
 
 [[package]]
 name = "simd-adler32"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "slotmap"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "smithay-client-toolkit"
-version = "0.16.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454"
-dependencies = [
- "bitflags 1.3.2",
- "dlib",
- "lazy_static",
- "log",
- "memmap2 0.5.10",
- "nix 0.24.3",
- "pkg-config",
- "wayland-client 0.29.5",
- "wayland-cursor 0.29.5",
- "wayland-protocols 0.29.5",
-]
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.18.0"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
  "bitflags 2.4.2",
  "calloop",
@@ -3310,26 +3285,27 @@ dependencies = [
  "libc",
  "log",
  "memmap2 0.9.4",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "thiserror",
  "wayland-backend",
- "wayland-client 0.31.2",
+ "wayland-client",
  "wayland-csd-frame",
- "wayland-cursor 0.31.1",
- "wayland-protocols 0.31.2",
+ "wayland-cursor",
+ "wayland-protocols",
  "wayland-protocols-wlr",
- "wayland-scanner 0.31.1",
+ "wayland-scanner",
  "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.6.6"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
+checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
 dependencies = [
- "smithay-client-toolkit 0.16.0",
- "wayland-client 0.29.5",
+ "libc",
+ "smithay-client-toolkit",
+ "wayland-backend",
 ]
 
 [[package]]
@@ -3343,15 +3319,25 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
 ]
 
 [[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "softbuffer"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3371,15 +3357,15 @@ dependencies = [
  "objc",
  "raw-window-handle",
  "redox_syscall 0.4.1",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-sys 0.31.1",
+ "wayland-client",
+ "wayland-sys",
  "web-sys",
  "windows-sys 0.52.0",
- "x11rb 0.13.0",
+ "x11rb",
 ]
 
 [[package]]
@@ -3414,16 +3400,17 @@ checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
 
 [[package]]
 name = "svg_fmt"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
+checksum = "f83ba502a3265efb76efb89b0a2f7782ad6f2675015d4ce37e4b547dda42b499"
 
 [[package]]
 name = "swash"
-version = "0.1.8"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f"
+checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
 dependencies = [
+ "read-fonts",
  "yazi",
  "zeno",
 ]
@@ -3441,9 +3428,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3461,25 +3448,24 @@ dependencies = [
 
 [[package]]
 name = "tauri-winrt-notification"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f5bff1d532fead7c43324a0fa33643b8621a47ce2944a633be4cb6c0240898f"
+checksum = "006851c9ccefa3c38a7646b8cec804bb429def3da10497bfa977179869c3e8e2"
 dependencies = [
- "quick-xml 0.23.1",
- "windows 0.39.0",
+ "quick-xml 0.30.0",
+ "windows 0.51.1",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.5.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 1.9.0",
- "redox_syscall 0.3.5",
- "rustix 0.37.19",
- "windows-sys 0.45.0",
+ "fastrand 2.0.1",
+ "rustix 0.38.31",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3493,29 +3479,29 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "tiff"
-version = "0.8.1"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
  "jpeg-decoder",
@@ -3524,36 +3510,38 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.1.45"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "time"
-version = "0.3.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
+ "deranged",
+ "num-conv",
+ "powerfmt",
  "serde",
  "time-core",
 ]
 
 [[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 = "timeago"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1710e589de0a76aaf295cd47a6699f6405737dbfd3cf2b75c92d000b548d0e6"
+dependencies = [
+ "chrono",
+ "isolang",
+]
 
 [[package]]
 name = "tiny-skia"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -3566,9 +3554,9 @@ dependencies = [
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -3583,7 +3571,7 @@ checksum = "d4098d49269baa034a8d1eae9bd63e9fa532148d772121dace3bcd6a6c98eb6d"
 dependencies = [
  "as-raw-xcb-connection",
  "ctor",
- "libloading 0.8.0",
+ "libloading 0.8.3",
  "tracing",
 ]
 
@@ -3604,11 +3592,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.29.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
- "autocfg",
  "backtrace",
  "bytes",
  "libc",
@@ -3617,20 +3604,20 @@ dependencies = [
  "parking_lot 0.12.1",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2",
+ "socket2 0.5.6",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3656,9 +3643,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -3670,45 +3657,66 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.4"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec"
+checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.22.7",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.2"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.10"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739"
+checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992"
 dependencies = [
- "indexmap 1.9.3",
+ "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -3716,29 +3724,29 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "ttf-parser"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44dcf002ae3b32cd25400d6df128c5babec3927cd1eb7ce813cfff20eb6c3746"
+checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
 
 [[package]]
 name = "ttf-parser"
@@ -3748,25 +3756,26 @@ checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "uds_windows"
-version = "1.0.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
+ "memoffset 0.9.0",
  "tempfile",
  "winapi",
 ]
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
@@ -3782,9 +3791,9 @@ checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.9"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-linebreak"
@@ -3800,21 +3809,21 @@ checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unicode-xid"
@@ -3823,16 +3832,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
-name = "unsafe-libyaml"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
-
-[[package]]
 name = "uuid"
-version = "1.3.3"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
  "getrandom",
 ]
@@ -3871,15 +3874,15 @@ dependencies = [
 
 [[package]]
 name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -3887,21 +3890,15 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[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.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3909,24 +3906,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.40"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3936,9 +3933,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3946,22 +3943,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-timer"
@@ -3986,26 +3983,10 @@ checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "scoped-tls",
  "smallvec",
- "wayland-sys 0.31.1",
-]
-
-[[package]]
-name = "wayland-client"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
-dependencies = [
- "bitflags 1.3.2",
- "downcast-rs",
- "libc",
- "nix 0.24.3",
- "scoped-tls",
- "wayland-commons",
- "wayland-scanner 0.29.5",
- "wayland-sys 0.29.5",
+ "wayland-sys",
 ]
 
 [[package]]
@@ -4015,21 +3996,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
  "bitflags 2.4.2",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "wayland-backend",
- "wayland-scanner 0.31.1",
-]
-
-[[package]]
-name = "wayland-commons"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
-dependencies = [
- "nix 0.24.3",
- "once_cell",
- "smallvec",
- "wayland-sys 0.29.5",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -4045,48 +4014,25 @@ dependencies = [
 
 [[package]]
 name = "wayland-cursor"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
-dependencies = [
- "nix 0.24.3",
- "wayland-client 0.29.5",
- "xcursor",
-]
-
-[[package]]
-name = "wayland-cursor"
 version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "rustix 0.38.30",
- "wayland-client 0.31.2",
+ "rustix 0.38.31",
+ "wayland-client",
  "xcursor",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
-dependencies = [
- "bitflags 1.3.2",
- "wayland-client 0.29.5",
- "wayland-commons",
- "wayland-scanner 0.29.5",
-]
-
-[[package]]
-name = "wayland-protocols"
 version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-scanner 0.31.1",
+ "wayland-client",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -4097,9 +4043,9 @@ checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-protocols 0.31.2",
- "wayland-scanner 0.31.1",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -4110,20 +4056,9 @@ checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-protocols 0.31.2",
- "wayland-scanner 0.31.1",
-]
-
-[[package]]
-name = "wayland-scanner"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
-dependencies = [
- "proc-macro2",
- "quote",
- "xml-rs",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -4139,17 +4074,6 @@ dependencies = [
 
 [[package]]
 name = "wayland-sys"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
-dependencies = [
- "dlib",
- "lazy_static",
- "pkg-config",
-]
-
-[[package]]
-name = "wayland-sys"
 version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
@@ -4182,15 +4106,15 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wgpu"
-version = "0.19.1"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bfe9a310dcf2e6b85f00c46059aaeaf4184caa8e29a1ecd4b7a704c3482332d"
+checksum = "a4b1213b52478a7631d6e387543ed8f642bc02c578ef4e3b49aca2a29a7df0cb"
 dependencies = [
  "arrayvec",
  "cfg-if",
@@ -4213,16 +4137,16 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.19.0"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b15e451d4060ada0d99a64df44e4d590213496da7c4f245572d51071e8e30ed"
+checksum = "f9f6b033c2f00ae0bc8ea872c5989777c60bc241aac4e58b24774faa8b391f78"
 dependencies = [
  "arrayvec",
  "bit-vec",
  "bitflags 2.4.2",
  "cfg_aliases 0.1.1",
  "codespan-reporting",
- "indexmap 2.2.1",
+ "indexmap",
  "log",
  "naga",
  "once_cell",
@@ -4239,9 +4163,9 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.19.1"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3bb47856236bfafc0bc591a925eb036ac19cd987624a447ff353e7a7e7e6f72"
+checksum = "49f972c280505ab52ffe17e94a7413d9d54b58af0114ab226b9fc4999a47082e"
 dependencies = [
  "android_system_properties",
  "arrayvec",
@@ -4261,10 +4185,11 @@ dependencies = [
  "js-sys",
  "khronos-egl",
  "libc",
- "libloading 0.8.0",
+ "libloading 0.8.3",
  "log",
  "metal",
  "naga",
+ "ndk-sys",
  "objc",
  "once_cell",
  "parking_lot 0.12.1",
@@ -4283,9 +4208,9 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "895fcbeb772bfb049eb80b2d6e47f6c9af235284e9703c96fc0218a42ffd5af2"
+checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805"
 dependencies = [
  "bitflags 2.4.2",
  "js-sys",
@@ -4316,18 +4241,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -4340,9 +4256,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "window_clipboard"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6a197337269a469b5b2583d65dd7dfe475fd79a525be0aa647ff6d37ac6612c"
+checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
 dependencies = [
  "clipboard-win",
  "clipboard_macos",
@@ -4354,24 +4270,12 @@ dependencies = [
 
 [[package]]
 name = "windows"
-version = "0.39.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a"
-dependencies = [
- "windows_aarch64_msvc 0.39.0",
- "windows_i686_gnu 0.39.0",
- "windows_i686_msvc 0.39.0",
- "windows_x86_64_gnu 0.39.0",
- "windows_x86_64_msvc 0.39.0",
-]
-
-[[package]]
-name = "windows"
-version = "0.48.0"
+version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -4380,32 +4284,26 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
- "windows-core",
- "windows-targets 0.52.0",
+ "windows-core 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.52.0"
+version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "windows-sys"
-version = "0.42.0"
+name = "windows-core"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4423,7 +4321,7 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -4432,7 +4330,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4452,32 +4350,32 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
+ "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.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -4488,21 +4386,15 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.39.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -4512,21 +4404,15 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.39.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -4536,21 +4422,15 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.39.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -4560,21 +4440,15 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.39.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -4584,15 +4458,15 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -4602,21 +4476,15 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.39.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4626,22 +4494,22 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winit"
 version = "0.29.10"
 source = "git+https://github.com/iced-rs/winit.git?rev=b91e39ece2c0d378c3b80da7f3ab50e17bb798a5#b91e39ece2c0d378c3b80da7f3ab50e17bb798a5"
 dependencies = [
- "ahash 0.8.7",
+ "ahash",
  "android-activity",
  "atomic-waker",
  "bitflags 2.4.2",
@@ -4664,42 +4532,51 @@ dependencies = [
  "percent-encoding",
  "raw-window-handle",
  "redox_syscall 0.3.5",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "sctk-adwaita",
- "smithay-client-toolkit 0.18.0",
+ "smithay-client-toolkit",
  "smol_str",
  "unicode-segmentation",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-protocols 0.31.2",
+ "wayland-client",
+ "wayland-protocols",
  "wayland-protocols-plasma",
  "web-sys",
  "web-time",
  "windows-sys 0.48.0",
  "x11-dl",
- "x11rb 0.13.0",
+ "x11rb",
  "xkbcommon-dl",
 ]
 
 [[package]]
 name = "winnow"
-version = "0.4.6"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "winreg"
-version = "0.11.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -4715,28 +4592,16 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e99be55648b3ae2a52342f9a870c0e138709a3493261ce9b469afe6e4df6d8a"
-dependencies = [
- "gethostname 0.2.3",
- "nix 0.22.3",
- "winapi",
- "winapi-wsapoll",
-]
-
-[[package]]
-name = "x11rb"
 version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 dependencies = [
  "as-raw-xcb-connection",
- "gethostname 0.4.3",
+ "gethostname",
  "libc",
- "libloading 0.8.0",
+ "libloading 0.8.3",
  "once_cell",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "x11rb-protocol",
 ]
 
@@ -4748,28 +4613,25 @@ checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
 
 [[package]]
 name = "xcursor"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
-dependencies = [
- "nom",
-]
+checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911"
 
 [[package]]
 name = "xdg-home"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
 dependencies = [
- "nix 0.26.2",
+ "libc",
  "winapi",
 ]
 
 [[package]]
 name = "xkbcommon-dl"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6924668544c48c0133152e7eec86d644a056ca3d09275eb8d5cdb9855f9d8699"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
 dependencies = [
  "bitflags 2.4.2",
  "dlib",
@@ -4786,15 +4648,21 @@ checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
 
 [[package]]
 name = "xml-rs"
-version = "0.8.13"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d8f380ae16a37b30e6a2cf67040608071384b1450c189e61bea3ff57cde922d"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
 name = "xxhash-rust"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
+checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
+
+[[package]]
+name = "yansi"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
 
 [[package]]
 name = "yazi"
@@ -4804,15 +4672,15 @@ checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
 
 [[package]]
 name = "zbus"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
 dependencies = [
  "async-broadcast",
  "async-executor",
  "async-fs",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "async-process",
  "async-recursion",
  "async-task",
@@ -4821,12 +4689,12 @@ dependencies = [
  "byteorder",
  "derivative",
  "enumflags2",
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
  "futures-sink",
  "futures-util",
  "hex",
- "nix 0.26.2",
+ "nix",
  "once_cell",
  "ordered-stream",
  "rand",
@@ -4845,11 +4713,11 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "regex",
@@ -4859,9 +4727,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_names"
-version = "2.6.0"
+version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
+checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
 dependencies = [
  "serde",
  "static_assertions",
@@ -4870,9 +4738,9 @@ dependencies = [
 
 [[package]]
 name = "zeno"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c110ba09c9b3a43edd4803d570df0da2414fed6e822e22b976a4e3ef50860701"
+checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697"
 
 [[package]]
 name = "zerocopy"
@@ -4891,7 +4759,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4905,9 +4773,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
 dependencies = [
  "byteorder",
  "enumflags2",
@@ -4919,11 +4787,11 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
diff --git a/pkgs/applications/networking/irc/halloy/default.nix b/pkgs/by-name/ha/halloy/package.nix
index 2758914f73cc6..dc8124e294807 100644
--- a/pkgs/applications/networking/irc/halloy/default.nix
+++ b/pkgs/by-name/ha/halloy/package.nix
@@ -15,19 +15,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "halloy";
-  version = "2024.3";
+  version = "2024.5";
 
   src = fetchFromGitHub {
     owner = "squidowl";
     repo = "halloy";
     rev = "refs/tags/${version}";
-    hash = "sha256-9yEkM65c8R71oQ0C54xZqwRh609+HSaq4Hb8izNM52A=";
+    hash = "sha256-F/yQYLYrq3MZFV6igQe4sQi84ChIKCCPdS5151nD6hs=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "iced-0.12.0" = "sha256-LtmAJDUMp42S4E+CjOM6Q7doAKOZkmJCN/49gsq3v/A=";
+      "iced-0.13.0-dev" = "sha256-8L0AoHPwRUeCiJK/N0NTs1Nl4BX0wbM7SLgundhvra0=";
       "winit-0.29.10" = "sha256-YoXJEvEhMvk3pK5EbXceVFeJEJLL6KTjiw0kBJxgHIE=";
     };
   };
@@ -83,7 +83,8 @@ rustPlatform.buildRustPackage rec {
     '');
 
   postInstall = ''
-    install -Dm644 assets/linux/org.squidowl.halloy.png $out/share/icons/hicolor/128x128/apps/org.squidowl.halloy.png
+    install -Dm644 assets/linux/icons/hicolor/128x128/apps/org.squidowl.halloy.png \
+      $out/share/icons/hicolor/128x128/apps/org.squidowl.halloy.png
   '';
 
   meta = with lib; {
diff --git a/pkgs/by-name/ho/home-manager/package.nix b/pkgs/by-name/ho/home-manager/package.nix
index f19db3bfcbbd3..aa6868ae97b43 100644
--- a/pkgs/by-name/ho/home-manager/package.nix
+++ b/pkgs/by-name/ho/home-manager/package.nix
@@ -16,14 +16,14 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "home-manager";
-  version = "unstable-2024-03-22";
+  version = "unstable-2024-03-31";
 
   src = fetchFromGitHub {
     name = "home-manager-source";
     owner = "nix-community";
     repo = "home-manager";
-    rev = "1c2c5e4cabba4c43504ef0f8cc3f3dfa284e2dbb";
-    hash = "sha256-WJOahf+6115+GMl3wUfURu8fszuNeJLv9qAWFQl3Vmo=";
+    rev = "30f2ec39519f4f5a8a96af808c439e730c15aeab";
+    hash = "sha256-QpZanlbVu6Gb2K96u3vgu0F2BvZD74+fOsIFWcYEXoY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ht/httpy-cli/package.nix b/pkgs/by-name/ht/httpy-cli/package.nix
new file mode 100644
index 0000000000000..2b59b54ef2136
--- /dev/null
+++ b/pkgs/by-name/ht/httpy-cli/package.nix
@@ -0,0 +1,53 @@
+{ lib
+, python3Packages
+, fetchPypi
+, curl
+ }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "httpy-cli";
+  version = "1.1.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "httpy-cli";
+    hash = "sha256-uhF/jF4buHMDiXOuuqjskynioz4qVBevQhdcUbH+91Q=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    colorama
+    pygments
+    requests
+    urllib3
+  ];
+
+  build-system = with python3Packages; [
+      setuptools
+  ];
+
+  pythonImportsCheck = [
+    "httpy"
+  ];
+
+  nativeCheckInputs = [
+      python3Packages.pytest
+      curl
+    ];
+
+  checkPhase = ''
+    runHook preCheck
+    echo "line1\nline2\nline3" > tests/test_file.txt
+    # ignore the test_args according to pytest.ini in the repo
+    pytest tests/ --ignore=tests/test_args.py
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Modern, user-friendly, programmable command-line HTTP client for the API";
+    homepage = "https://github.com/knid/httpy";
+    license = licenses.mit;
+    mainProgram = "httpy";
+    maintainers = with maintainers; [ eymeric ];
+  };
+}
diff --git a/pkgs/by-name/hu/hugo/package.nix b/pkgs/by-name/hu/hugo/package.nix
index 32832da0a6f2e..cc95fa00ad9db 100644
--- a/pkgs/by-name/hu/hugo/package.nix
+++ b/pkgs/by-name/hu/hugo/package.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.124.0";
+  version = "0.124.1";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = "hugo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LLjIKkNtrnnpIUjdJZJlrsyP4O634/B+cyn8DEYfRdk=";
+    hash = "sha256-ueosu4mUqI9TH3nlOEjZBkejeo3WEfPqzLRNbj1B2Ec=";
   };
 
   vendorHash = "sha256-LQLrbFJUW3X4F6L7JxQJRmkQFvuFraHJRBoGLt/ObSg=";
diff --git a/pkgs/by-name/in/invidious-router/package.nix b/pkgs/by-name/in/invidious-router/package.nix
new file mode 100644
index 0000000000000..112ca05a97c03
--- /dev/null
+++ b/pkgs/by-name/in/invidious-router/package.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  buildGo122Module,
+  fetchFromGitLab,
+}: let
+  version = "1.1";
+in
+  buildGo122Module {
+    pname = "invidious-router";
+    inherit version;
+
+    src = fetchFromGitLab {
+      owner = "gaincoder";
+      repo = "invidious-router";
+      rev = version;
+      hash = "sha256-t8KQqMPkBbVis1odDcSu+H0uvyvoFqCmtWoHqVRxmfc=";
+    };
+
+    vendorHash = "sha256-c03vYidm8SkoesRVQZdg/bCp9LIpdTmpXdfwInlHBKk=";
+
+    doCheck = true;
+
+    meta = {
+      homepage = "https://gitlab.com/gaincoder/invidious-router";
+      description = "A Go application that routes requests to different Invidious instances based on their health status and (optional) response time";
+      license = with lib.licenses; [mit];
+      maintainers = with lib.maintainers; [sils];
+      mainProgram = "invidious-router";
+    };
+  }
diff --git a/pkgs/by-name/it/itsycal/package.nix b/pkgs/by-name/it/itsycal/package.nix
new file mode 100644
index 0000000000000..6ad1b377459fa
--- /dev/null
+++ b/pkgs/by-name/it/itsycal/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchzip
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "itsycal";
+  version = "0.15.3";
+
+  src = fetchzip {
+    url = "https://itsycal.s3.amazonaws.com/Itsycal-${finalAttrs.version}.zip";
+    hash = "sha256-jpTlJY7yAARrkHzreQKbFaKj0sYp950R0qPPcDeY6AE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/Applications/Itsycal.app
+    cp -R . $out/Applications/Itsycal.app
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Itsycal is a tiny menu bar calendar";
+    homepage = "https://www.mowglii.com/itsycal/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ donteatoreo ];
+    platforms = lib.platforms.darwin;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/pkgs/by-name/ja/jazz2/package.nix b/pkgs/by-name/ja/jazz2/package.nix
index ca7898848aa53..8db964b251448 100644
--- a/pkgs/by-name/ja/jazz2/package.nix
+++ b/pkgs/by-name/ja/jazz2/package.nix
@@ -16,13 +16,13 @@
 assert lib.assertOneOf "graphicsLibrary" graphicsLibrary [ "SDL2" "GLFW" ];
 stdenv.mkDerivation (finalAttrs: {
   pname = "jazz2";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "deathkiller";
     repo = "jazz2-native";
     rev = finalAttrs.version;
-    hash = "sha256-IFsSIfHmSE6B1bpc5RWetJnlkv/jjlAUvRFV1pvVVNo=";
+    hash = "sha256-ZTQz6+2myUIJr2HqiwYksM7qiwXrd4+3+h1TC6FuPFU=";
   };
 
   patches = [ ./nocontent.patch ];
diff --git a/pkgs/by-name/km/kmeet/package.nix b/pkgs/by-name/km/kmeet/package.nix
new file mode 100644
index 0000000000000..8c928e434123b
--- /dev/null
+++ b/pkgs/by-name/km/kmeet/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchurl
+, appimageTools
+}:
+
+appimageTools.wrapType2 rec {
+  pname = "kmeet";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "https://download.storage5.infomaniak.com/meet/kmeet-desktop-${version}-linux-x86_64.AppImage";
+    name = "kmeet-${version}.AppImage";
+    hash = "sha256-0lygBbIwaEydvFEfvADiL2k5GWzVpM1jX4orweriBYw=";
+  };
+
+  extraInstallCommands =
+    let
+      contents = appimageTools.extractType2 { inherit pname version src; };
+    in
+    ''
+      mkdir -p "$out/share/applications"
+      mkdir -p "$out/share/lib/kmeet"
+      cp -r ${contents}/{locales,resources} "$out/share/lib/kmeet"
+      cp -r ${contents}/usr/* "$out"
+      cp "${contents}/kMeet.desktop" "$out/share/applications/"
+      mv "$out/bin/kmeet-${version}" "$out/bin/${meta.mainProgram}"
+      substituteInPlace $out/share/applications/kMeet.desktop --replace 'Exec=AppRun' 'Exec=${meta.mainProgram}'
+    '';
+
+  meta = with lib; {
+    description = "Organise secure online meetings via your web browser, your mobile, your tablet or your computer.";
+    homepage = "https://www.infomaniak.com/en/apps/download-kmeet";
+    license = licenses.unfree;
+    maintainers = [ maintainers.vinetos ];
+    mainProgram = "kmeet";
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+    longDescription = ''
+      kMeet allows you to organise secure online meetings via your web browser, your mobile, your tablet or your
+      computer.
+    '';
+  };
+}
diff --git a/pkgs/by-name/la/labwc-menu-generator/package.nix b/pkgs/by-name/la/labwc-menu-generator/package.nix
index 1d84dbd4eeb9a..17254a077d5d1 100644
--- a/pkgs/by-name/la/labwc-menu-generator/package.nix
+++ b/pkgs/by-name/la/labwc-menu-generator/package.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "labwc-menu-generator";
-  version = "unstable-2024-03-12";
+  version = "unstable-2024-03-27";
 
   src = fetchFromGitHub {
     owner = "labwc";
     repo = "labwc-menu-generator";
-    rev = "85a014db7214103c14c2bfbb5fc09a349ad64992";
-    hash = "sha256-nt/K00cr1dKEk547J/6w1j6O3WSgGqVt1+Jdw95K28s=";
+    rev = "7b62ce9c25db9ee21c9f93e536615569378bcb20";
+    hash = "sha256-CZ+p06D3/Ou29f2RRL9MBvzM+Qisdq0h8ySjzUqhGZM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix
index ca2f4d5149d63..4851a5e680988 100644
--- a/pkgs/by-name/ll/llama-cpp/package.nix
+++ b/pkgs/by-name/ll/llama-cpp/package.nix
@@ -1,4 +1,5 @@
 { lib
+, autoAddDriverRunpath
 , cmake
 , darwin
 , fetchFromGitHub
@@ -71,13 +72,13 @@ let
 in
 effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "llama-cpp";
-  version = "2481";
+  version = "2568";
 
   src = fetchFromGitHub {
     owner = "ggerganov";
     repo = "llama.cpp";
     rev = "refs/tags/b${finalAttrs.version}";
-    hash = "sha256-40GSZZEnjM9L9KVVKdSKtBoSRy996l98ORM4NeltsSM=";
+    hash = "sha256-yBlLChtzfAi2TAGUO1zdnpHCvi5YDCzjdflQgTWh98Y=";
   };
 
   postPatch = ''
@@ -88,7 +89,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ cmake ninja pkg-config git ]
     ++ optionals cudaSupport [
     cudaPackages.cuda_nvcc
-    cudaPackages.autoAddDriverRunpath
+    autoAddDriverRunpath
   ];
 
   buildInputs = optionals effectiveStdenv.isDarwin darwinBuildInputs
@@ -107,7 +108,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
     (cmakeBool "BUILD_SHARED_LIBS" true)
     (cmakeBool "LLAMA_BLAS" blasSupport)
     (cmakeBool "LLAMA_CLBLAST" openclSupport)
-    (cmakeBool "LLAMA_CUBLAS" cudaSupport)
+    (cmakeBool "LLAMA_CUDA" cudaSupport)
     (cmakeBool "LLAMA_HIPBLAS" rocmSupport)
     (cmakeBool "LLAMA_METAL" metalSupport)
     (cmakeBool "LLAMA_MPI" mpiSupport)
@@ -131,7 +132,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
         # Should likely use `rocmPackages.clr.gpuTargets`.
         "-DAMDGPU_TARGETS=gfx803;gfx900;gfx906:xnack-;gfx908:xnack-;gfx90a:xnack+;gfx90a:xnack-;gfx940;gfx941;gfx942;gfx1010;gfx1012;gfx1030;gfx1100;gfx1101;gfx1102"
       ]
-      ++ optionals metalSupport [ (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1") ];
+      ++ optionals metalSupport [
+        (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1")
+        (cmakeBool "LLAMA_METAL_EMBED_LIBRARY" true)
+      ];
 
   # upstream plans on adding targets at the cmakelevel, remove those
   # additional steps after that
diff --git a/pkgs/by-name/lm/lmstudio/package.nix b/pkgs/by-name/lm/lmstudio/package.nix
new file mode 100644
index 0000000000000..f1edf4d8c5e0d
--- /dev/null
+++ b/pkgs/by-name/lm/lmstudio/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, appimageTools
+, fetchurl
+}:
+
+let
+  pname = "lmstudio";
+  version = "0.2.18";
+  src = fetchurl {
+    url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage";
+    hash = "sha256-cUa0fjV7xx6+2tnGVP7uLG0QQb44LhP2nYsn6Qn0al4=";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.ocl-icd ];
+
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications
+    mv $out/bin/lmstudio-${version} $out/bin/lmstudio
+    cp -r ${appimageContents}/usr/share/icons $out/share
+    install -m 444 -D ${appimageContents}/lm-studio.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/lm-studio.desktop \
+      --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lmstudio'
+  '';
+
+  meta = {
+    description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
+    homepage = "https://lmstudio.ai/";
+    license = lib.licenses.unfree;
+    mainProgram = "lmstudio";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.linux;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+}
diff --git a/pkgs/by-name/lo/local-ai/package.nix b/pkgs/by-name/lo/local-ai/package.nix
index a5b5b82b139bf..99b66148e5ad2 100644
--- a/pkgs/by-name/lo/local-ai/package.nix
+++ b/pkgs/by-name/lo/local-ai/package.nix
@@ -2,13 +2,14 @@
 , lib
 , fetchpatch
 , fetchFromGitHub
-, ncurses
 , protobuf
 , grpc
 , openssl
+, llama-cpp
   # needed for audio-to-text
 , ffmpeg
 , cmake
+, pkg-config
 , buildGoModule
 , makeWrapper
 , runCommand
@@ -17,11 +18,18 @@
   # apply feature parameter names according to
   # https://github.com/NixOS/rfcs/pull/169
 
+  # CPU extensions
+, enable_avx ? true
+, enable_avx2 ? true
+, enable_avx512 ? false
+, enable_f16c ? true
+, enable_fma ? true
+
 , with_tinydream ? false
+, ncnn
 
 , with_openblas ? false
 , openblas
-, pkg-config
 
 , with_cublas ? false
 , cudaPackages
@@ -41,72 +49,201 @@
 , fmt
 }:
 let
-  go-llama-ggml = fetchFromGitHub {
-    owner = "go-skynet";
-    repo = "go-llama.cpp";
-    rev = "2b57a8ae43e4699d3dc5d1496a1ccd42922993be";
-    hash = "sha256-D6SEg5pPcswGyKAmF4QTJP6/Y1vjRr7m7REguag+too=";
-    fetchSubmodules = true;
+  BUILD_TYPE =
+    assert (lib.count lib.id [ with_openblas with_cublas with_clblas ]) <= 1;
+    if with_openblas then "openblas"
+    else if with_cublas then "cublas"
+    else if with_clblas then "clblas"
+    else "";
+
+  typedBuiltInputs =
+    lib.optionals with_cublas
+      [ cudaPackages.cudatoolkit cudaPackages.cuda_cudart ]
+    ++ lib.optionals with_clblas
+      [ clblast ocl-icd opencl-headers ]
+    ++ lib.optionals with_openblas
+      [ openblas.dev ];
+
+  go-llama-ggml = effectiveStdenv.mkDerivation {
+    name = "go-llama-ggml";
+    src = fetchFromGitHub {
+      owner = "go-skynet";
+      repo = "go-llama.cpp";
+      rev = "2b57a8ae43e4699d3dc5d1496a1ccd42922993be";
+      hash = "sha256-D6SEg5pPcswGyKAmF4QTJP6/Y1vjRr7m7REguag+too=";
+      fetchSubmodules = true;
+    };
+    buildFlags = [
+      "libbinding.a"
+      "BUILD_TYPE=${BUILD_TYPE}"
+    ];
+    buildInputs = typedBuiltInputs;
+    dontUseCmakeConfigure = true;
+    nativeBuildInputs = [ cmake ];
+    installPhase = ''
+      mkdir $out
+      tar cf - --exclude=build --exclude=CMakeFiles --exclude="*.o" . \
+        | tar xf - -C $out
+    '';
   };
 
-  # possible improvement: use Nix package llama-cpp
-  llama_cpp = fetchFromGitHub {
-    owner = "ggerganov";
-    repo = "llama.cpp";
-    rev = "d01b3c4c32357567f3531d4e6ceffc5d23e87583";
-    hash = "sha256-7eaQV+XTCXdrJlo7y21q5j/8ecVwuTMJScRTATcF6oM=";
-    fetchSubmodules = true;
+  llama-cpp-grpc = (llama-cpp.overrideAttrs (final: prev: {
+    name = "llama-cpp-grpc";
+    src = fetchFromGitHub {
+      owner = "ggerganov";
+      repo = "llama.cpp";
+      rev = "d01b3c4c32357567f3531d4e6ceffc5d23e87583";
+      hash = "sha256-7eaQV+XTCXdrJlo7y21q5j/8ecVwuTMJScRTATcF6oM=";
+      fetchSubmodules = true;
+    };
+    postPatch = prev.postPatch + ''
+      cd examples
+      cp -r --no-preserve=mode ${src}/backend/cpp/llama grpc-server
+      cp llava/clip.* llava/llava.* grpc-server
+      printf "\nadd_subdirectory(grpc-server)" >> CMakeLists.txt
+
+      cp ${src}/backend/backend.proto grpc-server
+      sed -i grpc-server/CMakeLists.txt \
+        -e '/get_filename_component/ s;[.\/]*backend/;;' \
+        -e '$a\install(TARGETS ''${TARGET} RUNTIME)'
+      cd ..
+    '';
+    cmakeFlags = prev.cmakeFlags ++ [
+      (lib.cmakeBool "BUILD_SHARED_LIBS" false)
+      (lib.cmakeBool "LLAMA_AVX" enable_avx)
+      (lib.cmakeBool "LLAMA_AVX2" enable_avx2)
+      (lib.cmakeBool "LLAMA_AVX512" enable_avx512)
+      (lib.cmakeBool "LLAMA_FMA" enable_fma)
+      (lib.cmakeBool "LLAMA_F16C" enable_f16c)
+    ];
+    buildInputs = prev.buildInputs ++ [
+      protobuf # provides also abseil_cpp as propagated build input
+      grpc
+      openssl
+    ];
+  })).override {
+    cudaSupport = with_cublas;
+    rocmSupport = false;
+    openclSupport = with_clblas;
+    blasSupport = with_openblas;
   };
 
-  llama_cpp' = runCommand "llama_cpp_src" { } ''
-    cp -r --no-preserve=mode,ownership ${llama_cpp} $out
-    sed -i $out/CMakeLists.txt \
-      -e 's;pkg_check_modules(DepBLAS REQUIRED openblas);pkg_check_modules(DepBLAS REQUIRED openblas64);'
-  '';
-
-  gpt4all = fetchFromGitHub {
-    owner = "nomic-ai";
-    repo = "gpt4all";
-    rev = "27a8b020c36b0df8f8b82a252d261cda47cf44b8";
-    hash = "sha256-djq1eK6ncvhkO3MNDgasDBUY/7WWcmZt/GJsHAulLdI=";
-    fetchSubmodules = true;
+  gpt4all = stdenv.mkDerivation {
+    name = "gpt4all";
+    src = fetchFromGitHub {
+      owner = "nomic-ai";
+      repo = "gpt4all";
+      rev = "27a8b020c36b0df8f8b82a252d261cda47cf44b8";
+      hash = "sha256-djq1eK6ncvhkO3MNDgasDBUY/7WWcmZt/GJsHAulLdI=";
+      fetchSubmodules = true;
+    };
+    makeFlags = [ "-C gpt4all-bindings/golang" ];
+    buildFlags = [ "libgpt4all.a" ];
+    dontUseCmakeConfigure = true;
+    nativeBuildInputs = [ cmake ];
+    installPhase = ''
+      mkdir $out
+      tar cf - --exclude=CMakeFiles . \
+        | tar xf - -C $out
+    '';
   };
 
-  go-piper = fetchFromGitHub {
-    owner = "mudler";
-    repo = "go-piper";
-    rev = "9d0100873a7dbb0824dfea40e8cec70a1b110759";
-    hash = "sha256-Yv9LQkWwGpYdOS0FvtP0vZ0tRyBAx27sdmziBR4U4n8=";
-    fetchSubmodules = true;
+  go-piper = stdenv.mkDerivation {
+    name = "go-piper";
+    src = fetchFromGitHub {
+      owner = "mudler";
+      repo = "go-piper";
+      rev = "9d0100873a7dbb0824dfea40e8cec70a1b110759";
+      hash = "sha256-Yv9LQkWwGpYdOS0FvtP0vZ0tRyBAx27sdmziBR4U4n8=";
+      fetchSubmodules = true;
+    };
+    patchPhase = ''
+      sed -i Makefile \
+        -e '/cd piper-phonemize/ s;cmake;cmake -DONNXRUNTIME_DIR=${onnxruntime.dev};' \
+        -e '/CXXFLAGS *= / s;$; -DSPDLOG_FMT_EXTERNAL=1;' \
+        -e '/cd piper\/build / s;cmake;cmake -DSPDLOG_DIR=${spdlog.src} -DFMT_DIR=${fmt};'
+    '';
+    buildFlags = [ "libpiper_binding.a" ];
+    dontUseCmakeConfigure = true;
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ sonic spdlog onnxruntime ];
+    installPhase = ''
+      cp -r --no-preserve=mode $src $out
+      tar cf - *.a \
+        espeak/ei/lib \
+        piper/src/cpp \
+        piper-phonemize/pi/lib \
+        piper-phonemize/pi/include \
+        piper-phonemize/pi/share \
+        | tar xf - -C $out
+    '';
   };
 
-  go-rwkv = fetchFromGitHub {
-    owner = "donomii";
-    repo = "go-rwkv.cpp";
-    rev = "661e7ae26d442f5cfebd2a0881b44e8c55949ec6";
-    hash = "sha256-byTNZQSnt7qpBMng3ANJmpISh3GJiz+F15UqfXaz6nQ=";
-    fetchSubmodules = true;
+  go-rwkv = stdenv.mkDerivation {
+    name = "go-rwkv";
+    src = fetchFromGitHub {
+      owner = "donomii";
+      repo = "go-rwkv.cpp";
+      rev = "661e7ae26d442f5cfebd2a0881b44e8c55949ec6";
+      hash = "sha256-byTNZQSnt7qpBMng3ANJmpISh3GJiz+F15UqfXaz6nQ=";
+      fetchSubmodules = true;
+    };
+    buildFlags = [ "librwkv.a" ];
+    dontUseCmakeConfigure = true;
+    nativeBuildInputs = [ cmake ];
+    installPhase = ''
+      cp -r --no-preserve=mode $src $out
+      cp *.a $out
+    '';
   };
 
-  whisper = fetchFromGitHub {
-    owner = "ggerganov";
-    repo = "whisper.cpp";
-    rev = "a56f435fd475afd7edf02bfbf9f8c77f527198c2";
-    hash = "sha256-ozTnxEuftAQQr5v/kwg5EKHuKF21d9ETIyvXcvr0Qos=";
-    fetchSubmodules = true;
+  # try to merge with openai-whisper-cpp in future
+  whisper-cpp = effectiveStdenv.mkDerivation {
+    name = "whisper-cpp";
+    src = fetchFromGitHub {
+      owner = "ggerganov";
+      repo = "whisper.cpp";
+      rev = "a56f435fd475afd7edf02bfbf9f8c77f527198c2";
+      hash = "sha256-g8ZhVB5sxpfrFzg/0seSrv0vFG0YOP56253n6/KWHfE=";
+    };
+    nativeBuildInputs = [ cmake pkg-config ];
+    buildInputs = typedBuiltInputs;
+    cmakeFlags = [
+      (lib.cmakeBool "WHISPER_CUBLAS" with_cublas)
+      (lib.cmakeBool "WHISPER_CLBLAST" with_clblas)
+      (lib.cmakeBool "WHISPER_OPENBLAS" with_openblas)
+      (lib.cmakeBool "WHISPER_NO_AVX" (!enable_avx))
+      (lib.cmakeBool "WHISPER_NO_AVX2" (!enable_avx2))
+      (lib.cmakeBool "WHISPER_NO_FMA" (!enable_fma))
+      (lib.cmakeBool "WHISPER_NO_F16C" (!enable_f16c))
+      (lib.cmakeBool "BUILD_SHARED_LIBS" false)
+    ];
+    postInstall = ''
+      install -Dt $out/bin bin/*
+    '';
   };
 
-  go-bert = fetchFromGitHub {
-    owner = "go-skynet";
-    repo = "go-bert.cpp";
-    rev = "6abe312cded14042f6b7c3cd8edf082713334a4d";
-    hash = "sha256-lh9cvXc032Eq31kysxFOkRd0zPjsCznRl0tzg9P2ygo=";
-    fetchSubmodules = true;
+  go-bert = stdenv.mkDerivation {
+    name = "go-bert";
+    src = fetchFromGitHub {
+      owner = "go-skynet";
+      repo = "go-bert.cpp";
+      rev = "6abe312cded14042f6b7c3cd8edf082713334a4d";
+      hash = "sha256-lh9cvXc032Eq31kysxFOkRd0zPjsCznRl0tzg9P2ygo=";
+      fetchSubmodules = true;
+    };
+    buildFlags = [ "libgobert.a" ];
+    dontUseCmakeConfigure = true;
+    nativeBuildInputs = [ cmake ];
+    env.NIX_CFLAGS_COMPILE = "-Wformat";
+    installPhase = ''
+      cp -r --no-preserve=mode $src $out
+      cp *.a $out
+    '';
   };
 
   go-stable-diffusion = stdenv.mkDerivation {
-    pname = "go_stable_diffusion";
-    version = "unstable";
+    name = "go-stable-diffusion";
     src = fetchFromGitHub {
       owner = "mudler";
       repo = "go-stable-diffusion";
@@ -120,53 +257,78 @@ let
     buildInputs = [ opencv ];
     env.NIX_CFLAGS_COMPILE = " -isystem ${opencv}/include/opencv4";
     installPhase = ''
-      install -Dt $out libstablediffusion.a Makefile go.mod *.go stablediffusion.h
+      mkdir $out
+      tar cf - --exclude=CMakeFiles --exclude="*.o" --exclude="*.so" --exclude="*.so.*" . \
+        | tar xf - -C $out
     '';
   };
 
-  go-tiny-dream = fetchFromGitHub {
-    owner = "M0Rf30";
-    repo = "go-tiny-dream";
-    rev = "772a9c0d9aaf768290e63cca3c904fe69faf677a";
-    hash = "sha256-r+wzFIjaI6cxAm/eXN3q8LRZZz+lE5EA4lCTk5+ZnIY=";
-    fetchSubmodules = true;
+  go-tiny-dream-ncnn = ncnn.overrideAttrs (self: {
+    name = "go-tiny-dream-ncnn";
+    inherit (go-tiny-dream) src;
+    sourceRoot = "source/ncnn";
+    cmakeFlags = self.cmakeFlags ++ [
+      (lib.cmakeBool "NCNN_SHARED_LIB" false)
+      (lib.cmakeBool "NCNN_OPENMP" false)
+      (lib.cmakeBool "NCNN_VULKAN" false)
+      (lib.cmakeBool "NCNN_AVX" enable_avx)
+      (lib.cmakeBool "NCNN_AVX2" enable_avx2)
+      (lib.cmakeBool "NCNN_AVX512" enable_avx512)
+      (lib.cmakeBool "NCNN_FMA" enable_fma)
+      (lib.cmakeBool "NCNN_F16C" enable_f16c)
+    ];
+  });
+
+  go-tiny-dream = stdenv.mkDerivation {
+    name = "go-tiny-dream";
+    src = fetchFromGitHub {
+      owner = "M0Rf30";
+      repo = "go-tiny-dream";
+      rev = "772a9c0d9aaf768290e63cca3c904fe69faf677a";
+      hash = "sha256-r+wzFIjaI6cxAm/eXN3q8LRZZz+lE5EA4lCTk5+ZnIY=";
+      fetchSubmodules = true;
+    };
+    postUnpack = ''
+      rm -rf source/ncnn
+      mkdir -p source/ncnn/build
+      cp -r --no-preserve=mode ${go-tiny-dream-ncnn} source/ncnn/build/install
+    '';
+    buildFlags = [ "libtinydream.a" ];
+    installPhase = ''
+      mkdir $out
+      tar cf - --exclude="*.o" . \
+        | tar xf - -C $out
+    '';
+    meta.broken = lib.versionOlder go-tiny-dream.stdenv.cc.version "13";
   };
 
-  go-tiny-dream' = runCommand "go_tiny_dream_src" { } ''
-    cp -r --no-preserve=mode,ownership ${go-tiny-dream} $out
-    sed -i $out/Makefile \
-      -e 's;lib/libncnn;lib64/libncnn;g'
-  '';
-
   GO_TAGS = lib.optional with_tinydream "tinydream"
     ++ lib.optional with_tts "tts"
     ++ lib.optional with_stablediffusion "stablediffusion";
 
-  buildEnv =
+  effectiveStdenv =
     if with_cublas then
     # It's necessary to consistently use backendStdenv when building with CUDA support,
     # otherwise we get libstdc++ errors downstream.
-      buildGoModule.override { stdenv = cudaPackages.backendStdenv; }
+      cudaPackages.backendStdenv
     else
-      buildGoModule;
+      stdenv;
 
-  self = buildEnv rec {
-    pname = "local-ai";
-    version = "2.10.1";
+  pname = "local-ai";
+  version = "2.10.1";
+  src = fetchFromGitHub {
+    owner = "go-skynet";
+    repo = "LocalAI";
+    rev = "v${version}";
+    hash = "sha256-135s1Gw8mfOIx4kXlw2pYrD3ewwajUtnz3sPY/CtoLw=";
+  };
 
-    src = fetchFromGitHub {
-      owner = "go-skynet";
-      repo = "LocalAI";
-      rev = "v${version}";
-      hash = "sha256-135s1Gw8mfOIx4kXlw2pYrD3ewwajUtnz3sPY/CtoLw=";
-    };
+  self = buildGoModule.override { stdenv = effectiveStdenv; } {
+    inherit pname version src;
 
     vendorHash = "sha256-UCeG0TKS+VBW8D87VmxTHS2tCAf0ADEYTJayaSiua6s=";
 
-    # Workaround for
-    # `cc1plus: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security]`
-    # when building jtreg
-    env.NIX_CFLAGS_COMPILE = "-Wformat";
+    env.NIX_CFLAGS_COMPILE = lib.optionalString with_stablediffusion " -isystem ${opencv}/include/opencv4";
 
     postPatch =
       let
@@ -176,22 +338,28 @@ let
         sed -i Makefile \
           -e 's;git clone.*go-llama-ggml$;${cp} ${go-llama-ggml} sources/go-llama-ggml;' \
           -e 's;git clone.*gpt4all$;${cp} ${gpt4all} sources/gpt4all;' \
-          -e 's;git clone.*go-piper$;${cp} ${go-piper} sources/go-piper;' \
+          -e 's;git clone.*go-piper$;${cp} ${if with_tts then go-piper else go-piper.src} sources/go-piper;' \
           -e 's;git clone.*go-rwkv$;${cp} ${go-rwkv} sources/go-rwkv;' \
-          -e 's;git clone.*whisper\.cpp$;${cp} ${whisper} sources/whisper\.cpp;' \
+          -e 's;git clone.*whisper\.cpp$;${cp} ${whisper-cpp.src} sources/whisper\.cpp;' \
           -e 's;git clone.*go-bert$;${cp} ${go-bert} sources/go-bert;' \
           -e 's;git clone.*diffusion$;${cp} ${if with_stablediffusion then go-stable-diffusion else go-stable-diffusion.src} sources/go-stable-diffusion;' \
-          -e 's;git clone.*go-tiny-dream$;${cp} ${go-tiny-dream'} sources/go-tiny-dream;' \
+          -e 's;git clone.*go-tiny-dream$;${cp} ${if with_tinydream then go-tiny-dream else go-tiny-dream.src} sources/go-tiny-dream;' \
           -e 's, && git checkout.*,,g' \
           -e '/mod download/ d' \
 
-        sed -i backend/cpp/llama/Makefile \
-          -e 's;git clone.*llama\.cpp$;${cp} ${llama_cpp'} llama\.cpp;' \
-          -e 's, && git checkout.*,,g' \
-
+        ${cp} ${llama-cpp-grpc}/bin/*grpc-server backend/cpp/llama/grpc-server
+        echo "grpc-server:" > backend/cpp/llama/Makefile
       ''
     ;
 
+    buildInputs = typedBuiltInputs
+      ++ lib.optional with_stablediffusion go-stable-diffusion.buildInputs
+      ++ lib.optional with_tts go-piper.buildInputs;
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    enableParallelBuilding = false;
+
     modBuildPhase = ''
       mkdir sources
       make prepare-sources
@@ -200,47 +368,45 @@ let
 
     proxyVendor = true;
 
-    buildPhase =
-      let
-        buildType =
-          assert (lib.count lib.id [ with_openblas with_cublas with_clblas ]) <= 1;
-          if with_openblas then "openblas"
-          else if with_cublas then "cublas"
-          else if with_clblas then "clblas"
-          else "";
-
-        buildFlags = [
-          "VERSION=v${version}"
-          "BUILD_TYPE=${buildType}"
-          "GO_TAGS=\"${builtins.concatStringsSep " " GO_TAGS}\""
-        ]
-        ++ lib.optional with_cublas "CUDA_LIBPATH=${cudaPackages.cuda_cudart}/lib";
-      in
-      ''
-        mkdir sources
-        make ${builtins.concatStringsSep " " buildFlags} build
-      '';
+    # should be passed as makeFlags, but build system failes with strings
+    # containing spaces
+    env.GO_TAGS = builtins.concatStringsSep " " GO_TAGS;
+
+    makeFlags = [
+      "VERSION=v${version}"
+      "BUILD_TYPE=${BUILD_TYPE}"
+    ]
+    ++ lib.optional with_cublas "CUDA_LIBPATH=${cudaPackages.cuda_cudart}/lib"
+    ++ lib.optional with_tts "PIPER_CGO_CXXFLAGS=-DSPDLOG_FMT_EXTERNAL=1";
+
+    buildPhase = ''
+      runHook preBuild
+
+      mkdir sources
+      make prepare-sources
+      # avoid rebuild of prebuilt libraries
+      touch sources/**/lib*.a
+      cp ${whisper-cpp}/lib/static/lib*.a sources/whisper.cpp
+
+      local flagsArray=(
+        ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
+        SHELL=$SHELL
+      )
+      _accumFlagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray
+      echoCmd 'build flags' "''${flagsArray[@]}"
+      make build "''${flagsArray[@]}"
+      unset flagsArray
+
+      runHook postBuild
+    '';
 
     installPhase = ''
+      runHook preInstall
+
       install -Dt $out/bin ${pname}
-    '';
 
-    buildInputs = [
-      protobuf # provides also abseil_cpp as propagated build input
-      grpc
-      openssl
-    ]
-    ++ lib.optionals with_stablediffusion
-      [ opencv ]
-    ++ lib.optionals with_tts
-      [ sonic spdlog fmt onnxruntime ]
-    ++ lib.optionals with_cublas
-      [ cudaPackages.cudatoolkit cudaPackages.cuda_cudart ]
-    ++ lib.optionals with_openblas
-      [ openblas.dev ]
-    ++ lib.optionals with_clblas
-      [ clblast ocl-icd opencl-headers ]
-    ;
+      runHook postInstall
+    '';
 
     # patching rpath with patchelf doens't work. The execuable
     # raises an segmentation fault
@@ -256,14 +422,11 @@ let
       --prefix PATH : "${ffmpeg}/bin"
     '';
 
-    nativeBuildInputs = [
-      ncurses
-      cmake
-      makeWrapper
-    ]
-    ++ lib.optional with_openblas pkg-config
-    ++ lib.optional with_cublas cudaPackages.cuda_nvcc
-    ;
+    passthru.local-packages = {
+      inherit
+        go-tiny-dream go-rwkv go-bert go-llama-ggml gpt4all go-piper
+        llama-cpp-grpc whisper-cpp go-tiny-dream-ncnn;
+    };
 
     passthru.features = {
       inherit
@@ -301,10 +464,6 @@ let
       license = licenses.mit;
       maintainers = with maintainers; [ onny ck3d ];
       platforms = platforms.linux;
-      broken =
-        # TODO: provide onnxruntime in the right way
-        with_tts
-        || (with_tinydream && (lib.lessThan self.stdenv.cc.version "13"));
     };
   };
 in
diff --git a/pkgs/by-name/lu/lubelogger/package.nix b/pkgs/by-name/lu/lubelogger/package.nix
index 1b8501fc11298..72bef4a340af8 100644
--- a/pkgs/by-name/lu/lubelogger/package.nix
+++ b/pkgs/by-name/lu/lubelogger/package.nix
@@ -6,13 +6,13 @@
 
 buildDotnetModule rec {
   pname = "lubelogger";
-  version = "1.2.8";
+  version = "1.2.9";
 
   src = fetchFromGitHub {
     owner = "hargata";
     repo = "lubelog";
     rev = "v${version}";
-    hash = "sha256-22I4OJZLeFLstGZF1fY/s8Y5tPgGJpJR/sPZpkHvUmY=";
+    hash = "sha256-bzCPoWgI7JA5dEYKl2m1ZzNPXxNRAzZz1lFa7fVCkNw=";
   };
 
   projectFile = "CarCareTracker.sln";
diff --git a/pkgs/by-name/lu/lunar-client/package.nix b/pkgs/by-name/lu/lunar-client/package.nix
index 3b8102c2d9ee0..b675a0295b0aa 100644
--- a/pkgs/by-name/lu/lunar-client/package.nix
+++ b/pkgs/by-name/lu/lunar-client/package.nix
@@ -6,11 +6,11 @@
 
 appimageTools.wrapType2 rec {
   pname = "lunar-client";
-  version = "3.2.3";
+  version = "3.2.4";
 
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
-    hash = "sha512-2zuVURKDw+Z/8I1AO8G5KPVOlPIZC/Mbt9jK5gn9CV1zmRiWKL+m1/Bw9/h7fanBdm0fhfLklplmlTTabPm7dg==";
+    hash = "sha512-KaQvjtSzQzebzPrcFBntCqP6fRbenH9tQo4LYO1TwDoJ7pAeZ8D4kSMRaRfFV0CPZ/pDnKECYdKXAuaujOpw8g==";
   };
 
   extraInstallCommands =
diff --git a/pkgs/by-name/ma/maa-cli/package.nix b/pkgs/by-name/ma/maa-cli/package.nix
index 263fd085e1468..1877983825204 100644
--- a/pkgs/by-name/ma/maa-cli/package.nix
+++ b/pkgs/by-name/ma/maa-cli/package.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "maa-cli";
-  version = "0.4.4";
+  version = "0.4.5";
 
   src = fetchFromGitHub {
     owner = "MaaAssistantArknights";
     repo = "maa-cli";
     rev = "v${version}";
-    hash = "sha256-pAtv6gCLFKRwUQEF6kD2bCPGpQGzahsfq/tAnQjrZrw=";
+    hash = "sha256-LeEIbfDQ+GO3gNmdpWGTNkpbhSqLz4fYQ+MdcrcbDk0=";
   };
 
   nativeBuildInputs = [
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   buildNoDefaultFeatures = true;
   buildFeatures = [ "git2" "core_installer" ];
 
-  cargoHash = "sha256-KjI/5vl7oKVtXYehGLgi9jcaO4Y/TceL498rCPGHMD0=";
+  cargoHash = "sha256-tkUJH7oFY5eZ5A7J+qzeyHlqOUnTipf6o+leZz7KOiQ=";
 
   # maa-cli would only seach libMaaCore.so and resources in itself's path
   # https://github.com/MaaAssistantArknights/maa-cli/issues/67
@@ -55,6 +55,10 @@ rustPlatform.buildRustPackage rec {
       --bash <($out/bin/maa complete bash) \
       --fish <($out/bin/maa complete fish) \
       --zsh <($out/bin/maa complete zsh)
+
+    mkdir -p manpage
+    $out/bin/maa mangen --path manpage
+    installManPage manpage/*
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/by-name/ma/masterpdfeditor/package.nix
index 192b3dd7c73ee..5d75cfb335c4c 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/by-name/ma/masterpdfeditor/package.nix
@@ -1,17 +1,35 @@
-{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, nss, autoPatchelfHook, lib, wrapQtAppsHook }:
+{ stdenv
+, fetchurl
+, sane-backends
+, nss
+, autoPatchelfHook
+, lib
+, libsForQt5
+, pkcs11helper
+}:
 
 stdenv.mkDerivation rec {
   pname = "masterpdfeditor";
-  version = "5.9.35";
+  version = "5.9.82";
 
   src = fetchurl {
     url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.x86_64.tar.gz";
-    sha256 = "sha256-c5DYS0PQemZ8Sql2KjnuMspCLDJzU95rsbuIdoxWDM0=";
+    sha256 = "sha256-CbrhhQJ0iiXz8hUJEi+/xb2ZGbunuPuIIgmCRgJhNVU=";
   };
 
-  nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
+  nativeBuildInputs = [
+    autoPatchelfHook
+    libsForQt5.wrapQtAppsHook
+  ];
 
-  buildInputs = [ nss qtbase qtsvg sane-backends stdenv.cc.cc ];
+  buildInputs = with libsForQt5; [
+    nss
+    qtbase
+    qtsvg
+    sane-backends
+    stdenv.cc.cc
+    pkcs11helper
+  ];
 
   dontStrip = true;
 
@@ -22,14 +40,14 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
 
     substituteInPlace masterpdfeditor5.desktop \
-      --replace 'Exec=/opt/master-pdf-editor-5' "Exec=$out/bin" \
-      --replace 'Path=/opt/master-pdf-editor-5' "Path=$out/bin" \
-      --replace 'Icon=/opt/master-pdf-editor-5' "Icon=$out/share/pixmaps"
+      --replace-fail 'Exec=/opt/master-pdf-editor-5' "Exec=$out/bin" \
+      --replace-fail 'Path=/opt/master-pdf-editor-5' "Path=$out/bin" \
+      --replace-fail 'Icon=/opt/master-pdf-editor-5' "Icon=$out/share/pixmaps"
 
     install -Dm644 -t $out/share/pixmaps      masterpdfeditor5.png
     install -Dm644 -t $out/share/applications masterpdfeditor5.desktop
     install -Dm755 -t $p                      masterpdfeditor5
-    install -Dm644 license.txt $out/share/$name/LICENSE
+    install -Dm644 license_en.txt $out/share/$name/LICENSE
     ln -s $p/masterpdfeditor5 $out/bin/masterpdfeditor5
     cp -v -r stamps templates lang fonts $p
 
@@ -43,5 +61,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfreeRedistributable;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ cmcdragonkai ];
+    mainProgram = "masterpdfeditor5";
   };
 }
diff --git a/pkgs/by-name/me/memtest_vulkan/package.nix b/pkgs/by-name/me/memtest_vulkan/package.nix
new file mode 100644
index 0000000000000..ee20010197167
--- /dev/null
+++ b/pkgs/by-name/me/memtest_vulkan/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, vulkan-loader
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "memtest_vulkan";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "GpuZelenograd";
+    repo = "memtest_vulkan";
+    rev = "v${version}";
+    hash = "sha256-8tmQtycK7D5bol9v5VL8VkROZbSCndHo+uBvqqFTZjw=";
+  };
+
+  cargoHash = "sha256-8x8bS0LcvoxoSBWbGdkKzhxDi/9VNab26eidv8YK9dg=";
+
+  # It doesn't discover this on its own :/
+  # https://github.com/GpuZelenograd/memtest_vulkan/issues/36
+  postFixup = lib.optionalString stdenv.targetPlatform.isElf ''
+    patchelf $out/bin/memtest_vulkan --add-needed libvulkan.so --add-rpath ${lib.makeLibraryPath [ vulkan-loader ]}
+  '';
+
+  meta = with lib; {
+    description = "Vulkan compute tool for testing video memory stability";
+    homepage = "https://github.com/GpuZelenograd/memtest_vulkan";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ atemu ];
+    mainProgram = "memtest_vulkan";
+    broken =
+      stdenv.system == "aarch64-linux" # error: linker `aarch64-linux-gnu-gcc` not found
+      || stdenv.isDarwin; # Can't find Vulkan; might work though?
+  };
+}
diff --git a/pkgs/by-name/me/memtree/package.nix b/pkgs/by-name/me/memtree/package.nix
index 528323624805b..6c40a000d590d 100644
--- a/pkgs/by-name/me/memtree/package.nix
+++ b/pkgs/by-name/me/memtree/package.nix
@@ -6,7 +6,7 @@
 
 python3Packages.buildPythonApplication {
   pname = "memtree";
-  version = "unstable-2024-01-04";
+  version = "0-unstable-2024-01-04";
   pyproject = true;
 
   src = fetchFromGitHub {
diff --git a/pkgs/by-name/mi/microsoft-identity-broker/package.nix b/pkgs/by-name/mi/microsoft-identity-broker/package.nix
index b245f29468dfc..5063e6022c048 100644
--- a/pkgs/by-name/mi/microsoft-identity-broker/package.nix
+++ b/pkgs/by-name/mi/microsoft-identity-broker/package.nix
@@ -12,11 +12,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "microsoft-identity-broker";
-  version = "1.7.0";
+  version = "2.0.0";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/m/${pname}/${pname}_${version}_amd64.deb";
-    hash = "sha256-81hKYQKbSimAScO6L13GdweFfzoVpeQzKuV8GJ6kZ1U=";
+    hash = "sha256-HJ5Q462ziYd+JB1paj0f0OENSJLHqNcX59Fxe+/5RYE=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper openjdk11 zip ];
diff --git a/pkgs/by-name/mo/mollysocket/package.nix b/pkgs/by-name/mo/mollysocket/package.nix
new file mode 100644
index 0000000000000..025bb34e8dd70
--- /dev/null
+++ b/pkgs/by-name/mo/mollysocket/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, sqlite
+, stdenv
+, darwin
+, nixosTests
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mollysocket";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "mollyim";
+    repo = "mollysocket";
+    rev = version;
+    hash = "sha256-eFvRjGUQ1AU+kXUp6YALm1lqhTMY2DxvFuf+MHCL38c=";
+  };
+
+  cargoHash = "sha256-3UwvnbHH6v1fJyivdU55GmJ2/+RSqXfBKIcOARASWbE=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+    sqlite
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  checkFlags = [
+    # tests interact with Signal servers
+    "--skip=config::tests::check_wildcard_endpoint"
+    "--skip=utils::post_allowed::tests::test_allowed"
+    "--skip=utils::post_allowed::tests::test_not_allowed"
+    "--skip=utils::post_allowed::tests::test_post"
+    "--skip=ws::tls::tests::connect_untrusted_server"
+    "--skip=ws::tls::tests::connect_trusted_server"
+  ];
+
+  passthru.tests = {
+    inherit (nixosTests) mollysocket;
+  };
+
+  meta = {
+    changelog = "https://github.com/mollyim/mollysocket/releases/tag/${version}";
+    description = "Get Signal notifications via UnifiedPush";
+    homepage = "https://github.com/mollyim/mollysocket";
+    license = lib.licenses.agpl3Plus;
+    mainProgram = "mollysocket";
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/os-specific/darwin/mousecape/default.nix b/pkgs/by-name/mo/mousecape/package.nix
index 39ee1e5ca072d..7604b360dd656 100644
--- a/pkgs/os-specific/darwin/mousecape/default.nix
+++ b/pkgs/by-name/mo/mousecape/package.nix
@@ -1,27 +1,22 @@
 { lib
 , stdenvNoCC
-, fetchurl
-, unzip
+, fetchzip
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "mousecape";
   version = "1813";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "https://github.com/alexzielenski/Mousecape/releases/download/${finalAttrs.version}/Mousecape_${finalAttrs.version}.zip";
-    hash = "sha256-lp7HFGr1J+iQCUWVDplF8rFcTrGf+DX4baYzLsUi/9I=";
+    hash = "sha256-VjbvrXfsRFpbTJfIHFvyCxRdDcGNv0zzLToWn7lyLM8=";
   };
 
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ unzip ];
-
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/Applications
-    mv Mousecape.app $out/Applications
+    mkdir -p $out/Applications/Mousecape.app
+    cp -R . $out/Applications/Mousecape.app/
 
     runHook postInstall
   '';
@@ -30,7 +25,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     description = "A cursor manager for macOS built using private, nonintrusive CoreGraphics APIs";
     homepage = "https://github.com/alexzielenski/Mousecape";
     license = with lib; licenses.free;
-    maintainers = with lib; with maintainers; [ DontEatOreo ];
+    maintainers = with lib; with maintainers; [ donteatoreo ];
     platforms = with lib; platforms.darwin;
     sourceProvenance = with lib; with sourceTypes; [ binaryNativeCode ];
   };
diff --git a/pkgs/by-name/my/mycelium/Cargo.lock b/pkgs/by-name/my/mycelium/Cargo.lock
index 311901f8a2425..a16f24fc94777 100644
--- a/pkgs/by-name/my/mycelium/Cargo.lock
+++ b/pkgs/by-name/my/mycelium/Cargo.lock
@@ -219,6 +219,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -241,9 +247,9 @@ dependencies = [
 
 [[package]]
 name = "blake3"
-version = "1.5.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87"
+checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -275,9 +281,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "c2rust-bitfields"
@@ -332,9 +338,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.18"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -342,9 +348,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.18"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
@@ -354,9 +360,9 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
  "heck",
  "proc-macro2",
@@ -366,9 +372,9 @@ dependencies = [
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "colorchoice"
@@ -523,9 +529,9 @@ dependencies = [
 
 [[package]]
 name = "faster-hex"
-version = "0.8.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a"
+checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
 dependencies = [
  "serde",
 ]
@@ -736,9 +742,9 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
 name = "hermit-abi"
@@ -1068,11 +1074,11 @@ dependencies = [
 
 [[package]]
 name = "mycelium"
-version = "0.4.3"
+version = "0.4.5"
 dependencies = [
  "aes-gcm",
  "axum",
- "base64",
+ "base64 0.22.0",
  "blake2",
  "blake3",
  "bytes",
@@ -1120,14 +1126,14 @@ dependencies = [
 
 [[package]]
 name = "netlink-packet-route"
-version = "0.17.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66"
+checksum = "74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4"
 dependencies = [
  "anyhow",
- "bitflags 1.3.2",
  "byteorder",
  "libc",
+ "log",
  "netlink-packet-core",
  "netlink-packet-utils",
 ]
@@ -1174,9 +1180,9 @@ dependencies = [
 
 [[package]]
 name = "network-interface"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68759ef97fe9c9e46f79ea8736c19f1d28992e24c8dc8ce86752918bfeaae7"
+checksum = "8ee524f98ddbe7772762a7477cfb22356df075cac4069bf81ac5082a46db742c"
 dependencies = [
  "cc",
  "libc",
@@ -1186,17 +1192,6 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
-]
-
-[[package]]
-name = "nix"
 version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
@@ -1278,7 +1273,7 @@ version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "serde",
 ]
 
@@ -1517,7 +1512,7 @@ version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -1577,9 +1572,9 @@ dependencies = [
 
 [[package]]
 name = "rtnetlink"
-version = "0.13.1"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0"
+checksum = "b684475344d8df1859ddb2d395dd3dac4f8f3422a1aa0725993cb375fc5caba5"
 dependencies = [
  "futures",
  "log",
@@ -1588,7 +1583,7 @@ dependencies = [
  "netlink-packet-utils",
  "netlink-proto",
  "netlink-sys",
- "nix 0.26.4",
+ "nix 0.27.1",
  "thiserror",
  "tokio",
 ]
@@ -1801,9 +1796,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "strsim"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
 name = "subtle"
@@ -1963,9 +1958,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -2001,9 +1996,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -2022,9 +2017,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
  "indexmap",
  "serde",
diff --git a/pkgs/by-name/my/mycelium/package.nix b/pkgs/by-name/my/mycelium/package.nix
index b3aee2f9ff3ed..ce67e2704637c 100644
--- a/pkgs/by-name/my/mycelium/package.nix
+++ b/pkgs/by-name/my/mycelium/package.nix
@@ -7,13 +7,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mycelium";
-  version = "0.4.3";
+  version = "0.4.5";
 
   src = fetchFromGitHub {
     owner = "threefoldtech";
     repo = "mycelium";
     rev = "v${version}";
-    hash = "sha256-bA3ci+vqXBCPBaxMvfUdFcqdaZbAw/+r5UbH/as/fnc=";
+    hash = "sha256-AJA1yd7P9zHOIdSOR2bAHgL5NyoyqzgNIEs8ObgD4Mo=";
   };
 
   cargoLock = {
diff --git a/pkgs/by-name/na/namespace-cli/package.nix b/pkgs/by-name/na/namespace-cli/package.nix
index 446cadd65a5c3..c660bc768e2de 100644
--- a/pkgs/by-name/na/namespace-cli/package.nix
+++ b/pkgs/by-name/na/namespace-cli/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "namespace-cli";
-  version = "0.0.351";
+  version = "0.0.352";
 
   src = fetchFromGitHub {
     owner = "namespacelabs";
     repo = "foundation";
     rev = "v${version}";
-    hash = "sha256-DN/YHPb2/bPzE/EgkuCN0hat8UnwV+6fpay7t4Utlv8=";
+    hash = "sha256-+/XDYQELd9S3p13vSsrUhLlAGPpV9YBCIulmTpEXdbQ=";
   };
 
   vendorHash = "sha256-a/e+xPOD9BDSlKknmfcX2tTMyIUrzKxqtUpFXcFIDSE=";
diff --git a/pkgs/by-name/ne/nestopia-ue/package.nix b/pkgs/by-name/ne/nestopia-ue/package.nix
index c0d94f315fd5a..78c15e6dfe833 100644
--- a/pkgs/by-name/ne/nestopia-ue/package.nix
+++ b/pkgs/by-name/ne/nestopia-ue/package.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nestopia";
-  version = "1.52.0";
+  version = "1.52.1";
 
   src = fetchFromGitHub {
     owner = "0ldsk00l";
     repo = "nestopia";
     rev = finalAttrs.version;
-    hash = "sha256-kd5hZ88fCLL8ysGMj7HsrSA7eCI5SL2xxiRXJiZqBZ8=";
+    hash = "sha256-r8Z0Ejf5vWcdvxkUkUKJtipQIRoiwoRj0Bx06Gnxd08=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/ni/niri/Cargo.lock b/pkgs/by-name/ni/niri/Cargo.lock
index 209a91c01f861..8292783edb7da 100644
--- a/pkgs/by-name/ni/niri/Cargo.lock
+++ b/pkgs/by-name/ni/niri/Cargo.lock
@@ -23,9 +23,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -43,7 +43,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
 dependencies = [
  "android-properties",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cc",
  "cesu8",
  "jni",
@@ -123,9 +123,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "appendlist"
@@ -186,8 +186,8 @@ dependencies = [
  "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand 2.0.1",
- "futures-lite 2.2.0",
+ "fastrand 2.0.2",
+ "futures-lite 2.3.0",
  "slab",
 ]
 
@@ -225,18 +225,18 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.1"
+version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
  "async-lock 3.3.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "parking",
- "polling 3.5.0",
- "rustix 0.38.31",
+ "polling 3.6.0",
+ "rustix 0.38.32",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -275,19 +275,19 @@ dependencies = [
  "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.0.5"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -296,13 +296,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.3.1",
+ "async-io 2.3.2",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -316,13 +316,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -333,9 +333,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "base64"
@@ -350,7 +350,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
 dependencies = [
  "annotate-snippets",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cexpr",
  "clang-sys",
  "itertools",
@@ -361,7 +361,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -387,9 +387,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block"
@@ -434,9 +434,9 @@ dependencies = [
  "async-channel",
  "async-lock 3.3.0",
  "async-task",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "piper",
  "tracing",
 ]
@@ -449,22 +449,22 @@ checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.3"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -475,9 +475,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "cairo-rs"
@@ -485,7 +485,7 @@ version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cairo-sys-rs",
  "glib",
  "libc",
@@ -509,10 +509,10 @@ version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "log",
- "polling 3.5.0",
- "rustix 0.38.31",
+ "polling 3.6.0",
+ "rustix 0.38.32",
  "slab",
  "thiserror",
 ]
@@ -524,11 +524,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
 dependencies = [
  "async-task",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "futures-io",
  "log",
- "polling 3.5.0",
- "rustix 0.38.31",
+ "polling 3.6.0",
+ "rustix 0.38.32",
  "slab",
  "thiserror",
 ]
@@ -540,7 +540,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
  "calloop 0.12.4",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "wayland-backend",
  "wayland-client",
 ]
@@ -650,10 +650,10 @@ version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -698,9 +698,12 @@ dependencies = [
 
 [[package]]
 name = "cookie-factory"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"
+checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2"
+dependencies = [
+ "futures",
+]
 
 [[package]]
 name = "core-foundation"
@@ -890,11 +893,11 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "rustix 0.38.31",
+ "rustix 0.38.32",
 ]
 
 [[package]]
@@ -904,7 +907,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "rustix 0.38.31",
+ "rustix 0.38.32",
 ]
 
 [[package]]
@@ -953,7 +956,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1042,9 +1045,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
 
 [[package]]
 name = "fdeflate"
@@ -1061,7 +1064,7 @@ version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
  "rustc_version",
 ]
 
@@ -1099,7 +1102,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1118,12 +1121,28 @@ dependencies = [
 ]
 
 [[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]]
@@ -1166,11 +1185,11 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "futures-core",
  "futures-io",
  "parking",
@@ -1185,7 +1204,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1206,6 +1225,7 @@ 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",
@@ -1344,9 +1364,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.19.2"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eae10b27b6dd27e22ed0d812c6387deba295e6fc004a8b379e459b663b05a02"
+checksum = "c64947d08d7fbb03bf8ad1f25a8ac6cf4329bc772c9b7e5abe7bf9493c81194f"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1390,7 +1410,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1406,17 +1426,17 @@ dependencies = [
 
 [[package]]
 name = "glam"
-version = "0.25.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
+checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9"
 
 [[package]]
 name = "glib"
-version = "0.19.2"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab9e86540b5d8402e905ad4ce7d6aa544092131ab564f3102175af176b90a053"
+checksum = "01e191cc1af1f35b9699213107068cd3fe05d9816275ac118dc785a0dd8faebf"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -1434,15 +1454,15 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.19.2"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8"
+checksum = "9972bb91643d589c889654693a4f1d07697fdcb5d104b5c44fb68649ba1bf68d"
 dependencies = [
- "heck",
+ "heck 0.5.0",
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1600,6 +1620,12 @@ dependencies = [
 ]
 
 [[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"
@@ -1634,9 +1660,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -1648,7 +1674,7 @@ version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7911ce3db9c10c5ab4a35c49af778a5f9a827bd0f7371d9be56175d8dd2740d0"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "input-sys",
  "io-lifetimes 1.0.11",
  "libc",
@@ -1699,9 +1725,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jni"
@@ -1778,7 +1804,7 @@ version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "91977f56c49cfb961e3d840e2e7c6e4a56bde7283898cf606861f1421348283d"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -1857,7 +1883,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -1868,7 +1894,7 @@ version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -1899,7 +1925,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "65f3a4b81b2a2d8c7f300643676202debd1b7c929dbf5c9bb89402ea11d19810"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cc",
  "convert_case",
  "cookie-factory",
@@ -2001,9 +2027,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memmap2"
@@ -2034,9 +2060,9 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -2061,7 +2087,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -2086,7 +2112,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "jni-sys",
  "log",
  "ndk-sys",
@@ -2112,16 +2138,18 @@ dependencies = [
 
 [[package]]
 name = "niri"
-version = "0.1.3"
+version = "0.1.4"
 dependencies = [
  "anyhow",
  "arrayvec",
  "async-channel",
  "async-io 1.13.0",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
+ "bytemuck",
  "calloop 0.13.0",
  "clap",
  "directories",
+ "drm-ffi",
  "futures-util",
  "git-version",
  "glam",
@@ -2155,9 +2183,9 @@ dependencies = [
 
 [[package]]
 name = "niri-config"
-version = "0.1.3"
+version = "0.1.4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "csscolorparser",
  "knuffel",
  "miette",
@@ -2170,7 +2198,7 @@ dependencies = [
 
 [[package]]
 name = "niri-ipc"
-version = "0.1.3"
+version = "0.1.4"
 dependencies = [
  "clap",
  "serde",
@@ -2178,7 +2206,7 @@ dependencies = [
 
 [[package]]
 name = "niri-visual-tests"
-version = "0.1.3"
+version = "0.1.4"
 dependencies = [
  "anyhow",
  "gtk4",
@@ -2208,7 +2236,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "libc",
 ]
@@ -2280,7 +2308,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -2373,9 +2401,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
 name = "pango"
-version = "0.19.2"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7809e8af4df8d024a066106b72ca6bc7253a484ae3867041a96103ef8a13188d"
+checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1"
 dependencies = [
  "gio",
  "glib",
@@ -2469,7 +2497,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -2500,7 +2528,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
 dependencies = [
  "atomic-waker",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "futures-io",
 ]
 
@@ -2511,7 +2539,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08e645ba5c45109106d56610b3ee60eb13a6f2beb8b74f8dc8186cf261788dda"
 dependencies = [
  "anyhow",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
  "libspa",
  "libspa-sys",
@@ -2587,14 +2615,15 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.5.0"
+version = "3.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
+ "hermit-abi",
  "pin-project-lite",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -2662,9 +2691,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -2686,7 +2715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd"
 dependencies = [
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -2697,13 +2726,13 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 dependencies = [
  "bit-set",
  "bit-vec",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "lazy_static",
  "num-traits",
  "rand",
  "rand_chacha",
  "rand_xorshift",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
  "rusty-fork",
  "tempfile",
  "unarray",
@@ -2829,14 +2858,14 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata 0.4.6",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -2856,7 +2885,7 @@ checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -2867,9 +2896,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "rustc-hash"
@@ -2902,11 +2931,11 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.31"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys 0.4.13",
@@ -2987,14 +3016,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
 dependencies = [
  "itoa",
  "ryu",
@@ -3009,7 +3038,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -3079,17 +3108,17 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smithay"
 version = "0.3.0"
-source = "git+https://github.com/Smithay/smithay.git#8287457195cf6a495331f65f5e0119f931ff7e79"
+source = "git+https://github.com/Smithay/smithay.git#e5f006818df7ebb92d206985f45e713ba1e9c1c9"
 dependencies = [
  "appendlist",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "calloop 0.13.0",
  "cc",
  "cgmath",
@@ -3112,7 +3141,7 @@ dependencies = [
  "pkg-config",
  "profiling",
  "rand",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "scan_fmt",
  "smallvec",
  "tempfile",
@@ -3136,14 +3165,14 @@ version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "calloop 0.12.4",
  "calloop-wayland-source",
  "cursor-icon",
  "libc",
  "log",
  "memmap2 0.9.4",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "thiserror",
  "wayland-backend",
  "wayland-client",
@@ -3158,7 +3187,7 @@ dependencies = [
 [[package]]
 name = "smithay-drm-extras"
 version = "0.1.0"
-source = "git+https://github.com/Smithay/smithay.git#8287457195cf6a495331f65f5e0119f931ff7e79"
+source = "git+https://github.com/Smithay/smithay.git#e5f006818df7ebb92d206985f45e713ba1e9c1c9"
 dependencies = [
  "drm",
  "edid-rs",
@@ -3208,9 +3237,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.52"
+version = "2.0.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3219,12 +3248,12 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.2.0"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
  "cfg-expr",
- "heck",
+ "heck 0.5.0",
  "pkg-config",
  "toml",
  "version-compare",
@@ -3253,29 +3282,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.1",
- "rustix 0.38.31",
+ "fastrand 2.0.2",
+ "rustix 0.38.32",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -3324,14 +3353,14 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.6",
+ "toml_edit 0.22.9",
 ]
 
 [[package]]
@@ -3367,9 +3396,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
 dependencies = [
  "indexmap",
  "serde",
@@ -3397,7 +3426,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -3483,7 +3512,7 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
  "tempfile",
  "winapi",
 ]
@@ -3552,9 +3581,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -3614,7 +3643,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
  "wasm-bindgen-shared",
 ]
 
@@ -3648,7 +3677,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -3667,7 +3696,7 @@ checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "scoped-tls",
  "smallvec",
  "wayland-sys",
@@ -3679,8 +3708,8 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "bitflags 2.4.2",
- "rustix 0.38.31",
+ "bitflags 2.5.0",
+ "rustix 0.38.32",
  "wayland-backend",
  "wayland-scanner",
 ]
@@ -3691,7 +3720,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cursor-icon",
  "wayland-backend",
 ]
@@ -3702,7 +3731,7 @@ version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "wayland-client",
  "xcursor",
 ]
@@ -3723,7 +3752,7 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-scanner",
@@ -3736,7 +3765,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa5933740b200188c9b4c38601b8212e8c154d7de0d2cb171944e137a77de1e"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-protocols",
  "wayland-scanner",
@@ -3749,7 +3778,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -3762,7 +3791,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -3787,10 +3816,10 @@ version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "00e6e4d5c285bc24ba4ed2d5a4bd4febd5fd904451f465973225c8e99772fdb7"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "downcast-rs",
  "io-lifetimes 2.0.3",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "wayland-backend",
  "wayland-scanner",
 ]
@@ -3804,7 +3833,7 @@ dependencies = [
  "dlib",
  "libc",
  "log",
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
  "once_cell",
  "pkg-config",
 ]
@@ -4088,14 +4117,14 @@ checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winit"
-version = "0.29.14"
+version = "0.29.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a3db69ffbe53a9babec7804da7a90f21020fcce1f2f5e5291e2311245b993d"
+checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca"
 dependencies = [
  "ahash",
  "android-activity",
  "atomic-waker",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "bytemuck",
  "calloop 0.12.4",
  "cfg_aliases",
@@ -4115,7 +4144,7 @@ dependencies = [
  "percent-encoding",
  "raw-window-handle",
  "redox_syscall 0.3.5",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "smithay-client-toolkit",
  "smol_str",
  "unicode-segmentation",
@@ -4173,7 +4202,7 @@ dependencies = [
  "libc",
  "libloading",
  "once_cell",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "x11rb-protocol",
 ]
 
@@ -4216,7 +4245,7 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "dlib",
  "log",
  "once_cell",
@@ -4342,7 +4371,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.55",
 ]
 
 [[package]]
diff --git a/pkgs/by-name/ni/niri/package.nix b/pkgs/by-name/ni/niri/package.nix
index e198d0585d2f0..2148c52f18b4c 100644
--- a/pkgs/by-name/ni/niri/package.nix
+++ b/pkgs/by-name/ni/niri/package.nix
@@ -16,32 +16,23 @@
 , libclang
 , autoPatchelfHook
 , clang
-, fetchpatch
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "niri";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "YaLTeR";
     repo = "niri";
     rev = "v${version}";
-    hash = "sha256-VTtXEfxc3OCdtdYiEdtftOQ7gDJNb679Yw8v1Lu3lhY=";
+    hash = "sha256-lkGIQIMWfg71UOkT/TST8O6hD0IfslENj6oFPevUGl4=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "revert-viewporter.patch";
-      url = "https://github.com/YaLTeR/niri/commit/40cec34aa4a7f99ab12b30cba1a0ee83a706a413.patch";
-      hash = "sha256-3fg8v0eotfjUQY6EVFEPK5BBIBrr6vQpXbjDcsw2E8Q=";
-    })
-  ];
-
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "smithay-0.3.0" = "sha256-sXdixfPLAUIIVK+PhqRuMZ7XKNJIGkWNlH8nBzXlxCU=";
+      "smithay-0.3.0" = "sha256-bWan2DCyMvEC8ZQPwM+XpuOGkOZ/RdDV+LmRCN8UAuc=";
     };
   };
 
diff --git a/pkgs/by-name/ni/nixseparatedebuginfod/package.nix b/pkgs/by-name/ni/nixseparatedebuginfod/package.nix
index 263f4f7367060..7ed8f61bb2c73 100644
--- a/pkgs/by-name/ni/nixseparatedebuginfod/package.nix
+++ b/pkgs/by-name/ni/nixseparatedebuginfod/package.nix
@@ -3,6 +3,7 @@
 , rustPlatform
 , libarchive
 , openssl
+, rust-jemalloc-sys
 , sqlite
 , pkg-config
 , nixosTests
@@ -27,6 +28,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [
     libarchive
     openssl
+    rust-jemalloc-sys
     sqlite
   ];
 
diff --git a/pkgs/by-name/nv/nvidia-container-toolkit/package.nix b/pkgs/by-name/nv/nvidia-container-toolkit/package.nix
index ba76e4de97e4f..bffa785c7c206 100644
--- a/pkgs/by-name/nv/nvidia-container-toolkit/package.nix
+++ b/pkgs/by-name/nv/nvidia-container-toolkit/package.nix
@@ -10,7 +10,7 @@
 , configTemplate ? null
 , configTemplatePath ? null
 , libnvidia-container
-, cudaPackages
+, autoAddDriverRunpath
 }:
 
 assert configTemplate != null -> (lib.isAttrs configTemplate && configTemplatePath == null);
@@ -87,7 +87,7 @@ buildGoModule rec {
   ];
 
   nativeBuildInputs = [
-    cudaPackages.autoAddDriverRunpath
+    autoAddDriverRunpath
     makeWrapper
   ];
 
diff --git a/pkgs/by-name/oc/ocenaudio/package.nix b/pkgs/by-name/oc/ocenaudio/package.nix
index 98852f37c325d..592a75b773ff7 100644
--- a/pkgs/by-name/oc/ocenaudio/package.nix
+++ b/pkgs/by-name/oc/ocenaudio/package.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ocenaudio";
-  version = "3.13.4";
+  version = "3.13.5";
 
   src = fetchurl {
     url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=v${version}";
-    hash = "sha256-vE+xwwkBXIksy+6oygLDsrT8mFfHYIGcb6+8KMZe0no=";
+    hash = "sha256-9eDDllf6D2hAhjztPhi1MrUky7zQfiE4uLAbfRDx+7s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/onthespot/default.nix b/pkgs/by-name/on/onthespot/package.nix
index 75ae769d33ff7..7e52d4892fa5f 100644
--- a/pkgs/applications/misc/onthespot/default.nix
+++ b/pkgs/by-name/on/onthespot/package.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , makeDesktopItem
 , python3
-, wrapQtAppsHook
+, libsForQt5
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -21,7 +21,7 @@ python3.pkgs.buildPythonApplication rec {
   nativeBuildInputs = with python3.pkgs; [
     copyDesktopItems
     pythonRelaxDepsHook
-    wrapQtAppsHook
+    libsForQt5.wrapQtAppsHook
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -32,7 +32,6 @@ python3.pkgs.buildPythonApplication rec {
     packaging
     pillow
     protobuf
-    pyogg
     pyqt5
     pyqt5-sip
     pyxdg
@@ -46,6 +45,9 @@ python3.pkgs.buildPythonApplication rec {
   pythonRemoveDeps = [
     "PyQt5-Qt5"
     "PyQt5-stubs"
+    # Doesn't seem to be used in the sources and causes
+    # build issues
+    "PyOgg"
   ];
 
   pythonRelaxDeps = true;
diff --git a/pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch b/pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch
new file mode 100644
index 0000000000000..eb38b07feb45b
--- /dev/null
+++ b/pkgs/by-name/pd/pdf4qt/find_lcms2_path.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 98752ec..aa029b3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,7 +55,15 @@ endif()
+ qt_standard_project_setup()
+ 
+ find_package(OpenSSL REQUIRED)
+-find_package(lcms REQUIRED)
++SET(LCMS2_NAMES ${LCMS2_NAMES} lcms2 liblcms2 liblcms2_static)
++FIND_LIBRARY(LCMS2_LIBRARY NAMES ${LCMS2_NAMES} )
++FIND_PATH(LCMS2_INCLUDE_DIR lcms2.h)
++add_library(lcms2::lcms2 UNKNOWN IMPORTED)
++set_target_properties(lcms2::lcms2 PROPERTIES
++    IMPORTED_LOCATION ${LCMS2_LIBRARY}
++    INTERFACE_INCLUDE_DIRECTORIES ${LCMS2_INCLUDE_DIR}
++    INTERFACE_COMPILE_DEFINITIONS "HAVE_LCMS2=1;CMS_NO_REGISTER_KEYWORD=1")
++set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP lcms2::lcms2)
+ find_package(ZLIB REQUIRED)
+ find_package(Freetype REQUIRED)
+ find_package(OpenJPEG CONFIG REQUIRED)
diff --git a/pkgs/by-name/pd/pdf4qt/package.nix b/pkgs/by-name/pd/pdf4qt/package.nix
new file mode 100644
index 0000000000000..95152518f7994
--- /dev/null
+++ b/pkgs/by-name/pd/pdf4qt/package.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, lcms
+, cmake
+, pkg-config
+, qt6
+, openjpeg
+, tbb_2021_8
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "pdf4qt";
+  version = "1.3.7";
+
+  src = fetchFromGitHub {
+    owner = "JakubMelka";
+    repo = "PDF4QT";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-wZJDMLEaHGBPSToQ+ObSfB5tw/fTIX1i5tmNPmIa7Ck=";
+  };
+
+  patches = [
+    # lcms2 cmake module only appears when built with vcpkg.
+    # We directly search for the corresponding libraries and
+    # header files instead.
+    ./find_lcms2_path.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qt6.qttools
+    qt6.wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qt6.qtbase
+    qt6.qtwayland
+    qt6.qtsvg
+    qt6.qtspeech
+    lcms
+    openjpeg
+    tbb_2021_8
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "PDF4QT_INSTALL_TO_USR" false)
+  ];
+
+  meta = {
+    description = "Open source PDF editor";
+    longDescription = ''
+      This software is consisting of PDF rendering library,
+      and several applications, such as advanced document
+      viewer, command line tool, and document page
+      manipulator application. Software is implementing PDF
+      functionality based on PDF Reference 2.0.
+    '';
+    homepage = "https://jakubmelka.github.io";
+    license = lib.licenses.lgpl3Only;
+    mainProgram = "Pdf4QtViewerLite";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/pg/pgmoneta/package.nix b/pkgs/by-name/pg/pgmoneta/package.nix
index ee9ac2bbeefa9..c56243fe89207 100644
--- a/pkgs/by-name/pg/pgmoneta/package.nix
+++ b/pkgs/by-name/pg/pgmoneta/package.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgmoneta";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "pgmoneta";
     repo = "pgmoneta";
     rev = version;
-    hash = "sha256-KVweAsmAQGUkBAxR7gPJe6mygfG7xApvJFRiCbSFq9E=";
+    hash = "sha256-wNBomyyr078Twzg7fuu3et1NUxpb+vqIbsnpmF73t18=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/pi/pixi/Cargo.lock b/pkgs/by-name/pi/pixi/Cargo.lock
new file mode 100644
index 0000000000000..5ece5bcbca628
--- /dev/null
+++ b/pkgs/by-name/pi/pixi/Cargo.lock
@@ -0,0 +1,6312 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aes"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+ "opaque-debug",
+]
+
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "aliasable"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[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 = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+
+[[package]]
+name = "assert_matches"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+
+[[package]]
+name = "async-broadcast"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
+dependencies = [
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-compression"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
+dependencies = [
+ "brotli",
+ "bzip2",
+ "flate2",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+ "zstd",
+ "zstd-safe",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+dependencies = [
+ "async-lock 3.3.0",
+ "async-task",
+ "concurrent-queue",
+ "fastrand 2.0.1",
+ "futures-lite 2.3.0",
+ "slab",
+]
+
+[[package]]
+name = "async-fs"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "blocking",
+ "futures-lite 1.13.0",
+]
+
+[[package]]
+name = "async-io"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-lite 1.13.0",
+ "log",
+ "parking",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
+dependencies = [
+ "async-lock 3.3.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.3.0",
+ "parking",
+ "polling 3.5.0",
+ "rustix 0.38.32",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-once-cell"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9338790e78aa95a416786ec8389546c4b6a1dfc3dc36071ed9518a9413a542eb"
+
+[[package]]
+name = "async-process"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+dependencies = [
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
+ "blocking",
+ "cfg-if",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.32",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.3.2",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.32",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+
+[[package]]
+name = "async-trait"
+version = "0.1.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "async_http_range_reader"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf8eeab30c68da4dc2c51f3afc4327ab06fe0f3f028ca423f7ca398c7ed8c5e7"
+dependencies = [
+ "bisection",
+ "futures",
+ "http-content-range",
+ "itertools",
+ "memmap2 0.9.4",
+ "reqwest",
+ "reqwest-middleware",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "async_zip"
+version = "0.0.16"
+source = "git+https://github.com/charliermarsh/rs-async-zip?rev=d76801da0943de985254fc6255c0e476b57c5836#d76801da0943de985254fc6255c0e476b57c5836"
+dependencies = [
+ "async-compression",
+ "crc32fast",
+ "futures-lite 2.3.0",
+ "pin-project",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+]
+
+[[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.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "backtrace-ext"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50"
+dependencies = [
+ "backtrace",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bisection"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "021e079a1bab0ecce6cf4b4b74c0c37afa4a697136eb3b127875c84a8f04a8c3"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "blake2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
+dependencies = [
+ "digest",
+]
+
+[[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 = "block-modes"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cb03d1bed155d89dce0f845b7899b18a9a163e148fd004e1c28421a783e2d8e"
+dependencies = [
+ "block-padding",
+ "cipher",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
+
+[[package]]
+name = "blocking"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+dependencies = [
+ "async-channel",
+ "async-lock 3.3.0",
+ "async-task",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.3.0",
+ "piper",
+ "tracing",
+]
+
+[[package]]
+name = "brotli"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "bzip2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
+dependencies = [
+ "bzip2-sys",
+ "libc",
+]
+
+[[package]]
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "cacache"
+version = "12.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "142316461ed3a3dfcba10417317472da5bfd0461e4d276bf7c07b330766d9490"
+dependencies = [
+ "digest",
+ "either",
+ "futures",
+ "hex",
+ "libc",
+ "memmap2 0.5.10",
+ "miette 5.10.0",
+ "reflink-copy",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "sha2",
+ "ssri",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "walkdir",
+]
+
+[[package]]
+name = "cache-key"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "hex",
+ "seahash",
+ "url",
+]
+
+[[package]]
+name = "cache_control"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee"
+
+[[package]]
+name = "cachedir"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4703f3937077db8fa35bee3c8789343c1aec2585f0146f09d658d4ccc0e8d873"
+dependencies = [
+ "tempfile",
+]
+
+[[package]]
+name = "cargo-util"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74862c3c6e53a1c1f8f0178f9d38ab41e49746cd3a7cafc239b3d0248fd4e342"
+dependencies = [
+ "anyhow",
+ "core-foundation",
+ "filetime",
+ "hex",
+ "ignore",
+ "jobserver",
+ "libc",
+ "miow",
+ "same-file",
+ "sha2",
+ "shell-escape",
+ "tempfile",
+ "tracing",
+ "walkdir",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "charset"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46"
+dependencies = [
+ "base64 0.13.1",
+ "encoding_rs",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "cipher"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap-verbosity-flag"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb9b20c0dd58e4c2e991c8d203bbeb76c11304d1011659686b5b644bc29aa478"
+dependencies = [
+ "clap",
+ "log",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.0",
+ "terminal_size",
+]
+
+[[package]]
+name = "clap_complete"
+version = "4.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
+dependencies = [
+ "clap",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "configparser"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec6d3da8e550377a85339063af6e3735f4b1d9392108da4e083a1b3b9820288"
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.52.0",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[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 = "csv"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core 0.9.9",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+
+[[package]]
+name = "deno_task_shell"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db60ddb0f58f5c32c2ea67784c233eeaf187285cc7b49733bc549088702a4552"
+dependencies = [
+ "anyhow",
+ "futures",
+ "glob",
+ "monch",
+ "os_pipe",
+ "path-dedot",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "dialoguer"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
+dependencies = [
+ "console",
+ "shell-words",
+ "tempfile",
+ "thiserror",
+ "zeroize",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "directories"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"
+dependencies = [
+ "dirs-sys",
+]
+
+[[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-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 = "distribution-filename"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "pep440_rs",
+ "platform-tags",
+ "rkyv",
+ "serde",
+ "thiserror",
+ "url",
+ "uv-normalize",
+]
+
+[[package]]
+name = "distribution-types"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "cache-key",
+ "data-encoding",
+ "distribution-filename",
+ "fs-err",
+ "itertools",
+ "once_cell",
+ "pep440_rs",
+ "pep508_rs",
+ "platform-tags",
+ "pypi-types",
+ "rkyv",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "sha2",
+ "thiserror",
+ "tracing",
+ "url",
+ "urlencoding",
+ "uv-auth",
+ "uv-fs",
+ "uv-git",
+ "uv-normalize",
+]
+
+[[package]]
+name = "drop_bomb"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1"
+
+[[package]]
+name = "dunce"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "elsa"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d98e71ae4df57d214182a2e5cb90230c0192c6ddfcaa05c36453d46a54713e10"
+dependencies = [
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "enum_dispatch"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e"
+dependencies = [
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "enumflags2"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "erased-serde"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+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 = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.2.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[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 = "fs-err"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+ "tokio",
+]
+
+[[package]]
+name = "fs2"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "fslock"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+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 = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+dependencies = [
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "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.53",
+]
+
+[[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 = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "git2"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "openssl-probe",
+ "openssl-sys",
+ "url",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "globset"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "log",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "goblin"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb07a4ffed2093b118a525b1d8f5204ae274faed5604537caf7135d0f18d9887"
+dependencies = [
+ "log",
+ "plain",
+ "scroll",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 2.2.5",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[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 = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "hkdf"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[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 = "html-escape"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476"
+dependencies = [
+ "utf8-width",
+]
+
+[[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-cache"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b5ab65432bbdfe8490dfde21d0366353a8d39f2bc24aca0146889f931b0b4b5"
+dependencies = [
+ "async-trait",
+ "bincode",
+ "cacache",
+ "http",
+ "http-cache-semantics",
+ "httpdate",
+ "serde",
+ "url",
+]
+
+[[package]]
+name = "http-cache-reqwest"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8285341ce7e709c56a0f259ff1c789c70edfbaa88acd69d27e4d63980b92dc"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http",
+ "http-cache",
+ "http-cache-semantics",
+ "reqwest",
+ "reqwest-middleware",
+ "serde",
+ "task-local-extensions",
+ "url",
+]
+
+[[package]]
+name = "http-cache-semantics"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7aec9f678bca3f4a15194b980f20ed9bfe0dd38e8d298c65c559a93dfbd6380a"
+dependencies = [
+ "http",
+ "http-serde",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "http-content-range"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f0d1a8ef218a86416107794b34cc446958d9203556c312bb41eab4c924c1d2e"
+
+[[package]]
+name = "http-serde"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee"
+dependencies = [
+ "http",
+ "serde",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "human_bytes"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e"
+
+[[package]]
+name = "humansize"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7"
+dependencies = [
+ "libm",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.5.6",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core 0.52.0",
+]
+
+[[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 = "ignore"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+dependencies = [
+ "crossbeam-deque",
+ "globset",
+ "log",
+ "memchr",
+ "regex-automata 0.4.6",
+ "same-file",
+ "walkdir",
+ "winapi-util",
+]
+
+[[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",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+ "serde",
+]
+
+[[package]]
+name = "indicatif"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
+dependencies = [
+ "console",
+ "instant",
+ "number_prefix",
+ "portable-atomic",
+ "unicode-width",
+]
+
+[[package]]
+name = "indoc"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+
+[[package]]
+name = "insta"
+version = "1.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a7c22c4d34ef4788c351e971c52bfdfe7ea2766f8c5466bc175dd46e52ac22e"
+dependencies = [
+ "console",
+ "globset",
+ "lazy_static",
+ "linked-hash-map",
+ "serde",
+ "similar",
+ "walkdir",
+ "yaml-rust",
+]
+
+[[package]]
+name = "install-wheel-rs"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "configparser",
+ "csv",
+ "data-encoding",
+ "distribution-filename",
+ "fs-err",
+ "mailparse",
+ "once_cell",
+ "pathdiff",
+ "pep440_rs",
+ "platform-host",
+ "platform-info",
+ "plist",
+ "pypi-types",
+ "reflink-copy",
+ "regex",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "sha2",
+ "tempfile",
+ "thiserror",
+ "tracing",
+ "url",
+ "uv-fs",
+ "uv-normalize",
+ "walkdir",
+ "zip",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is_ci"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
+
+[[package]]
+name = "is_executable"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8"
+dependencies = [
+ "winapi",
+]
+
+[[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.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "jobserver"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "json-patch"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
+dependencies = [
+ "serde",
+ "serde_json",
+ "thiserror",
+ "treediff",
+]
+
+[[package]]
+name = "junction"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca39ef0d69b18e6a2fd14c2f0a1d593200f4a4ed949b240b5917ab51fac754cb"
+dependencies = [
+ "scopeguard",
+ "winapi",
+]
+
+[[package]]
+name = "keyring"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1be8bc4c6b6e9d85ecdad090fcf342a9216f53d747a537cc05e3452fd650ca46"
+dependencies = [
+ "byteorder",
+ "lazy_static",
+ "linux-keyutils",
+ "secret-service",
+ "security-framework",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "lazy-regex"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d12be4595afdf58bd19e4a9f4e24187da2a66700786ff660a418e9059937a4c"
+dependencies = [
+ "lazy-regex-proc_macros",
+ "once_cell",
+ "regex",
+]
+
+[[package]]
+name = "lazy-regex-proc_macros"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44bcd58e6c97a7fcbaffcdc95728b393b8d98933bfadad49ed4097845b57ef0b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.16.2+1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
+dependencies = [
+ "cc",
+ "libc",
+ "libssh2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libloading"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
+dependencies = [
+ "cfg-if",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "libssh2-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "line-wrap"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
+dependencies = [
+ "safemem",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-keyutils"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "mailparse"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757"
+dependencies = [
+ "charset",
+ "data-encoding",
+ "quoted_printable",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmap2"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miette"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e"
+dependencies = [
+ "miette-derive 5.10.0",
+ "once_cell",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "miette"
+version = "7.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1"
+dependencies = [
+ "backtrace",
+ "backtrace-ext",
+ "cfg-if",
+ "miette-derive 7.2.0",
+ "owo-colors",
+ "supports-color",
+ "supports-hyperlinks",
+ "supports-unicode",
+ "terminal_size",
+ "textwrap",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "miette-derive"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "miette-derive"
+version = "7.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "minijinja"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe5b00f90b3542f74bb9aaaccd2627920c16367787de103883461365580e5481"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "miow"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "monch"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b52c1b33ff98142aecea13138bd399b68aa7ab5d9546c300988c345004001eea"
+
+[[package]]
+name = "nanoid"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8"
+dependencies = [
+ "rand",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "netrc-rs"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea2970fbbc8c785e8246234a7bd004ed66cd1ed1a35ec73669a92545e419b836"
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
+[[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"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
+dependencies = [
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
+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-iter"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "number_prefix"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once-map"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "dashmap",
+ "tokio",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
+
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-src"
+version = "300.2.3+3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+dependencies = [
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "ordered-stream"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "os_pipe"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ouroboros"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b7be5a8a3462b752f4be3ff2b2bf2f7f1d00834902e46be2a4d68b87b0573c"
+dependencies = [
+ "aliasable",
+ "ouroboros_macro",
+ "static_assertions",
+]
+
+[[package]]
+name = "ouroboros_macro"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b645dcde5f119c2c454a92d0dfa271a2a3b205da92e4292a68ead4bdbfde1f33"
+dependencies = [
+ "heck 0.4.1",
+ "itertools",
+ "proc-macro2",
+ "proc-macro2-diagnostics",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "owo-colors"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core 0.8.6",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.9",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+dependencies = [
+ "cfg-if",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.4.1",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "path-dedot"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "pep440_rs"
+version = "0.5.0"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "once_cell",
+ "pubgrub",
+ "rkyv",
+ "serde",
+ "unicode-width",
+ "unscanny",
+]
+
+[[package]]
+name = "pep508_rs"
+version = "0.4.2"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "derivative",
+ "once_cell",
+ "pep440_rs",
+ "regex",
+ "rkyv",
+ "serde",
+ "thiserror",
+ "unicode-width",
+ "url",
+ "uv-fs",
+ "uv-normalize",
+]
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.2.5",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+ "unicase",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+ "unicase",
+]
+
+[[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.53",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
+name = "pixi"
+version = "0.17.1"
+dependencies = [
+ "assert_matches",
+ "async-once-cell",
+ "cfg-if",
+ "chrono",
+ "clap",
+ "clap-verbosity-flag",
+ "clap_complete",
+ "console",
+ "crossbeam-channel",
+ "deno_task_shell",
+ "dialoguer",
+ "dirs",
+ "distribution-filename",
+ "distribution-types",
+ "dunce",
+ "flate2",
+ "futures",
+ "http-cache-reqwest",
+ "human_bytes",
+ "humantime",
+ "ignore",
+ "indexmap 2.2.5",
+ "indicatif",
+ "insta",
+ "install-wheel-rs",
+ "is_executable",
+ "itertools",
+ "lazy_static",
+ "libc",
+ "miette 7.2.0",
+ "minijinja",
+ "nix 0.28.0",
+ "once_cell",
+ "pep440_rs",
+ "pep508_rs",
+ "platform-host",
+ "platform-tags",
+ "pypi-types",
+ "rattler",
+ "rattler_conda_types",
+ "rattler_digest",
+ "rattler_lock",
+ "rattler_networking",
+ "rattler_repodata_gateway",
+ "rattler_shell",
+ "rattler_solve",
+ "rattler_virtual_packages",
+ "regex",
+ "reqwest",
+ "reqwest-middleware",
+ "reqwest-retry 0.4.0",
+ "rstest",
+ "self-replace",
+ "serde",
+ "serde-untagged",
+ "serde_json",
+ "serde_with",
+ "serde_yaml",
+ "serial_test",
+ "shlex",
+ "signal-hook",
+ "spdx",
+ "strsim 0.11.0",
+ "tabwriter",
+ "tar",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "toml",
+ "toml_edit 0.22.8",
+ "tracing",
+ "tracing-subscriber",
+ "url",
+ "uv-cache",
+ "uv-client",
+ "uv-dispatch",
+ "uv-distribution",
+ "uv-installer",
+ "uv-interpreter",
+ "uv-normalize",
+ "uv-resolver",
+ "uv-traits",
+ "xxhash-rust",
+ "zip",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "plain"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
+
+[[package]]
+name = "platform-host"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "fs-err",
+ "goblin",
+ "once_cell",
+ "platform-info",
+ "plist",
+ "regex",
+ "serde",
+ "target-lexicon",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "platform-info"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "platform-tags"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "platform-host",
+ "rustc-hash",
+ "thiserror",
+]
+
+[[package]]
+name = "plist"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
+dependencies = [
+ "base64 0.21.7",
+ "indexmap 2.2.5",
+ "line-wrap",
+ "quick-xml",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "polling"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+dependencies = [
+ "autocfg",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "concurrent-queue",
+ "libc",
+ "log",
+ "pin-project-lite",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.32",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "priority-queue"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bda9164fe05bc9225752d54aae413343c36f684380005398a6a8fde95fe785"
+dependencies = [
+ "autocfg",
+ "indexmap 1.9.3",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+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.53",
+ "version_check",
+ "yansi",
+]
+
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pubgrub"
+version = "0.2.1"
+source = "git+https://github.com/zanieb/pubgrub?rev=332f02b0e436ca8449c7ef5e15b992dd5f35908b#332f02b0e436ca8449c7ef5e15b992dd5f35908b"
+dependencies = [
+ "indexmap 2.2.5",
+ "log",
+ "priority-queue",
+ "rustc-hash",
+ "thiserror",
+]
+
+[[package]]
+name = "purl"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d153044e55fb5c0a6f0f0f974c3335d15a842263ba4b208d2656120fe530a5ab"
+dependencies = [
+ "hex",
+ "percent-encoding",
+ "phf",
+ "serde",
+ "smartstring",
+ "thiserror",
+ "unicase",
+]
+
+[[package]]
+name = "pypi-types"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "chrono",
+ "mailparse",
+ "once_cell",
+ "pep440_rs",
+ "pep508_rs",
+ "regex",
+ "rkyv",
+ "serde",
+ "thiserror",
+ "tracing",
+ "url",
+ "uv-normalize",
+]
+
+[[package]]
+name = "pyproject-toml"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898"
+dependencies = [
+ "indexmap 2.2.5",
+ "pep440_rs",
+ "pep508_rs",
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "quoted_printable"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "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 = "rattler"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6fbcaa02a723f289c6ca6a23b923dfc7172d5686428e519e5c5667d21b602b2"
+dependencies = [
+ "anyhow",
+ "async-compression",
+ "bytes",
+ "chrono",
+ "clap",
+ "digest",
+ "dirs",
+ "drop_bomb",
+ "fs-err",
+ "futures",
+ "fxhash",
+ "hex",
+ "indexmap 2.2.5",
+ "itertools",
+ "memchr",
+ "memmap2 0.9.4",
+ "nom",
+ "once_cell",
+ "pin-project-lite",
+ "rattler_conda_types",
+ "rattler_digest",
+ "rattler_networking",
+ "rattler_package_streaming",
+ "reflink-copy",
+ "regex",
+ "reqwest",
+ "reqwest-middleware",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "smallvec",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "tracing",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "rattler_conda_types"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33f37815d9f04d8a286cfb4147cae9fcd1db9711f0d34bba7c610e1704da125f"
+dependencies = [
+ "chrono",
+ "fxhash",
+ "glob",
+ "hex",
+ "indexmap 2.2.5",
+ "itertools",
+ "lazy-regex",
+ "nom",
+ "purl",
+ "rattler_digest",
+ "rattler_macros",
+ "regex",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serde_with",
+ "serde_yaml",
+ "smallvec",
+ "strum",
+ "thiserror",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "rattler_digest"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a15f14fa0e0fdf3fbacabd21d66a3d6b15af5c7c0cda2e0e29bd6605dec4569"
+dependencies = [
+ "blake2",
+ "digest",
+ "hex",
+ "md-5",
+ "serde",
+ "serde_with",
+ "sha2",
+ "tokio",
+]
+
+[[package]]
+name = "rattler_lock"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c8c0a1ed2bef78da6df4625193b93940d172565c99cfe2647d795db136c5b8b"
+dependencies = [
+ "chrono",
+ "fxhash",
+ "indexmap 2.2.5",
+ "itertools",
+ "pep440_rs",
+ "pep508_rs",
+ "purl",
+ "rattler_conda_types",
+ "rattler_digest",
+ "serde",
+ "serde-json-python-formatter",
+ "serde_json",
+ "serde_with",
+ "serde_yaml",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "rattler_macros"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7f6c3aedd4fa6a50b41be9537c8abc7190ae24f1b0add0ab722275fa0ec8d6d"
+dependencies = [
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "rattler_networking"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92f944900e1008d0760ccbd8a4989e32207728826fc1e2f7c2f639f917739bce"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "base64 0.21.7",
+ "chrono",
+ "dirs",
+ "fslock",
+ "getrandom",
+ "http",
+ "itertools",
+ "keyring",
+ "lazy_static",
+ "libc",
+ "netrc-rs",
+ "once_cell",
+ "reqwest",
+ "reqwest-middleware",
+ "retry-policies 0.3.0",
+ "serde",
+ "serde_json",
+ "task-local-extensions",
+ "thiserror",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "rattler_package_streaming"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78d226a0aa9317c35d244fc991e77552331007801a6b1a6d63a22325f870c709"
+dependencies = [
+ "bzip2",
+ "chrono",
+ "futures-util",
+ "itertools",
+ "num_cpus",
+ "rattler_conda_types",
+ "rattler_digest",
+ "rattler_networking",
+ "reqwest",
+ "reqwest-middleware",
+ "serde_json",
+ "tar",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "url",
+ "zip",
+ "zstd",
+]
+
+[[package]]
+name = "rattler_repodata_gateway"
+version = "0.19.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b89b63a9fa257cefed44e3de10e95987bf29bfaeb376abd0b40ee33ff0d4a391"
+dependencies = [
+ "anyhow",
+ "async-compression",
+ "blake2",
+ "cache_control",
+ "chrono",
+ "futures",
+ "hex",
+ "humansize",
+ "humantime",
+ "itertools",
+ "json-patch",
+ "libc",
+ "md-5",
+ "memmap2 0.9.4",
+ "ouroboros",
+ "pin-project-lite",
+ "rattler_conda_types",
+ "rattler_digest",
+ "rattler_networking",
+ "reqwest",
+ "reqwest-middleware",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "superslice",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "url",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rattler_shell"
+version = "0.19.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b7c92c8397fe02a27cb7cbbbc39a95246e2dd479e13455f0e402e290a475792"
+dependencies = [
+ "enum_dispatch",
+ "indexmap 2.2.5",
+ "itertools",
+ "rattler_conda_types",
+ "serde_json",
+ "shlex",
+ "sysinfo",
+ "tempfile",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "rattler_solve"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eecfc2cc975fd3eb54753e3e894ee69a92d1cdb8ef73e99a4526704e72aa368"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "futures",
+ "hex",
+ "itertools",
+ "rattler_conda_types",
+ "rattler_digest",
+ "resolvo",
+ "serde",
+ "tempfile",
+ "thiserror",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "rattler_virtual_packages"
+version = "0.19.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b916c2861f98dc500d1c0120e6db60560f4b5a8a5afe1b972d613b6ca24e103a"
+dependencies = [
+ "cfg-if",
+ "libloading",
+ "nom",
+ "once_cell",
+ "plist",
+ "rattler_conda_types",
+ "regex",
+ "serde",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "rayon"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "reflink-copy"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52b1349400e2ffd64a9fb5ed9008e33c0b8ef86bd5bae8f73080839c7082f1d5"
+dependencies = [
+ "cfg-if",
+ "rustix 0.38.32",
+ "windows 0.54.0",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "relative-path"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
+
+[[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
+[[package]]
+name = "requirements-txt"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "async-recursion",
+ "fs-err",
+ "once_cell",
+ "pep440_rs",
+ "pep508_rs",
+ "regex",
+ "serde",
+ "thiserror",
+ "tracing",
+ "unscanny",
+ "url",
+ "uv-client",
+ "uv-fs",
+ "uv-normalize",
+ "uv-warnings",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
+dependencies = [
+ "async-compression",
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-native-certs",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tokio-rustls",
+ "tokio-util",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+ "webpki-roots",
+ "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-netrc"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eca0c58cd4b2978f9697dea94302e772399f559cd175356eb631cb6daaa0b6db"
+dependencies = [
+ "reqwest-middleware",
+ "rust-netrc",
+]
+
+[[package]]
+name = "reqwest-retry"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9af20b65c2ee9746cc575acb6bd28a05ffc0d15e25c992a8f4462d8686aacb4f"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "futures",
+ "getrandom",
+ "http",
+ "hyper",
+ "parking_lot 0.11.2",
+ "reqwest",
+ "reqwest-middleware",
+ "retry-policies 0.2.1",
+ "task-local-extensions",
+ "tokio",
+ "tracing",
+ "wasm-timer",
+]
+
+[[package]]
+name = "reqwest-retry"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cadced6a67c5c2d1c819cc2d7e6ddf066f32b9b6a04f8866203ceeb44b79c37f"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "futures",
+ "getrandom",
+ "http",
+ "hyper",
+ "parking_lot 0.11.2",
+ "reqwest",
+ "reqwest-middleware",
+ "retry-policies 0.3.0",
+ "task-local-extensions",
+ "tokio",
+ "tracing",
+ "wasm-timer",
+]
+
+[[package]]
+name = "resolvo"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2016584c3fd9df0fd859a7dcbc7fafdc7fdd2d87b53a576e8e63e62fad140e33"
+dependencies = [
+ "bitvec",
+ "elsa",
+ "event-listener 5.2.0",
+ "futures",
+ "itertools",
+ "petgraph",
+ "tracing",
+]
+
+[[package]]
+name = "retry-policies"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17dd00bff1d737c40dbcd47d4375281bf4c17933f9eef0a185fc7bacca23ecbd"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "rand",
+]
+
+[[package]]
+name = "retry-policies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "493b4243e32d6eedd29f9a398896e35c6943a123b55eec97dcaee98310d25810"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "rand",
+]
+
+[[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 = "rkyv"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "rmp"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20"
+dependencies = [
+ "byteorder",
+ "num-traits",
+ "paste",
+]
+
+[[package]]
+name = "rmp-serde"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a"
+dependencies = [
+ "byteorder",
+ "rmp",
+ "serde",
+]
+
+[[package]]
+name = "rstest"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "rstest_macros",
+ "rustc_version",
+]
+
+[[package]]
+name = "rstest_macros"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
+dependencies = [
+ "cfg-if",
+ "glob",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "relative-path",
+ "rustc_version",
+ "syn 2.0.53",
+ "unicode-ident",
+]
+
+[[package]]
+name = "rust-netrc"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32662f97cbfdbad9d5f78f1338116f06871e7dae4fd37e9f59a0f57cf2044868"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.37.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys 0.3.8",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[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",
+ "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-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[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 = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "scroll"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"
+dependencies = [
+ "scroll_derive",
+]
+
+[[package]]
+name = "scroll_derive"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "secret-service"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5da1a5ad4d28c03536f82f77d9f36603f5e37d8869ac98f0a750d5b5686d8d95"
+dependencies = [
+ "aes",
+ "block-modes",
+ "futures-util",
+ "generic-array",
+ "hkdf",
+ "num",
+ "once_cell",
+ "rand",
+ "serde",
+ "sha2",
+ "zbus",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "self-replace"
+version = "1.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525db198616b2bcd0f245daf7bfd8130222f7ee6af9ff9984c19a61bf1160c55"
+dependencies = [
+ "fastrand 1.9.0",
+ "tempfile",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+
+[[package]]
+name = "serde"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-json-python-formatter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db62ee54077c67a8cff258c919175f0b3cb78d2b6dcafb0d166ff98dcb21aa5d"
+dependencies = [
+ "serde_json",
+]
+
+[[package]]
+name = "serde-untagged"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a160535368dfc353348e7eaa299156bd508c60c45a9249725f5f6d370d82a66"
+dependencies = [
+ "erased-serde",
+ "serde",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+dependencies = [
+ "indexmap 2.2.5",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+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 = "serde_with"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
+dependencies = [
+ "base64 0.21.7",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.2.5",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
+dependencies = [
+ "indexmap 2.2.5",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "serial_test"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+dependencies = [
+ "dashmap",
+ "futures",
+ "lazy_static",
+ "log",
+ "parking_lot 0.12.1",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "sha-1"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[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 = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+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 = "shell-escape"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
+
+[[package]]
+name = "shell-words"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "similar"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "smartstring"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
+dependencies = [
+ "autocfg",
+ "static_assertions",
+ "version_check",
+]
+
+[[package]]
+name = "smawk"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
+
+[[package]]
+name = "socket2"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "spdx"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29ef1a0fa1e39ac22972c8db23ff89aea700ab96aa87114e1fb55937a631a0c9"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "ssri"
+version = "9.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da7a2b3c2bc9693bcb40870c4e9b5bf0d79f9cb46273321bf855ec513e919082"
+dependencies = [
+ "base64 0.21.7",
+ "digest",
+ "hex",
+ "miette 5.10.0",
+ "serde",
+ "sha-1",
+ "sha2",
+ "thiserror",
+ "xxhash-rust",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "superslice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f"
+
+[[package]]
+name = "supports-color"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f"
+dependencies = [
+ "is_ci",
+]
+
+[[package]]
+name = "supports-hyperlinks"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee"
+
+[[package]]
+name = "supports-unicode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
+
+[[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.53"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
+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 = "sysinfo"
+version = "0.30.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "windows 0.52.0",
+]
+
+[[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 = "tabwriter"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a327282c4f64f6dc37e3bba4c2b6842cc3a992f204fa58d917696a89f691e5f6"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "tar"
+version = "0.4.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[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.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand 2.0.1",
+ "rustix 0.38.32",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix 0.38.32",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
+dependencies = [
+ "smawk",
+ "unicode-linebreak",
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[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.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+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.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tl"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b130bd8a58c163224b44e217b4239ca7b927d82bf6cc2fea1fc561d15056e3f7"
+
+[[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2 0.5.6",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "tokio-tar"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75"
+dependencies = [
+ "filetime",
+ "futures-core",
+ "libc",
+ "redox_syscall 0.3.5",
+ "tokio",
+ "tokio-stream",
+ "xattr",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-io",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.8",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.2.5",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
+dependencies = [
+ "indexmap 2.2.5",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.5",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "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.53",
+]
+
+[[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.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "treediff"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5"
+dependencies = [
+ "serde_json",
+]
+
+[[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 = "uds_windows"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+dependencies = [
+ "memoffset 0.9.0",
+ "tempfile",
+ "winapi",
+]
+
+[[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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
+
+[[package]]
+name = "unscanny"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "utf8-width"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "getrandom",
+ "rand",
+]
+
+[[package]]
+name = "uv-auth"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "uv-build"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "distribution-types",
+ "fs-err",
+ "indoc",
+ "itertools",
+ "once_cell",
+ "pep508_rs",
+ "platform-host",
+ "pypi-types",
+ "pyproject-toml",
+ "regex",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "toml",
+ "tracing",
+ "uv-extract",
+ "uv-fs",
+ "uv-interpreter",
+ "uv-traits",
+ "uv-virtualenv",
+]
+
+[[package]]
+name = "uv-cache"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "cache-key",
+ "cachedir",
+ "directories",
+ "distribution-types",
+ "fs-err",
+ "nanoid",
+ "pypi-types",
+ "serde",
+ "tempfile",
+ "tracing",
+ "url",
+ "uv-fs",
+ "uv-normalize",
+ "walkdir",
+]
+
+[[package]]
+name = "uv-client"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "async_http_range_reader",
+ "async_zip",
+ "cache-key",
+ "chrono",
+ "distribution-filename",
+ "distribution-types",
+ "fs-err",
+ "futures",
+ "html-escape",
+ "http",
+ "install-wheel-rs",
+ "pep440_rs",
+ "pep508_rs",
+ "platform-tags",
+ "pypi-types",
+ "reqwest",
+ "reqwest-middleware",
+ "reqwest-netrc",
+ "reqwest-retry 0.3.0",
+ "rkyv",
+ "rmp-serde",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "sha2",
+ "task-local-extensions",
+ "tempfile",
+ "thiserror",
+ "tl",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "url",
+ "urlencoding",
+ "uv-auth",
+ "uv-cache",
+ "uv-fs",
+ "uv-normalize",
+ "uv-version",
+ "uv-warnings",
+]
+
+[[package]]
+name = "uv-dispatch"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "distribution-types",
+ "fs-err",
+ "futures",
+ "itertools",
+ "pep508_rs",
+ "platform-host",
+ "platform-tags",
+ "pypi-types",
+ "rustc-hash",
+ "tempfile",
+ "tokio",
+ "tracing",
+ "uv-build",
+ "uv-cache",
+ "uv-client",
+ "uv-distribution",
+ "uv-installer",
+ "uv-interpreter",
+ "uv-resolver",
+ "uv-traits",
+ "uv-virtualenv",
+]
+
+[[package]]
+name = "uv-distribution"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "cache-key",
+ "distribution-filename",
+ "distribution-types",
+ "fs-err",
+ "futures",
+ "install-wheel-rs",
+ "nanoid",
+ "pep440_rs",
+ "pep508_rs",
+ "platform-tags",
+ "pypi-types",
+ "reqwest",
+ "rmp-serde",
+ "rustc-hash",
+ "serde",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "url",
+ "uv-cache",
+ "uv-client",
+ "uv-extract",
+ "uv-fs",
+ "uv-git",
+ "uv-normalize",
+ "uv-traits",
+ "zip",
+]
+
+[[package]]
+name = "uv-extract"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "async-compression",
+ "async_zip",
+ "flate2",
+ "fs-err",
+ "futures",
+ "rayon",
+ "rustc-hash",
+ "thiserror",
+ "tokio",
+ "tokio-tar",
+ "tokio-util",
+ "tracing",
+ "zip",
+]
+
+[[package]]
+name = "uv-fs"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "dunce",
+ "fs-err",
+ "fs2",
+ "junction",
+ "tempfile",
+ "tracing",
+ "urlencoding",
+ "uv-warnings",
+]
+
+[[package]]
+name = "uv-git"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "cache-key",
+ "cargo-util",
+ "fs-err",
+ "git2",
+ "glob",
+ "hex",
+ "hmac",
+ "home",
+ "once_cell",
+ "rand",
+ "reqwest",
+ "serde",
+ "sha1",
+ "tokio",
+ "tracing",
+ "url",
+ "uv-fs",
+]
+
+[[package]]
+name = "uv-installer"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "async-channel",
+ "distribution-filename",
+ "distribution-types",
+ "fs-err",
+ "futures",
+ "install-wheel-rs",
+ "once-map",
+ "pep440_rs",
+ "pep508_rs",
+ "platform-tags",
+ "pypi-types",
+ "pyproject-toml",
+ "rayon",
+ "requirements-txt",
+ "rustc-hash",
+ "serde",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "toml",
+ "tracing",
+ "url",
+ "uv-cache",
+ "uv-client",
+ "uv-distribution",
+ "uv-extract",
+ "uv-fs",
+ "uv-git",
+ "uv-interpreter",
+ "uv-normalize",
+ "uv-traits",
+ "uv-warnings",
+ "walkdir",
+]
+
+[[package]]
+name = "uv-interpreter"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "cache-key",
+ "configparser",
+ "fs-err",
+ "install-wheel-rs",
+ "once_cell",
+ "pep440_rs",
+ "pep508_rs",
+ "platform-host",
+ "platform-tags",
+ "pypi-types",
+ "regex",
+ "rmp-serde",
+ "same-file",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "uv-cache",
+ "uv-fs",
+ "which",
+ "winapi",
+]
+
+[[package]]
+name = "uv-normalize"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "rkyv",
+ "serde",
+]
+
+[[package]]
+name = "uv-resolver"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anstream",
+ "anyhow",
+ "cache-key",
+ "chrono",
+ "dashmap",
+ "derivative",
+ "distribution-filename",
+ "distribution-types",
+ "either",
+ "fs-err",
+ "futures",
+ "indexmap 2.2.5",
+ "install-wheel-rs",
+ "itertools",
+ "once-map",
+ "once_cell",
+ "owo-colors",
+ "pep440_rs",
+ "pep508_rs",
+ "petgraph",
+ "platform-host",
+ "platform-tags",
+ "pubgrub",
+ "pypi-types",
+ "reqwest",
+ "rkyv",
+ "rustc-hash",
+ "serde_json",
+ "sha2",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "tracing",
+ "url",
+ "uv-cache",
+ "uv-client",
+ "uv-distribution",
+ "uv-git",
+ "uv-interpreter",
+ "uv-normalize",
+ "uv-traits",
+ "uv-warnings",
+ "zip",
+]
+
+[[package]]
+name = "uv-traits"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anyhow",
+ "distribution-types",
+ "once-map",
+ "pep508_rs",
+ "serde",
+ "serde_json",
+ "tokio",
+ "uv-cache",
+ "uv-interpreter",
+ "uv-normalize",
+]
+
+[[package]]
+name = "uv-version"
+version = "0.1.16"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+
+[[package]]
+name = "uv-virtualenv"
+version = "0.0.4"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anstream",
+ "cachedir",
+ "directories",
+ "fs-err",
+ "pathdiff",
+ "platform-host",
+ "pypi-types",
+ "serde",
+ "serde_json",
+ "tempfile",
+ "thiserror",
+ "tracing",
+ "uv-cache",
+ "uv-fs",
+ "uv-interpreter",
+ "which",
+]
+
+[[package]]
+name = "uv-warnings"
+version = "0.0.1"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.16#9f1452cb72e1da912f0653e398ac4ecb81244a82"
+dependencies = [
+ "anstream",
+ "once_cell",
+ "owo-colors",
+ "rustc-hash",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+
+[[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.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wasm-streams"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-timer"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
+dependencies = [
+ "futures",
+ "js-sys",
+ "parking_lot 0.11.2",
+ "pin-utils",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "which"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix 0.38.32",
+ "windows-sys 0.52.0",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-targets 0.52.4",
+]
+
+[[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.4",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[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.4",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[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.4",
+]
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "xattr"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.4.13",
+ "rustix 0.38.32",
+]
+
+[[package]]
+name = "xdg-home"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "xxhash-rust"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "yansi"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
+
+[[package]]
+name = "zbus"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-fs",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-process",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "blocking",
+ "byteorder",
+ "derivative",
+ "enumflags2",
+ "event-listener 2.5.3",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+ "nix 0.26.4",
+ "once_cell",
+ "ordered-stream",
+ "rand",
+ "serde",
+ "serde_repr",
+ "sha1",
+ "static_assertions",
+ "tracing",
+ "uds_windows",
+ "winapi",
+ "xdg-home",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 1.0.109",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zbus_names"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "zvariant",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
+name = "zip"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
+dependencies = [
+ "byteorder",
+ "crc32fast",
+ "crossbeam-utils",
+ "flate2",
+ "time",
+]
+
+[[package]]
+name = "zstd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "7.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
+dependencies = [
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.9+zstd.1.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
+[[package]]
+name = "zvariant"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
+dependencies = [
+ "byteorder",
+ "enumflags2",
+ "libc",
+ "serde",
+ "static_assertions",
+ "zvariant_derive",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
diff --git a/pkgs/by-name/pi/pixi/package.nix b/pkgs/by-name/pi/pixi/package.nix
index 2c7a1d8f207e2..4f11547fae1f5 100644
--- a/pkgs/by-name/pi/pixi/package.nix
+++ b/pkgs/by-name/pi/pixi/package.nix
@@ -3,6 +3,7 @@
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
+, libgit2
 , openssl
 , installShellFiles
 , darwin
@@ -12,16 +13,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pixi";
-  version = "0.15.2";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "prefix-dev";
     repo = "pixi";
     rev = "v${version}";
-    hash = "sha256-bh8Uu6Q2AND50Qzivc6k1Z8JWudkHC2i4YW1Hxa69SM=";
+    hash = "sha256-wYk77i/33J+VJeT+Bi3L8DJv9quP7VJkcq3voA6U/1s=";
   };
 
-  cargoHash = "sha256-yMIcPwnuN7F2ZrOtJw8T+nxeSzLsYn+iC34bYeWpi/w=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "async_zip-0.0.16" = "sha256-M94ceTCtyQc1AtPXYrVGplShQhItqZZa/x5qLiL+gs0=";
+      "cache-key-0.0.1" = "sha256-CvaYXtgd8eqzPNoXukjPwaoT/QOlUVKYNzD8Db6on9Q=";
+      "pubgrub-0.2.1" = "sha256-1teDXUkXPbL7LZAYrlm2w5CEyb8g0bDqNhg5Jn0/puc=";
+    };
+  };
 
   nativeBuildInputs = [
     pkg-config
@@ -29,12 +37,17 @@ rustPlatform.buildRustPackage rec {
   ];
 
   buildInputs = [
+    libgit2
     openssl
-  ]
-  ++ lib.optionals stdenv.isDarwin (
+  ] ++ lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk_11_0.frameworks; [ CoreFoundation IOKit SystemConfiguration Security ]
   );
 
+  env = {
+    LIBGIT2_NO_VENDOR = 1;
+    OPENSSL_NO_VENDOR = 1;
+  };
+
   # There are some CI failures with Rattler. Tests on Aarch64 has been skipped.
   # See https://github.com/prefix-dev/pixi/pull/241.
   doCheck = !stdenv.isAarch64;
diff --git a/pkgs/by-name/pl/platformsh/package.nix b/pkgs/by-name/pl/platformsh/package.nix
index 5d9e6dc2d2f49..9f295ac404a7f 100644
--- a/pkgs/by-name/pl/platformsh/package.nix
+++ b/pkgs/by-name/pl/platformsh/package.nix
@@ -2,16 +2,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "platformsh";
-  version = "4.11.4";
+  version = "4.17.0";
 
   src = fetchFromGitHub {
     owner = "platformsh";
     repo = "legacy-cli";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-4Fo4vmTEo0rSJNtoGz/mRv5dRCMq5vJmnwAxsvfs9qo=";
+    hash = "sha256-8x7Fl1bYZIND4PuxVmPFNO2QOjeLMiIXh409DXG/WMU=";
   };
 
-  vendorHash = "sha256-MuZKa4lKvfls85cYjOTHHd6lKVVS0QJD6Pdn7csSzUo=";
+  vendorHash = "sha256-nXPfFlKYi2qP1bTeurRsopncKWg4zIZnZsSX/i0SF/s=";
 
   prePatch = ''
     substituteInPlace config-defaults.yaml \
@@ -36,7 +36,7 @@ php.buildComposerProject (finalAttrs: {
     homepage = "https://github.com/platformsh/legacy-cli";
     license = lib.licenses.mit;
     mainProgram = "platform";
-    maintainers = with lib.maintainers; [ shyim ];
+    maintainers = with lib.maintainers; [ shyim spk ];
     platforms = lib.platforms.all;
   };
 })
diff --git a/pkgs/by-name/pl/plumber/package.nix b/pkgs/by-name/pl/plumber/package.nix
index 760eea36573ae..61537027e311a 100644
--- a/pkgs/by-name/pl/plumber/package.nix
+++ b/pkgs/by-name/pl/plumber/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "plumber";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "streamdal";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-H1tyMedYKj1bePNcaEWYP3njHw57cJ0jgxwC7zDXQvk=";
+    hash = "sha256-7sOj21ZTmo3KJ8CduH25jA4gmXLMKi5QWAng6nP0dsQ=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/misc/pot/Cargo.lock b/pkgs/by-name/po/pot/Cargo.lock
index a8dcf7612e3ab..88e10a2d1d888 100644
--- a/pkgs/applications/misc/pot/Cargo.lock
+++ b/pkgs/by-name/po/pot/Cargo.lock
@@ -2791,9 +2791,9 @@ dependencies = [
 
 [[package]]
 name = "lingua"
-version = "1.6.1"
+version = "1.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73989d32b4cd00a69e78d979203fa3b87e43fae0236a29544331c2ccfa180fdd"
+checksum = "d109aef84956f04b8b5866db17e59f964152411915ad27b6e291b262d63a442c"
 dependencies = [
  "ahash",
  "brotli",
@@ -2821,6 +2821,7 @@ dependencies = [
  "lingua-spanish-language-model",
  "lingua-thai-language-model",
  "lingua-turkish-language-model",
+ "lingua-ukrainian-language-model",
  "lingua-vietnamese-language-model",
  "maplit",
  "once_cell",
@@ -3015,6 +3016,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "lingua-ukrainian-language-model"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14ed035dd4b7ec5f76fe3b07e5f499d76c4cdb2a6d275459e4cdd3a3d21f131a"
+dependencies = [
+ "include_dir",
+]
+
+[[package]]
 name = "lingua-vietnamese-language-model"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3582,9 +3592,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
@@ -4650,9 +4660,9 @@ dependencies = [
 
 [[package]]
 name = "serde-wasm-bindgen"
-version = "0.6.1"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d"
+checksum = "4c1432112bce8b966497ac46519535189a3250a3812cd27a999678a69756f79f"
 dependencies = [
  "js-sys",
  "serde",
diff --git a/pkgs/applications/misc/pot/default.nix b/pkgs/by-name/po/pot/package.nix
index fdc0a6b6c4149..aac04e5a0bcce 100644
--- a/pkgs/applications/misc/pot/default.nix
+++ b/pkgs/by-name/po/pot/package.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pot";
-  version = "2.7.4";
+  version = "2.7.9";
 
   src = fetchFromGitHub {
     owner = "pot-app";
     repo = "pot-desktop";
     rev = version;
-    hash = "sha256-c7FHkp/utvrr7qasY+XKaTnPaiZWb8M5EGiFne52osQ=";
+    hash = "sha256-Y2gFLvRNBjOGxdpIeoY1CXEip0Ht73aymWIP5wuc9kU=";
   };
 
   sourceRoot = "${src.name}/src-tauri";
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
     dontFixup = true;
     outputHashMode = "recursive";
-    outputHash = "sha256-BQ5M+pKEXGJzWmxMchNgxpvLpgFCRIg33GQCvO4TLz4=";
+    outputHash = "sha256-LuY5vh642DgSa91eUcA/AT+ovDcP9tZFE2dKyicCOeQ=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
diff --git a/pkgs/by-name/pr/protonmail-desktop/package.nix b/pkgs/by-name/pr/protonmail-desktop/package.nix
new file mode 100644
index 0000000000000..b3edfaa9dc212
--- /dev/null
+++ b/pkgs/by-name/pr/protonmail-desktop/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, dpkg
+, electron
+}:
+
+let
+  mainProgram = "proton-mail";
+in stdenv.mkDerivation rec {
+  pname = "protonmail-desktop";
+  version = "1.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/ProtonMail/inbox-desktop/releases/download/v${version}/proton-mail_${version}_amd64.deb";
+    hash = "sha256-fNK//x3DOsynWSkG9N+nZ3wjYoC+RreaYVC6KEDXh4w=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ dpkg makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -r usr/share/ $out/
+    cp -r usr/lib/proton-mail/resources/app.asar $out/share/
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    makeWrapper ${lib.getExe electron} $out/bin/${mainProgram} \
+      --add-flags $out/share/app.asar \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+      --set-default ELECTRON_FORCE_IS_PACKAGED 1 \
+      --set-default ELECTRON_IS_DEV 0 \
+      --inherit-argv0
+  '';
+
+  meta = with lib; {
+    description = "Desktop application for Mail and Calendar, made with Electron";
+    homepage = "https://github.com/ProtonMail/inbox-desktop";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rsniezek sebtm ];
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    inherit mainProgram;
+  };
+}
+
diff --git a/pkgs/by-name/pu/pupdate/package.nix b/pkgs/by-name/pu/pupdate/package.nix
index b9671c7bc930e..0e8ae1565418a 100644
--- a/pkgs/by-name/pu/pupdate/package.nix
+++ b/pkgs/by-name/pu/pupdate/package.nix
@@ -12,13 +12,13 @@
 
 buildDotnetModule rec {
   pname = "pupdate";
-  version = "3.9.0";
+  version = "3.9.1";
 
   src = fetchFromGitHub {
     owner = "mattpannella";
     repo = "${pname}";
     rev = "${version}";
-    hash = "sha256-T37zIYtfnoNJ/aHMfqKIx/zj6mqmY/3sN3LmxJglxHM=";
+    hash = "sha256-3Bts/jTyivZ+ch7UjFo3oGVRmVK2QhCYh8NkeQhDYDY=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/ra/rabbit/package.nix b/pkgs/by-name/ra/rabbit/package.nix
new file mode 100644
index 0000000000000..7165744369de3
--- /dev/null
+++ b/pkgs/by-name/ra/rabbit/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "rabbit";
+  version = "1.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "natarajan-chidambaram";
+    repo = "RABBIT";
+    rev = version;
+    hash = "sha256-IRG3OcWutkZA4oegeEIDyaIadl3dLaMneqOt/H2/Il4=";
+  };
+
+  pythonRelaxDeps = true;
+
+  build-system = [
+    python3.pkgs.setuptools
+    python3.pkgs.wheel
+    python3.pkgs.pythonRelaxDepsHook
+  ];
+
+  dependencies = with python3.pkgs; [
+    numpy
+    pandas
+    pip
+    requests
+    scikit-learn
+    scipy
+    tqdm
+    xgboost
+  ];
+
+  pythonImportsCheck = [ "rabbit" ];
+
+  meta = {
+    description = "A tool for identifying bot accounts based on their recent GitHub event history";
+    homepage = "https://github.com/natarajan-chidambaram/RABBIT";
+    license = lib.licenses.asl20;
+    mainProgram = "rabbit";
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+}
diff --git a/pkgs/by-name/ra/railway-travel/package.nix b/pkgs/by-name/ra/railway-travel/package.nix
new file mode 100644
index 0000000000000..be09a63e6dd0c
--- /dev/null
+++ b/pkgs/by-name/ra/railway-travel/package.nix
@@ -0,0 +1,76 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  cargo,
+  desktop-file-utils,
+  meson,
+  ninja,
+  pkg-config,
+  rustPlatform,
+  rustc,
+  wrapGAppsHook4,
+  cairo,
+  gdk-pixbuf,
+  glib,
+  gtk4,
+  libadwaita,
+  pango,
+  darwin,
+}:
+stdenv.mkDerivation rec {
+  pname = "railway-travel";
+  version = "2.4.0";
+
+  src = fetchFromGitLab {
+    owner = "schmiddi-on-mobile";
+    repo = "railway";
+    rev = version;
+    hash = "sha256-2iLxErEP0OG+BcG7fvJBzNjh95EkNoC3NC7rKxPLhYk=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-yalFC7Pw9rq1ylLwoxLi4joTyjQsZJ/ZC61GhTNc49w=";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    cargo
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+  ];
+
+  buildInputs =
+    [
+      cairo
+      gdk-pixbuf
+      glib
+      gtk4
+      libadwaita
+      pango
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.Foundation
+      darwin.apple_sdk.frameworks.Security
+    ];
+
+  env.NIX_CFLAGS_COMPILE = toString (
+    lib.optionals stdenv.cc.isClang [ "-Wno-error=incompatible-function-pointer-types" ]
+  );
+
+  meta = with lib; {
+    description = "Find all your travel information";
+    homepage = "https://gitlab.com/schmiddi-on-mobile/railway";
+    changelog = "https://gitlab.com/schmiddi-on-mobile/railway/-/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ lilacious ];
+    mainProgram = "diebahn";
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/rc/rcu/Port-to-paramiko-3.x.patch b/pkgs/by-name/rc/rcu/Port-to-paramiko-3.x.patch
new file mode 100644
index 0000000000000..760d23cea18d3
--- /dev/null
+++ b/pkgs/by-name/rc/rcu/Port-to-paramiko-3.x.patch
@@ -0,0 +1,104 @@
+From aad61b320d65953fddec10b019a186fc67f57a5d Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Sat, 10 Feb 2024 12:20:29 +0100
+Subject: [PATCH] src/model/transport.py: Port to paramiko 3.x
+
+---
+ src/model/transport.py | 19 +++++++++----------
+ 1 file changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/src/model/transport.py b/src/model/transport.py
+index 0c2ee16..5a2bd22 100644
+--- a/src/model/transport.py
++++ b/src/model/transport.py
+@@ -117,7 +117,6 @@ from paramiko.kex_gss import KexGSSGex, KexGSSGroup1, KexGSSGroup14
+ from paramiko.message import Message
+ from paramiko.packet import Packetizer, NeedRekeyException
+ from paramiko.primes import ModulusPack
+-from paramiko.py3compat import string_types, long, byte_ord, b, input, PY2
+ from paramiko.rsakey import RSAKey
+ from paramiko.ecdsakey import ECDSAKey
+ from paramiko.server import ServerInterface
+@@ -128,7 +127,7 @@ from paramiko.ssh_exception import (
+     ChannelException,
+     ProxyCommandFailure,
+ )
+-from paramiko.util import retry_on_signal, ClosingContextManager, clamp_value
++from paramiko.util import ClosingContextManager, clamp_value
+ 
+ 
+ # for thread cleanup
+@@ -396,7 +395,7 @@ class Transport(threading.Thread, ClosingContextManager):
+         self.active = False
+         self.hostname = None
+ 
+-        if isinstance(sock, string_types):
++        if isinstance(sock, str):
+             # convert "host:port" into (host, port)
+             hl = sock.split(":", 1)
+             self.hostname = hl[0]
+@@ -419,7 +418,7 @@ class Transport(threading.Thread, ClosingContextManager):
+                     sock = socket.socket(af, socket.SOCK_STREAM)
+                     sock.settimeout(1)
+                     try:
+-                        retry_on_signal(lambda: sock.connect((hostname, port)))
++                        sock.connect((hostname, port))
+                     except socket.error as e:
+                         reason = str(e)
+                     else:
+@@ -542,7 +541,7 @@ class Transport(threading.Thread, ClosingContextManager):
+         """
+         Returns a string representation of this object, for debugging.
+         """
+-        id_ = hex(long(id(self)) & xffffffff)
++        id_ = hex(int(id(self)) & xffffffff)
+         out = "<paramiko.Transport at {}".format(id_)
+         if not self.active:
+             out += " (unconnected)"
+@@ -1123,7 +1122,7 @@ class Transport(threading.Thread, ClosingContextManager):
+         m = Message()
+         m.add_byte(cMSG_IGNORE)
+         if byte_count is None:
+-            byte_count = (byte_ord(os.urandom(1)) % 32) + 10
++            byte_count = (os.urandom(1) % 32) + 10
+         m.add_bytes(os.urandom(byte_count))
+         self._send_user_message(m)
+ 
+@@ -1802,7 +1801,7 @@ class Transport(threading.Thread, ClosingContextManager):
+     def stop_thread(self):
+         self.active = False
+         self.packetizer.close()
+-        if PY2:
++        if False:
+             # Original join logic; #520 doesn't appear commonly present under
+             # Python 2.
+             while self.is_alive() and self is not threading.current_thread():
+@@ -1909,7 +1908,7 @@ class Transport(threading.Thread, ClosingContextManager):
+         m = Message()
+         m.add_mpint(self.K)
+         m.add_bytes(self.H)
+-        m.add_byte(b(id))
++        m.add_byte(id.encode("utf8"))
+         m.add_bytes(self.session_id)
+         # Fallback to SHA1 for kex engines that fail to specify a hex
+         # algorithm, or for e.g. transport tests that don't run kexinit.
+@@ -2037,14 +2036,14 @@ class Transport(threading.Thread, ClosingContextManager):
+ 
+         # active=True occurs before the thread is launched, to avoid a race
+         _active_threads.append(self)
+-        tid = hex(long(id(self)) & xffffffff)
++        tid = hex(int(id(self)) & xffffffff)
+         if self.server_mode:
+             self._log(DEBUG, "starting thread (server mode): {}".format(tid))
+         else:
+             self._log(DEBUG, "starting thread (client mode): {}".format(tid))
+         try:
+             try:
+-                self.packetizer.write_all(b(self.local_version + "\r\n"))
++                self.packetizer.write_all((self.local_version + "\r\n").encode("utf8"))
+                 self._log(
+                     DEBUG,
+                     "Local version/idstring: {}".format(self.local_version),
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/rc/rcu/package.nix b/pkgs/by-name/rc/rcu/package.nix
new file mode 100644
index 0000000000000..915113f44d131
--- /dev/null
+++ b/pkgs/by-name/rc/rcu/package.nix
@@ -0,0 +1,152 @@
+{ stdenv
+, lib
+, requireFile
+, fetchpatch
+, runCommand
+, rcu
+, testers
+, copyDesktopItems
+, desktopToDarwinBundle
+, libsForQt5
+, makeDesktopItem
+, python3Packages
+, system-config-printer
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "rcu";
+  version = "2024.001n";
+
+  format = "other";
+
+  src = let
+    src-tarball = requireFile {
+      name = "rcu-d${version}-source.tar.gz";
+      sha256 = "1snmf2cr242k946q6fh5b5fqdyafdbs8gbbdzchjhm7n9r1kxyca";
+      url = "http://www.davisr.me/projects/rcu/";
+    };
+  in runCommand "${src-tarball.name}-unpacked" {} ''
+    gunzip -ck ${src-tarball} | tar -xvf-
+    mv rcu $out
+  '';
+
+  patches = [
+    ./Port-to-paramiko-3.x.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace src/main.py \
+      --replace-fail "ui_basepath = '.'" "ui_basepath = '$out/share/rcu'"
+
+    substituteInPlace package_support/gnulinux/50-remarkable.rules \
+      --replace-fail 'GROUP="yourgroup"' 'GROUP="users"'
+  '';
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    libsForQt5.wrapQtAppsHook
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    desktopToDarwinBundle
+  ];
+
+  buildInputs = [
+    libsForQt5.qtbase
+    libsForQt5.qtwayland
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    certifi
+    packaging
+    paramiko
+    pdfminer-six
+    pikepdf
+    pillow
+    protobuf
+    pyside2
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "rcu";
+      desktopName = "reMarkable Connection Utility";
+      comment = "All-in-one offline/local management software for reMarkable e-paper tablets";
+      icon = "rcu";
+      exec = "rcu";
+    })
+  ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  # No tests
+  doCheck = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share}
+    cp -r src $out/share/rcu
+
+  '' + lib.optionalString stdenv.hostPlatform.isLinux ''
+    install -Dm644 package_support/gnulinux/50-remarkable.rules $out/etc/udev/rules.d/50-remarkable.rules
+  '' + ''
+
+    # Keep source from being GC'd by linking into it
+
+    for icondir in $(find icons -type d -name '[0-9]*x[0-9]*'); do
+      iconsize=$(basename $icondir)
+      mkdir -p $out/share/icons/hicolor/$iconsize/apps
+      ln -s ${src}/icons/$iconsize/rcu-icon-$iconsize.png $out/share/icons/hicolor/$iconsize/apps/rcu.png
+    done
+
+    mkdir -p $out/share/icons/hicolor/scalable/apps
+    ln -s ${src}/icons/64x64/rcu-icon-64x64.svg $out/share/icons/hicolor/scalable/apps/rcu.svg
+
+    mkdir -p $out/share/doc/rcu
+    for docfile in {COPYING,manual.pdf}; do
+      ln -s ${src}/manual/$docfile $out/share/doc/rcu/$docfile
+    done
+
+    mkdir -p $out/share/licenses/rcu
+    ln -s ${src}/COPYING $out/share/licenses/rcu/COPYING
+
+    runHook postInstall
+  '';
+
+  # Manually creating wrapper, hook struggles with lack of shebang & symlink
+  dontWrapPythonPrograms = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${qtWrapperArgs[@]}"
+  '' + lib.optionalString stdenv.hostPlatform.isLinux ''
+      --prefix PATH : ${lib.makeBinPath [ system-config-printer ]}
+  '' + ''
+    )
+  '';
+
+  postFixup = ''
+    makeWrapper ${lib.getExe python3Packages.python} $out/bin/rcu \
+      ''${makeWrapperArgs[@]} \
+      --prefix PYTHONPATH : ${python3Packages.makePythonPath (propagatedBuildInputs ++ [(placeholder "out")])} \
+      --add-flags $out/share/rcu/main.py
+  '';
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = rcu;
+      version = let
+        versionSuffixPos = (lib.strings.stringLength rcu.version) - 1;
+      in
+        "d${lib.strings.substring 0 versionSuffixPos rcu.version}(${lib.strings.substring versionSuffixPos 1 rcu.version})";
+    };
+  };
+
+  meta = with lib; {
+    mainProgram = "rcu";
+    description = "All-in-one offline/local management software for reMarkable e-paper tablets";
+    homepage = "http://www.davisr.me/projects/rcu/";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ OPNA2608 ];
+  };
+}
diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix
index 1ec43b01d89a0..191cf5422e871 100644
--- a/pkgs/by-name/re/renode-dts2repl/package.nix
+++ b/pkgs/by-name/re/renode-dts2repl/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication {
   pname = "renode-dts2repl";
-  version = "unstable-2024-03-22";
+  version = "unstable-2024-03-24";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "antmicro";
     repo = "dts2repl";
-    rev = "b5c2d03cce95c2488d80ce5214131fba8d119fec";
-    hash = "sha256-q8Q5Lx2CQIjdL/LBRaYXvQl1MFw3Bh0RbnGHJgMnXyA=";
+    rev = "b581d3b7e68f7822110bc4895f7826f3505be21c";
+    hash = "sha256-Syu5DC8FP9Lyc7CVmUp38Vr3K7FK2Pv/jodzgnSB3cE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/re/renode-unstable/package.nix b/pkgs/by-name/re/renode-unstable/package.nix
index 15fbcdc11fdcf..309188adfe49e 100644
--- a/pkgs/by-name/re/renode-unstable/package.nix
+++ b/pkgs/by-name/re/renode-unstable/package.nix
@@ -1,16 +1,35 @@
 { renode
 , fetchurl
-, buildUnstable ? true
+, writeScript
 }:
 
-(renode.override {
-  inherit buildUnstable;
-}).overrideAttrs (finalAttrs: _: {
+renode.overrideAttrs (finalAttrs: _: {
   pname = "renode-unstable";
-  version = "1.15.0+20240320git97be875a3";
+  version = "1.15.0+20240323git3bd8e280d";
 
   src = fetchurl {
     url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz";
-    hash = "sha256-+1tOZ44fg/Z4n4gjPylRQlRE7KnL0AGcODlue/HLb3I=";
+    hash = "sha256-hIPBM9PE6vtqo8XJvOWS3mIa9Vr7v9bcMdXmeQzBYsk=";
   };
+
+  passthru.updateScript =
+    let
+      versionRegex = "[0-9\.\+]+[^\+]*.";
+    in
+    writeScript "${finalAttrs.pname}-updater" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused pup
+
+      latestVersion=$(
+        curl -sS https://builds.renode.io \
+          | pup 'a text{}' \
+          | egrep 'renode-${versionRegex}\.linux-portable\.tar\.gz' \
+          | head -n1 \
+          | sed -e 's,renode-\(.*\)\.linux-portable\.tar\.gz,\1,g'
+      )
+
+      update-source-version ${finalAttrs.pname} "$latestVersion" \
+        --file=pkgs/by-name/re/${finalAttrs.pname}/package.nix \
+        --system=x86_64-linux
+    '';
 })
diff --git a/pkgs/by-name/re/renode/package.nix b/pkgs/by-name/re/renode/package.nix
index 7ea55e0fff987..ab0df9f5c3e10 100644
--- a/pkgs/by-name/re/renode/package.nix
+++ b/pkgs/by-name/re/renode/package.nix
@@ -3,13 +3,12 @@
 , fetchurl
 , autoPatchelfHook
 , makeWrapper
-, writeScript
+, nix-update-script
 , glibcLocales
 , python3Packages
 , gtk-sharp-2_0
 , gtk2-x11
 , screen
-, buildUnstable ? false
 }:
 
 let
@@ -69,29 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  passthru.updateScript =
-    let
-      versionRegex =
-        if buildUnstable
-        then "[0-9\.\+]+[^\+]*."
-        else "[0-9\.]+[^\+]*.";
-    in
-    writeScript "${finalAttrs.pname}-updater" ''
-      #!/usr/bin/env nix-shell
-      #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused pup
-
-      latestVersion=$(
-        curl -sS https://builds.renode.io \
-          | pup 'a text{}' \
-          | egrep 'renode-${versionRegex}\.linux-portable\.tar\.gz' \
-          | head -n1 \
-          | sed -e 's,renode-\(.*\)\.linux-portable\.tar\.gz,\1,g'
-      )
-
-      update-source-version ${finalAttrs.pname} "$latestVersion" \
-        --file=pkgs/by-name/re/${finalAttrs.pname}/package.nix \
-        --system=x86_64-linux
-    '';
+  passthru.updateScript = nix-update-script { };
 
   meta = {
     description = "Virtual development framework for complex embedded systems";
diff --git a/pkgs/by-name/ro/rockcraft/package.nix b/pkgs/by-name/ro/rockcraft/package.nix
new file mode 100644
index 0000000000000..cd2ded12564fa
--- /dev/null
+++ b/pkgs/by-name/ro/rockcraft/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, dpkg
+, nix-update-script
+, python3
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "rockcraft";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "rockcraft";
+    rev = "refs/tags/${version}";
+    hash = "sha256-f6qLvk5cebHjZx51nJYYAwILGCTyj6FKlb3HGt6iz4M=";
+  };
+
+  postPatch = ''
+    substituteInPlace rockcraft/__init__.py \
+      --replace-fail "dev" "${version}"
+  '';
+
+  propagatedBuildInputs = with python3Packages; [
+    craft-application-1
+    craft-archives
+    spdx-lookup
+  ];
+
+  nativeCheckInputs = with python3Packages; [
+    pytest-check
+    pytest-mock
+    pytest-subprocess
+    pytestCheckHook
+  ] ++ [
+    dpkg
+  ];
+
+  preCheck = ''
+    mkdir -p check-phase
+    export HOME="$(pwd)/check-phase"
+  '';
+
+  disabledTests = [ "test_expand_extensions" ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    mainProgram = "rockcraft";
+    description = "Create OCI images using the language from Snapcraft and Charmcraft";
+    homepage = "https://github.com/canonical/rockcraft";
+    changelog = "https://github.com/canonical/rockcraft/releases/tag/${version}";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ro/roslyn-ls/deps.nix b/pkgs/by-name/ro/roslyn-ls/deps.nix
index c25b0f435f3ac..22f8b931cfe08 100644
--- a/pkgs/by-name/ro/roslyn-ls/deps.nix
+++ b/pkgs/by-name/ro/roslyn-ls/deps.nix
@@ -77,9 +77,6 @@
   (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "17.8.8"; sha256 = "0sra63pv7l51kyl89d4g3id87n00si4hb7msrg7ps7c930nhc7xh"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.visualstudio.validation/17.8.8/microsoft.visualstudio.validation.17.8.8.nupkg"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.win32.primitives/4.3.0/microsoft.win32.primitives.4.3.0.nupkg"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.win32.registry/5.0.0/microsoft.win32.registry.5.0.0.nupkg"; })
-  (fetchNuGet { pname = "Microsoft.WindowsDesktop.App.Ref"; version = "6.0.27"; sha256 = "0h6xm9cc835pfpmrjvpf1fi6wq1sh1s9f7v04270cmr3d8k0ihj0"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.windowsdesktop.app.ref/6.0.27/microsoft.windowsdesktop.app.ref.6.0.27.nupkg"; })
-  (fetchNuGet { pname = "Microsoft.WindowsDesktop.App.Ref"; version = "7.0.16"; sha256 = "02wn0x6p44g60zypk46dlliq8ic1n0dsb112zv9hdghln8kpm1rp"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.windowsdesktop.app.ref/7.0.16/microsoft.windowsdesktop.app.ref.7.0.16.nupkg"; })
-  (fetchNuGet { pname = "Microsoft.WindowsDesktop.App.Ref"; version = "8.0.2"; sha256 = "1jdnz219800q1wwy01qm6p43jrzbhvsfgp8gmfm0v3qw52v6zxnr"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.windowsdesktop.app.ref/8.0.2/microsoft.windowsdesktop.app.ref.8.0.2.nupkg"; })
   (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.10.69"; sha256 = "1klsyly7k1xhbhrpq2s2iwdlmw3xyvh51rcakfazwxkv2hm5fj3b"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/nerdbank.streams/2.10.69/nerdbank.streams.2.10.69.nupkg"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/netstandard.library/2.0.0/netstandard.library.2.0.0.nupkg"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/netstandard.library/2.0.3/netstandard.library.2.0.3.nupkg"; })
diff --git a/pkgs/by-name/ro/roslyn-ls/package.nix b/pkgs/by-name/ro/roslyn-ls/package.nix
index 560a7845c4466..d4ea8136d21c2 100644
--- a/pkgs/by-name/ro/roslyn-ls/package.nix
+++ b/pkgs/by-name/ro/roslyn-ls/package.nix
@@ -40,6 +40,11 @@ buildDotnetModule rec {
         '>linux-x64;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>'
   '';
 
+  dotnetFlags = [
+    # this removes the Microsoft.WindowsDesktop.App.Ref dependency
+    "-p:EnableWindowsTargeting=false"
+  ];
+
   # two problems solved here:
   # 1. --no-build removed -> BuildHost project within roslyn is running Build target during publish
   # 2. missing crossgen2 7.* in local nuget directory when PublishReadyToRun=true
@@ -61,7 +66,9 @@ buildDotnetModule rec {
           --configuration Release \
           --no-self-contained \
           --output "$out/lib/$pname" \
-          --runtime ${rid}
+          --runtime ${rid} \
+          ''${dotnetInstallFlags[@]}  \
+          ''${dotnetFlags[@]}
 
       runHook postInstall
     '';
diff --git a/pkgs/by-name/rq/rqbit/Cargo.lock b/pkgs/by-name/rq/rqbit/Cargo.lock
index eef80d6935608..73a64e8e8f985 100644
--- a/pkgs/by-name/rq/rqbit/Cargo.lock
+++ b/pkgs/by-name/rq/rqbit/Cargo.lock
@@ -1265,7 +1265,7 @@ dependencies = [
 
 [[package]]
 name = "librqbit"
-version = "5.5.3"
+version = "5.5.4"
 dependencies = [
  "anyhow",
  "async-stream",
@@ -1318,7 +1318,7 @@ dependencies = [
 
 [[package]]
 name = "librqbit-bencode"
-version = "2.2.1"
+version = "2.2.2"
 dependencies = [
  "anyhow",
  "librqbit-buffers",
@@ -1329,7 +1329,7 @@ dependencies = [
 
 [[package]]
 name = "librqbit-buffers"
-version = "2.2.1"
+version = "3.0.0"
 dependencies = [
  "librqbit-clone-to-owned",
  "serde",
@@ -1341,7 +1341,7 @@ version = "2.2.1"
 
 [[package]]
 name = "librqbit-core"
-version = "3.6.1"
+version = "3.6.2"
 dependencies = [
  "anyhow",
  "directories",
@@ -1362,7 +1362,7 @@ dependencies = [
 
 [[package]]
 name = "librqbit-dht"
-version = "5.0.1"
+version = "5.0.2"
 dependencies = [
  "anyhow",
  "backoff",
@@ -1388,7 +1388,7 @@ dependencies = [
 
 [[package]]
 name = "librqbit-peer-protocol"
-version = "3.5.0"
+version = "3.5.1"
 dependencies = [
  "anyhow",
  "bincode",
@@ -1403,16 +1403,14 @@ dependencies = [
 
 [[package]]
 name = "librqbit-sha1-wrapper"
-version = "2.2.1"
+version = "3.0.0"
 dependencies = [
  "crypto-hash",
- "openssl",
- "sha1",
 ]
 
 [[package]]
 name = "librqbit-tracker-comms"
-version = "1.0.0"
+version = "1.0.1"
 dependencies = [
  "anyhow",
  "async-stream",
@@ -2070,7 +2068,7 @@ dependencies = [
 
 [[package]]
 name = "rqbit"
-version = "5.5.3"
+version = "5.5.4"
 dependencies = [
  "anyhow",
  "bytes",
diff --git a/pkgs/by-name/rq/rqbit/package.nix b/pkgs/by-name/rq/rqbit/package.nix
index bfdd4ae380efe..06ff09e5cc37d 100644
--- a/pkgs/by-name/rq/rqbit/package.nix
+++ b/pkgs/by-name/rq/rqbit/package.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rqbit";
-  version = "5.5.3";
+  version = "5.5.4";
 
   src = fetchFromGitHub {
     owner = "ikatson";
     repo = "rqbit";
     rev = "v${version}";
-    hash = "sha256-r/ff/Z/nsmQEWCVvmS0hGKXRuzIoDGhzfIRAxC6EaZk=";
+    hash = "sha256-o+v/h51F9xXzMLSkRJfmXddKskMXTF2p5LEIcoXvh74=";
   };
 
   cargoLock = {
diff --git a/pkgs/by-name/ry/ryujinx/package.nix b/pkgs/by-name/ry/ryujinx/package.nix
index 410afb7c837cd..c7ef626483087 100644
--- a/pkgs/by-name/ry/ryujinx/package.nix
+++ b/pkgs/by-name/ry/ryujinx/package.nix
@@ -25,13 +25,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.1239"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.1242"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "d26ef2eec309a7a7b30b103c245044d1cdc08add";
-    sha256 = "0kdhxkgnnzhvmwlnzb5d0xx2f240y5h0vc1fhwiqk2cvwly5nd6y";
+    rev = "c94a73ec60f3f75b36179cbc93d046701ed96253";
+    sha256 = "0wksc3c63insll1jl0w6pa7vfgvkc50dzkwip676q3j8749fpzql";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_8_0;
diff --git a/pkgs/by-name/sa/sarasa-gothic/package.nix b/pkgs/by-name/sa/sarasa-gothic/package.nix
index 653241078deb9..c2cf97028ecab 100644
--- a/pkgs/by-name/sa/sarasa-gothic/package.nix
+++ b/pkgs/by-name/sa/sarasa-gothic/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sarasa-gothic";
-  version = "1.0.8";
+  version = "1.0.9";
 
   src = fetchurl {
     # Use the 'ttc' files here for a smaller closure size.
     # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
     url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
-    hash = "sha256-6JE1iuruaGrL8cwLvdZiOUXK02izOOpsQbXjdb9+VBU=";
+    hash = "sha256-g9XtMIgQtqOei38OHMynyjqkWkFzaIq+/s7cKXPe1vA=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/by-name/sc/scion-bootstrapper/package.nix b/pkgs/by-name/sc/scion-bootstrapper/package.nix
new file mode 100644
index 0000000000000..8b6e6f115c198
--- /dev/null
+++ b/pkgs/by-name/sc/scion-bootstrapper/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "scion-bootstrapper";
+  version = "0.0.7";
+
+  src = fetchFromGitHub {
+    owner = "netsec-ethz";
+    repo = "bootstrapper";
+    rev = "v${version}";
+    hash = "sha256-X4lNgd6klIw0NW9NVG+d1JK+WNfOclbu43GYucelB7o=";
+  };
+
+  vendorHash = "sha256-X4bOIvNlyQoAWOd3L6suE64KnlCV6kuE1ieVecVYWOw=";
+
+  doCheck = false;
+
+  ldflags = [ "-s" "-w" ];
+
+  postInstall = ''
+    mv $out/bin/bootstrapper $out/bin/scion-bootstrapper
+  '';
+
+  meta = with lib; {
+    description = "bootstrapper for SCION network configuration";
+    homepage = "https://github.com/netsec-ethz/bootstrapper";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ matthewcroughan sarcasticadmin ];
+    mainProgram = "scion-bootstrapper";
+  };
+}
diff --git a/pkgs/by-name/se/sesh/package.nix b/pkgs/by-name/se/sesh/package.nix
index ccfc53274e2cf..919bc5e6a047e 100644
--- a/pkgs/by-name/se/sesh/package.nix
+++ b/pkgs/by-name/se/sesh/package.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "sesh";
-  version = "0.15.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "joshmedeski";
     repo = "sesh";
     rev = "v${version}";
-    hash = "sha256-vV1b0YhDBt/dJJCrxvVV/FIuOIleTg4mI496n4/Y/Hk=";
+    hash = "sha256-eFqqiGIbS9HW7czAtSIPmvbynvg2gsu4luKsL25vxn4=";
   };
 
   vendorHash = "sha256-zt1/gE4bVj+3yr9n0kT2FMYMEmiooy3k1lQ77rN6sTk=";
diff --git a/pkgs/by-name/si/single-file-cli/package.nix b/pkgs/by-name/si/single-file-cli/package.nix
new file mode 100644
index 0000000000000..13da0e896d15f
--- /dev/null
+++ b/pkgs/by-name/si/single-file-cli/package.nix
@@ -0,0 +1,56 @@
+{
+  lib,
+  stdenv,
+  buildNpmPackage,
+  fetchFromGitHub,
+  chromium,
+  chromedriver,
+  python3,
+}:
+buildNpmPackage {
+  pname = "single-file-cli";
+  version = "1.1.49";
+
+  src = fetchFromGitHub {
+    owner = "gildas-lormeau";
+    repo = "single-file-cli";
+    rev = "af0f6f119edd8bf82bce3860fa55cfad869ac874";
+    hash = "sha256-5pozqrIIanoLF4eugLxPRsUaoUYJurliovFFBYO/mC4=";
+  };
+  npmDepsHash = "sha256-wiBpWw9nb/pWVGIc4Vl/IxxR5ic0LzLMMr3WxRNvYdM=";
+
+  nativeCheckInputs = [chromium chromedriver];
+  doCheck = stdenv.isLinux;
+
+  postBuild = ''
+    patchShebangs ./single-file
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    ${python3}/bin/python -m http.server --bind 127.0.0.1 &
+    pid=$!
+
+    ./single-file \
+      --browser-headless \
+      --web-driver-executable-path=chromedriver \
+      --back-end=webdriver-chromium \
+      http://127.0.0.1:8000
+
+    grep -F 'Page saved with SingleFile' 'Directory listing for'*.html
+
+    kill $pid
+    wait
+
+    runHook postCheck
+  '';
+
+  meta = {
+    description = "CLI tool for saving a faithful copy of a complete web page in a single HTML file";
+    homepage = "https://github.com/gildas-lormeau/single-file-cli";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [n8henrie];
+    mainProgram = "single-file";
+  };
+}
diff --git a/pkgs/by-name/sp/spicetify-cli/package.nix b/pkgs/by-name/sp/spicetify-cli/package.nix
index c1e79f9d6d863..996b527930203 100644
--- a/pkgs/by-name/sp/spicetify-cli/package.nix
+++ b/pkgs/by-name/sp/spicetify-cli/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "2.34.1";
+  version = "2.36.0";
 
   src = fetchFromGitHub {
     owner = "spicetify";
     repo = "spicetify-cli";
     rev = "v${version}";
-    hash = "sha256-tVB0dkxp19EpUXN7X2rnnRlYuSc7Ja7sokmN9tNvY2k=";
+    hash = "sha256-Eth/ihsn/+XVi3YtOdnyzbvMkpR1RBX9Tz7RFQr8MzU=";
   };
 
   vendorHash = "sha256-axE1SY+UW5oddyhOiktq+vNfhw2/SFX4ut4Hivg6TYQ=";
diff --git a/pkgs/by-name/sq/sqlite_orm/package.nix b/pkgs/by-name/sq/sqlite_orm/package.nix
new file mode 100644
index 0000000000000..82e11c6015b70
--- /dev/null
+++ b/pkgs/by-name/sq/sqlite_orm/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, cmake
+, fetchFromGitHub
+, sqlite
+, stdenv
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "sqlite_orm";
+  version = "1.8.2";
+
+  src = fetchFromGitHub {
+    owner = "fnc12";
+    repo = "sqlite_orm";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-KqphGFcnR1Y11KqL7sxODSv7lEvcURdF6kLd3cg84kc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  propagatedBuildInputs = [
+    sqlite
+  ];
+
+  strictDeps = true;
+
+  meta = with lib; {
+    description = "Light header only SQLite ORM";
+    homepage = "https://sqliteorm.com/";
+    license = licenses.agpl3Only; # MIT license is commercial
+    maintainers = with maintainers; [ ambroisie ];
+    platforms = platforms.all;
+  };
+})
diff --git a/pkgs/by-name/sw/swaymux/package.nix b/pkgs/by-name/sw/swaymux/package.nix
new file mode 100644
index 0000000000000..eb2064e448a63
--- /dev/null
+++ b/pkgs/by-name/sw/swaymux/package.nix
@@ -0,0 +1,37 @@
+{ cmake
+, fetchFromGitea
+, lib
+, nlohmann_json
+, qt6
+, stdenv
+}:
+stdenv.mkDerivation (finalAttrs: {
+  version = "1.0";
+  pname = "swaymux";
+
+  src = fetchFromGitea {
+    rev = "v${finalAttrs.version}";
+    domain = "git.grimmauld.de";
+    owner = "Grimmauld";
+    repo = "swaymux";
+    hash = "sha256-M85pqfYnYeVPTZXKtjg/ks5LUl3u2onG9Nfn8Xs+BSA=";
+  };
+
+  buildInputs = [ qt6.qtwayland nlohmann_json qt6.qtbase];
+  nativeBuildInputs = [ cmake qt6.wrapQtAppsHook ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    changelog = "https://git.grimmauld.de/Grimmauld/swaymux/commits/branch/main";
+    description = "A program to quickly navigate sway";
+    homepage = "https://git.grimmauld.de/Grimmauld/swaymux";
+    license = licenses.bsd3;
+    longDescription = ''
+      Swaymux allows the user to quickly navigate and administrate outputs, workspaces and containers in a tmux-style approach.
+    '';
+    mainProgram = "swaymux";
+    maintainers = with maintainers; [ grimmauld ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/sw/swww/package.nix b/pkgs/by-name/sw/swww/package.nix
index cf9b878a506d7..b0968cd0f6c77 100644
--- a/pkgs/by-name/sw/swww/package.nix
+++ b/pkgs/by-name/sw/swww/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swww";
-  version = "0.8.2";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "LGFae";
     repo = "swww";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n7YdUmIZGu7W7cX6OvVW+wbkKjFvont4hEAhZXYDQd8=";
+    hash = "sha256-JtwNrdXZbmR7VZeRiXcLEEOq1z7bF8idjp2D1Zpf3Z4=";
   };
 
-  cargoHash = "sha256-lZC71M3lbsI+itMydAp5VCz0cpSHo/FpkQFC1NlN4DU=";
+  cargoHash = "sha256-FC3HeqWAMOTm2Tmzg+Sn/j0ZXyd8nsYH64MlwQwr8W0=";
 
   buildInputs = [
     lz4
diff --git a/pkgs/by-name/tg/tgpt/package.nix b/pkgs/by-name/tg/tgpt/package.nix
index d63ff34c21d3f..0719016d1e8fa 100644
--- a/pkgs/by-name/tg/tgpt/package.nix
+++ b/pkgs/by-name/tg/tgpt/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "tgpt";
-  version = "2.7.2";
+  version = "2.7.3";
 
   src = fetchFromGitHub {
     owner = "aandrew-me";
     repo = "tgpt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FbnweHiKfxqFegZnRlvdVbTmH4ImjddVOBlbGRT/SGw=";
+    hash = "sha256-tInbOCrGXZkyGrkXSppK7Qugh0E2CdjmybMeH49Wc5s=";
   };
 
   vendorHash = "sha256-docq/r6yyMPsuUyFbtCMaYfEVL0gLmyTy4PbrAemR00=";
diff --git a/pkgs/by-name/ti/tinymist/Cargo.lock b/pkgs/by-name/ti/tinymist/Cargo.lock
new file mode 100644
index 0000000000000..1bb06263d87ed
--- /dev/null
+++ b/pkgs/by-name/ti/tinymist/Cargo.lock
@@ -0,0 +1,4968 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+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 = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+
+[[package]]
+name = "append-only-vec"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb8f874ecf419dd8165d0279746de966cb8966636d028845e3bd65d519812a"
+
+[[package]]
+name = "approx"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "async-trait"
+version = "0.1.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "await-tree"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626aa057fb6d254883c2750ef6bcbe6f6a5ce45daff839b538708411794f794d"
+dependencies = [
+ "coarsetime",
+ "derive_builder",
+ "flexstr",
+ "indextree",
+ "itertools 0.11.0",
+ "parking_lot",
+ "pin-project",
+ "tokio",
+ "tracing",
+ "weak-table",
+]
+
+[[package]]
+name = "az"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
+name = "base64-serde"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba368df5de76a5bea49aaf0cf1b39ccfbbef176924d1ba5db3e4135216cbe3c7"
+dependencies = [
+ "base64 0.21.7",
+ "serde",
+]
+
+[[package]]
+name = "biblatex"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27fe7285040d0227cd8b5395e1c4783f44f0b673eca5a657f4432ae401f2b7b8"
+dependencies = [
+ "numerals",
+ "paste",
+ "strum 0.26.2",
+ "unicode-normalization",
+ "unscanny",
+]
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[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.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "bytemuck"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "camino"
+version = "1.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chinese-number"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49fccaef6346f6d6a741908d3b79fe97c2debe2fbb5eb3a7d00ff5981b52bb6c"
+dependencies = [
+ "chinese-variant",
+ "enum-ordinalize",
+ "num-bigint",
+ "num-traits",
+]
+
+[[package]]
+name = "chinese-variant"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7588475145507237ded760e52bf2f1085495245502033756d28ea72ade0e498b"
+
+[[package]]
+name = "chrono"
+version = "0.4.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "ciborium"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
+dependencies = [
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
+]
+
+[[package]]
+name = "ciborium-io"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
+
+[[package]]
+name = "ciborium-ll"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
+dependencies = [
+ "ciborium-io",
+ "half",
+]
+
+[[package]]
+name = "citationberg"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82108f2b676c954076d2e5044f19a6a03887b24bd42804f322e0650d13035899"
+dependencies = [
+ "quick-xml",
+ "serde",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.0",
+ "terminal_size",
+ "unicase",
+ "unicode-width",
+]
+
+[[package]]
+name = "clap_complete"
+version = "4.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
+dependencies = [
+ "clap",
+]
+
+[[package]]
+name = "clap_complete_fig"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54b3e65f91fabdd23cac3d57d39d5d938b4daabd070c335c006dccb866a61110"
+dependencies = [
+ "clap",
+ "clap_complete",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "clap_mangen"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1dd95b5ebb5c1c54581dd6346f3ed6a79a3eef95dd372fc2ac13d535535300e"
+dependencies = [
+ "clap",
+ "roff",
+]
+
+[[package]]
+name = "coarsetime"
+version = "0.1.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13b3839cf01bb7960114be3ccf2340f541b6d0c81f8690b007b2b39f750f7e5d"
+dependencies = [
+ "libc",
+ "wasix",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "cobs"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "comemo"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df6916408a724339aa77b18214233355f3eb04c42eb895e5f8909215bd8a7a91"
+dependencies = [
+ "comemo-macros",
+ "once_cell",
+ "parking_lot",
+ "siphasher 1.0.0",
+]
+
+[[package]]
+name = "comemo-macros"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8936e42f9b4f5bdfaf23700609ac1f11cb03ad4c1ec128a4ee4fd0903e228db"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core_maths"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3b02505ccb8c50b0aa21ace0fc08c3e53adebd4e58caa18a36152803c7709a3"
+dependencies = [
+ "libm",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[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 = "csv"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "darling"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+dependencies = [
+ "darling_core 0.14.4",
+ "darling_macro 0.14.4",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+dependencies = [
+ "darling_core 0.14.4",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core 0.20.8",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+
+[[package]]
+name = "data-url"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[package]]
+name = "derive_builder"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
+dependencies = [
+ "derive_builder_macro",
+]
+
+[[package]]
+name = "derive_builder_core"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
+dependencies = [
+ "darling 0.14.4",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_builder_macro"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
+dependencies = [
+ "derive_builder_core",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "dhat"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cd11d84628e233de0ce467de10b8633f4ddaecafadefc86e13b84b8739b827"
+dependencies = [
+ "backtrace",
+ "lazy_static",
+ "mintex",
+ "parking_lot",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "thousands",
+]
+
+[[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-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 = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "dissimilar"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632"
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
+[[package]]
+name = "ecow"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dba31a30727c42ff5e60468d695c7f21e43a6db2808b7195adcab908fbd9f794"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "elsa"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d98e71ae4df57d214182a2e5cb90230c0192c6ddfcaa05c36453d46a54713e10"
+dependencies = [
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "embedded-io"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced"
+
+[[package]]
+name = "ena"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "enum-ordinalize"
+version = "4.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5"
+dependencies = [
+ "enum-ordinalize-derive",
+]
+
+[[package]]
+name = "enum-ordinalize-derive"
+version = "4.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
+[[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.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fancy-regex"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+dependencies = [
+ "bit-set",
+ "regex",
+]
+
+[[package]]
+name = "fast-srgb8"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1"
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "flexstr"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d50aef14619d336a54fca5a592d952eb39037b1a1e7e6afd9f91c892ac7ef65"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "fontconfig-parser"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
+dependencies = [
+ "roxmltree",
+]
+
+[[package]]
+name = "fontdb"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
+dependencies = [
+ "fontconfig-parser",
+ "log",
+ "memmap2",
+ "slotmap",
+ "tinyvec",
+ "ttf-parser",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[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 = "fsevent-sys"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "fst"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a"
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+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-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[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-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 = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gif"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gif"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "git2"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "url",
+]
+
+[[package]]
+name = "globset"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "log",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.12",
+ "indexmap 2.2.5",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "half"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "hayagriva"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2e670de5191df083ddd112cd253049f8213277ccf0c15e18a8bf10e6c666cc"
+dependencies = [
+ "biblatex",
+ "ciborium",
+ "citationberg",
+ "indexmap 2.2.5",
+ "numerals",
+ "paste",
+ "serde",
+ "serde_yaml",
+ "thiserror",
+ "unic-langid",
+ "unicode-segmentation",
+ "unscanny",
+ "url",
+]
+
+[[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 = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[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"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
+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 0.2.12",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http 0.2.12",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http 0.2.12",
+ "hyper",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "hypher"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b24ad5637230df201ab1034d593f1d09bf7f2a9274f2e8897638078579f4265"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+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 = "icu_collections"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "137d96353afc8544d437e8a99eceb10ab291352699573b0de5b08bda38c78c60"
+dependencies = [
+ "displaydoc",
+ "serde",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c0aa2536adc14c07e2a521e95512b75ed8ef832f0fdf9299d4a0a45d2be2a9d"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c17d8f6524fdca4471101dd71f0a132eb6382b5d6d7f2970441cb25f6f435a"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_locid_transform_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform_data"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "545c6c3e8bf9580e2dafee8de6f9ec14826aaf359787789c7724f1f85f47d3dc"
+
+[[package]]
+name = "icu_properties"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976e296217453af983efa25f287a4c1da04b9a63bf1ed63719455068e4453eb5"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_locid_transform",
+ "icu_properties_data",
+ "icu_provider",
+ "serde",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6a86c0e384532b06b6c104814f9c1b13bcd5b64409001c0d05713a1f3529d99"
+
+[[package]]
+name = "icu_provider"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba58e782287eb6950247abbf11719f83f5d4e4a5c1f2cd490d30a334bc47c2f4"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_provider_macros",
+ "postcard",
+ "serde",
+ "stable_deref_trait",
+ "tinystr",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_adapters"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a229f978260da7c3aabb68cb7dc7316589936680570fe55e50fdd3f97711a4dd"
+dependencies = [
+ "icu_locid",
+ "icu_locid_transform",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_blob"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a7202cddda672db167c6352719959e9b01cb1ca576d32fa79103f61b5a73601"
+dependencies = [
+ "icu_provider",
+ "postcard",
+ "serde",
+ "writeable",
+ "zerotrie",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_macros"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "icu_segmenter"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2dc1e8f4ba33a6a4956770ac5c08570f255d6605519fb3a859a0c0a270a2f8f"
+dependencies = [
+ "core_maths",
+ "displaydoc",
+ "icu_collections",
+ "icu_locid",
+ "icu_provider",
+ "icu_segmenter_data",
+ "serde",
+ "utf8_iter",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_segmenter_data"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3673d6698dcffce08cfe8fc5da3c11c3f2c663d5d6137fd58ab2cbf44235ab46"
+
+[[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 = "if_chain"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
+
+[[package]]
+name = "image"
+version = "0.24.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "gif 0.13.1",
+ "jpeg-decoder",
+ "num-traits",
+ "png",
+]
+
+[[package]]
+name = "imagesize"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
+
+[[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",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+ "serde",
+]
+
+[[package]]
+name = "indexmap-nostd"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590"
+
+[[package]]
+name = "indextree"
+version = "4.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c40411d0e5c63ef1323c3d09ce5ec6d84d71531e18daed0743fccea279d7deb6"
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "insta"
+version = "1.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a7c22c4d34ef4788c351e971c52bfdfe7ea2766f8c5466bc175dd46e52ac22e"
+dependencies = [
+ "console",
+ "globset",
+ "lazy_static",
+ "linked-hash-map",
+ "similar",
+ "walkdir",
+ "yaml-rust",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[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.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "jobserver"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kamadak-exif"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077"
+dependencies = [
+ "mutate_once",
+]
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "kurbo"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b"
+dependencies = [
+ "arrayvec",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.16.2+1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "line-wrap"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
+dependencies = [
+ "safemem",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lipsum"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "636860251af8963cc40f6b4baadee105f02e21b28131d76eba8e40ce84ab8064"
+dependencies = [
+ "rand",
+ "rand_chacha",
+]
+
+[[package]]
+name = "litemap"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d642685b028806386b2b6e75685faadd3eb65a85fff7df711ce18446a422da"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lsp-server"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
+dependencies = [
+ "crossbeam-channel",
+ "log",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "lsp-types"
+version = "0.95.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "158c1911354ef73e8fe42da6b10c0484cb65c7f1007f28022e847706c1ab6984"
+dependencies = [
+ "bitflags 1.3.2",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "url",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
+dependencies = [
+ "libc",
+]
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mintex"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bec4598fddb13cc7b528819e697852653252b760f1228b7642679bf2ff2cd07"
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "mutate_once"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "nohash-hasher"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.4.2",
+ "crossbeam-channel",
+ "filetime",
+ "fsevent-sys",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "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.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "numerals"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e25be21376a772d15f97ae789845340a9651d3c4246ff5ebb6a2b35f9c37bd31"
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "open"
+version = "5.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32"
+dependencies = [
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "palette"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
+dependencies = [
+ "approx",
+ "fast-srgb8",
+ "libm",
+ "palette_derive",
+]
+
+[[package]]
+name = "palette_derive"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "path-clean"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "pdf-writer"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "644b654f2de28457bf1e25a4905a76a563d1128a33ce60cf042f721f6818feaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "itoa",
+ "memchr",
+ "ryu",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher 0.3.11",
+]
+
+[[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.52",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pixglyph"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e0f8ad4c197db38125b880c3c44544788665c7d5f4c42f5a35da44bca1a712"
+dependencies = [
+ "ttf-parser",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "plist"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
+dependencies = [
+ "base64 0.21.7",
+ "indexmap 2.2.5",
+ "line-wrap",
+ "quick-xml",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "png"
+version = "0.17.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "postcard"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8"
+dependencies = [
+ "cobs",
+ "embedded-io",
+ "serde",
+]
+
+[[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "psm"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "qcms"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edecfcd5d755a5e5d98e24cf43113e7cdaec5a070edd0f6b250c03a573da30fa"
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[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 = "rayon"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "reflexo"
+version = "0.5.0-rc2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "247ea8050cb5c88b41a68b3269f5a2eb7ebff55851a564d96b035643418346e6"
+dependencies = [
+ "base64 0.22.0",
+ "bitvec",
+ "comemo",
+ "dashmap",
+ "ecow",
+ "fxhash",
+ "once_cell",
+ "parking_lot",
+ "path-clean",
+ "rkyv",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serde_with",
+ "siphasher 1.0.0",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http 0.2.12",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tokio-rustls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "resvg"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c34501046959e06470ba62a2dc7f31c15f94ac250d842a45f9e012f4ee40c1e"
+dependencies = [
+ "gif 0.12.0",
+ "jpeg-decoder",
+ "log",
+ "pico-args",
+ "png",
+ "rgb",
+ "svgtypes",
+ "tiny-skia",
+ "usvg",
+]
+
+[[package]]
+name = "rgb"
+version = "0.8.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
+dependencies = [
+ "bytemuck",
+]
+
+[[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 = "rkyv"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "roff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
+
+[[package]]
+name = "roxmltree"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[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-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "rustybuzz"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
+dependencies = [
+ "bitflags 2.4.2",
+ "bytemuck",
+ "smallvec",
+ "ttf-parser",
+ "unicode-bidi-mirroring",
+ "unicode-ccc",
+ "unicode-properties",
+ "unicode-script",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[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 = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.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 = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+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 = "serde_with"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
+dependencies = [
+ "base64 0.21.7",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.2.5",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655"
+dependencies = [
+ "darling 0.20.8",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
+dependencies = [
+ "indexmap 2.2.5",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[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 = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "similar"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
+
+[[package]]
+name = "simplecss"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "siphasher"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slotmap"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+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 = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "stacker"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "libc",
+ "psm",
+ "winapi",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strict-num"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
+dependencies = [
+ "float-cmp",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "strum"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+dependencies = [
+ "strum_macros 0.25.3",
+]
+
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros 0.26.2",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "subsetter"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09eab8a83bff89ba2200bd4c59be45c7c787f988431b936099a5a266c957f2f9"
+
+[[package]]
+name = "svg2pdf"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba36b330062be8497fd96597227a757b621b86c4d24d164b06e4522b52b3693e"
+dependencies = [
+ "image",
+ "miniz_oxide",
+ "once_cell",
+ "pdf-writer",
+ "resvg",
+ "tiny-skia",
+ "usvg",
+]
+
+[[package]]
+name = "svgtypes"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70"
+dependencies = [
+ "kurbo",
+ "siphasher 0.3.11",
+]
+
+[[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.52"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+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 = "synstructure"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "syntect"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
+dependencies = [
+ "bincode",
+ "bitflags 1.3.2",
+ "fancy-regex",
+ "flate2",
+ "fnv",
+ "once_cell",
+ "plist",
+ "regex-syntax",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "thiserror",
+ "walkdir",
+ "yaml-rust",
+]
+
+[[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 = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "tar"
+version = "0.4.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "thousands"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820"
+
+[[package]]
+name = "time"
+version = "0.3.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+dependencies = [
+ "deranged",
+ "itoa",
+ "libc",
+ "num-conv",
+ "num_threads",
+ "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.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tiny-skia"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "bytemuck",
+ "cfg-if",
+ "log",
+ "png",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "tiny-skia-path"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "strict-num",
+]
+
+[[package]]
+name = "tinymist"
+version = "0.11.1"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "cargo_metadata",
+ "chrono",
+ "clap",
+ "clap_builder",
+ "clap_complete",
+ "clap_complete_fig",
+ "clap_mangen",
+ "codespan-reporting",
+ "comemo",
+ "crossbeam-channel",
+ "dhat",
+ "env_logger",
+ "futures",
+ "itertools 0.12.1",
+ "log",
+ "lsp-server",
+ "lsp-types",
+ "once_cell",
+ "parking_lot",
+ "paste",
+ "serde",
+ "serde_json",
+ "tinymist-query",
+ "tokio",
+ "tokio-util",
+ "toml",
+ "typst",
+ "typst-assets",
+ "typst-pdf",
+ "typst-preview",
+ "typst-render",
+ "typst-svg",
+ "typst-ts-compiler",
+ "typst-ts-core",
+ "vergen",
+ "walkdir",
+]
+
+[[package]]
+name = "tinymist-query"
+version = "0.11.1"
+dependencies = [
+ "anyhow",
+ "comemo",
+ "ecow",
+ "ena",
+ "fxhash",
+ "hex",
+ "if_chain",
+ "indexmap 2.2.5",
+ "insta",
+ "itertools 0.12.1",
+ "lazy_static",
+ "log",
+ "lsp-types",
+ "once_cell",
+ "parking_lot",
+ "reflexo",
+ "regex",
+ "serde",
+ "serde_json",
+ "sha2",
+ "strum 0.26.2",
+ "toml",
+ "typst",
+ "typst-ide",
+ "typst-ts-compiler",
+ "typst-ts-core",
+ "walkdir",
+]
+
+[[package]]
+name = "tinystr"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece"
+dependencies = [
+ "displaydoc",
+ "serde",
+ "zerovec",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-tungstenite"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38"
+dependencies = [
+ "futures-util",
+ "log",
+ "tokio",
+ "tungstenite",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992"
+dependencies = [
+ "indexmap 2.2.5",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "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.52",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "ttf-parser"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
+
+[[package]]
+name = "tungstenite"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "data-encoding",
+ "http 1.1.0",
+ "httparse",
+ "log",
+ "rand",
+ "sha1",
+ "thiserror",
+ "url",
+ "utf-8",
+]
+
+[[package]]
+name = "two-face"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37bed2135b2459c7eefba72c906d374697eb15949c205f2f124e3636a46b5eeb"
+dependencies = [
+ "once_cell",
+ "serde",
+ "syntect",
+]
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "typst"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "az",
+ "bitflags 2.4.2",
+ "chinese-number",
+ "ciborium",
+ "comemo",
+ "csv",
+ "ecow",
+ "fontdb",
+ "hayagriva",
+ "hypher",
+ "icu_properties",
+ "icu_provider",
+ "icu_provider_adapters",
+ "icu_provider_blob",
+ "icu_segmenter",
+ "if_chain",
+ "image",
+ "indexmap 2.2.5",
+ "kamadak-exif",
+ "kurbo",
+ "lipsum",
+ "log",
+ "once_cell",
+ "palette",
+ "phf",
+ "png",
+ "portable-atomic",
+ "qcms",
+ "rayon",
+ "regex",
+ "roxmltree",
+ "rustybuzz",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "siphasher 1.0.0",
+ "smallvec",
+ "stacker",
+ "syntect",
+ "time",
+ "toml",
+ "ttf-parser",
+ "two-face",
+ "typed-arena",
+ "typst-assets",
+ "typst-macros",
+ "typst-syntax",
+ "typst-timing",
+ "unicode-bidi",
+ "unicode-math-class",
+ "unicode-script",
+ "unicode-segmentation",
+ "usvg",
+ "wasmi",
+]
+
+[[package]]
+name = "typst-assets"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f13f85360328da54847dd7fefaf272dfa5b6d1fdeb53f32938924c39bf5b2c6c"
+
+[[package]]
+name = "typst-ide"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "comemo",
+ "ecow",
+ "if_chain",
+ "log",
+ "serde",
+ "typst",
+ "unscanny",
+]
+
+[[package]]
+name = "typst-macros"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "typst-pdf"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "base64 0.22.0",
+ "bytemuck",
+ "comemo",
+ "ecow",
+ "image",
+ "miniz_oxide",
+ "once_cell",
+ "pdf-writer",
+ "subsetter",
+ "svg2pdf",
+ "ttf-parser",
+ "typst",
+ "typst-assets",
+ "typst-macros",
+ "typst-timing",
+ "unicode-properties",
+ "unscanny",
+ "xmp-writer",
+]
+
+[[package]]
+name = "typst-preview"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1323cc2de067d19919891a1ee3f43af5c96d91decce44044347137d3e06fce"
+dependencies = [
+ "anyhow",
+ "await-tree",
+ "clap",
+ "clap_complete",
+ "clap_mangen",
+ "comemo",
+ "elsa",
+ "env_logger",
+ "futures",
+ "hyper",
+ "indexmap 2.2.5",
+ "log",
+ "memmap2",
+ "notify",
+ "once_cell",
+ "open",
+ "serde",
+ "serde_json",
+ "tiny-skia",
+ "tokio",
+ "tokio-tungstenite",
+ "typst",
+ "typst-assets",
+ "typst-ts-compiler",
+ "typst-ts-core",
+ "typst-ts-svg-exporter",
+ "vergen",
+]
+
+[[package]]
+name = "typst-render"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "bytemuck",
+ "comemo",
+ "flate2",
+ "image",
+ "pixglyph",
+ "resvg",
+ "roxmltree",
+ "tiny-skia",
+ "ttf-parser",
+ "typst",
+ "typst-macros",
+ "typst-timing",
+ "usvg",
+]
+
+[[package]]
+name = "typst-svg"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "base64 0.22.0",
+ "comemo",
+ "ecow",
+ "flate2",
+ "ttf-parser",
+ "typst",
+ "typst-macros",
+ "typst-timing",
+ "xmlparser",
+ "xmlwriter",
+]
+
+[[package]]
+name = "typst-syntax"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "comemo",
+ "ecow",
+ "once_cell",
+ "serde",
+ "unicode-ident",
+ "unicode-math-class",
+ "unicode-script",
+ "unicode-segmentation",
+ "unscanny",
+]
+
+[[package]]
+name = "typst-timing"
+version = "0.11.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=tinymist-v0.11.0#88608109579929b0c1fbab12d7a2afaea0baaf74"
+dependencies = [
+ "parking_lot",
+ "serde",
+ "serde_json",
+ "typst-syntax",
+]
+
+[[package]]
+name = "typst-ts-compiler"
+version = "0.5.0-rc2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c18cf7d96c0c558901b3f7e3f5200ecb7e3d7d3dcc5a1222e94bc875237ff352"
+dependencies = [
+ "append-only-vec",
+ "base64 0.22.0",
+ "chrono",
+ "codespan-reporting",
+ "comemo",
+ "dirs",
+ "dissimilar",
+ "flate2",
+ "fontdb",
+ "fst",
+ "hex",
+ "indexmap 2.2.5",
+ "instant",
+ "log",
+ "nohash-hasher",
+ "notify",
+ "once_cell",
+ "parking_lot",
+ "pathdiff",
+ "reqwest",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "sha2",
+ "strum 0.25.0",
+ "tar",
+ "tokio",
+ "typst",
+ "typst-ts-core",
+ "typst-ts-svg-exporter",
+ "walkdir",
+]
+
+[[package]]
+name = "typst-ts-core"
+version = "0.5.0-rc2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a69135c380eb60efa4aeabd986d27d82ecd1b4c843fd3393992b449409317847"
+dependencies = [
+ "base64 0.22.0",
+ "base64-serde",
+ "bitvec",
+ "byteorder",
+ "comemo",
+ "crossbeam-queue",
+ "dashmap",
+ "ecow",
+ "elsa",
+ "flate2",
+ "fxhash",
+ "hex",
+ "log",
+ "once_cell",
+ "parking_lot",
+ "path-clean",
+ "rayon",
+ "reflexo",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serde_with",
+ "sha2",
+ "siphasher 1.0.0",
+ "tiny-skia",
+ "tiny-skia-path",
+ "ttf-parser",
+ "typst",
+ "xmlparser",
+]
+
+[[package]]
+name = "typst-ts-svg-exporter"
+version = "0.5.0-rc2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6063f63c8e3ba3d4d7f4cb1a8fd96b096e8e713f24783278fea98dac0746966"
+dependencies = [
+ "base64 0.22.0",
+ "comemo",
+ "log",
+ "once_cell",
+ "rayon",
+ "reflexo",
+ "siphasher 1.0.0",
+ "tiny-skia",
+ "typst",
+ "typst-ts-core",
+]
+
+[[package]]
+name = "unic-langid"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "238722e6d794ed130f91f4ea33e01fcff4f188d92337a21297892521c72df516"
+dependencies = [
+ "unic-langid-impl",
+]
+
+[[package]]
+name = "unic-langid-impl"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bd55a2063fdea4ef1f8633243a7b0524cbeef1905ae04c31a1c9b9775c55bc6"
+dependencies = [
+ "serde",
+ "tinystr",
+]
+
+[[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-bidi-mirroring"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694"
+
+[[package]]
+name = "unicode-ccc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-math-class"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d246cf599d5fae3c8d56e04b20eb519adb89a8af8d0b0fbcded369aa3647d65"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-properties"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
+
+[[package]]
+name = "unicode-script"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-vo"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+
+[[package]]
+name = "unscanny"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "usvg"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "377f62b4a3c173de8654c1aa80ab1dac1154e6f13a779a9943e53780120d1625"
+dependencies = [
+ "base64 0.21.7",
+ "log",
+ "pico-args",
+ "usvg-parser",
+ "usvg-text-layout",
+ "usvg-tree",
+ "xmlwriter",
+]
+
+[[package]]
+name = "usvg-parser"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "351a05e6f2023d6b4e946f734240a3927aefdcf930d7d42587a2c8a8869814b0"
+dependencies = [
+ "data-url",
+ "flate2",
+ "imagesize",
+ "kurbo",
+ "log",
+ "roxmltree",
+ "simplecss",
+ "siphasher 0.3.11",
+ "svgtypes",
+ "usvg-tree",
+]
+
+[[package]]
+name = "usvg-text-layout"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c41888b9d5cf431fe852eaf9d047bbde83251b98f1749c2f08b1071e6db46e2"
+dependencies = [
+ "fontdb",
+ "kurbo",
+ "log",
+ "rustybuzz",
+ "unicode-bidi",
+ "unicode-script",
+ "unicode-vo",
+ "usvg-tree",
+]
+
+[[package]]
+name = "usvg-tree"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18863e0404ed153d6e56362c5b1146db9f4f262a3244e3cf2dbe7d8a85909f05"
+dependencies = [
+ "strict-num",
+ "svgtypes",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "utf8_iter"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vergen"
+version = "8.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
+dependencies = [
+ "anyhow",
+ "cargo_metadata",
+ "cfg-if",
+ "git2",
+ "regex",
+ "rustc_version",
+ "rustversion",
+ "time",
+]
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[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 = "wasix"
+version = "0.12.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d"
+dependencies = [
+ "wasi",
+]
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wasmi"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7"
+dependencies = [
+ "smallvec",
+ "spin",
+ "wasmi_arena",
+ "wasmi_core",
+ "wasmparser-nostd",
+]
+
+[[package]]
+name = "wasmi_arena"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073"
+
+[[package]]
+name = "wasmi_core"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a"
+dependencies = [
+ "downcast-rs",
+ "libm",
+ "num-traits",
+ "paste",
+]
+
+[[package]]
+name = "wasmparser-nostd"
+version = "0.100.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724"
+dependencies = [
+ "indexmap-nostd",
+]
+
+[[package]]
+name = "weak-table"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549"
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "weezl"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[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.4",
+]
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "writeable"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dad7bb64b8ef9c0aa27b6da38b452b0ee9fd82beaf276a87dd796fb55cbae14e"
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "xattr"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+dependencies = [
+ "libc",
+ "linux-raw-sys",
+ "rustix",
+]
+
+[[package]]
+name = "xmlparser"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
+
+[[package]]
+name = "xmlwriter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
+
+[[package]]
+name = "xmp-writer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4543ba138f64a94b19e1e9c66c165bca7e03d470e1c066cb76ea279d9d0e1989"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "yoke"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65e71b2e4f287f467794c671e2b8f8a5f3716b3c829079a1c44740148eff07e4"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "synstructure",
+]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "synstructure",
+]
+
+[[package]]
+name = "zerotrie"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0594125a0574fb93059c92c588ab209cc036a23d1baeb3410fa9181bea551a0"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "serde",
+ "zerovec",
+]
+
+[[package]]
+name = "zerovec"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eff4439ae91fb5c72b8abc12f3f2dbf51bd27e6eadb9f8a5bc8898dddb0e27ea"
+dependencies = [
+ "serde",
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
diff --git a/pkgs/by-name/ti/tinymist/package.nix b/pkgs/by-name/ti/tinymist/package.nix
new file mode 100644
index 0000000000000..9cd26ccf8fcc8
--- /dev/null
+++ b/pkgs/by-name/ti/tinymist/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, libgit2
+, openssl
+, zlib
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tinymist";
+  # Please update the corresponding vscode extension when updating
+  # this derivation.
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = "Myriad-Dreamin";
+    repo = "tinymist";
+    rev = "v${version}";
+    hash = "sha256-fkUL6+lNPtNONf01vxeRSj8b6bz0pW+mNFIQrV0twKM=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "typst-0.11.0" = "sha256-UzZ0tbC6Dhn178GQDyLl70WTp3h5WdaBCsEKgLisZ2M=";
+    };
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libgit2
+    openssl
+    zlib
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk_11_0.frameworks.CoreFoundation
+    darwin.apple_sdk_11_0.frameworks.CoreServices
+    darwin.apple_sdk_11_0.frameworks.Security
+    darwin.apple_sdk_11_0.frameworks.SystemConfiguration
+  ];
+
+  meta = with lib; {
+    description = "Tinymist is an integrated language service for Typst";
+    homepage = "https://github.com/Myriad-Dreamin/tinymist";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lampros ];
+    mainProgram = "tinymist";
+  };
+}
diff --git a/pkgs/by-name/tl/tlrc/package.nix b/pkgs/by-name/tl/tlrc/package.nix
index dd59312600a7f..5ac8fe12fb971 100644
--- a/pkgs/by-name/tl/tlrc/package.nix
+++ b/pkgs/by-name/tl/tlrc/package.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tlrc";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "tldr-pages";
     repo = "tlrc";
     rev = "v${version}";
-    hash = "sha256-SoWGZXBAqWWg5kwwpWuiA7iGqq9RNok/LqsjPAy6O+k=";
+    hash = "sha256-RzGw4rvak055V48bkeuzKAH6F/wlFMLya8Ny3mgU+H4=";
   };
 
-  cargoHash = "sha256-+HxRu8t6nofeE9WrDxQhebWIgeMYeMSXnHtHR1OHGzw=";
+  cargoHash = "sha256-BbBt6oCO9y++EWx9/CXISGfB/FEcEPKYeXNXcejevrg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/tr/treedome/package.nix b/pkgs/by-name/tr/treedome/package.nix
index a7752abf0fd6e..86a554b2f8aeb 100644
--- a/pkgs/by-name/tr/treedome/package.nix
+++ b/pkgs/by-name/tr/treedome/package.nix
@@ -19,12 +19,12 @@
 
 let
   pname = "treedome";
-  version = "0.4.3";
+  version = "0.4.5";
 
   src = fetchgit {
     url = "https://codeberg.org/solver-orgz/treedome";
     rev = version;
-    hash = "sha256-FBzRsBoV3wnt2nu5WMnaTnBNC51jG120E0Orm55KhBg=";
+    hash = "sha256-YkyjG/ee5WeO5OD4FZnWaqcOJO3YC0uQkbwGkCNBxC8=";
     fetchLFS = true;
   };
 
diff --git a/pkgs/tools/typesetting/typst-live/default.nix b/pkgs/by-name/ty/typst-live/package.nix
index 8968adbb5e1bc..8968adbb5e1bc 100644
--- a/pkgs/tools/typesetting/typst-live/default.nix
+++ b/pkgs/by-name/ty/typst-live/package.nix
diff --git a/pkgs/by-name/ty/typstyle/package.nix b/pkgs/by-name/ty/typstyle/package.nix
new file mode 100644
index 0000000000000..1ef0f9b47f359
--- /dev/null
+++ b/pkgs/by-name/ty/typstyle/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, libgit2
+, zlib
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "typstyle";
+  version = "0.11.5";
+
+  src = fetchFromGitHub {
+    owner = "Enter-tainer";
+    repo = "typstyle";
+    rev = "v${version}";
+    hash = "sha256-jAsKktTgvmZ4NKr1QpJPYjI2HRSw8CPBfJTETVyiRhg=";
+  };
+
+  cargoHash = "sha256-oLJWgF5byM3sY3Bs/wpSrBqjNg4sHDF3RIsWZBiguGI=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libgit2
+    zlib
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.CoreServices
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  meta = {
+    changelog = "https://github.com/Enter-tainer/typstyle/blob/${src.rev}/CHANGELOG.md";
+    description = "Format your typst source code";
+    homepage = "https://github.com/Enter-tainer/typstyle";
+    license = lib.licenses.asl20;
+    mainProgram = "typstyle";
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+}
diff --git a/pkgs/by-name/ue/uefisettings/package.nix b/pkgs/by-name/ue/uefisettings/package.nix
index 9fd585340f96d..f23f5d472a198 100644
--- a/pkgs/by-name/ue/uefisettings/package.nix
+++ b/pkgs/by-name/ue/uefisettings/package.nix
@@ -5,19 +5,25 @@
 
 rustPlatform.buildRustPackage {
   name = "uefisettings";
-  version = "unstable-2024-02-20";
+  version = "0-unstable-2024-03-26";
 
   src = fetchFromGitHub {
     owner = "linuxboot";
     repo = "uefisettings";
-    rev = "eae8b8b622b7ac3c572eeb3b3513ed623e272fcc";
-    hash = "sha256-zLgrxYBj5bEMZRw5sKWqKuV3jQOJ6dnzbzpoqE0OhKs=";
+    rev = "f90aed759b9c2217bea336e37ab5282616ece390";
+    hash = "sha256-Cik8uVdzhMmgXfx23axkUJBg8zd5afMgYvluN0BJsdo=";
   };
 
   cargoHash = "sha256-FCQ/1E6SZyVOOAlpqyaDWEZx0y0Wk3Caosvr48VamAA=";
 
-  # Tests expect filesystem access to directories like /proc
-  doCheck = false;
+  checkFlags = [
+    # Expects filesystem access to /proc and rootfs
+    "--skip=hii::efivarfs::tests::test_get_current_mount_flags_for_proc"
+    "--skip=hii::efivarfs::tests::test_get_current_mount_flags_for_root"
+    # Expects FHS
+    "--skip=ilorest::blobstore::Transport"
+    "--skip=ilorest::chif::IloRestChif"
+  ];
 
   meta = with lib; {
     description = "CLI tool to read/get/extract and write/change/modify BIOS/UEFI settings.";
diff --git a/pkgs/by-name/un/unciv/package.nix b/pkgs/by-name/un/unciv/package.nix
index 0e2f80f09d960..69d1bb8ec7df9 100644
--- a/pkgs/by-name/un/unciv/package.nix
+++ b/pkgs/by-name/un/unciv/package.nix
@@ -27,11 +27,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "4.10.19";
+  version = "4.10.21";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    hash = "sha256-f9fg2Clz9CjoC8xzCguJ2A3Aczom+KjEyIlMJC2oS/o=";
+    hash = "sha256-JnuJbmKGqtEdFiMnA5RvCfdox2WTABwxNI3Zdk6wNU8=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/by-name/un/uni-sync/config_path.patch b/pkgs/by-name/un/uni-sync/config_path.patch
new file mode 100644
index 0000000000000..c59bf80125ae0
--- /dev/null
+++ b/pkgs/by-name/un/uni-sync/config_path.patch
@@ -0,0 +1,38 @@
+diff --git a/src/main.rs b/src/main.rs
+index 357a33b..7073497 100644
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -1,4 +1,4 @@
+-use std::env;
++use std::path::PathBuf;
+ 
+ mod devices;
+ 
+@@ -8,12 +8,23 @@ fn main() -> Result<(), std::io::Error> {
+         configs: vec![]
+     };
+ 
+-    let mut config_path = env::current_exe()?;
+-    config_path.pop();
+-    config_path.push("uni-sync.json");
++    let mut config_path = PathBuf::from("/etc/uni-sync/uni-sync.json");
+ 
+     if !config_path.exists() {
+-        std::fs::write(&config_path, serde_json::to_string_pretty(&configs).unwrap())?;
++        match std::fs::create_dir_all(config_path.parent().unwrap()) {
++            Ok(result) => result,
++            Err(_) => {
++                println!("Please run uni-sync with elevated permissions.");
++                std::process::exit(0);
++            }
++        };
++        match std::fs::write(&config_path, serde_json::to_string_pretty(&configs).unwrap()) {
++            Ok(result) => result,
++            Err(_) => {
++                println!("Please run uni-sync with elevated permissions.");
++                std::process::exit(0);
++            }
++        };
+     }
+ 
+     let config_content = std::fs::read_to_string(&config_path).unwrap();
diff --git a/pkgs/by-name/un/uni-sync/ignore_read-only_filesystem.patch b/pkgs/by-name/un/uni-sync/ignore_read-only_filesystem.patch
new file mode 100644
index 0000000000000..3a0837d1d224d
--- /dev/null
+++ b/pkgs/by-name/un/uni-sync/ignore_read-only_filesystem.patch
@@ -0,0 +1,14 @@
+diff --git a/src/main.rs b/src/main.rs
+index f07cc64..357a33b 100644
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -20,7 +20,7 @@ fn main() -> Result<(), std::io::Error> {
+     configs = serde_json::from_str::<devices::Configs>(&config_content).unwrap();
+ 
+     let new_configs = devices::run(configs);
+-    std::fs::write(&config_path, serde_json::to_string_pretty(&new_configs).unwrap())?;
++    std::fs::write(&config_path, serde_json::to_string_pretty(&new_configs).unwrap());
+ 
+     Ok(())
+ }
+\ No newline at end of file
diff --git a/pkgs/by-name/un/uni-sync/package.nix b/pkgs/by-name/un/uni-sync/package.nix
new file mode 100644
index 0000000000000..6124e621dfb9e
--- /dev/null
+++ b/pkgs/by-name/un/uni-sync/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, libudev-zero
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "uni-sync";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "EightB1ts";
+    repo = pname;
+    rev = "ca349942c06fabcc028ce24e79fc6ce7c758452b";
+    hash = "sha256-K2zX3rKtTaKO6q76xlxX+rDLL0gEsJ2l8x/s1vsp+ZQ=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ libudev-zero ];
+
+  patches = [
+    ./config_path.patch
+    ./ignore_read-only_filesystem.patch
+  ];
+
+  cargoHash = "sha256-DdmjP0h15cXkHJZxvOcINgoZ/EhTgu/7iYb+bgsIXxU=";
+
+  meta = with lib; {
+    description = "A synchronization tool for Lian Li Uni Controllers";
+    homepage = "https://github.com/EightB1ts/uni-sync";
+    license = licenses.mit;
+    maintainers = with maintainers; [ yunfachi ];
+    mainProgram = "uni-sync";
+  };
+}
diff --git a/pkgs/by-name/up/uplosi/package.nix b/pkgs/by-name/up/uplosi/package.nix
index 57d7fab92ec72..101f29e85be92 100644
--- a/pkgs/by-name/up/uplosi/package.nix
+++ b/pkgs/by-name/up/uplosi/package.nix
@@ -18,7 +18,6 @@ buildGoModule rec {
 
   CGO_ENABLED = "0";
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
-  flags = [ "-trimpath" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/us/usql/package.nix b/pkgs/by-name/us/usql/package.nix
index 21a5bc99e67ba..27ea4e6bb9e35 100644
--- a/pkgs/by-name/us/usql/package.nix
+++ b/pkgs/by-name/us/usql/package.nix
@@ -11,28 +11,24 @@
 
 buildGoModule rec {
   pname = "usql";
-  version = "0.17.5";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "xo";
     repo = "usql";
     rev = "v${version}";
-    hash = "sha256-Lh5CProffPB/GEYvU1h7St8zgmnS1QOjBgvdUXlsGzc=";
+    hash = "sha256-2/qB05LQGw4XjnODn0dzuTVqkc9X6YACJ45z+/juHXk=";
   };
 
   buildInputs = [ unixODBC icu ];
 
-  vendorHash = "sha256-IdqSTwQeMRjB5sE53VvTVAXPyIyN+pMj4XziIT31rV0=";
+  vendorHash = "sha256-PFXULlYMSUoJ23jDA3CTImiUAlcoqHoh1zq+749qO2g=";
   proxyVendor = true;
 
-  # Exclude broken genji, hive & impala drivers (bad group)
+  # Exclude drivers from the bad group
   # These drivers break too often and are not used.
   #
-  # See https://github.com/xo/usql/pull/347
-  #
   excludedPackages = [
-    "genji"
-    "hive"
     "impala"
   ];
 
diff --git a/pkgs/by-name/ut/ut1999/package.nix b/pkgs/by-name/ut/ut1999/package.nix
index 92cb223d54675..acc719a42cfd6 100644
--- a/pkgs/by-name/ut/ut1999/package.nix
+++ b/pkgs/by-name/ut/ut1999/package.nix
@@ -1,7 +1,26 @@
-{ lib, stdenv, requireFile, autoPatchelfHook, fetchurl, makeDesktopItem, copyDesktopItems, imagemagick
+{ lib, stdenv, requireFile, autoPatchelfHook, undmg, fetchurl, makeDesktopItem, copyDesktopItems, imagemagick
 , runCommand, libgcc, wxGTK32, innoextract, libGL, SDL2, openal, libmpg123, libxmp }:
 
 let
+  version = "469d";
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-amd64.tar.bz2";
+      hash = "sha256-aoGzWuakwN/OL4+xUq8WEpd2c1rrNN/DkffI2vDVGjs=";
+    };
+    aarch64-linux = fetchurl {
+      url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-arm64.tar.bz2";
+      hash = "sha256-2e9lHB12jLTR8UYofLWL7gg0qb2IqFk6eND3T5VqAx0=";
+    };
+    i686-linux = fetchurl {
+      url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-x86.tar.bz2";
+      hash = "sha256-1JsFKuAAj/LtYvOUPFu0Hn+zvY3riW0YlJbLd4UnaKU=";
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-macOS-Sonoma.dmg";
+      hash = "sha256-TbhJbOH4E5WOb6XR9dmqLkXziK3/CzhNjd1ypBkkmvw=";
+    };
+  };
   unpackGog = runCommand "ut1999-gog" {
     src = requireFile rec {
       name = "setup_ut_goty_2.0.0.5.exe";
@@ -15,20 +34,23 @@ let
       '';
     };
 
-    buildInputs = [ innoextract ];
+    nativeBuildInputs = [ innoextract ];
   } ''
     innoextract --extract --exclude-temp "$src"
     mkdir $out
     cp -r app/* $out
   '';
-in stdenv.mkDerivation rec {
+  systemDir = {
+    x86_64-linux = "System64";
+    aarch64-linux = "SystemARM64";
+    x86_64-darwin = "System";
+    i686-linux = "System";
+  }.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
+in stdenv.mkDerivation {
   name = "ut1999";
-  version = "469d";
+  inherit version;
   sourceRoot = ".";
-  src = fetchurl {
-    url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-amd64.tar.bz2";
-    hash = "sha256-aoGzWuakwN/OL4+xUq8WEpd2c1rrNN/DkffI2vDVGjs=";
-  };
+  src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   buildInputs = [
     libgcc
@@ -41,41 +63,50 @@ in stdenv.mkDerivation rec {
     stdenv.cc.cc
   ];
 
-  nativeBuildInputs = [
+  nativeBuildInputs = lib.optionals stdenv.isLinux [
     copyDesktopItems
     autoPatchelfHook
     imagemagick
+  ] ++ lib.optionals stdenv.isDarwin [
+    undmg
   ];
 
-  installPhase = ''
+  installPhase = let
+    outPrefix = if stdenv.isDarwin then "$out/UnrealTournament.app/Contents/MacOS" else "$out";
+  in ''
     runHook preInstall
 
     mkdir -p $out/bin
-    cp -r ./* $out
-
-    # Remove bundled libraries to use native versions instead
-    rm $out/System64/libmpg123.so* \
-      $out/System64/libopenal.so* \
-      $out/System64/libSDL2* \
-      $out/System64/libxmp.so*
-
+    cp -r ${if stdenv.isDarwin then "UnrealTournament.app" else "./*"} $out
     chmod -R 755 $out
+    cd ${outPrefix}
 
-    ln -s ${unpackGog}/Music $out
-    ln -s ${unpackGog}/Sounds $out
-    cp -n ${unpackGog}/Textures/* $out/Textures || true
-    ln -s ${unpackGog}/Maps $out
-    cp -n ${unpackGog}/System/*.{u,int} $out/System || true
+    rm -rf ./{Music,Sounds,Maps}
+    ln -s ${unpackGog}/{Music,Sounds,Maps} .
 
-    ln -s "$out/System64/ut-bin" "$out/bin/ut1999"
-    ln -s "$out/System64/ucc-bin" "$out/bin/ut1999-ucc"
+    cp -n ${unpackGog}/Textures/* ./Textures || true
+    cp -n ${unpackGog}/System/*.{u,int} ./System || true
+  '' + lib.optionalString (stdenv.isLinux) ''
+    ln -s "$out/${systemDir}/ut-bin" "$out/bin/ut1999"
+    ln -s "$out/${systemDir}/ucc-bin" "$out/bin/ut1999-ucc"
 
     convert "${unpackGog}/gfw_high.ico" "ut1999.png"
     install -D ut1999-5.png "$out/share/icons/hicolor/256x256/apps/ut1999.png"
 
+    # Remove bundled libraries to use native versions instead
+    rm $out/${systemDir}/libmpg123.so* \
+      $out/${systemDir}/libopenal.so* \
+      $out/${systemDir}/libSDL2* \
+      $out/${systemDir}/libxmp.so*
+  '' + ''
     runHook postInstall
   '';
 
+  # .so files in the SystemARM64 directory are not loaded properly on aarch64-linux
+  appendRunpaths = lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+    "${placeholder "out"}/${systemDir}"
+  ];
+
   desktopItems = [
     (makeDesktopItem {
       name = "ut1999";
@@ -90,9 +121,9 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Unreal Tournament GOTY (1999) with the OldUnreal patch.";
     license = licenses.unfree;
-    platforms = [ "x86_64-linux" ];
+    platforms = attrNames srcs;
     maintainers = with maintainers; [ eliandoran ];
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     mainProgram = "ut1999";
   };
 }
diff --git a/pkgs/misc/vencord/package-lock.json b/pkgs/by-name/ve/vencord/package-lock.json
index 5accca8740bf1..6c301b195570d 100644
--- a/pkgs/misc/vencord/package-lock.json
+++ b/pkgs/by-name/ve/vencord/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "vencord",
-    "version": "1.7.3",
+    "version": "1.7.4",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "vencord",
-            "version": "1.7.3",
+            "version": "1.7.4",
             "license": "GPL-3.0-or-later",
             "dependencies": {
                 "@sapphi-red/web-noise-suppressor": "0.3.3",
@@ -824,9 +824,9 @@
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "18.19.26",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.26.tgz",
-            "integrity": "sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==",
+            "version": "18.19.28",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.28.tgz",
+            "integrity": "sha512-J5cOGD9n4x3YGgVuaND6khm5x07MMdAKkRyXnjVR6KFhLMNh2yONGiP7Z+4+tBOt5mK+GvDTiacTOVGGpqiecw==",
             "dev": true,
             "dependencies": {
                 "undici-types": "~5.26.4"
@@ -845,31 +845,24 @@
             "dev": true
         },
         "node_modules/@types/react": {
-            "version": "18.2.69",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.69.tgz",
-            "integrity": "sha512-W1HOMUWY/1Yyw0ba5TkCV+oqynRjG7BnteBB+B7JmAK7iw3l2SW+VGOxL+akPweix6jk2NNJtyJKpn4TkpfK3Q==",
+            "version": "18.2.73",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.73.tgz",
+            "integrity": "sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA==",
             "dev": true,
             "dependencies": {
                 "@types/prop-types": "*",
-                "@types/scheduler": "*",
                 "csstype": "^3.0.2"
             }
         },
         "node_modules/@types/react-dom": {
-            "version": "18.2.22",
-            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz",
-            "integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==",
+            "version": "18.2.23",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.23.tgz",
+            "integrity": "sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A==",
             "dev": true,
             "dependencies": {
                 "@types/react": "*"
             }
         },
-        "node_modules/@types/scheduler": {
-            "version": "0.16.8",
-            "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
-            "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
-            "dev": true
-        },
         "node_modules/@types/semver": {
             "version": "7.5.8",
             "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
@@ -4968,9 +4961,9 @@
             "dev": true
         },
         "node_modules/table": {
-            "version": "6.8.1",
-            "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
-            "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
+            "version": "6.8.2",
+            "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
+            "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
             "dev": true,
             "dependencies": {
                 "ajv": "^8.0.1",
diff --git a/pkgs/misc/vencord/default.nix b/pkgs/by-name/ve/vencord/package.nix
index 3a3ea19b7c04b..5a227196cee7f 100644
--- a/pkgs/misc/vencord/default.nix
+++ b/pkgs/by-name/ve/vencord/package.nix
@@ -5,8 +5,8 @@
 , buildWebExtension ? false
 }:
 let
-  version = "1.7.3";
-  gitHash = "caa14ec";
+  version = "1.7.4";
+  gitHash = "bdef47e";
 in
 buildNpmPackage rec {
   pname = "vencord";
@@ -16,7 +16,7 @@ buildNpmPackage rec {
     owner = "Vendicated";
     repo = "Vencord";
     rev = "v${version}";
-    hash = "sha256-BsM7Gt1NEsZu/rxK58+Tix1xIJr6RvgbdjxVnro2soA=";
+    hash = "sha256-Ub8VzeTkka0oq0CYN/UHjOIH2y3F7Oy9QZpTi6glehI=";
   };
 
   ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: {
@@ -34,7 +34,7 @@ buildNpmPackage rec {
   npmRebuildFlags = [ "|| true" ];
 
   makeCacheWritable = true;
-  npmDepsHash = "sha256-XRVxF0dW0HIsLtijvxM/feW6rI/c4LsnA6Tmrp51arE=";
+  npmDepsHash = "sha256-/iUNvTk51aoh0TmDXgFG425I37xFuIddkrceF0pNBcE=";
   npmFlags = [ "--legacy-peer-deps" ];
   npmBuildScript = if buildWebExtension then "buildWeb" else "build";
   npmBuildFlags = [ "--" "--standalone" "--disable-updater" ];
diff --git a/pkgs/misc/vencord/update.sh b/pkgs/by-name/ve/vencord/update.sh
index 8ba180bb6fd77..8ba180bb6fd77 100755
--- a/pkgs/misc/vencord/update.sh
+++ b/pkgs/by-name/ve/vencord/update.sh
diff --git a/pkgs/by-name/vu/vunnel/package.nix b/pkgs/by-name/vu/vunnel/package.nix
new file mode 100644
index 0000000000000..6575d5a8d5c46
--- /dev/null
+++ b/pkgs/by-name/vu/vunnel/package.nix
@@ -0,0 +1,83 @@
+{ lib
+, fetchFromGitHub
+, git
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "vunnel";
+  version = "0.21.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "anchore";
+    repo = "vunnel";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-m+khfAEN+fO3UuCYBqshlvjIXSzebeWBQtoQtPalIio=";
+  };
+
+  pythonRelaxDeps = [
+    "ijson"
+    "sqlalchemy"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
+  ];
+
+  build-system = with python3.pkgs; [
+    poetry-core
+    poetry-dynamic-versioning
+  ];
+
+  dependencies = with python3.pkgs; [
+    click
+    colorlog
+    cvss
+    defusedxml
+    ijson
+    importlib-metadata
+    iso8601
+    lxml
+    mashumaro
+    mergedeep
+    orjson
+    pytest-snapshot
+    python-dateutil
+    pyyaml
+    requests
+    sqlalchemy
+    xsdata
+    xxhash
+    zstandard
+  ];
+
+  nativeCheckInputs = [
+    git
+  ] ++ (with python3.pkgs; [
+    jsonschema
+    pytest-mock
+    pytest-unordered
+    pytestCheckHook
+  ]);
+
+  pythonImportsCheck = [
+    "vunnel"
+  ];
+
+  disabledTests = [
+    # Compare output
+    "test_status"
+    # TypeError
+    "test_parser"
+  ];
+
+  meta = with lib; {
+    description = "Tool for collecting vulnerability data from various sources";
+    homepage = "https://github.com/anchore/vunnel";
+    changelog = "https://github.com/anchore/vunnel/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "vunnel";
+  };
+}
diff --git a/pkgs/by-name/wa/warp-terminal/versions.json b/pkgs/by-name/wa/warp-terminal/versions.json
index 154c7ffdeccc0..79bf56085f7b9 100644
--- a/pkgs/by-name/wa/warp-terminal/versions.json
+++ b/pkgs/by-name/wa/warp-terminal/versions.json
@@ -1,10 +1,10 @@
 {
   "darwin": {
-    "hash": "sha256-aOw/c6Y+4x6kwxcwnajHh92ZZDeaM/Y1df76HgUjVn8=",
-    "version": "0.2024.03.19.08.01.stable_01"
+    "hash": "sha256-4eeu1JlChD9QvFSpuq5Wh8y+cUqpHYKgi3+SBTJqIwA=",
+    "version": "0.2024.03.26.08.02.stable_02"
   },
   "linux": {
-    "hash": "sha256-efnYh48xcLneeotH9iSY0xQRgMXI/erM6F2fIH38yjY=",
-    "version": "0.2024.03.19.08.01.stable_01"
+    "hash": "sha256-hBwLfxhdy4cru2xH3hY+mGbJpR47Qf3SqEIijIRDstU=",
+    "version": "0.2024.03.26.08.02.stable_02"
   }
 }
diff --git a/pkgs/by-name/we/wechat-uos/package.nix b/pkgs/by-name/we/wechat-uos/package.nix
new file mode 100644
index 0000000000000..d151c022ed66b
--- /dev/null
+++ b/pkgs/by-name/we/wechat-uos/package.nix
@@ -0,0 +1,248 @@
+{ stdenvNoCC
+, stdenv
+, lib
+, fetchurl
+, requireFile
+, dpkg
+, nss
+, nspr
+, xorg
+, pango
+, zlib
+, atkmm
+, libdrm
+, libxkbcommon
+, xcbutilwm
+, xcbutilimage
+, xcbutilkeysyms
+, xcbutilrenderutil
+, mesa
+, alsa-lib
+, wayland
+, openssl_1_1
+, atk
+, qt6
+, at-spi2-atk
+, at-spi2-core
+, dbus
+, cups
+, gtk3
+, libxml2
+, cairo
+, freetype
+, fontconfig
+, vulkan-loader
+, gdk-pixbuf
+, libexif
+, ffmpeg
+, pulseaudio
+, systemd
+, libuuid
+, expat
+, bzip2
+, glib
+, libva
+, libGL
+, libnotify
+, buildFHSEnv
+, writeShellScript
+, /**
+  License for wechat-uos, packed in a gz archive named "license.tar.gz".
+  It should have the following files:
+  license.tar.gz
+  ├── etc
+  │   ├── lsb-release
+  │   └── os-release
+  └── var
+      ├── lib
+      │   └── uos-license
+      │       └── .license.json
+      └── uos
+          └── .license.key
+  */
+  uosLicense ? requireFile {
+    name = "license.tar.gz";
+    url = "https://www.uniontech.com";
+    sha256 = "53760079c1a5b58f2fa3d5effe1ed35239590b288841d812229ef4e55b2dbd69";
+  }
+}:
+let
+  wechat-uos-env = stdenvNoCC.mkDerivation {
+    meta.priority = 1;
+    name = "wechat-uos-env";
+    buildCommand = ''
+      mkdir -p $out/etc
+      mkdir -p $out/lib/license
+      mkdir -p $out/usr/bin
+      mkdir -p $out/usr/share
+      mkdir -p $out/opt
+      mkdir -p $out/var
+
+      ln -s ${wechat}/opt/* $out/opt/
+      ln -s ${wechat}/usr/lib/wechat-uos/license/etc/os-release  $out/etc/os-release
+      ln -s ${wechat}/usr/lib/wechat-uos/license/etc/lsb-release  $out/etc/lsb-release
+      ln -s ${wechat}/usr/lib/wechat-uos/license/var/*  $out/var/
+      ln -s ${wechat}/usr/lib/wechat-uos/license/libuosdevicea.so $out/lib/license/
+    '';
+    preferLocalBuild = true;
+  };
+
+  wechat-uos-runtime = with xorg; [
+    stdenv.cc.cc
+    stdenv.cc.libc
+    pango
+    zlib
+    xcbutilwm
+    xcbutilimage
+    xcbutilkeysyms
+    xcbutilrenderutil
+    libX11
+    libXt
+    libXext
+    libSM
+    libICE
+    libxcb
+    libxkbcommon
+    libxshmfence
+    libXi
+    libXft
+    libXcursor
+    libXfixes
+    libXScrnSaver
+    libXcomposite
+    libXdamage
+    libXtst
+    libXrandr
+    libnotify
+    atk
+    atkmm
+    cairo
+    at-spi2-atk
+    at-spi2-core
+    alsa-lib
+    dbus
+    cups
+    gtk3
+    gdk-pixbuf
+    libexif
+    ffmpeg
+    libva
+    freetype
+    fontconfig
+    libXrender
+    libuuid
+    expat
+    glib
+    nss
+    nspr
+    libGL
+    libxml2
+    pango
+    libdrm
+    mesa
+    vulkan-loader
+    systemd
+    wayland
+    pulseaudio
+    qt6.qt5compat
+    openssl_1_1
+    bzip2
+  ];
+
+  wechat = stdenvNoCC.mkDerivation
+    rec {
+      pname = "wechat-uos";
+      version = "1.0.0.238";
+
+      src = {
+        x86_64-linux = fetchurl {
+          url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.wechat/com.tencent.wechat_${version}_amd64.deb";
+          hash = "sha256-NxAmZ526JaAzAjtAd9xScFnZBuwD6i2wX2/AEqtAyWs=";
+        };
+        aarch64-linux = fetchurl {
+          url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.wechat/com.tencent.wechat_${version}_arm64.deb";
+          hash = "sha256-3ru6KyBYXiuAlZuWhyyvtQCWbOJhGYzker3FS0788RE=";
+        };
+        loongarch64-linux = fetchurl {
+          url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.wechat/com.tencent.wechat_${version}_loongarch64.deb";
+          hash = "sha256-iuJeLMKD6v8J8iKw3+cyODN7PZQrLpi9p0//mkI0ujE=";
+        };
+      }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
+
+      # Don't blame about this. WeChat requires some binary from here to work properly
+      uosSrc = {
+        x86_64-linux = fetchurl {
+          url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.weixin/com.tencent.weixin_2.1.5_amd64.deb";
+          hash = "sha256-vVN7w+oPXNTMJ/g1Rpw/AVLIytMXI+gLieNuddyyIYE=";
+        };
+        aarch64-linux = fetchurl {
+          url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.weixin/com.tencent.weixin_2.1.5_arm64.deb";
+          hash = "sha256-XvGFPYJlsYPqRyDycrBGzQdXn/5Da1AJP5LgRVY1pzI=";
+        };
+        loongarch64-linux = fetchurl {
+          url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.weixin/com.tencent.weixin_2.1.5_loongarch64.deb";
+          hash = "sha256-oa6rLE6QXMCPlbebto9Tv7xT3fFqYIlXL6WHpB2U35s=";
+        };
+      }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
+
+      inherit uosLicense;
+
+      nativeBuildInputs = [ dpkg ];
+
+      unpackPhase = ''
+        runHook preUnpack
+
+        dpkg -x $src ./wechat-uos
+        dpkg -x $uosSrc ./wechat-uos-old-source
+
+        tar -xvf $uosLicense
+
+        runHook postUnpack
+      '';
+
+      installPhase = ''
+        runHook preInstall
+        mkdir -p $out
+
+        cp -r wechat-uos/* $out
+
+        mkdir -pv $out/usr/lib/wechat-uos/license
+        cp -r license/* $out/usr/lib/wechat-uos/license
+        cp -r wechat-uos-old-source/usr/lib/license/libuosdevicea.so $out/usr/lib/wechat-uos/license/
+
+        runHook postInstall
+      '';
+
+      meta = with lib; {
+        description = "Messaging app";
+        homepage = "https://weixin.qq.com/";
+        license = licenses.unfree;
+        platforms = [ "x86_64-linux" "aarch64-linux" "loongarch64-linux" ];
+        sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+        maintainers = with maintainers; [ pokon548 ];
+        mainProgram = "wechat-uos";
+      };
+    };
+in
+buildFHSEnv {
+  inherit (wechat) name meta;
+  runScript = writeShellScript "wechat-uos-launcher" ''
+    export QT_QPA_PLATFORM=xcb
+    export LD_LIBRARY_PATH=${lib.makeLibraryPath wechat-uos-runtime}
+    ${wechat.outPath}/opt/apps/com.tencent.wechat/files/wechat
+  '';
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications
+    mkdir -p $out/share/icons
+    cp -r ${wechat.outPath}/opt/apps/com.tencent.wechat/entries/applications/com.tencent.wechat.desktop $out/share/applications
+    cp -r ${wechat.outPath}/opt/apps/com.tencent.wechat/entries/icons/* $out/share/icons/
+
+    mv $out/bin/$name $out/bin/wechat-uos
+
+    substituteInPlace $out/share/applications/com.tencent.wechat.desktop \
+      --replace-quiet 'Exec=/usr/bin/wechat' "Exec=$out/bin/wechat-uos --"
+  '';
+  targetPkgs = pkgs: [ wechat-uos-env ];
+
+  extraOutputsToInstall = [ "usr" "var/lib/uos" "var/uos" "etc" ];
+}
diff --git a/pkgs/by-name/wi/wio/package.nix b/pkgs/by-name/wi/wio/package.nix
index e8378f2fc5606..5a39e30ea3be0 100644
--- a/pkgs/by-name/wi/wio/package.nix
+++ b/pkgs/by-name/wi/wio/package.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wio";
-  version = "unstable-2023-11-23";
+  version = "unstable-2024-03-23";
 
   src = fetchFromGitHub {
     owner = "Rubo3";
     repo = "wio";
-    rev = "77c33b555589068350078d634a256a8fbb7ffe6b";
-    hash = "sha256-Wff8RPHfmgPYJ3cO0h5onHtWIvOYDqLjvF1O4uODuCY=";
+    rev = "a68fbaf0011610d55db0413ebb7aca6ff79a8dc3";
+    hash = "sha256-iQulldgYuz++ank2rOL92Ydj6IOiBtNEVEEcVOlhkMk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/wi/wit-bindgen/package.nix b/pkgs/by-name/wi/wit-bindgen/package.nix
index 5d6127e9c5965..0a48009b11c9c 100644
--- a/pkgs/by-name/wi/wit-bindgen/package.nix
+++ b/pkgs/by-name/wi/wit-bindgen/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wit-bindgen";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "wit-bindgen";
     rev = "v${version}";
-    hash = "sha256-qPFw2ecnyZA3TV95AbJFWnWhV8zHQ/bq+MDRduVNl6s=";
+    hash = "sha256-xzLUBAtfCwBMpIqlUf8oSh3VqUy/SRgdEWsAw6CIbos=";
   };
 
-  cargoHash = "sha256-BN425+tKgIvx+RvIedRCPig3kpbHrxrFdQe99voNkVc=";
+  cargoHash = "sha256-gM32fmhMYaNu6rvvSTYTguDmLuY6oDUdVKclZlKttsQ=";
 
   # Some tests fail because they need network access to install the `wasm32-unknown-unknown` target.
   # However, GitHub Actions ensures a proper build.
diff --git a/pkgs/by-name/wl/wlx-overlay-s/Cargo.lock b/pkgs/by-name/wl/wlx-overlay-s/Cargo.lock
new file mode 100644
index 0000000000000..d7a620223f382
--- /dev/null
+++ b/pkgs/by-name/wl/wlx-overlay-s/Cargo.lock
@@ -0,0 +1,3869 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alsa"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37fe60779335388a88c01ac6c3be40304d1e349de3ada3b15f7808bb90fa9dce"
+dependencies = [
+ "alsa-sys",
+ "bitflags 2.4.2",
+ "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-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 = "annotate-snippets"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e"
+dependencies = [
+ "unicode-width",
+ "yansi-term",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+
+[[package]]
+name = "approx"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "aquamarine"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a941c39708478e8eea39243b5983f1c42d2717b3620ee91f4a52115fd02ac43f"
+dependencies = [
+ "itertools 0.9.0",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ash"
+version = "0.37.3+1.3.251"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a"
+dependencies = [
+ "libloading 0.7.4",
+]
+
+[[package]]
+name = "ashpd"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093"
+dependencies = [
+ "async-fs",
+ "async-net",
+ "enumflags2",
+ "futures-channel",
+ "futures-util",
+ "rand",
+ "serde",
+ "serde_repr",
+ "url",
+ "zbus",
+]
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
+dependencies = [
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+dependencies = [
+ "async-lock 3.3.0",
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-fs"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc19683171f287921f2405677dd2ed2549c3b3bda697a563ebc3a121ace2aba1"
+dependencies = [
+ "async-lock 3.3.0",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
+dependencies = [
+ "async-lock 3.3.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite",
+ "parking",
+ "polling",
+ "rustix",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-net"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7"
+dependencies = [
+ "async-io",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "451e3cf68011bd56771c79db04a9e333095ab6349f7e47592b788e9b98720cc8"
+dependencies = [
+ "async-channel",
+ "async-io",
+ "async-lock 3.3.0",
+ "async-signal",
+ "blocking",
+ "cfg-if",
+ "event-listener 5.2.0",
+ "futures-lite",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+
+[[package]]
+name = "async-trait"
+version = "0.1.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "autocxx"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ba64dd33efd8f09724143d45ab91b48aebcee52f4fb11add3464c998fab47dc"
+dependencies = [
+ "aquamarine",
+ "autocxx-macro",
+ "cxx",
+ "moveit",
+]
+
+[[package]]
+name = "autocxx-bindgen"
+version = "0.65.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c9fb7b8dd83a582e12157367773d8d1195f2dea54d4250aaf3426abae3237aa"
+dependencies = [
+ "bitflags 1.3.2",
+ "cexpr",
+ "clang-sys",
+ "itertools 0.10.5",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.53",
+ "which",
+]
+
+[[package]]
+name = "autocxx-build"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955e602d2d68b79ca5d674984259234fad2c8d869ad99011699e0a3cd76f38cd"
+dependencies = [
+ "autocxx-engine",
+ "env_logger",
+ "indexmap 1.9.3",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "autocxx-engine"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5918896fc1d44a647345fd5e8c74208424e394a76bdd2942398f4aff81ec7ab1"
+dependencies = [
+ "aquamarine",
+ "autocxx-bindgen",
+ "autocxx-parser",
+ "cc",
+ "cxx-gen",
+ "indexmap 1.9.3",
+ "indoc",
+ "itertools 0.10.5",
+ "log",
+ "miette",
+ "once_cell",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustversion",
+ "serde_json",
+ "strum_macros 0.24.3",
+ "syn 2.0.53",
+ "tempfile",
+ "thiserror",
+ "version_check",
+]
+
+[[package]]
+name = "autocxx-macro"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e594e68d030b6eb1ce7e2b40958f4f4ae7150c588c76d76b9f8178d41c47d80"
+dependencies = [
+ "autocxx-parser",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "autocxx-parser"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ef00b2fc378804c31c4fbd693a7fea93f8a90467dce331dae1e4ce41e542953"
+dependencies = [
+ "indexmap 1.9.3",
+ "itertools 0.10.5",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_json",
+ "syn 2.0.53",
+ "thiserror",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.69.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
+dependencies = [
+ "annotate-snippets",
+ "bitflags 2.4.2",
+ "cexpr",
+ "clang-sys",
+ "itertools 0.12.1",
+ "lazy_static",
+ "lazycell",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[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.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+dependencies = [
+ "async-channel",
+ "async-lock 3.3.0",
+ "async-task",
+ "fastrand",
+ "futures-io",
+ "futures-lite",
+ "piper",
+ "tracing",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+
+[[package]]
+name = "bytemuck"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "calloop"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
+dependencies = [
+ "bitflags 2.4.2",
+ "log",
+ "polling",
+ "rustix",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop",
+ "rustix",
+ "wayland-backend",
+ "wayland-client",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+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-expr"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chrono"
+version = "0.4.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "wasm-bindgen",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "chrono-tz"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e"
+dependencies = [
+ "chrono",
+ "chrono-tz-build",
+ "phf",
+]
+
+[[package]]
+name = "chrono-tz-build"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
+dependencies = [
+ "parse-zoneinfo",
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "clang-sys"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading 0.8.3",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "cmake"
+version = "0.1.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "const-cstr"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "cookie-factory"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "libc",
+]
+
+[[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 = "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 0.21.1",
+ "js-sys",
+ "libc",
+ "mach2",
+ "ndk",
+ "ndk-context",
+ "oboe",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[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 = "cstr"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8aa998c33a6d3271e3678950a22134cd7dd27cef86dee1b611b5b14207d1d90b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "ctrlc"
+version = "3.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
+dependencies = [
+ "nix 0.28.0",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
+name = "cxx"
+version = "1.0.119"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "635179be18797d7e10edb9cd06c859580237750c7351f39ed9b298bfc17544ad"
+dependencies = [
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
+]
+
+[[package]]
+name = "cxx-gen"
+version = "0.7.119"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5797d553b95704a6a49394acfdb93e2332b8aaa146713a1e8ebe362e86d9fa68"
+dependencies = [
+ "codespan-reporting",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "cxxbridge-flags"
+version = "1.0.119"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a87ff7342ffaa54b7c61618e0ce2bbcf827eba6d55b923b83d82551acbbecfe5"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.119"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70b5b86cf65fa0626d85720619d80b288013477a91a0389fa8bc716bf4903ad1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "dasp_sample"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
+
+[[package]]
+name = "dbus"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b"
+dependencies = [
+ "libc",
+ "libdbus-sys",
+ "winapi",
+]
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case 0.4.0",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+]
+
+[[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 = "dlib"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
+dependencies = [
+ "libloading 0.8.3",
+]
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
+[[package]]
+name = "drm-fourcc"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "endi"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
+name = "enumflags2"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "enumset"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "226c0da7462c13fb57e5cc9e0dc8f0635e7d27f276a3a7fd30054647f669007d"
+dependencies = [
+ "enumset_derive",
+]
+
+[[package]]
+name = "enumset_derive"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[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.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+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 = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.2.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flexi_logger"
+version = "0.27.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469e584c031833564840fb0cdbce99bdfe946fd45480a188545e73a76f45461c"
+dependencies = [
+ "chrono",
+ "glob",
+ "is-terminal",
+ "lazy_static",
+ "log",
+ "nu-ansi-term",
+ "regex",
+ "thiserror",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "fontconfig-rs"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb4baadad5111c6820e97fc8bde5077258e6f272b5b38538db4b42e1812f29f3"
+dependencies = [
+ "const-cstr",
+ "once_cell",
+ "thiserror",
+ "yeslogic-fontconfig-sys",
+]
+
+[[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 = "freetype-rs"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59c337e64822dd56a3a83ed75a662a470736bdb3a9fabfb588dff276b94a4e0"
+dependencies = [
+ "bitflags 1.3.2",
+ "freetype-sys",
+ "libc",
+]
+
+[[package]]
+name = "freetype-sys"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "643148ca6cbad6bec384b52fbe1968547d578c4efe83109e035c43a71734ff88"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[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.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+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.53",
+]
+
+[[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-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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "glam"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
+dependencies = [
+ "approx",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "half"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+dependencies = [
+ "bytemuck",
+ "cfg-if",
+ "crunchy",
+]
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[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.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[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 = "hound"
+version = "3.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core 0.52.0",
+]
+
+[[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 = "idmap"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dba885f996064df334b1639785897d1c58c0646750101b839b8359664cb26c0e"
+dependencies = [
+ "fixedbitset",
+]
+
+[[package]]
+name = "idmap-derive"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3f44aa1b60e7de7e2833ad2cc3bc79880171d1e1efdb44ca833a1acf8102870"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[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",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+]
+
+[[package]]
+name = "indoc"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+
+[[package]]
+name = "input-linux"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f403224ea808abe6182696e3a36d9875c0e942ba7c99239f9ef545b96e35606"
+dependencies = [
+ "input-linux-sys",
+ "nix 0.26.4",
+]
+
+[[package]]
+name = "input-linux-sys"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a687a25a4973027df9153753a5589f97fe1e958f694a34eea5606ae65299ab8"
+dependencies = [
+ "libc",
+ "nix 0.26.4",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+dependencies = [
+ "hermit-abi 0.3.9",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+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.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "jni"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec"
+dependencies = [
+ "cesu8",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "jni"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
+dependencies = [
+ "cesu8",
+ "cfg-if",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "jobserver"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "json"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libdbus-sys"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72"
+dependencies = [
+ "pkg-config",
+]
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
+dependencies = [
+ "cfg-if",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "libspa"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65f3a4b81b2a2d8c7f300643676202debd1b7c929dbf5c9bb89402ea11d19810"
+dependencies = [
+ "bitflags 2.4.2",
+ "cc",
+ "convert_case 0.6.0",
+ "cookie-factory",
+ "libc",
+ "libspa-sys",
+ "nix 0.27.1",
+ "nom",
+ "system-deps",
+]
+
+[[package]]
+name = "libspa-sys"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf0d9716420364790e85cbb9d3ac2c950bde16a7dd36f3209b7dfdfc4a24d01f"
+dependencies = [
+ "bindgen",
+ "cc",
+ "system-deps",
+]
+
+[[package]]
+name = "link-cplusplus"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[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"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[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"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miette"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e"
+dependencies = [
+ "miette-derive",
+ "once_cell",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "miette-derive"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "moveit"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87d7335204cb6ef7bd647fa6db0be3e4d7aa25b5823a7aa030027ddf512cefba"
+dependencies = [
+ "cxx",
+]
+
+[[package]]
+name = "ndk"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
+dependencies = [
+ "bitflags 2.4.2",
+ "jni-sys",
+ "log",
+ "ndk-sys",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-sys"
+version = "0.5.0+25.2.9519653"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+ "pin-utils",
+]
+
+[[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.9.0",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "normpath"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04aaf5e9cb0fbf883cc0423159eacdf96a9878022084b35c462c428cab73bcaf"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.49.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[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.53",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
+dependencies = [
+ "proc-macro-crate 2.0.2",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "oboe"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb"
+dependencies = [
+ "jni 0.21.1",
+ "ndk",
+ "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 = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "openxr"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7d5c194407c4fb5d3bf08c34ae57f3ea6cc9d9cfbe0594ce066896c809d9215"
+dependencies = [
+ "libc",
+ "libloading 0.7.4",
+ "ndk-context",
+ "openxr-sys",
+]
+
+[[package]]
+name = "openxr-sys"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa8f022053ecd7989d86f867b4fb8c3520347612b9d637e217077a0d6b4a6634"
+dependencies = [
+ "jni 0.19.0",
+ "libc",
+]
+
+[[package]]
+name = "ordered-stream"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "ovr_overlay"
+version = "0.0.0"
+source = "git+https://github.com/galister/ovr_overlay_oyasumi#61e0e77770212d64a76775a8c76637d1ca935942"
+dependencies = [
+ "byteorder",
+ "derive_more",
+ "enumset",
+ "lazy_static",
+ "log",
+ "ovr_overlay_sys",
+ "slice-of-array",
+ "thiserror",
+]
+
+[[package]]
+name = "ovr_overlay_sys"
+version = "0.0.0"
+source = "git+https://github.com/galister/ovr_overlay_oyasumi#61e0e77770212d64a76775a8c76637d1ca935942"
+dependencies = [
+ "autocxx",
+ "autocxx-build",
+ "cxx",
+ "normpath",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "parse-zoneinfo"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand",
+ "futures-io",
+]
+
+[[package]]
+name = "pipewire"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08e645ba5c45109106d56610b3ee60eb13a6f2beb8b74f8dc8186cf261788dda"
+dependencies = [
+ "anyhow",
+ "bitflags 2.4.2",
+ "libc",
+ "libspa",
+ "libspa-sys",
+ "nix 0.27.1",
+ "once_cell",
+ "pipewire-sys",
+ "thiserror",
+]
+
+[[package]]
+name = "pipewire-sys"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "849e188f90b1dda88fe2bfe1ad31fe5f158af2c98f80fb5d13726c44f3f01112"
+dependencies = [
+ "bindgen",
+ "libspa-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "polling"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "prettyplease"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
+dependencies = [
+ "toml_datetime",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+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 = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "rodio"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611"
+dependencies = [
+ "cpal",
+ "hound",
+]
+
+[[package]]
+name = "rosc"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2e63d9e6b0d090be1485cf159b1e04c3973d2d3e1614963544ea2ff47a4a981"
+dependencies = [
+ "byteorder",
+ "nom",
+]
+
+[[package]]
+name = "roxmltree"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b"
+dependencies = [
+ "xmlparser",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "rxscreen"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afbab13f83503a8272b7150d487494992cf6c59c299dcaf5d8ffac75bad9fc96"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[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 = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+
+[[package]]
+name = "serde"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
+dependencies = [
+ "indexmap 2.2.5",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[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 = "shaderc"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27e07913ada18607bb60d12431cbe3358d3bbebbe95948e1618851dc01e63b7b"
+dependencies = [
+ "libc",
+ "shaderc-sys",
+]
+
+[[package]]
+name = "shaderc-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73120d240fe22196300f39ca8547ca2d014960f27b19b47b21288b396272f7f7"
+dependencies = [
+ "cmake",
+ "libc",
+ "roxmltree",
+]
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[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 = "slice-of-array"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4f120bb98cb4cb0dab21c882968c3cbff79dd23b46f07b1cf5c25044945ce84"
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
+dependencies = [
+ "bitflags 2.4.2",
+ "bytemuck",
+ "calloop",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
+ "log",
+ "memmap2 0.9.4",
+ "pkg-config",
+ "rustix",
+ "thiserror",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-csd-frame",
+ "wayland-cursor",
+ "wayland-protocols",
+ "wayland-protocols-wlr",
+ "wayland-scanner",
+ "xkbcommon",
+ "xkeysym",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "strum"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+dependencies = [
+ "strum_macros 0.25.3",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.53",
+]
+
+[[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.53"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8e9199467bcbc77c6a13cc6e32a6af21721ab8c96aa0261856c4fda5a4433f0"
+dependencies = [
+ "cfg-expr",
+ "heck 0.4.1",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[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 = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.2.5",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap 2.2.5",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "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.53",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "uds_windows"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+dependencies = [
+ "memoffset 0.9.0",
+ "tempfile",
+ "winapi",
+]
+
+[[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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "vk-parse"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81086c28be67a8759cd80cbb3c8f7b520e0874605fc5eb74d5a1c9c2d1878e79"
+dependencies = [
+ "xml-rs",
+]
+
+[[package]]
+name = "vulkano"
+version = "0.34.0"
+source = "git+https://github.com/vulkano-rs/vulkano?rev=94f50f1#94f50f18bd25971ea123adb8b5782ad65a8f085c"
+dependencies = [
+ "ahash",
+ "ash",
+ "bytemuck",
+ "core-graphics-types",
+ "crossbeam-queue",
+ "half",
+ "heck 0.4.1",
+ "indexmap 2.2.5",
+ "libloading 0.8.3",
+ "objc",
+ "once_cell",
+ "parking_lot",
+ "proc-macro2",
+ "quote",
+ "raw-window-handle",
+ "regex",
+ "serde",
+ "serde_json",
+ "smallvec",
+ "thread_local",
+ "vk-parse",
+ "vulkano-macros",
+]
+
+[[package]]
+name = "vulkano-macros"
+version = "0.34.0"
+source = "git+https://github.com/vulkano-rs/vulkano?rev=94f50f1#94f50f18bd25971ea123adb8b5782ad65a8f085c"
+dependencies = [
+ "proc-macro-crate 2.0.2",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "vulkano-shaders"
+version = "0.34.0"
+source = "git+https://github.com/vulkano-rs/vulkano?rev=94f50f1#94f50f18bd25971ea123adb8b5782ad65a8f085c"
+dependencies = [
+ "ahash",
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "shaderc",
+ "syn 2.0.53",
+ "vulkano",
+]
+
+[[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 = "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.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wayland-backend"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
+dependencies = [
+ "cc",
+ "downcast-rs",
+ "rustix",
+ "scoped-tls",
+ "smallvec",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "rustix",
+ "wayland-backend",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-csd-frame"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
+dependencies = [
+ "bitflags 2.4.2",
+ "cursor-icon",
+ "wayland-backend",
+]
+
+[[package]]
+name = "wayland-cursor"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
+dependencies = [
+ "rustix",
+ "wayland-client",
+ "xcursor",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
+dependencies = [
+ "proc-macro2",
+ "quick-xml 0.31.0",
+ "quote",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
+dependencies = [
+ "dlib",
+ "log",
+ "pkg-config",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "which"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
+dependencies = [
+ "windows-core 0.54.0",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[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.4",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[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.4",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "wlx-capture"
+version = "0.3.1"
+source = "git+https://github.com/galister/wlx-capture?tag=v0.3.1#f9c9c98e0752bfbdaa2af69b59376c697c223915"
+dependencies = [
+ "ashpd",
+ "drm-fourcc",
+ "idmap",
+ "libc",
+ "log",
+ "once_cell",
+ "pipewire",
+ "rxscreen",
+ "smithay-client-toolkit",
+ "wayland-client",
+ "wayland-protocols",
+ "xcb",
+]
+
+[[package]]
+name = "wlx-overlay-s"
+version = "0.3.2"
+dependencies = [
+ "anyhow",
+ "ash",
+ "chrono",
+ "chrono-tz",
+ "clap",
+ "cstr",
+ "ctrlc",
+ "dbus",
+ "flexi_logger",
+ "fontconfig-rs",
+ "freetype-rs",
+ "futures",
+ "glam",
+ "idmap",
+ "idmap-derive",
+ "input-linux",
+ "json",
+ "libc",
+ "log",
+ "once_cell",
+ "openxr",
+ "ovr_overlay",
+ "regex",
+ "rodio",
+ "rosc",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "smallvec",
+ "strum",
+ "thiserror",
+ "vulkano",
+ "vulkano-shaders",
+ "wlx-capture",
+ "xdg",
+]
+
+[[package]]
+name = "xcb"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d27b37e69b8c05bfadcd968eb1a4fe27c9c52565b727f88512f43b89567e262"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "quick-xml 0.30.0",
+]
+
+[[package]]
+name = "xcursor"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911"
+
+[[package]]
+name = "xdg"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
+
+[[package]]
+name = "xdg-home"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "xkbcommon"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
+dependencies = [
+ "libc",
+ "memmap2 0.8.0",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+
+[[package]]
+name = "xmlparser"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
+
+[[package]]
+name = "yansi-term"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "yeslogic-fontconfig-sys"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386"
+dependencies = [
+ "const-cstr",
+ "dlib",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "zbus"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-fs",
+ "async-io",
+ "async-lock 3.3.0",
+ "async-process",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "blocking",
+ "derivative",
+ "enumflags2",
+ "event-listener 5.2.0",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+ "nix 0.27.1",
+ "ordered-stream",
+ "rand",
+ "serde",
+ "serde_repr",
+ "sha1",
+ "static_assertions",
+ "tracing",
+ "uds_windows",
+ "windows-sys 0.52.0",
+ "xdg-home",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 1.0.109",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zbus_names"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "zvariant",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "zvariant"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65"
+dependencies = [
+ "endi",
+ "enumflags2",
+ "serde",
+ "static_assertions",
+ "url",
+ "zvariant_derive",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
diff --git a/pkgs/by-name/wl/wlx-overlay-s/package.nix b/pkgs/by-name/wl/wlx-overlay-s/package.nix
new file mode 100644
index 0000000000000..698404a514f5f
--- /dev/null
+++ b/pkgs/by-name/wl/wlx-overlay-s/package.nix
@@ -0,0 +1,83 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, alsa-lib
+, dbus
+, fontconfig
+, libxkbcommon
+, makeWrapper
+, openvr
+, openxr-loader
+, pipewire
+, pkg-config
+, pulseaudio
+, shaderc
+, wayland
+, xorg
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wlx-overlay-s";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "galister";
+    repo = "wlx-overlay-s";
+    rev = "v${version}";
+    hash = "sha256-5uvdLBUnc8ba6b/dJNWsuqjnbbidaCcqgvSafFEXaMU=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "ovr_overlay-0.0.0" = "sha256-b2sGzBOB2aNNJ0dsDBjgV2jH3ROO/Cdu8AIHPSXMCPg=";
+      "vulkano-0.34.0" = "sha256-0ZIxU2oItT35IFnS0YTVNmM775x21gXOvaahg/B9sj8=";
+      "wlx-capture-0.3.1" = "sha256-kK3OQMdIqCLZlgZuevNtfMDmpR8J2DFFD8jRHHWAvSA=";
+    };
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    pkg-config
+    rustPlatform.bindgenHook
+  ];
+
+  buildInputs = [
+    alsa-lib
+    dbus
+    fontconfig
+    libxkbcommon
+    openvr
+    openxr-loader
+    pipewire
+    xorg.libX11
+    xorg.libXext
+    xorg.libXrandr
+  ];
+
+  env.SHADERC_LIB_DIR = "${lib.getLib shaderc}/lib";
+
+  postPatch = ''
+    substituteAllInPlace src/res/watch.yaml \
+      --replace '"pactl"' '"${lib.getExe' pulseaudio "pactl"}"'
+
+    # TODO: src/res/keyboard.yaml references 'whisper_stt'
+  '';
+
+  postInstall = ''
+    patchelf $out/bin/wlx-overlay-s \
+      --add-needed ${lib.getLib wayland}/lib/libwayland-client.so.0 \
+      --add-needed ${lib.getLib libxkbcommon}/lib/libxkbcommon.so.0
+  '';
+
+  meta = with lib; {
+    description = "Wayland/X11 desktop overlay for SteamVR and OpenXR, Vulkan edition";
+    homepage = "https://github.com/galister/wlx-overlay-s";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ Scrumplex ];
+    platforms = platforms.linux;
+    broken = stdenv.isAarch64;
+    mainProgram = "wlx-overlay-s";
+  };
+}
diff --git a/pkgs/by-name/wo/workout-tracker/package.nix b/pkgs/by-name/wo/workout-tracker/package.nix
new file mode 100644
index 0000000000000..43738d4358b2a
--- /dev/null
+++ b/pkgs/by-name/wo/workout-tracker/package.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  nix-update-script,
+  ...
+}:
+
+buildGoModule rec {
+  pname = "workout-tracker";
+  version = "0.10.5";
+
+  src = fetchFromGitHub {
+    owner = "jovandeginste";
+    repo = "workout-tracker";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ekGaNHysY0lXbB5w6AycnLR9/4dqUp0busCcPPvzSVI=";
+  };
+
+  vendorHash = null;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    changelog = "https://github.com/jovandeginste/workout-tracker/releases/tag/v${version}";
+    description = "A workout tracking web application for personal use";
+    homepage = "https://github.com/jovandeginste/workout-tracker";
+    license = lib.licenses.mit;
+    mainProgram = "workout-tracker";
+    maintainers = with lib.maintainers; [ bhankas ];
+  };
+}
diff --git a/pkgs/by-name/wo/world-serpant-search/package.nix b/pkgs/by-name/wo/world-serpant-search/package.nix
new file mode 100644
index 0000000000000..a1aedf9cb724d
--- /dev/null
+++ b/pkgs/by-name/wo/world-serpant-search/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "world-serpant-search";
+  version = "1.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Latrodect";
+    repo = "wss-repo-vulnerability-search-manager";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jXTivaXHHt63u9N7w40jyLUU2kg5LxAn50PVpqwUc0M=";
+  };
+
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = with python3.pkgs; [
+    alive-progress
+    colorlog
+    requests
+    termcolor
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command-line tool for vulnerability detection";
+    homepage = "https://github.com/Latrodect/wss-repo-vulnerability-search-manager";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab];
+    mainProgram = "serpant";
+  };
+}
diff --git a/pkgs/by-name/ws/wslay/package.nix b/pkgs/by-name/ws/wslay/package.nix
index ed6c0c9b67354..294a98f9d6a08 100644
--- a/pkgs/by-name/ws/wslay/package.nix
+++ b/pkgs/by-name/ws/wslay/package.nix
@@ -1,4 +1,13 @@
-{ stdenv, lib, fetchFromGitHub, cmake, cunit }:
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  pkg-config,
+  cunit,
+  sphinx,
+  autoreconfHook,
+  nettle,
+}:
 
 stdenv.mkDerivation rec {
   pname = "wslay";
@@ -11,18 +20,29 @@ stdenv.mkDerivation rec {
     hash = "sha256-xKQGZO5hNzMg+JYKeqOBsu73YO+ucBEOcNhG8iSNYvA=";
   };
 
-  strictDeps = true;
+  postPatch = ''
+    substituteInPlace doc/sphinx/conf.py.in \
+      --replace-fail "add_stylesheet" "add_css_file"
+  '';
 
-  nativeBuildInputs = [ cmake ];
+  strictDeps = true;
 
-  cmakeFlags = [
-    (lib.cmakeBool "WSLAY_TESTS" true)
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    sphinx
   ];
 
+  buildInputs = [ nettle ];
+
   doCheck = true;
 
   checkInputs = [ cunit ];
 
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    export DYLD_LIBRARY_PATH=$(pwd)/lib/.libs
+  '';
+
   meta = with lib; {
     homepage = "https://tatsuhiro-t.github.io/wslay/";
     description = "The WebSocket library in C";
diff --git a/pkgs/by-name/ws/wsrepl/package.nix b/pkgs/by-name/ws/wsrepl/package.nix
new file mode 100644
index 0000000000000..9bab0957d5b3a
--- /dev/null
+++ b/pkgs/by-name/ws/wsrepl/package.nix
@@ -0,0 +1,53 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "wsrepl";
+  version = "0.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "doyensec";
+    repo = "wsrepl";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Y96p39TjpErGsR5vFS0NxEF/2Tnr2Zk7ULDgNXaXx9o=";
+  };
+
+  pythonRelaxDeps = [
+    "textual"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
+  ];
+
+  build-system = with python3.pkgs; [
+    poetry-core
+  ];
+
+  dependencies = with python3.pkgs; [
+    pygments
+    pyperclip
+    rich
+    textual
+    websocket-client
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "wsrepl"
+  ];
+
+  meta = with lib; {
+    description = "WebSocket REPL";
+    homepage = "https://github.com/doyensec/wsrepl";
+    changelog = "https://github.com/doyensec/wsrepl/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "wsrepl";
+  };
+}
diff --git a/pkgs/by-name/wy/wyoming-satellite/package.nix b/pkgs/by-name/wy/wyoming-satellite/package.nix
new file mode 100644
index 0000000000000..45c0ff03eeb1f
--- /dev/null
+++ b/pkgs/by-name/wy/wyoming-satellite/package.nix
@@ -0,0 +1,60 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "wyoming-satellite";
+  version = "1.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rhasspy";
+    repo = "wyoming-satellite";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-KIWhWE9Qaxs72fJ1LRTkvk6QtpBJOFlmZv2od69O15g=";
+  };
+
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "zeroconf"
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pyring-buffer
+    wyoming
+    zeroconf
+  ];
+
+  passthru.optional-dependencies = {
+    silerovad = with python3Packages; [
+      pysilero-vad
+    ];
+    webrtc = with python3Packages; [
+      webrtc-noise-gain
+    ];
+  };
+
+  pythonImportsCheck = [
+    "wyoming_satellite"
+  ];
+
+  nativeCheckInputs = with python3Packages; [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+
+  meta = with lib; {
+    description = "Remote voice satellite using Wyoming protocol";
+    homepage = "https://github.com/rhasspy/wyoming-satellite";
+    changelog = "https://github.com/rhasspy/wyoming-satellite/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+    mainProgram = "wyoming-satellite";
+  };
+}
diff --git a/pkgs/by-name/x1/x16/package.nix b/pkgs/by-name/x1/x16/package.nix
index 6a144bea669d8..c6e0183a196bf 100644
--- a/pkgs/by-name/x1/x16/package.nix
+++ b/pkgs/by-name/x1/x16/package.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "x16-emulator";
-  version = "46";
+  version = "47";
 
   src = fetchFromGitHub {
     owner = "X16Community";
     repo = "x16-emulator";
     rev = "r${finalAttrs.version}";
-    hash = "sha256-cYr6s69eua1hCFqNkcomZDK9akxBqMTIaGqOl/YX2kc=";
+    hash = "sha256-v7INa0Xpq7WlrSqc6VNBwLQPUoloqsGbv5rd/VTQtUg=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/x1/x16/rom.nix b/pkgs/by-name/x1/x16/rom.nix
index 7d17bb8272ce4..e44884436f88e 100644
--- a/pkgs/by-name/x1/x16/rom.nix
+++ b/pkgs/by-name/x1/x16/rom.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "x16-rom";
-  version = "46";
+  version = "47";
 
   src = fetchFromGitHub {
     owner = "X16Community";
     repo = "x16-rom";
     rev = "r${finalAttrs.version}";
-    hash = "sha256-PcLHIT84NbH+ejq8SY/UN+TYtRFWtqQBHwHqToFUol8=";
+    hash = "sha256-+NvuCW8CIj5cnrGh+VQOExhAeXMElqdl9DVJjjGhNPk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/xr/xr-hardware/package.nix b/pkgs/by-name/xr/xr-hardware/package.nix
index b2359c2673df8..0f9b9360d3c0d 100644
--- a/pkgs/by-name/xr/xr-hardware/package.nix
+++ b/pkgs/by-name/xr/xr-hardware/package.nix
@@ -1,22 +1,28 @@
-{
-  lib,
-  stdenvNoCC,
-  fetchFromGitLab
-}: stdenvNoCC.mkDerivation {
+{ lib
+, stdenvNoCC
+, fetchFromGitLab
+, nix-update-script
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "xr-hardware";
-  version = "unstable-2023-11-08";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "monado/utilities";
     repo = "xr-hardware";
-    rev = "9204de323210d2a5ab8635c2ee52127100de67b1";
-    hash = "sha256-ZS15WODms/WKsPu+WbfILO2BOwnxrhCY/SoF8jzOX5Q=";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-w35/LoozCJz0ytHEHWsEdCaYYwyGU6sE13iMckVdOzY=";
   };
 
+  dontConfigure = true;
+  dontBuild = true;
+
   installTargets = "install_package";
   installFlagsArray = "DESTDIR=${placeholder "out"}";
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "Hardware description for XR devices";
     homepage = "https://gitlab.freedesktop.org/monado/utilities/xr-hardware";
@@ -24,4 +30,4 @@
     maintainers = with maintainers; [ Scrumplex ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/audio/yesplaymusic/default.nix b/pkgs/by-name/ye/yesplaymusic/package.nix
index a7f81dcf4c40b..c5292401fa833 100644
--- a/pkgs/applications/audio/yesplaymusic/default.nix
+++ b/pkgs/by-name/ye/yesplaymusic/package.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchurl
-, undmg
+, _7zz
 , dpkg
 , autoPatchelfHook
 , wrapGAppsHook
@@ -23,24 +23,26 @@
 }:
 let
   pname = "yesplaymusic";
-  version = "0.4.7";
+  version = "0.4.8-2";
 
-  srcs = {
+  srcs = let
+    version' = lib.head (lib.splitString "-" version);
+  in {
     x86_64-linux = fetchurl {
-      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version}_amd64.deb";
-      hash = "sha256-nnnHE2OgIqoz3dC+G0219FVBhvnWivLW1BX6+NYo6Ng=";
+      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version'}_amd64.deb";
+      hash = "sha256-iTWi+tZGUQU7J1mcmMdlWXSKpYGy4mMAeq9CN9fhnZ8=";
     };
     aarch64-linux = fetchurl {
-      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version}_arm64.deb";
-      hash = "sha256-+rrhY5iDDt/nYs0Vz5/Ef0sgpsdBKMtb1aVfCZLgRgg=";
+      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version'}_arm64.deb";
+      hash = "sha256-PP0apybSORqleOBogldgIV1tYZqao8kZ474muAEDpd0";
     };
     x86_64-darwin = fetchurl {
-      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version}-x64.dmg";
-      hash = "sha256-z8CASZRWKlj1g3mhxTMMeR4klTvQ2ReSrL7Rt18qQbM=";
+      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version'}-x64.dmg";
+      hash = "sha256-UHnEdoXT/vArSRKXPlfDYUUUMDyF2mnDsmJEjACW2vo=";
     };
     aarch64-darwin = fetchurl {
-      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version}-arm64.dmg";
-      hash = "sha256-McYLczudKG4tRNIw/Ws4rht0n4tiKA2M99yKtJbdlY8=";
+      url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version'}-arm64.dmg";
+      hash = "sha256-FaeumNmkPQYj9Ae2Xw/eKUuezR4bEdni8li+NRU9i1k=";
     };
   };
   src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -76,13 +78,19 @@ if stdenv.isDarwin
 then stdenv.mkDerivation {
   inherit pname version src meta;
 
-  nativeBuildInputs = [ undmg ];
+  nativeBuildInputs = [ _7zz makeWrapper ];
 
   sourceRoot = ".";
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/Applications
     cp -r *.app $out/Applications
+
+    makeWrapper $out/Applications/YesPlayMusic.app/Contents/MacOS/YesPlayMusic $out/bin/yesplaymusic
+
+    runHook postInstall
   '';
 }
 else stdenv.mkDerivation {
diff --git a/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix b/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
index d80e98f832712..951d26fa9642a 100644
--- a/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
+++ b/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
@@ -2,11 +2,11 @@
 
 buildGoModule rec {
   pname = "zabbix-agent2-plugin-postgresql";
-  version = "6.0.25";
+  version = "6.4.12";
 
   src = fetchurl {
     url = "https://cdn.zabbix.com/zabbix-agent2-plugins/sources/postgresql/zabbix-agent2-plugin-postgresql-${version}.tar.gz";
-    hash = "sha256-NFohopyUFO2C1k5moM4qkXX0Q9zc8W0Z+WrvZ5lgr1I=";
+    hash = "sha256-fsWjgTUygO6P5bCJYa8i8IlJYs+KdFtKkEeEPjnd4R0=";
   };
 
   vendorHash = null;
diff --git a/pkgs/by-name/zi/zircolite/package.nix b/pkgs/by-name/zi/zircolite/package.nix
index 13583df1b912c..c6b73bb716035 100644
--- a/pkgs/by-name/zi/zircolite/package.nix
+++ b/pkgs/by-name/zi/zircolite/package.nix
@@ -6,23 +6,23 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "zircolite";
-  version = "2.10.0";
+  version = "2.20.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "wagga40";
     repo = "Zircolite";
     rev = "refs/tags/${version}";
-    hash = "sha256-r5MIoP+6CnAGsOtK4YLshLBVSZN2NVrwnkuHHDdLZrQ=";
+    hash = "sha256-a7xwF0amsh2SycOjtZpk3dylcBGG9uYd7vmbnz/f9Ug=";
   };
 
   __darwinAllowLocalNetworking = true;
 
-  nativeBuildInputs = [
+  build-system = [
     makeWrapper
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     aiohttp
     colorama
     elastic-transport
diff --git a/pkgs/data/fonts/google-fonts/default.nix b/pkgs/data/fonts/google-fonts/default.nix
index d0f055166805e..bb3fc3ab0c1db 100644
--- a/pkgs/data/fonts/google-fonts/default.nix
+++ b/pkgs/data/fonts/google-fonts/default.nix
@@ -40,12 +40,10 @@ stdenvNoCC.mkDerivation {
 
   dontBuild = true;
 
-  # The font files are in the fonts directory and use two naming schemes:
-  # FamilyName-StyleName.ttf and FamilyName[param1,param2,...].ttf
-  # This installs all fonts if fonts is empty and otherwise only
-  # the specified fonts by FamilyName. To do this, it invokes
-  # `find` 2 times for every font, anyone is free to do this
-  # in a more efficient way.
+  # The font files are in the fonts directory and use three naming schemes:
+  # FamilyName-StyleName.ttf, FamilyName[param1,param2,...].ttf, and
+  # FamilyName.ttf. This installs all fonts if fonts is empty and otherwise
+  # only the specified fonts by FamilyName.
   fonts = map (font: builtins.replaceStrings [" "] [""] font) fonts;
   installPhase = ''
     adobeBlankDest=$adobeBlank/share/fonts/truetype
@@ -56,8 +54,7 @@ stdenvNoCC.mkDerivation {
     find . -name '*.ttf' -exec install -m 444 -Dt $dest '{}' +
   '' else ''
     for font in $fonts; do
-      find . -name "$font-*.ttf" -exec install -m 444 -Dt $dest '{}' +
-      find . -name "$font[*.ttf" -exec install -m 444 -Dt $dest '{}' +
+      find . \( -name "$font-*.ttf" -o -name "$font[*.ttf" -o -name "$font.ttf" \) -exec install -m 444 -Dt $dest '{}' +
     done
   '');
 
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index e0fb9bcabcc22..12c5a6d8656d6 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -17,7 +17,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "${name}-bin";
-  version = "29.0.2";
+  version = "29.0.5";
 
   src = fetchurl {
     url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";
diff --git a/pkgs/data/fonts/iosevka/variants.nix b/pkgs/data/fonts/iosevka/variants.nix
index 8a5127b3fd332..ae263adf2d05f 100644
--- a/pkgs/data/fonts/iosevka/variants.nix
+++ b/pkgs/data/fonts/iosevka/variants.nix
@@ -1,93 +1,93 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  Iosevka = "1yw8dj5fs6acs0vcm5jdglgqqpx82nfwwhr8kzlcjvrjiyn0dg3q";
-  IosevkaAile = "1jl6v43r9kh5a3frplr8l133d9abipxm7fpzfwnf8d9l2pm1ipmn";
-  IosevkaCurly = "1f9v8y3hpn4ldr2qixzx5amzx37xiwhi7lpmf1lsf3z7fdack1jm";
-  IosevkaCurlySlab = "1viaiydv9if9q7d86y8c74xd724dgcfy471xxr6khhlfj2akfaki";
-  IosevkaEtoile = "17i072i6fjqpf9bkb8gsdjhxcm9nlg8zyprm1rs9qcwvvd2cjjxv";
-  IosevkaSlab = "18b9w8nx26vq5c2izdg1vgiihjldwc58vyrxwvmkf854h7k2rbnh";
-  IosevkaSS01 = "0dzs6lipc91ywnrxiyxb5vyg4srqlnvr3nfcgilxws9c3dl1ny39";
-  IosevkaSS02 = "15f5n44zq5x5yv9kdr76gp1nsiwkqjibni7i9zbvzxwmr2x8bsai";
-  IosevkaSS03 = "06c1kv6k08zxcl1ykyhypqc59xsc6fmp2s4mcwb9yj4l67dx5ly7";
-  IosevkaSS04 = "1d2bsfwl9idxzy721r3qbslz2cdl5mdbsnsv34p1blwwxq98bksn";
-  IosevkaSS05 = "1v8mbs5ig46hl4g3d19hbg7nza95vryr4lyfd23d0slp811rf9sv";
-  IosevkaSS06 = "1yffycdr8p66cjkh77j9k2vbnwmj1j0c37k92ryahflwjzcq42ma";
-  IosevkaSS07 = "0xgpsi1nn8s01mg91jq3i4dvq9l0xwr7ynq6jm200x5qqmaaf62h";
-  IosevkaSS08 = "1lxrmf0mz8id65gxib7ca895a2fn93aagmks309lbllxhw1pmqqf";
-  IosevkaSS09 = "16x9b2mh6ka67rjm6q4slkzn3g3sca9ash5vqwnmwvab554gh8qp";
-  IosevkaSS10 = "1797wikyqj2gy13isws0qivsgn0qw16ffijn945nmp8cwpm0lq8x";
-  IosevkaSS11 = "162fg9mf651sm3br7sl0h97rfd9zyb0x0pqx9nnjdx8d9k36yqiw";
-  IosevkaSS12 = "0pqrwh6332yja8gp9fhc4rn6a32slzwn9rlqcgvs725a16n3yw5g";
-  IosevkaSS13 = "1w75sicj7h6b3yxf98ycjifjkg138ip3f8l9l38syp96ggwwz2dl";
-  IosevkaSS14 = "0p0ix1zfrzpy95mz21lif88i81p9zy155735yycp633ii9lvgwa2";
-  IosevkaSS15 = "1qazyvfwligaldx711mhnj9iaf9qx14m1d7v0jxc2q92f891z51z";
-  IosevkaSS16 = "0ph5c5cn8ibm5jig7hvnhdy7jsvb8nvwi977d7v1618xbyhjgcwp";
-  IosevkaSS17 = "154mfqfnpi8qhf37g73y8716h4lz52aam3gmmwq6is9ibi6z9ygp";
-  IosevkaSS18 = "1y02ymzx464xv8yb4f2pq05mm42hs9md1azwk8nvi9ad6hvd9k4n";
-  SGr-Iosevka = "11zwmbj2d9yzzylrl9jdq63z9c25z8lxpj82h6xl63a7ap099671";
-  SGr-IosevkaCurly = "1mqcb1f2sp4n1459pj045gpsgppwr6mbp4cnw0njf53n4lcxckd3";
-  SGr-IosevkaCurlySlab = "1n0bzhwhwal2hh4k1ncs9ih5j87jxsfmbhln85lh4fh1ch06605y";
-  SGr-IosevkaFixed = "07w221c4khvi59l2b7i3srdlxnn2mifn9fqm0fzh9bfp5vj2f5hi";
-  SGr-IosevkaFixedCurly = "0flnn2x52m49qqwqrplkdhgcbv8k0409ylykpy49gfyddi3i5mgi";
-  SGr-IosevkaFixedCurlySlab = "1fl22fbil4cn7lhm8lag1gbv8hya79z7djndwwl5hkk2hxirq6bl";
-  SGr-IosevkaFixedSlab = "1x631dmmmmszrwpq9prirss216cyjkcjmwqf054rca7myr2np0zs";
-  SGr-IosevkaFixedSS01 = "01ld26vrabvpamp1l9immvj46yad0v4cn6i95im75ypjqsfcj48w";
-  SGr-IosevkaFixedSS02 = "1rqmami9diid5r2zakp2c8asvvfwrnr3p2cb1zncldxk8kg8f1v7";
-  SGr-IosevkaFixedSS03 = "18ywq6py1mvwqnjgs5h2ymzl0hxi884p792mgdyc55y40hzkx0wl";
-  SGr-IosevkaFixedSS04 = "0hv6phnikfl8fi7mzxih73c4x84cvzb6kbqhg12mci5874ic9kf3";
-  SGr-IosevkaFixedSS05 = "1l9ln1bf34709wa9y45pfwb2abls3sckygfx3wxx4yhwv2a9i1v4";
-  SGr-IosevkaFixedSS06 = "00lw0i99qh0rzahd1sbnrzfla8dd774sav5fi4gyhh877k3njzq2";
-  SGr-IosevkaFixedSS07 = "11wkvplaws7miiqbcd9jjcxr5mi83i4cyhn7cynhg4qjb260zx3c";
-  SGr-IosevkaFixedSS08 = "04kqwbxxymb15qm3lzvd1i1jcbvhha8dn03fpw85cznr4287jjbx";
-  SGr-IosevkaFixedSS09 = "05x8j5zgm1kfjyfqxrljpmfnvrx5a430ksqcm0mh9hfw466z2pcl";
-  SGr-IosevkaFixedSS10 = "1z48b7hf7bawpjip5lxzfv4lddxis7xbs0ymqpsgbjpg6c5l3p8i";
-  SGr-IosevkaFixedSS11 = "1acvzpdzfqr03rs1nyfm4myww90xcfn04gvrs7641akfc6y20z0c";
-  SGr-IosevkaFixedSS12 = "0wrq0hv4xlbmkmb9bnkmck7h5w14laiiir61wpg1dma1qq0bw4nr";
-  SGr-IosevkaFixedSS13 = "10xldxsxyk7bscamhpx7lp2lw9fls5kn9fd7jpk1mb4sc3xkyivh";
-  SGr-IosevkaFixedSS14 = "0rn60sridd2kvxc45662lq9qib9zmy5rl9g1125jzwdnc6vh3zpl";
-  SGr-IosevkaFixedSS15 = "196a9z1dc71jpb1psl1j2qivmgh8id74g1cc4pf86kg00gql5pr5";
-  SGr-IosevkaFixedSS16 = "0kbpnh470fns0c7vg0v204vbgxcda0ff67swdavif0j36zwd7cbz";
-  SGr-IosevkaFixedSS17 = "07z43yl5wlp05sis1z11fp93pqrd4w19g7zjz0nlwmv2kzcrzyf7";
-  SGr-IosevkaFixedSS18 = "0qprlh0a5250rpy64qk5r43rr6xzirdyncg9pggsgsk0zws4ln2w";
-  SGr-IosevkaSlab = "1rx40qivi5x5c406wmiaychrac2c789kcj7jr7fjxxhfj6anv6p7";
-  SGr-IosevkaSS01 = "0hjfarb36ga3hm79j7jnzf3lrbpmry2fjg7nlg6h5mwsqrfsr3mw";
-  SGr-IosevkaSS02 = "0c4q4px29iab6pvdsksjzb15d38iyvy4ijwjq16q0bj77pama1n7";
-  SGr-IosevkaSS03 = "0045mni3gjnfhy65jrd7i8abxjxdwccccasl48n4pfh4myr6imi7";
-  SGr-IosevkaSS04 = "0ybg72n0nm6wa8as4bgrc3wdpwzi4137v7cz3ahnvsx7zmvvd49m";
-  SGr-IosevkaSS05 = "1dim8mq9cf6b5zhjqs92d4lwbpqb1r00mq0dqb5pwszgzz80w78q";
-  SGr-IosevkaSS06 = "1bbpfp3w8vg47x91zsnr28zqc8ba6z24qw42nap1s1apjd7lr1h9";
-  SGr-IosevkaSS07 = "1hn0kzzlr8c3bl6b2i26fqgh82hlxw70yapl4ckxmm117kn9lvv1";
-  SGr-IosevkaSS08 = "17kpx8b25wnfaqsdx92gj4njfrr7xpwqdwwqd2zsyfc32h3iwp0i";
-  SGr-IosevkaSS09 = "1sh31rfxg775gbq0rgmjrlcff72xnbsbcasm83c0i20j97xvyylm";
-  SGr-IosevkaSS10 = "0kf2rnwvfgk92mrlv8hvx8jph2wadsk0nihlmmxxgnf4c1i25ik6";
-  SGr-IosevkaSS11 = "1086ycp819g78w1mjn9cjxhv2swhihbn84106lgxfdp5y65c3ylg";
-  SGr-IosevkaSS12 = "0zrkvvwwz1apdm0j21jc40ck3900hhcxg8h5mdjf5g46mq516g6m";
-  SGr-IosevkaSS13 = "1z7dvsa7bwkkk8cqfw8d0inmzyzpwsich3nr34drm66gl8nva2xz";
-  SGr-IosevkaSS14 = "179mdqpfr411p5xv6abissk6bg43wyfi74634bf1sc04yqjpb54c";
-  SGr-IosevkaSS15 = "10k83br5a23ls69av56b5bdsgixqjxba1mws7k25lm0rb5rmp7rr";
-  SGr-IosevkaSS16 = "11v6i6n9l73sszj78cinaq7glkc6s9yqk1q4hyg7zxixix66wa1s";
-  SGr-IosevkaSS17 = "0086w97065dya4psvgzgi7njsgx92fndzxmb51syl2274m4kl29y";
-  SGr-IosevkaSS18 = "0c6pzvkv7c9fzrn913rcdd5d4kp82fsdh2712axmxh75zbm8pw5c";
-  SGr-IosevkaTerm = "055izdas8r5f7flgah608k063r4b3n560lkxmq6rimgr47k8z89g";
-  SGr-IosevkaTermCurly = "18rax5qziik2xqgc7bv16h77562x4x0y4df87wdqxkkq9j52vwy0";
-  SGr-IosevkaTermCurlySlab = "0s1fh4b8zvq2wa7z0rmy8f7f3lv01gv5rmy6zhrfcqssjxv0c49c";
-  SGr-IosevkaTermSlab = "1k595x2zipmzlw9hdg8cvvib5fk9yvnzng27ajanlfvcfyw22xhj";
-  SGr-IosevkaTermSS01 = "1ziajrzn2zj5c3dvjm23rxlanpb3iqi6faksb3f5gs3ssqam9kzp";
-  SGr-IosevkaTermSS02 = "1zwwbvhli6ajnc1ch610f3ihwgm1af1ch0ajcls224dpww82ks4x";
-  SGr-IosevkaTermSS03 = "1isbq47zh6yj83yndynzkx1cikss1hks4f38pp1cp8fygi5y0z5k";
-  SGr-IosevkaTermSS04 = "1jlyblhl1p4s2rrsb7zvq450bwn35mh53b75y040kfl8ac5123j4";
-  SGr-IosevkaTermSS05 = "0rlzkql2q9h42j4lvl3la637sq1f3z2vpfpfj61ysiaxqw04fand";
-  SGr-IosevkaTermSS06 = "0ly1aignjzlslxibm0s1wpmjzk95lki4pyib4jn13zprb21kvqr3";
-  SGr-IosevkaTermSS07 = "07vwq3nfbj6dfxlmdmcf1kifkdb1vbw1h5r8qjgdkxpmx4p7qjs2";
-  SGr-IosevkaTermSS08 = "1vp6wliyhdwzx50chifkczfa12fn3jl727nyjman5s632yg4zxas";
-  SGr-IosevkaTermSS09 = "075hip6xz8by1vkl9j16ivwqq7hml0w1yn8c502zbcjhqdfkfy6y";
-  SGr-IosevkaTermSS10 = "12qfhk4wjsvqqp7zq5zcblffq4bhhbrq0ciwbv219d4pk2yf30aq";
-  SGr-IosevkaTermSS11 = "0jz860abggmpjs6qakv43ihrgsk9qpblv9ss239327a1vbl183bi";
-  SGr-IosevkaTermSS12 = "12dw36c3n3mqvp6ih0nz1slw367b5yplmp6h5vlz0ycv2myl55fg";
-  SGr-IosevkaTermSS13 = "1i8y62237jrh6v5176ra2kwx76hmnc00y13nngna0wlivwia4b7n";
-  SGr-IosevkaTermSS14 = "09p6pgc3izw3gsmzzkcay2bkvin5wv9h2nlnlwicsp0rkw7aga9v";
-  SGr-IosevkaTermSS15 = "1bajvhv7ibbvc59bl0mivs0kym09z147fkzq2czv9p5x17a35cvv";
-  SGr-IosevkaTermSS16 = "15l3lmgyjfbqs7l42k763cvi9sdlh9m3p3r62ks95fqsa4qvd84d";
-  SGr-IosevkaTermSS17 = "0k9jzkbvbi8654q67szlzgfsixnnf6sqnaigqdda2g9ih0y3gpr4";
-  SGr-IosevkaTermSS18 = "0fvqln3fc1vbwcx388248cbgbypb773d66kz0vxcmlnvj8dg7ffb";
+  Iosevka = "0vvgmgva9j0mn0f6rza4vr7fdz3ypxlfl17ikcyyb2gblf5pj511";
+  IosevkaAile = "1lwfj4w0cyvzxf044ylph9vpv0807wfdy2rf2w0jhmzv5pqhzwn1";
+  IosevkaCurly = "03zjkiz7k5amlj0h36994fqjclj795mcxlv5913a7kpxwqwlwwxh";
+  IosevkaCurlySlab = "005ifmkm52arw184c7xdxyisxvzn2ai19bl5gniwh2waqrx6r8wv";
+  IosevkaEtoile = "0zsimpmvr4vaf1bsjg4lzi876ls29p3xx9agmh9rvmyv0nizys0i";
+  IosevkaSlab = "06fy0mq899n9i5qkiqfczkdkk289mp6px9mnrkwbrjajpsl30mng";
+  IosevkaSS01 = "15f2wj4vvxvqbvqqxqq90idarlic05mjrimj5s5mynamff8ixxni";
+  IosevkaSS02 = "1qlj7vsg6rg0ds8xx472m7gbh8128f0p1cx44ygk9vy072dh56mm";
+  IosevkaSS03 = "1m7l1c48rbkbn9wwzhiycrfh2vsm6lnamyvxkz3w10b1kww3w8ch";
+  IosevkaSS04 = "0l6g8sqfk6nig9pr22zng7csk7f6y9cllknihk0yvc8p53i8p2zg";
+  IosevkaSS05 = "0xyndq7wzfvbgwjpx3acp8rsrnbyp19p1ds79gjl8dyzmbqnl8c7";
+  IosevkaSS06 = "0hr5x608kbmpll9y9nqzy6ffv0kc3zs68gd1pnnxdd3qi0bawxm9";
+  IosevkaSS07 = "1x2ril5w5axjk19v49lqx4qiswa724cppgnw2apm3ccb5acrn8b3";
+  IosevkaSS08 = "1h6kpnbmsa002s26ffahsg7wn1b6yccg1217i5rm3jxnfv9yvvqc";
+  IosevkaSS09 = "1qyfqa5mar45vfirvn3rvgmv6gf7f43ckw6ihfh3q25dq700lkq4";
+  IosevkaSS10 = "19idljflcghbyyzzbbyrracpvi3jnx24fq0i9k5m48a32p7ay86v";
+  IosevkaSS11 = "0q1lwmrsd8fc8a9r5iknapvmh02p3wx26fa9azh9z4b97qy1bawq";
+  IosevkaSS12 = "1zj92l6iy8vmqfklgsq5pxxflrnbgzwx2kfm3l2dmd59r9b9crl0";
+  IosevkaSS13 = "05vphzvvss7rc5wvgfb8qk940qacxl74mvm63nal2iyy9rgbpsgm";
+  IosevkaSS14 = "0fnn8s944hbz78g3j2r69g31g2w5a9x8dng5gsc4y17492q9md9r";
+  IosevkaSS15 = "191jq0ray8dcrv7nidkr95bscf9qkhlvpka637lbfp3cvvqlnhl6";
+  IosevkaSS16 = "1mfivf9l3awsyjh6mhq56r1pd1fkpp5wrkpwbz9ag431n7pgiw4d";
+  IosevkaSS17 = "0891jxy0mabdlv0dfdfkaxb1lnid0abvw43bhhvvqgrcx6js2955";
+  IosevkaSS18 = "1d37i0vsbws14l1r4hxr9y44g60wxlpc5fs5w19syn6jk35rcwkn";
+  SGr-Iosevka = "03i7i943dvp5673ya0v243nq3pxplccy1az2irxds0mp609916cl";
+  SGr-IosevkaCurly = "189jgm3v4vy68icirgvakski4l5330hxgdx36r7vc4s62smpmh71";
+  SGr-IosevkaCurlySlab = "1075nkbxb51gkjn0zkh7kh8jzw0axn9pnrb310gpw9b04n2qxbhk";
+  SGr-IosevkaFixed = "0ff4znsmc5qgap8b27r609j55r89xyb3gjj70dys37dksbqb2y0h";
+  SGr-IosevkaFixedCurly = "0j1pjfrgb888cij2gpm8a1pqs6z6cwnnjawmjg4ps45c25m07f8g";
+  SGr-IosevkaFixedCurlySlab = "1vmypssc1scj02p9v4591pwp1vnmaya7l8r8f8m7vqmqg9lkh5si";
+  SGr-IosevkaFixedSlab = "1d3g70g90q1r0q9dm1vkggmb37siphjl132jcs41s9qavy85q6w5";
+  SGr-IosevkaFixedSS01 = "1slf9whfc7f7iishxypw2pi4kg3jbfacw4bqmnil4k8rar7hq2gi";
+  SGr-IosevkaFixedSS02 = "0lsz14nqgys9cacppb95s21cdixvf742h5pkp0i65g6ccqipbjk1";
+  SGr-IosevkaFixedSS03 = "1ibvw2ci516sn9krra7kq37v96rhwznznwrsc7ipqns2wqwq84hi";
+  SGr-IosevkaFixedSS04 = "1fdqpnp5338jv6isx5mcvpm6pard78jvnn2217rb13lmwp45sc70";
+  SGr-IosevkaFixedSS05 = "1sq5gscr02dx2kzjcxl0fbvpmyir3h0wmqqdb6zfp37bhcir9ac4";
+  SGr-IosevkaFixedSS06 = "037y2s503bh6051kpwicpa8fqwbxq0lhfldjh5k81mcrbzqaycwa";
+  SGr-IosevkaFixedSS07 = "1n929d52bzdm9nxdp8lxjlnd9nfdqi35vy1ssq7sy87aqlfp22l3";
+  SGr-IosevkaFixedSS08 = "0wyaw9l6bvh38ns9hvfgykbhkzxrmmczkccpj00ihxs0vy8yvc1c";
+  SGr-IosevkaFixedSS09 = "14akrpb22xb9cal2q6qgrm0abc41ikdf4np2j9g8038hy5l2lssy";
+  SGr-IosevkaFixedSS10 = "1nbv9k2jk7bx7m3hdw3mjg4fw90yx5am22fbx5abg6im807qqgcy";
+  SGr-IosevkaFixedSS11 = "1fhkfa8lbk9726jbspixqs2580mlillnfxapzb0znqavrkwv6lfn";
+  SGr-IosevkaFixedSS12 = "1j3kddd8zbrxm0834s57fbsrc3y3vq597ka7mcx2q5hha6yqnr15";
+  SGr-IosevkaFixedSS13 = "";
+  SGr-IosevkaFixedSS14 = "0ra5rj5ywj73ihh9bgiil0wd2xnw4h700mxa8nvs7jbw9hggvxjc";
+  SGr-IosevkaFixedSS15 = "04m5n333qf75jla3j710s3snqxyzzi316560lwnkq116sxi7zy0w";
+  SGr-IosevkaFixedSS16 = "0lxvh5bj8w7yvcx3yard04cssn1w6068xkg2c63hjyvhbhp8h787";
+  SGr-IosevkaFixedSS17 = "1xmh1wr1zvpjndra2891ywx31rswrb5zwcpmanwd9rhkv2yi9l3z";
+  SGr-IosevkaFixedSS18 = "1nkl49zlg3jw19d2mdnymwd8dcwl7q3hzf95rms8rlsv6s20bm14";
+  SGr-IosevkaSlab = "0k2fr5bl8yrmzgli4rjyishgca1wpgzqmi723fbrd5i9mi1130yz";
+  SGr-IosevkaSS01 = "0wkxqy77vgpphq7bjj5hqh21ciypl0fhs3g4j0fcwh8gw0fzzg5k";
+  SGr-IosevkaSS02 = "0r90fwi8lm6cmrlbrlrrjyjws391rj3458cy61gk7wnyh8i4ym51";
+  SGr-IosevkaSS03 = "08778yg5bqv46rw7dgwlh9b4dmw5q4jnw9cvd7zjbrsqnvc2fkk7";
+  SGr-IosevkaSS04 = "1lb4fp5gw33wx0ch238h0galmcd5bviv3rgjzkqwavmb38hi5i7h";
+  SGr-IosevkaSS05 = "0gfsbqfp1zg638a8lilzm0a0w3r7yh1jqr3dic9d8rhga46jh522";
+  SGr-IosevkaSS06 = "0kzv05b2azn00synmj4dimw30f0rihcl6nklkm4669lq7gmq9x2j";
+  SGr-IosevkaSS07 = "10irpnh6dv9xa69kmwni0jnv6f6f7pmbgd6zqmiw6182ivnszp33";
+  SGr-IosevkaSS08 = "0raxx217db2ra11j9bqx7vp7vmz4j73298rvwvlr8xl25mw7xikj";
+  SGr-IosevkaSS09 = "04cwa10sby3r6ya285jsly5lvvc6l8wrv012khp7abpmcdsssmys";
+  SGr-IosevkaSS10 = "099xlbai3m903j5zfbcn3hbhzqh8kk24lzlczdsr79igjaadwv92";
+  SGr-IosevkaSS11 = "1qfw6s7pb4s8dwbd1bfdxs99zviz3wawagaakjx4n3izcpzmmb1c";
+  SGr-IosevkaSS12 = "1cfbw20wa8g8vi244hjih081li1488fbgbzm4zcfrjfvqg334qyb";
+  SGr-IosevkaSS13 = "1m6xp2xwl9yv4qmzh0pddfyddh9pwdlvhjaiikhsblvhfqp7bj23";
+  SGr-IosevkaSS14 = "1d2agan90ri1mdvfyxjgjvdlfxf1140y7r77rzy29ihx466gagid";
+  SGr-IosevkaSS15 = "1xpy354fjnx9cg15qf02x874hphphnrmdzmv2nc0ib974aakkvdb";
+  SGr-IosevkaSS16 = "1y246rxs7grkaf4iapbghrywgwppc853ixb96k6ba2zs6lahb8j8";
+  SGr-IosevkaSS17 = "0xq6mwcjjy2gb8rkyvr7y5glzdl6040aask4fhslwhxj5fna817n";
+  SGr-IosevkaSS18 = "1x9lm1b4dj95ccwaiwan0fiwjrr4dxgj8p68amrzqg825clv62j3";
+  SGr-IosevkaTerm = "00g8bwjyhm8jdgw9lxdwxdd0rnsdfkf2ql26dh5s1pcr5ccxzv2p";
+  SGr-IosevkaTermCurly = "0dx37cmryn3vszv4mbq53l2362abqyz4ixaw9wc2jdcs81db8y07";
+  SGr-IosevkaTermCurlySlab = "14fs8bhrzl0prf8f6mglfcnyr92scpzs5iiy02rzikka3ksxvl98";
+  SGr-IosevkaTermSlab = "145j7dajx6bjgagvbbf3ynfinwx0iiwjf25qp6fkbnpza45jbzwc";
+  SGr-IosevkaTermSS01 = "1wyk1ys8jwsb3j5zgvx4kl7mn6kw3biq4yiqscr117birl3paz0m";
+  SGr-IosevkaTermSS02 = "0vqmxx0drm6d2jdggvb77p2nqgic2jrkbx5ay16jyflx5r3zg1xh";
+  SGr-IosevkaTermSS03 = "1csy3c99cmznrl2ij27z6ynhmhdfbw4hg8w4ikj670p8l01qn1z3";
+  SGr-IosevkaTermSS04 = "1fx49ah9z5hs8a5bqlfvgrc9nsj3k5k2j812bc34iqbki1l5wssi";
+  SGr-IosevkaTermSS05 = "0frgvdz3pq3drjc0sfsx09lv6x3f0b4gr7y3vy6g8c69r3vdqhps";
+  SGr-IosevkaTermSS06 = "1mnkvqdwsswqi2z4ja49my9dbbhf95qm4ig3wmbfjwgv78v0z0ys";
+  SGr-IosevkaTermSS07 = "1vy9rbwfmcfb2wwdi9sk7pwhpmmx50ldabfcdm5rg42fzz3lkckm";
+  SGr-IosevkaTermSS08 = "0xnsw8c4r77gwkbknhlbrsr9b0485bhplp3blrp3m09s61a8zkas";
+  SGr-IosevkaTermSS09 = "09ks2z88l1rnz268bxw0cddp30km8fxlfl4q0ply6rryx2jw81pb";
+  SGr-IosevkaTermSS10 = "18rpa0nmv709afy2bid8hkiij04wary2ayq1gbwx7avjis9xw8mk";
+  SGr-IosevkaTermSS11 = "0myam4a9h51iss8vczw45hh90zz5is1q9isy89lih61jkg2yh925";
+  SGr-IosevkaTermSS12 = "1qkjkv1rn1pc8iri6x1jmagdhnq50mfzjx6fc1ajlhiqkwn2428n";
+  SGr-IosevkaTermSS13 = "06y59cq1k5hadz5231r9xzy48awwyxq3k752bh9mr39x4r0k1y8z";
+  SGr-IosevkaTermSS14 = "13vqi1sxzjbcc682a1r5lf71lxlhi0xmsyl9x3samp144a2kq671";
+  SGr-IosevkaTermSS15 = "0q0gv924jm774n14ghkybk2ssmvm8hy1sxypfrfd2871xihg0xm1";
+  SGr-IosevkaTermSS16 = "0rycjqp68y7wnnd4k1r6m70blfma0qly2r1v1mfar7yya80s1yzm";
+  SGr-IosevkaTermSS17 = "1n4hg9c56ycshj7wvhc90y3d2nzhz5bpjy8im2wglbw24k98f6i1";
+  SGr-IosevkaTermSS18 = "1qg3kys0gm8mw7xf989dbdygxhal1bil0ca3caljm0bahnri20bm";
 }
diff --git a/pkgs/data/fonts/spleen/default.nix b/pkgs/data/fonts/spleen/default.nix
index e97d8416610c0..ef9e2956b924e 100644
--- a/pkgs/data/fonts/spleen/default.nix
+++ b/pkgs/data/fonts/spleen/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spleen";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchurl {
     url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
-    hash = "sha256-+TDrAolKoG61CuqqELAEICVNcjIPoow6QPFXqMKUN1U=";
+    hash = "sha256-i0fFbxpuuFj7z540UwVXQEsC+7NFXjjmT7hEc/0MNy8=";
   };
 
   nativeBuildInputs = [ xorg.mkfontscale ];
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index b82a5ca0e3786..e4e3d08ddc7b2 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "c947711834678a5466dcca9367676bc61ed0a991",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c947711834678a5466dcca9367676bc61ed0a991.tar.gz",
-  "sha256": "1slm1b6s8hk7x5rlr9fmsipkj8g6jsbvf5lfr2zzz8msfr5z8j8c",
-  "msg": "Update from Hackage at 2024-02-12T23:23:22Z"
+  "commit": "8fd329148e6583ab472717f5cac4e8132dac2c1e",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/8fd329148e6583ab472717f5cac4e8132dac2c1e.tar.gz",
+  "sha256": "0acf86rjvkh8vgbkzm1gjavm8xr508hd19ncwa19zqrf8gpp051x",
+  "msg": "Update from Hackage at 2024-03-16T22:28:08Z"
 }
diff --git a/pkgs/data/misc/rime-data/default.nix b/pkgs/data/misc/rime-data/default.nix
index 97404764e2005..15c33238e8da3 100644
--- a/pkgs/data/misc/rime-data/default.nix
+++ b/pkgs/data/misc/rime-data/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "rime-data";
-  version = "0.38.20211002";
+  version = "0.38.20231116";
 
   src = fetchFromGitHub {
     owner = "rime";
     repo = "plum";
-    rev = "1730556e1da5a08bb8e0a656c4780a46851a2913";
-    sha256 = "sha256-D7rPUxcB3QkCtisfBLHPiqfgL5lqmxjSiuEcpE63elw=";
+    rev = "6f502ff6fa87789847fa18200415318e705bffa4";
+    sha256 = "sha256-DNSLP0dzzgJ6XzwvxGPeRqRrRIUV/GwD2+8cz9bYAwA=";
   };
 
   buildInputs = [ librime ];
diff --git a/pkgs/data/misc/rime-data/fetchSchema.nix b/pkgs/data/misc/rime-data/fetchSchema.nix
index c2841a9f1e61d..6ceb44fefe5ca 100644
--- a/pkgs/data/misc/rime-data/fetchSchema.nix
+++ b/pkgs/data/misc/rime-data/fetchSchema.nix
@@ -5,8 +5,8 @@ mkdir -p package/rime
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-array";
-  rev = "d10f2f8b2aec7c7e736ace01e8a399e5ae5e7c3a";
-  sha256 = "sha256-4t6+gh2V57SueDp9Tn6vTuxQCZNGzjLdJEhzIEqRjdI=";
+  rev = "b37aad383ff6e71e457aa6d1d47d2040af8649b9";
+  sha256 = "0krvxnjr35r49wwi6bcjdnld6zbk791l7vm294wmdy36qfp2924y";
 }} package/rime/array
 ln -sv ${fetchFromGitHub {
   owner = "rime";
@@ -23,14 +23,14 @@ ln -sv ${fetchFromGitHub {
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-cantonese";
-  rev = "b6f800c74eb639816d56d0d5601aaa96c8963178";
-  sha256 = "1a4ksacbz8l30y3y5c017d0hzwik8knplglb3yswy7l4hsvaanyh";
+  rev = "e3c6b17e638ac8a9aeab4d5852e5909b049c5ab3";
+  sha256 = "171a64l17yb6isgiih2z0cp2vgzvdcn0vby3rk8556b0ir4j545q";
 }} package/rime/cantonese
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-combo-pinyin";
-  rev = "a84065a86b272c76215215bd6f03c506b6e7097c";
-  sha256 = "1f0b4kakw0x26gmx7xi4f94nbjlb8lvi9bks4f92jswa045vnd87";
+  rev = "17b66079a23a00d3214639fee2b8ae97d3e620dc";
+  sha256 = "1izx29hawfryapfzadysjbb2zfw0yq6vwsw56khkf6gsaz1faamn";
 }} package/rime/combo-pinyin
 ln -sv ${fetchFromGitHub {
   owner = "rime";
@@ -41,14 +41,14 @@ ln -sv ${fetchFromGitHub {
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-emoji";
-  rev = "4c8c51f4a3bc7298c99376eda9bbd86070fc4fa1";
-  sha256 = "0175jqh210fncafqckr9zzaw55qpswmqjrykwms1apmc68l43122";
+  rev = "a18b09997e7c457066e4c92adf249a4b3e235f9c";
+  sha256 = "0gaa9r3yx1s135jlqxp85iyygcwqgz2k4n1bpvjr2n8xkn9297b6";
 }} package/rime/emoji
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-essay";
-  rev = "9db2e77305e75798baf3ec8dcf1f82785b5e1be9";
-  sha256 = "03ypkkaadd5qmyg26n24a66cll90xvcimgbmiyv4d33jradiqg22";
+  rev = "e0519d0579722a0871efb68189272cba61a7350b";
+  sha256 = "1g7188vgklxindvm6p65b5jlm6z47fdmhmp0hqrrd6smg9pz4qpw";
 }} package/rime/essay
 ln -sv ${fetchFromGitHub {
   owner = "rime";
@@ -59,32 +59,32 @@ ln -sv ${fetchFromGitHub {
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-jyutping";
-  rev = "1e24baa6998815c716c581effe8ec65ee87c4e8c";
-  sha256 = "0s2rckpwlrm3n7w1csnqyi5p9mkpp3z87s7mrm2vc9sv06rpv7zl";
+  rev = "50100769f645bf92afef5170e3bf42be5147b41b";
+  sha256 = "1dmw2ssbqxbs93iab0whjzncsvv66vyw3hwb30kly2v18bwkagq0";
 }} package/rime/jyutping
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-luna-pinyin";
-  rev = "623adb022b094d540218b287c2e601509eee3347";
-  sha256 = "06pcwp09l5wkqv7792gbsl31xnlb3gr9q6bgbp94vvq6m2ycahqz";
+  rev = "79aeae200a7370720be98232844c0715f277e1c0";
+  sha256 = "06vff5hq85dkbmqch9d3w2rww2n8sk41c7say0pdlkfphyjs76ps";
 }} package/rime/luna-pinyin
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-middle-chinese";
-  rev = "9fad7a7c0c26167d5e6e85db8df48a15c7f7d4f0";
-  sha256 = "0a0bqrlzg0k692xblqnh1rh1fwwqqb205xwxlihgji85n8ibcgph";
+  rev = "582e144e525525ac2b6c2498097d7c7919e84174";
+  sha256 = "0ixj2f3syc0hv9n5r0cavcq0jrdf1www2frjl11855gwydp4lsx5";
 }} package/rime/middle-chinese
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-pinyin-simp";
-  rev = "b0e84cda02c613ebdedc127a26131b3800f45a8e";
-  sha256 = "05v804qr3a9xvjzp9yid7231fi2l2yrl47ybbvql61z9k36ab094";
+  rev = "52b9c75f085479799553f2499c4f4c611d618cdf";
+  sha256 = "1zi9yqgijb4r3q5ah89hdwbli5xhlmg19xj8sq1grnpfbw2hbdbj";
 }} package/rime/pinyin-simp
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-prelude";
-  rev = "3de303ffaa731dba07b0462ce59f4767e1219ad2";
-  sha256 = "0g7a0bla58rh1v3md59k6adk185pilb4z8i2i0pqdl4nwqp40n2p";
+  rev = "dd84abecc33f0b05469f1d744e32d2b60b3529e3";
+  sha256 = "14wn86xqvb6r73pgksi51wgfc70pj95iqrl85m2i0fwl43zg2y5g";
 }} package/rime/prelude
 ln -sv ${fetchFromGitHub {
   owner = "rime";
@@ -113,20 +113,20 @@ ln -sv ${fetchFromGitHub {
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-stroke";
-  rev = "ea8576d1accd6fda339e96b415caadb56e2a07d1";
-  sha256 = "07h6nq9867hjrd2v3h1pnr940sdrw4mqrzj43siz1rzjxz3s904r";
+  rev = "e6c7608925009636577ff7469eecc870f1de18f3";
+  sha256 = "1rzclksf09s9js6z9mjm4ibgybr6kg2c4xq4j6sg9b3pnjbjwv8g";
 }} package/rime/stroke
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-terra-pinyin";
-  rev = "ce7b9249612f575d2f43d51fcacd31d1b4e0ef1b";
-  sha256 = "0vm303f4lrdmdmif5klrp6w29vn9z2vzw33cw0y83pcnz39wiads";
+  rev = "9427853de91d645d9aca9ceace8fe9e9d8bc5b50";
+  sha256 = "0f1wiqasy41hp3kw3qc5zk6z0rgfrswdw91kc66v1w1a3skb6wpp";
 }} package/rime/terra-pinyin
 ln -sv ${fetchFromGitHub {
   owner = "rime";
   repo = "rime-wubi";
-  rev = "f1876f08f1d4a9696395be0070c0e8e4353c44cb";
-  sha256 = "1d9y9rqssacria9d0hla96czsqv2wkfm6z926m1x269ryv96zxvk";
+  rev = "152a0d3f3efe40cae216d1e3b338242446848d07";
+  sha256 = "1p2ikcw40q84fx0ixarm1jfp8ax276pabansybchrj34cqs53sr1";
 }} package/rime/wubi
 ln -sv ${fetchFromGitHub {
   owner = "rime";
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index 4810bfd55e325..bedf4482f74af 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "23.10.0";
+  version = "24.04.0";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    hash = "sha256-+Szk77QeoM4PwusxKflTh83h16qz6Es6UwDXpbydJUE=";
+    hash = "sha256-KvpA86YL6toVklRPu4hP3j3w+Q0h/n6mZRZgk3HvMfc=";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff b/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff
deleted file mode 100644
index 237d5798ecc85..0000000000000
--- a/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/src/source/common/ddesktopservicesthread.h b/src/source/common/ddesktopservicesthread.h
-index 49313744..456a5e96 100644
---- a/src/source/common/ddesktopservicesthread.h
-+++ b/src/source/common/ddesktopservicesthread.h
-@@ -8,10 +8,14 @@
- 
- #include <QThread>
- 
-+#include <dtkwidget_global.h>
-+#include <dtkgui_global.h>
- #include <DDesktopServices>
- #include <QDebug>
- #include <QFileInfo>
-+
- DWIDGET_USE_NAMESPACE
-+DGUI_USE_NAMESPACE
- 
- // 文管打开文件目录线程
- class DDesktopServicesThread : public QThread
-
diff --git a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
index 60a02851b95a4..8943b84231744 100644
--- a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
@@ -20,22 +20,18 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-compressor";
-  version = "5.12.24";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-XNhG28VZifQrl3TZfx/OHnsAOo0eKrhGKDk+OjOYD8k=";
+    hash = "sha256-DUpYb1xNmWpBcKo9kajeVm/+z4yj2OBE+qOyEkCHbUI=";
   };
 
-  patches = [
-    ./0001-fix-build-on-new-dtk.diff
-  ];
-
   postPatch = ''
     substituteInPlace src/source/common/pluginmanager.cpp \
-      --replace-fail "/usr/lib/" "$out/lib/"
+      --replace-fail "/usr/lib" "$out/lib"
     substituteInPlace src/desktop/deepin-compressor.desktop \
       --replace-fail "/usr" "$out"
   '';
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index dff4189a1a2de..2588a133ba7bb 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -72,7 +72,7 @@ let
     export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
 
     # Start pantheon session. Keep in sync with upstream
-    exec ${gnome-session}/bin/gnome-session --builtin --session=pantheon "$@"
+    exec ${gnome-session}/bin/gnome-session --session=pantheon "$@"
   '';
 
   # Absolute path patched version of the upstream xsession
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 61d9c120b2461..123870c356de0 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -70,6 +70,9 @@ stdenv.mkDerivation rec {
   postPatch = ''
     chmod +x build-aux/meson/post_install.py
     patchShebangs build-aux/meson/post_install.py
+
+    # https://github.com/elementary/gala/issues/1826#issuecomment-1890461298
+    sed '2i Wants=io.elementary.gala.daemon@.service' -i 'data/gala@x11.service.in'
   '';
 
   passthru = {
diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix
index 791f596be4160..9e30ec4ef7b1b 100644
--- a/pkgs/development/beam-modules/default.nix
+++ b/pkgs/development/beam-modules/default.nix
@@ -43,7 +43,7 @@ let
       elvis-erlang = callPackage ./elvis-erlang { };
 
       # BEAM-based languages.
-      elixir = elixir_1_15;
+      elixir = elixir_1_16;
 
       elixir_1_16 = lib'.callElixir ../interpreters/elixir/1.16.nix {
         inherit erlang;
diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix
index c419b7f30411f..2324d641244f0 100644
--- a/pkgs/development/beam-modules/elixir-ls/default.nix
+++ b/pkgs/development/beam-modules/elixir-ls/default.nix
@@ -37,7 +37,7 @@ mixRelease {
   # of the no-deps-check requirement
   buildPhase = ''
     runHook preBuild
-    mix do compile --no-deps-check, elixir_ls.release
+    mix do compile --no-deps-check, elixir_ls.release${lib.optionalString (lib.versionAtLeast elixir.version "1.16.0") "2"}
     runHook postBuild
   '';
 
diff --git a/pkgs/development/compilers/aspectj/default.nix b/pkgs/development/compilers/aspectj/default.nix
index ee5528953c412..5e34560f46cf7 100644
--- a/pkgs/development/compilers/aspectj/default.nix
+++ b/pkgs/development/compilers/aspectj/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "aspectj";
-  version = "1.9.21";
+  version = "1.9.21.2";
   builder = ./builder.sh;
 
   src = let
     versionSnakeCase = builtins.replaceStrings ["."] ["_"] version;
   in fetchurl {
     url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar";
-    sha256 = "sha256-/cdfEpUrK39ssVualCKWdGhpymIhq7y2oRxYJAENhU0=";
+    sha256 = "sha256-wqQtyopS03zX+GJme5YZwWiACqO4GAYFr3XAjzqSFnQ=";
   };
 
   inherit jre;
diff --git a/pkgs/development/compilers/atasm/default.nix b/pkgs/development/compilers/atasm/default.nix
index 74f54d8d03cfa..d79fc686b2692 100644
--- a/pkgs/development/compilers/atasm/default.nix
+++ b/pkgs/development/compilers/atasm/default.nix
@@ -1,19 +1,22 @@
 { lib
 , stdenv
-, fetchurl
-, unzip
+, fetchFromGitHub
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "atasm";
-  version = "1.09";
+  version = "1.23";
 
-  src = fetchurl {
-    url = "https://atari.miribilist.com/${pname}/${pname}${builtins.replaceStrings ["."] [""] version}.zip";
-    hash = "sha256-26shhw2r30GZIPz6S1rf6dOLKRpgpLwrqCRZX3+8PvA=";
+  src = fetchFromGitHub {
+    owner = "CycoPH";
+    repo = "atasm";
+    rev = "V${version}";
+    hash = "sha256-U1HNYTiXO6WZEQJl2icY0ZEVy82CsL1mKR7Xgj9OZ14=";
   };
 
+  makefile = "Makefile";
+
   patches = [
     # make install fails because atasm.txt was moved; report to upstream
     ./0000-file-not-found.diff
@@ -23,10 +26,6 @@ stdenv.mkDerivation rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    unzip
-  ];
-
   buildInputs = [
     zlib
   ];
@@ -42,9 +41,10 @@ stdenv.mkDerivation rec {
   '';
 
   preInstall = ''
+    mkdir -p $out/bin/
     install -d $out/share/doc/${pname} $out/man/man1
     installFlagsArray+=(
-      DESTDIR=$out
+      DESTDIR=$out/bin/
       DOCDIR=$out/share/doc/${pname}
       MANDIR=$out/man/man1
     )
@@ -55,9 +55,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://atari.miribilist.com/atasm/";
+    homepage = "https://github.com/CycoPH/atasm";
     description = "A commandline 6502 assembler compatible with Mac/65";
     license = licenses.gpl2Plus;
+    changelog = "https://github.com/CycoPH/atasm/releases/tag/V${version}";
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
   };
diff --git a/pkgs/development/compilers/blueprint/default.nix b/pkgs/development/compilers/blueprint/default.nix
index 14a901d785fe1..c37d5c91c2760 100644
--- a/pkgs/development/compilers/blueprint/default.nix
+++ b/pkgs/development/compilers/blueprint/default.nix
@@ -12,14 +12,14 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "blueprint-compiler";
-  version = "0.10.0";
+  version = "0.12.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "jwestman";
     repo = "blueprint-compiler";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-pPrQc2ID84N+50j/A6VAJAOK+D1hjaokhFckOnOaeTw=";
+    hash = "sha256-pvYSFCiYynH3E6QOTu4RfG+6eucq++yiRu75qucSlZU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/dotnet/8/deps.nix b/pkgs/development/compilers/dotnet/8/deps.nix
index ce7ee48bb102a..66d8934b67c70 100644
--- a/pkgs/development/compilers/dotnet/8/deps.nix
+++ b/pkgs/development/compilers/dotnet/8/deps.nix
@@ -1,10 +1,10 @@
 { fetchNuGet }: [
-  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILAsm"; sha256 = "8985f0b9855daaf8b4a38f32a91902bdbb99a2f1801a98c68a5013d94842524e"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ilasm/8.0.1-servicing.23580.1/runtime.linux-arm64.microsoft.netcore.ilasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
-  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "0496a403691e50662c5aef598248d8cd92ad1da1e93a859aedee5bb91bb9c821"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ildasm/8.0.1-servicing.23580.1/runtime.linux-arm64.microsoft.netcore.ildasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
-  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILAsm"; sha256 = "0c5k9ckp7zjspyqqzz817jr8pglnn7wxhmv2hfk700swb96qhg0w"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ilasm/8.0.1-servicing.23580.1/runtime.linux-x64.microsoft.netcore.ilasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
-  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILDAsm"; sha256 = "1pyydnypv9x25p7y35j85f8pxnyxq3w2vc8i84klq90kzgzig5a8"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ildasm/8.0.1-servicing.23580.1/runtime.linux-x64.microsoft.netcore.ildasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
-  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILAsm"; sha256 = "7609cfc7fd617a580caba18d458ed644ab799346139b3ead9df9502abe8d0541"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ilasm/8.0.1-servicing.23580.1/runtime.osx-arm64.microsoft.netcore.ilasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
-  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "6a969c2f6261834ab8ec9829cffed5a1a1f35667bf382b7c902d1b26db192e27"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ildasm/8.0.1-servicing.23580.1/runtime.osx-arm64.microsoft.netcore.ildasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
-  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILAsm"; sha256 = "a8b90caa9ead7defdf8b9570dcb3e0cec146dff892a88fb825fedb7ee0fe620f"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ilasm/8.0.1-servicing.23580.1/runtime.osx-x64.microsoft.netcore.ilasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
-  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILDAsm"; sha256 = "eade428d642bdbb2271610c5d781a61ab367dbd3e776477a7b5948bda62252b5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ildasm/8.0.1-servicing.23580.1/runtime.osx-x64.microsoft.netcore.ildasm.8.0.1-servicing.23580.1.nupkg"; version = "8.0.1-servicing.23580.1"; })
+  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILAsm"; sha256 = "419b47fba720d504b04a6d1872e099c00e980cbff2f6159fe83bc3a940b79136"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ilasm/8.0.2-servicing.24067.11/runtime.linux-arm64.microsoft.netcore.ilasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
+  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "9b80514bf905f56a514de5afd9c1eef91f9fd5dedb25e7e2239094c8a57bd6f3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ildasm/8.0.2-servicing.24067.11/runtime.linux-arm64.microsoft.netcore.ildasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
+  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILAsm"; sha256 = "10a60x4005iqdsmp2snd16kg41h7pwmnmv3cqr2z1xx1qsn1w806"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ilasm/8.0.2-servicing.24067.11/runtime.linux-x64.microsoft.netcore.ilasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
+  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILDAsm"; sha256 = "18xk3y5402h8dsrd0782c67fc6fnsqvma5yqg596c7zw6abmcxdf"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ildasm/8.0.2-servicing.24067.11/runtime.linux-x64.microsoft.netcore.ildasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
+  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILAsm"; sha256 = "785a940c54f75b794310bcdd51f67438d0ee2c2d260a4e1e40f41687adf266f4"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ilasm/8.0.2-servicing.24067.11/runtime.osx-arm64.microsoft.netcore.ilasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
+  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "b19a0df8928e87f5199280a2f319748f9b6d0d1d98e11f859fa4fa4451101778"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ildasm/8.0.2-servicing.24067.11/runtime.osx-arm64.microsoft.netcore.ildasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
+  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILAsm"; sha256 = "cf16c8bf12013804ee51db42fea2a8e00fc2a031df69cbcf9f66872f65ff3c81"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ilasm/8.0.2-servicing.24067.11/runtime.osx-x64.microsoft.netcore.ilasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
+  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILDAsm"; sha256 = "70ef5edbba6ff1d178a2d698d966535c7cdce1ae4df0a1462a62526c71fd17d5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a65e5cb4-26c0-410f-9457-06db3c5254be/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ildasm/8.0.2-servicing.24067.11/runtime.osx-x64.microsoft.netcore.ildasm.8.0.2-servicing.24067.11.nupkg"; version = "8.0.2-servicing.24067.11"; })
 ]
diff --git a/pkgs/development/compilers/dotnet/8/release-info.json b/pkgs/development/compilers/dotnet/8/release-info.json
index 2a316ed2de944..fc625b40b5033 100644
--- a/pkgs/development/compilers/dotnet/8/release-info.json
+++ b/pkgs/development/compilers/dotnet/8/release-info.json
@@ -1,5 +1,5 @@
 {
-  "tarballHash": "sha256-OTCFPhQ9PHnQ0f7UzgHryEsBIaKCOm/L6pkURw/RY2s=",
-  "artifactsUrl": "https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.101-servicing.23601.1.centos.8-x64.tar.gz",
-  "artifactsHash": "sha256-RLrEPFkB9NvnzJFJ0zSFbGNpMKR4EsyBu3T/JwAxgzc="
+  "tarballHash": "sha256-HPRn9HFoVyqujLy/j+3pcrMcjBF39lhFYKf+SuzWbRk=",
+  "artifactsUrl": "https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.102-servicing.24073.1.centos.8-x64.tar.gz",
+  "artifactsHash": "sha256-q4eNkSKLfHOEoE5aePQag4jWWs1OPpXN3KEnBV1Ct4c="
 }
diff --git a/pkgs/development/compilers/dotnet/8/release.json b/pkgs/development/compilers/dotnet/8/release.json
index de0aaf95f3ebe..16ac31c08f44e 100644
--- a/pkgs/development/compilers/dotnet/8/release.json
+++ b/pkgs/development/compilers/dotnet/8/release.json
@@ -1,9 +1,9 @@
 {
-  "release": "8.0.2",
+  "release": "8.0.3",
   "channel": "8.0",
-  "tag": "v8.0.2",
-  "sdkVersion": "8.0.102",
-  "runtimeVersion": "8.0.2",
+  "tag": "v8.0.3",
+  "sdkVersion": "8.0.103",
+  "runtimeVersion": "8.0.3",
   "sourceRepository": "https://github.com/dotnet/dotnet",
-  "sourceVersion": "d396b0c4d3e51c2d8d679b2f7233912bc5bfc2fa"
+  "sourceVersion": "49a39629323839c28481dd42545ce44d11c75c5a"
 }
diff --git a/pkgs/development/compilers/dotnet/common.nix b/pkgs/development/compilers/dotnet/common.nix
index 0d8890e61da2b..e88ddfb3e37f1 100644
--- a/pkgs/development/compilers/dotnet/common.nix
+++ b/pkgs/development/compilers/dotnet/common.nix
@@ -4,6 +4,9 @@
 , writeText
 , testers
 , runCommand
+, expect
+, curl
+, installShellFiles
 }: type: args: stdenv.mkDerivation (finalAttrs: args // {
   doInstallCheck = true;
 
@@ -25,39 +28,109 @@
     export DOTNET_SKIP_WORKLOAD_INTEGRITY_CHECK=1 # Skip integrity check on first run, which fails due to read-only directory
   '' + args.setupHook or "");
 
+  nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ installShellFiles ];
+
+  postInstall = ''
+    # completions snippets taken from https://learn.microsoft.com/en-us/dotnet/core/tools/enable-tab-autocomplete
+    installShellCompletion --cmd dotnet \
+      --bash ${./completions/dotnet.bash} \
+      --zsh ${./completions/dotnet.zsh} \
+      --fish ${./completions/dotnet.fish}
+  '';
+
 } // lib.optionalAttrs (type == "sdk") {
   passthru = {
-    tests = {
-      version = testers.testVersion {
-        package = finalAttrs.finalPackage;
-      };
+    tests = let
+      mkDotnetTest =
+        {
+          name,
+          template,
+          usePackageSource ? false,
+          build,
+          # TODO: use correct runtimes instead of sdk
+          runtime ? finalAttrs.finalPackage,
+          runInputs ? [],
+          run ? null,
+        }:
+        let
+          built = runCommand "dotnet-test-${name}" { buildInputs = [ finalAttrs.finalPackage ]; } (''
+            HOME=$PWD/.home
+            dotnet new nugetconfig
+            dotnet nuget disable source nuget
+          '' + lib.optionalString usePackageSource ''
+            dotnet nuget add source ${finalAttrs.finalPackage.packages}
+          '' + ''
+            dotnet new ${template} -n test -o .
+          '' + build);
+        in
+          if run == null
+            then build
+          else
+            runCommand "${built.name}-run" { src = built; nativeBuildInputs = runInputs; } (
+              lib.optionalString (runtime != null) ''
+                # TODO: use runtime here
+                export DOTNET_ROOT=${runtime}
+              '' + run);
 
-      console = runCommand "dotnet-test-console" {
-        nativeBuildInputs = [ finalAttrs.finalPackage ];
-      } ''
-        HOME=$(pwd)/fake-home
-        dotnet new nugetconfig
-        dotnet nuget disable source nuget
-        dotnet new console -n test -o .
-        output="$(dotnet run)"
+      checkConsoleOutput = command: ''
+        output="$(${command})"
         # yes, older SDKs omit the comma
         [[ "$output" =~ Hello,?\ World! ]] && touch "$out"
       '';
 
-      single-file = let build = runCommand "dotnet-test-build-single-file" {
-        nativeBuildInputs = [ finalAttrs.finalPackage ];
-      } ''
-        HOME=$(pwd)/fake-home
-        dotnet new nugetconfig
-        dotnet nuget disable source nuget
-        dotnet nuget add source ${finalAttrs.finalPackage.packages}
-        dotnet new console -n test -o .
-        dotnet publish --use-current-runtime -p:PublishSingleFile=true -o $out
-      ''; in runCommand "dotnet-test-run-single-file" {} ''
-        output="$(${build}/test)"
-        # yes, older SDKs omit the comma
-        [[ "$output" =~ Hello,?\ World! ]] && touch "$out"
-      '';
+    in {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+      };
+
+      console = mkDotnetTest {
+        name = "console";
+        template = "console";
+        build = checkConsoleOutput "dotnet run";
+      };
+
+      publish = mkDotnetTest {
+        name = "publish";
+        template = "console";
+        build = "dotnet publish -o $out";
+        run = checkConsoleOutput "$src/test";
+      };
+
+      single-file = mkDotnetTest {
+        name = "single-file";
+        template = "console";
+        usePackageSource = true;
+        build = "dotnet publish --use-current-runtime -p:PublishSingleFile=true -o $out";
+        runtime = null;
+        run = checkConsoleOutput "$src/test";
+      };
+
+      web = mkDotnetTest {
+        name = "publish";
+        template = "web";
+        build = "dotnet publish -o $out";
+        runInputs = [ expect curl ];
+        run = ''
+          expect <<"EOF"
+            set status 1
+            spawn $env(src)/test
+            expect_before default abort
+            expect -re {Now listening on: ([^\r]+)\r} {
+              set url $expect_out(1,string)
+            }
+            expect "Application started. Press Ctrl+C to shut down."
+            set output [exec curl -sSf $url]
+            if {$output != "Hello World!"} {
+              send_error "Unexpected output: $output\n"
+              exit 1
+            }
+            send \x03
+            catch wait result
+            exit [lindex $result 3]
+          EOF
+          touch $out
+        '';
+      };
     } // args.passthru.tests or {};
   } // args.passthru or {};
 })
diff --git a/pkgs/development/compilers/dotnet/completions/dotnet.bash b/pkgs/development/compilers/dotnet/completions/dotnet.bash
new file mode 100644
index 0000000000000..56c599e4358d5
--- /dev/null
+++ b/pkgs/development/compilers/dotnet/completions/dotnet.bash
@@ -0,0 +1,13 @@
+# bash parameter completion for the dotnet CLI
+
+function _dotnet_bash_complete()
+{
+  local cur="${COMP_WORDS[COMP_CWORD]}" IFS=$'\n' # On Windows you may need to use use IFS=$'\r\n'
+  local candidates
+
+  read -d '' -ra candidates < <(dotnet complete --position "${COMP_POINT}" "${COMP_LINE}" 2>/dev/null)
+
+  read -d '' -ra COMPREPLY < <(compgen -W "${candidates[*]:-}" -- "$cur")
+}
+
+complete -f -F _dotnet_bash_complete dotnet
diff --git a/pkgs/development/compilers/dotnet/completions/dotnet.fish b/pkgs/development/compilers/dotnet/completions/dotnet.fish
new file mode 100644
index 0000000000000..2d5e2b5cf106f
--- /dev/null
+++ b/pkgs/development/compilers/dotnet/completions/dotnet.fish
@@ -0,0 +1 @@
+complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
diff --git a/pkgs/development/compilers/dotnet/completions/dotnet.zsh b/pkgs/development/compilers/dotnet/completions/dotnet.zsh
new file mode 100644
index 0000000000000..0d8569b9391b6
--- /dev/null
+++ b/pkgs/development/compilers/dotnet/completions/dotnet.zsh
@@ -0,0 +1,18 @@
+# zsh parameter completion for the dotnet CLI
+
+_dotnet_zsh_complete()
+{
+  local completions=("$(dotnet complete "$words")")
+
+  # If the completion list is empty, just continue with filename selection
+  if [ -z "$completions" ]
+  then
+    _arguments '*::arguments: _normal'
+    return
+  fi
+
+  # This is not a variable assignment, don't remove spaces!
+  _values = "${(ps:\n:)completions}"
+}
+
+compdef _dotnet_zsh_complete dotnet
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
index 47c3e21e51a43..2bbd36f57ea84 100644
--- a/pkgs/development/compilers/dotnet/default.nix
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -18,7 +18,6 @@ let
   dotnet_6_0 = import ./versions/6.0.nix buildAttrs;
   dotnet_7_0 = import ./versions/7.0.nix buildAttrs;
   dotnet_8_0 = import ./versions/8.0.nix buildAttrs;
-  dotnet_8_0_102 = import ./versions/8.0.102.nix buildAttrs;
   dotnet_9_0 = import ./versions/9.0.nix buildAttrs;
 
   runtimeIdentifierMap = {
@@ -38,7 +37,7 @@ in
 
   combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};
 
-  dotnet_8 = recurseIntoAttrs (callPackage ./8 { bootstrapSdk = dotnet_8_0_102.sdk_8_0; });
+  dotnet_8 = recurseIntoAttrs (callPackage ./8 { bootstrapSdk = dotnet_8_0.sdk_8_0_1xx; });
   dotnet_9 = recurseIntoAttrs (callPackage ./9 {});
 } // lib.optionalAttrs config.allowAliases {
   # EOL
diff --git a/pkgs/development/compilers/dotnet/update.sh b/pkgs/development/compilers/dotnet/update.sh
index 39ccfdf33b405..1b5d509455615 100755
--- a/pkgs/development/compilers/dotnet/update.sh
+++ b/pkgs/development/compilers/dotnet/update.sh
@@ -8,24 +8,16 @@ release () {
   local content="$1"
   local version="$2"
 
-  jq -r '.releases[] | select(.sdks[] | ."version" == "'"$version"'")' <<< "$content"
+  jq -r '.releases[] | select(."release-version" == "'"$version"'")' <<< "$content"
 }
 
 release_files () {
   local release="$1"
-  local type="$2"
+  local expr="$2"
 
-  jq -r '[."'"$type"'".files[] | select(.name | test("^.*.tar.gz$"))]' <<< "$release"
+  jq -r '[('"$expr"').files[] | select(.name | test("^.*.tar.gz$"))]' <<< "$release"
 }
 
-sdk_files () {
-  local release="$1"
-  local version="$2"
-
-  jq -r '[.sdks[] | select(.version == "'"$version"'") | .files[] | select(.name | test("^.*.tar.gz$"))]' <<< "$release"
-}
-
-
 release_platform_attr () {
   local release_files="$1"
   local platform="$2"
@@ -328,7 +320,7 @@ Examples:
     # If so, generate file for the specific version.
     # If only x.y version was provided, get the latest patch
     # version of the given x.y version.
-    if [[ "$sem_version" =~ ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}$ ]]; then
+    if [[ "$sem_version" =~ ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,} ]]; then
         patch_specified=true
     elif [[ ! "$sem_version" =~ ^[0-9]{1,}\.[0-9]{1,}$ ]]; then
         continue
@@ -338,42 +330,40 @@ Examples:
     # Then get the json file and parse it to find the latest patch release.
     major_minor=$(sed 's/^\([0-9]*\.[0-9]*\).*$/\1/' <<< "$sem_version")
     content=$(curl -sL https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/"$major_minor"/releases.json)
-    major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-sdk"' <<< "$content")
+    major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-release"' <<< "$content")
     major_minor_underscore=${major_minor/./_}
 
-    sdk_version=$major_minor_patch
-    release_content=$(release "$content" "$sdk_version")
+    release_content=$(release "$content" "$major_minor_patch")
     aspnetcore_version=$(jq -r '."aspnetcore-runtime".version' <<< "$release_content")
     runtime_version=$(jq -r '.runtime.version' <<< "$release_content")
+    mapfile -t sdk_versions < <(jq -r '.sdks[] | .version' <<< "$release_content" | sort -rn)
 
     # If patch was not specified, check if the package is already the latest version
     # If it is, exit early
     if [ "$patch_specified" == false ] && [ -f "./versions/${sem_version}.nix" ]; then
         current_version=$(nix-instantiate --eval -E "(import ./versions/${sem_version}.nix { \
             buildAspNetCore = { ... }: {}; \
+            buildNetSdk = { ... }: {}; \
             buildNetRuntime = { ... }: {}; \
-            buildNetSdk = { version, ... }: version; \
-            }).sdk_${major_minor_underscore}" | jq -r)
+            }).release_${major_minor_underscore}" | jq -r)
 
-        if [[ "$current_version" == "$sdk_version" ]]; then
+        if [[ "$current_version" == "$major_minor_patch" ]]; then
             echo "Nothing to update."
-            exit
+            continue
         fi
     fi
 
-    aspnetcore_files="$(release_files "$release_content" "aspnetcore-runtime")"
-    runtime_files="$(release_files "$release_content" "runtime")"
-    sdk_files="$(sdk_files "$release_content" "$sdk_version")"
+    aspnetcore_files="$(release_files "$release_content" .\"aspnetcore-runtime\")"
+    runtime_files="$(release_files "$release_content" .runtime)"
 
     channel_version=$(jq -r '."channel-version"' <<< "$content")
     support_phase=$(jq -r '."support-phase"' <<< "$content")
 
     aspnetcore_sources="$(platform_sources "$aspnetcore_files")"
     runtime_sources="$(platform_sources "$runtime_files")"
-    sdk_sources="$(platform_sources "$sdk_files")"
 
-    aspnetcore_packages="$(aspnetcore_packages "${aspnetcore_version}")"
     sdk_packages="$(sdk_packages "${runtime_version}")"
+    aspnetcore_packages="$(aspnetcore_packages "${aspnetcore_version}")"
 
     result=$(mktemp)
     trap "rm -f $result" TERM INT EXIT
@@ -381,7 +371,15 @@ Examples:
     echo "{ buildAspNetCore, buildNetRuntime, buildNetSdk }:
 
 # v$channel_version ($support_phase)
-{
+
+let
+  packages = { fetchNuGet }: [
+$aspnetcore_packages
+$sdk_packages
+  ];
+in rec {
+  release_$major_minor_underscore = \"$major_minor_patch\";
+
   aspnetcore_$major_minor_underscore = buildAspNetCore {
     version = \"${aspnetcore_version}\";
     $aspnetcore_sources
@@ -390,17 +388,33 @@ Examples:
   runtime_$major_minor_underscore = buildNetRuntime {
     version = \"${runtime_version}\";
     $runtime_sources
-  };
-
-  sdk_$major_minor_underscore = buildNetSdk {
+  };" > "${result}"
+
+    declare -A feature_bands
+    unset latest_sdk
+
+    for sdk_version in "${sdk_versions[@]}"; do
+      sdk_base_version=${sdk_version%-*}
+      feature_band=${sdk_base_version:0:-2}xx
+      # sometimes one release has e.g. both 8.0.202 and 8.0.203
+      [[ ! ${feature_bands[$feature_band]+true} ]] || continue
+      feature_bands[$feature_band]=$sdk_version
+      sdk_files="$(release_files "$release_content" ".sdks[] | select(.version == \"$sdk_version\")")"
+      sdk_sources="$(platform_sources "$sdk_files")"
+      sdk_attrname=sdk_${feature_band//./_}
+      [[ -v latest_sdk ]] || latest_sdk=$sdk_attrname
+
+      echo "
+  $sdk_attrname = buildNetSdk {
     version = \"${sdk_version}\";
     $sdk_sources
-    packages = { fetchNuGet }: [
-$aspnetcore_packages
-$sdk_packages
-    ];
-  };
-}" > "${result}"
+    inherit packages;
+  };" >> "${result}"
+    done
+
+    echo "
+  sdk_$major_minor_underscore = $latest_sdk;
+}" >> "${result}"
 
     cp "${result}" "./versions/${sem_version}.nix"
     echo "Generated ./versions/${sem_version}.nix"
diff --git a/pkgs/development/compilers/dotnet/versions/6.0.nix b/pkgs/development/compilers/dotnet/versions/6.0.nix
index ec7fd8d7f9972..a19d80e221a42 100644
--- a/pkgs/development/compilers/dotnet/versions/6.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/6.0.nix
@@ -1,179 +1,209 @@
 { buildAspNetCore, buildNetRuntime, buildNetSdk }:
 
 # v6.0 (active)
-{
+
+let
+  packages = { fetchNuGet }: [
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.28"; sha256 = "1nijw7h8f0bs5infzpz74f1p96y4da4fdfz21n2yafzr5468v2nz"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.28"; sha256 = "0gcqvj6489kdqp6hqs474xy11q9bgvbwvzzgb91cyigdfcgi4l1n"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "6.0.28"; sha256 = "087g7pwsn24fmvi89wnb6da6bvrmmml993jlxzv48kzv2cn1h53l"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "6.0.28"; sha256 = "0j6x01r1y93dfl9hk2p0cf8ir07rywymbn8y0x2b06dsd7ddbi2v"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.28"; sha256 = "0dvpbyl75jsb47bd1jqipwcf3dbr1n7q52hzx9zmi2k0f6b6qhf9"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.28"; sha256 = "1gckiccj04q4q970q4rk28zy0r6p2jw85pa86v87vaz6h9s65pr2"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.28"; sha256 = "1k0sprpp9vixpjwljzaa846lly73v76jpyjsq2ga1g8zkhbic6cw"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.28"; sha256 = "1f74b9zrilggqjy7f0jskqhx5f79cz4fy2rhd55ygbhp7wcdpiag"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.28"; sha256 = "08xbdwmlxbba3r8hv4zrr03h478y1p7wsjqfn0r6vbrja0gmr4xf"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "6.0.28"; sha256 = "0xglyd327iv817ddb6dlls86r7c07a9bfa1aynn1k8r74cc04nr2"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.28"; sha256 = "0hrvg4jnw5zrrr286savmhivmrak3xdm13nalw2n8nq1y8m60yn8"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "6.0.28"; sha256 = "00xwvq42ak7bi75n37a1y1ca10cpgafxg0v0dli6n6lwlgkxl9q4"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.28"; sha256 = "1hbsradqn78vy9sbfxlg0my3x8i7ba0ada6zx4k1gfffjah0wrk6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.28"; sha256 = "089kik2zh7brfsw126408qr30v16n9iichr06xw7s370p2f1iza2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.28"; sha256 = "0968c28disqgg5gpiw1fcvr39v5pjayfydka3d94qmp210swpaim"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "6.0.28"; sha256 = "0hzcgkhirmxmv4syavxfzhp0cyap7impg4ydzpjiz8mgs29nbj6v"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "6.0.28"; sha256 = "1sv2mdvjn5cpnjw47x2gjpaa78dmk2pw2hw5253c81l256npq39a"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.28"; sha256 = "0flj1r475s8671da32wkwjydv4xclkb6l13nmhzd9rn8gyj94frd"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.28"; sha256 = "0wvazn4mhhxfysmylr3vdzcbia3fykjs4v9wvq3v10xjw79hj6si"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.28"; sha256 = "1zz9qm8q7sc1174hpnhywiy4qx90nan32fz6gpj3zahl4lqnbg8x"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.28"; sha256 = "1jy8vxry3wpx4wmhffpgq6203rcmcr5c3wnaslpdqkvsmqaf2im8"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.28"; sha256 = "1h0fxhr6ix7vf85j2dl66mpvjiq2h3cf1fk29xki3pgq7yvxn625"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.28"; sha256 = "0i19fdh2j23kg3dw03sm29qmm4crkfbaf66d0vdf0jc1nsyd29bl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.28"; sha256 = "0rrdqk06qwv0x719diih2fd4jz8c0g1s4vap471vc6ncciyn1815"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "6.0.28"; sha256 = "0ffh1jcrg8s3ccl177vmadmnfgc5i50nhc98psh2rjmaxwpy7c9z"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "6.0.28"; sha256 = "1cja9vlyyssnc4bicd3d7ihhr75f6zyrnki3gafzpz4vir41zas6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.28"; sha256 = "051gagzxzs13fxiday9q0bcqd1jjqahjhcimgag3y8gq45y85vyv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.28"; sha256 = "11r60bb6sj4378nglkfask2459rnm0znqxdmc72npirqljcrm8m2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.28"; sha256 = "1bil2cv55689q7haxmngzwwlc11cdmqg6wvfp5azxb3ia7j7z7cx"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.28"; sha256 = "1f49912758lgwiidq9ys67m3nvx893xy97blqv9qkd7d43q2dvm2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.28"; sha256 = "1bz9sd4vn9crzpq2ir16abvpnm8726q3m7r4i3ibx2255ghma89b"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "1znl3zgxky51q8lzcpx4n672j775j26vw76yj9d3b55mydxl14rf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "00zva9hgrh90z6kjjimmvapqidizc570wis2skyqal6py30xrgzq"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "1ri7c7cgrg9dsyhdp4dxxb8zv1ynpfi0iv5wnl3jk0l32hrhpvac"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "075zw4402jj7gccvb143xqc8c1dz94xnfhg0vr161hk2yf969mvk"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "15hx223kkabf59abp23nwp87acd6scgvr3bpb2m0gl1spf3yqlxz"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "1as9hkmrp20ajy138nahz0w7cpycb34nglsiazbijiccn4sxl4vm"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "1xwsvi5d08b5hc7mzw3yyay2693vgk6lnj28r37wz9si1qijv0pa"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "08rki5pzmwsrpdala0knjs6q84dq84l6wxdm4mc6lipkr89rk08p"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "17hplsf4v9f17gs5zqmnq2x7vhrgr82013fpyxsgmqc6mr83cwlf"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "0crm28bilgr3gvns5slgc88pibr1yvcn8a4c7kg7arkdx2b3chfx"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "1c3n2q82dmv6c5hma47yp93vda00hfxnjqx2hza55l1vpdq1nfpi"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "0d417w4i9bm2nwff7kxlfa9i68iccl8kdlifz96byjmyab28i2nk"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "16vlxzkpp38f49ba3rc6rxchbqb99p6sw41xgrrmg5b0a300pg3f"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "0pgxv8ilpaknkwlffj1l7zssxf655vbmxf4i12frz7g0r55p1n02"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "1d7alwdwxa6czvafpy2qilw1jjff9zwqm939qzliny9lzdkvwv36"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "0ahinjfs5bdd5g2pd33mn04wxp7whlrbwxgc8ma6z722d1dvra5q"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "1k3zyy9za9y8fi8r48k71bkrk90hnqbriwvfidjp6d7c01fwsdr7"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "1fy60m4pfkp50n095znziwiy6iclhybg16rms2pzg37h24xdwmkc"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "0px9z62mnb1c8cd9d4w1jd3hw0mp5l8c4595m43s3m2dxwkd0ngn"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "1gqzsbfh8ybz96vmr2jldmx56p4mcx54am2q87adxrgz60b2bd20"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "07v5jy2sb4qy8bc7icwy29bw7vrks2bwmwn8vjnzp8530q7hwkxm"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "1mc2fn8s6mddrfrqmm3gq3bz3rvcisjhmfd5cp8n71avjq76g61m"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "1ih8p37hqf3f4n01dcpm2mryx8hm1c1qky64yzhsn60f7dpwj73z"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "1zbzs976qa1bsz7xzssmzkypmf128mvaqs125x6113nzwih9p4ys"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "08s1icklsixk1c6qfxkxcp1rqzsnjk242620qgbvkqpwgchfm74j"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "1h2jnjmkvqf6cqdhrq3a8cd38wp6mvcrscjnl5iqn4kq32cxikjp"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "14kza0n311ijv60l2837glkanj3r102mr9j1jhrmbsqy2zc67aa3"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "0wwfm53hqzhcrsn99b1kzn570fwva95rmnvga1lk3fbhd20ih33l"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "0l1y1392yckws78q3858zgf99c38mzq6kvg0xwwnmx7fj7mcnhzw"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "004qnpb3n7w4cl9cqns82y2ih3lad36kij8c014dxl9zc6mwhx5k"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "18irhjajqr6sdjmpkfxsc21qvli9zx0y4b2jdz21bwwazwfsas5z"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "0f4r6xp6wqy46bfnps22f8p0fc3rvvjj5x6m3qvr3mjalx3vs3nk"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "10xcqzwhlziawf3r3a9lpfd5fxvvp5qrky49f70qrysrlxvvylyr"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "13w01xl8m1v9m2jcv6xv26z4akj2k79875xnfyvsg75xa472px0c"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "0cs3z5cy7xxsfmy8wim7pg7yam2854f3a61vim1dhicvrhbmbwaj"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "00ry2d3f4bb5xmv88kgb0krpr2p5vci115cyp9zv16h0yvmsjql2"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "0790il44qrjs5bl0wmssyi14j7ymdrdx4l76ak31l0mrsha8a9xs"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "06g43041ny30r7q2pl10nnd0aabva3mqyw02w1a881c4aqlvvdx2"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "0qzvg9ng60kacp4h8k51ii63wc3ws8p612d1wa1r9jsxlwxyxjw7"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "176483y8s7m1937hgwrw49l5pkhpi9dnwxlakz2m3060fvpa51p5"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "6.0.28"; sha256 = "1dcf4xsw85wdr968flk2xz8bmhlkvp152zaxrfq85qvr3zzsj5lk"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.28"; sha256 = "1jgapinql35p836vbmia7vg3phh7kzrljmzsf9amn6yvl10lpjnz"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "6.0.28"; sha256 = "0g0ib4pgfnma1nfbh1xj6nl2mviwnrv1ygid10s63plpcf9h3dgb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.28"; sha256 = "1vh708i00i0504002bm2mkcx2vnj6yd8zy6ay2lix7piqxncb1n7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.28"; sha256 = "0wm4vww7w6darjbd7jxc2vyc91y6n6vqvmi8grd1p5s1h7dib14n"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "6.0.28"; sha256 = "0v7s8c4h0jwv0381gdsy5vng0ydr93s6z5qi31hdl4f28r95jarg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "6.0.28"; sha256 = "0jvgzjnn7jlqlsclhy7zrj9qjvhkb87fj7whrdvdh0iwg6gz5l3a"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "6.0.28"; sha256 = "0jfh4khdm1630i4rhv9zq6fkgimvkl38lrdpj2jak2xfirb99jpl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "6.0.28"; sha256 = "130131fm249wcmb05c40g2a49y6dckxzgjlkkgxzbk66zqa0vr74"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "6.0.28"; sha256 = "1ggh925a2b6a98jfv0px6m99gxfs73y1kw747pfcxc8b35mvj49z"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "6.0.28"; sha256 = "0569s938cg3fz0rrmmm9c2kysh1vjks1sj0z8sx4d8xyrj34m5vn"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "6.0.28"; sha256 = "1a0i9zic9b6ss7yp5pmm8fs7z3xyydczsf9na0v091w0vzr417j6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "6.0.28"; sha256 = "1mn9p861009x87mijanvhgaxakxxvnbqi90k0ghmwili1qzkrdx4"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "0mlnj3xkyjywkairca92065l0ph5gj1by7a5gs9xm9vvn1ycpn7i"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "0dr2gg0dbkjfwmh0zf92nr01s1lphn5canbxrgbdvkgb98vrqh9v"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "0any14pi6lm35g1mihvylnlxxqq2mw2c2sqdb9invprx3aff4s7z"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "0vh6bc5idci2z5x0xx5k05j0h69hx4nidkxbrxyy5j54ldlb9d5s"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "1vsxbrlysnpf8fl0l6xb71wrxpfvj68q63q5qj4n2qs5j2g7dk4g"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "1y045dxwzf4nij3jk6vdmmgz4wbfdshk9vxrsp21hkalvls5fw19"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "0qwiv67cm5zwscr1ixj9y9m48vsyjk8002yzrzck3l6gi46mrz03"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "06z3shb264sn8jkd1858qf01h65br6zbglaryjcl4bpijjv9i3aa"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "6.0.28"; sha256 = "0yjm9hdgcg8c6gx97yxdsrixhdf8a3bi3p7yj8wsw8nrqqhqdsqc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "6.0.28"; sha256 = "02nzwi4kihdbi25mji3qaz6r36fzwi9kjlfvxgcs3mwxbi06h1fb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "6.0.28"; sha256 = "0qspvbdmag4n7rl4dppgkrgkbqmg4lzn4g2sjcw3h6n7lk8m1x6w"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "6.0.28"; sha256 = "1pngb7vks1wcyinl3cnvx4n4kaqvajxksqi50lq71amkybxfdl6s"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "6.0.28"; sha256 = "0ksakpn1lc8ssl0l3wm5vfzm29lx32qd5kinkk754ax9p66fmf2s"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "6.0.28"; sha256 = "0mb73kzvm1l184f4kbbj7f7xzfs59lbf3ra0p0mi62bz663dlm8m"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "6.0.28"; sha256 = "1lsa2sdkbiq2ighk9rb9j8hyfr16pgklkm22fjlrj6gqzpvjwxpg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "6.0.28"; sha256 = "1y7mkbk21j18awmgvijgrphal6gs54lckbnyjm9rn6bjqgdgf4jb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "6.0.28"; sha256 = "12nwr4bb6zbdfbdd6lhs9bmyrxicdzhmcasyn69wmfs2jwa8x1xd"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "6.0.28"; sha256 = "0lxvh2yqjrsqgpys32hw6csa36dq3sinz5i6r4wl1d0f0z1mz189"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.28"; sha256 = "195ckzdi2jvisxl3bfxaq5fx5n7blwsgf5h23pr81zal935kcs94"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.28"; sha256 = "1f4d425hnc29hvqy2c0jnafjiz8kv36hdv8vdskj2nqymskhiqky"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.28"; sha256 = "0gm7dgbyfqh2dqmrbisvf4gqhhwp5r02sbp0ls46d2rqv9drwla1"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.28"; sha256 = "1whgwzw4gmwkk3x276fb0zjcjwdgpxvl6lykkwpdr86gi0f1s4ys"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "6.0.28"; sha256 = "1ibiypdzaacvjaskmjs74n33gc29d9rqsjmps136329bgxi790c4"; })
+  ];
+in rec {
+  release_6_0 = "6.0.28";
+
   aspnetcore_6_0 = buildAspNetCore {
-    version = "6.0.27";
+    version = "6.0.28";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/d3e6b8a2-f7de-441e-a3af-c18b7584034b/9f15be4d095b7bbb751222b4d68a17e3/aspnetcore-runtime-6.0.27-linux-x64.tar.gz";
-        sha512  = "47495e387c63b10f3b52065f40738d58b5b60d260d23cff96fe6beeb290f2f329a538c8065443fa3b10ecbd3456bdae58e443118870e7b5774210caf07c3f688";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/8e120ccb-35b2-461b-a791-4c439d2371f1/f64e4a1a25fc96ed90c9db839d7044fd/aspnetcore-runtime-6.0.28-linux-x64.tar.gz";
+        sha512  = "52675b81e026b4b673aedb2d9ee99a79ccb47eab090a059ef9b95615befc034ef7fbe674b01ae813870f73dcdbcfa32906969860a464aa5d356c004b6bfb201b";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/6be3e44e-1306-422b-845c-9313589bbeb0/d76f133799f6b2c8e3ea7dc9d92b7a03/aspnetcore-runtime-6.0.27-linux-arm64.tar.gz";
-        sha512  = "cafb52efb2bb646459c3d133a6968105867bbe0ef580318def47ff83770e1f180431f53c5a7899563b5c8d7fe44a58d423c8c7a4b3f29054010230fb47b1fa89";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9926d390-141c-449b-b66b-92592af1c4d2/affff3fb06b82ef6388f57f1ee5359a3/aspnetcore-runtime-6.0.28-linux-arm64.tar.gz";
+        sha512  = "932773d9aecfe3918c0479f44d5ca7d643cc7bbe632421ea78326605dd374e9df904f49a2c4279cab0af16be55f41c8fb8e04590aef55ce13c728f9a64d3015f";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/9c3628c1-8221-48e4-aff1-a3eb23bc42f0/4c6717fec81aa31dbc290af683087304/aspnetcore-runtime-6.0.27-osx-x64.tar.gz";
-        sha512  = "4cf70618e2f01401a26b05fd287867ba9b23498629d87bd61d3418a0d5191c0e07a16090e149e759072b00ee9860a4cf7260e6bf36e2d10ee19d0d4c2a39a5e2";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/82a75674-ecad-46c9-afb7-4cbdd9e5c464/f6fdcb021c3a7c0a7e7bf844eea1bb66/aspnetcore-runtime-6.0.28-osx-x64.tar.gz";
+        sha512  = "40f8a76d68a89e62c4300f4f111a9001be0e4664ab6bc07c6718e33a31768e6b8e2bf130ca561628c85e9e1718c26140a8b98465d78fd13471e580148cd1ae39";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/7127ff28-48c8-4f40-bd34-be86a2098a67/afad61df9e45650c995b92dd10d2167c/aspnetcore-runtime-6.0.27-osx-arm64.tar.gz";
-        sha512  = "1cc3d27ca26edbc30f24ea918a44414f0098481c6ad5ed5f19a5db1c1ea1ec3c412804233cc3e7aea481aee351be4512b40c554fd5b1807204a9dc22a479b9ba";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/eda70fe7-655e-4753-b185-159a9534f6fc/0cead75a722fddb6341c27da918576d4/aspnetcore-runtime-6.0.28-osx-arm64.tar.gz";
+        sha512  = "a713927fffc0335c9b25febbae1f75e8436e9b3d4b36fe4860bc104cac393e72164551260bb4804da282f3658c9c32a88ded87c47d1e2e83d436f932dda6cb84";
       };
     };
   };
 
   runtime_6_0 = buildNetRuntime {
-    version = "6.0.27";
+    version = "6.0.28";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/b4f214ee-a287-4640-991c-de80de4111d9/2672dee679fc3627949e8efdfff71e6d/dotnet-runtime-6.0.27-linux-x64.tar.gz";
-        sha512  = "448c4419e6c5b52e82eebaaf8601bbe668a0c8bb3293a6004125c7305b38072f7d2236ebffcaf4a71901b61b22ce66ae8b077af6321ba14729be385f228be04c";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/7299a5aa-2992-4ba8-80ba-4aab1d009fc5/4ed058593c95649e1ef63567829d99d6/dotnet-runtime-6.0.28-linux-x64.tar.gz";
+        sha512  = "5e9039c6c83bed02280e6455ee9ec59c9509055ed15d20fb628eca1147c6c3b227579fbffe5d890879b8e62312facf25089b81f4c461797a1a701a220b51d698";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/559c4240-f5e3-4d3a-a361-99c07c7cad11/a00adbf8edb12c3646ebf57bce84d1c6/dotnet-runtime-6.0.27-linux-arm64.tar.gz";
-        sha512  = "2e9772089ca8d548201d02542ba2013506530183ea6f52e8907afa608662ae967579add6d9704b75c22f2639667ef87682a7ce92aff05d51670e9354e52df1ee";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/05be959a-e55f-471c-ab03-75be0ac4fff2/65b05e51362a7a73621d17c718b8c5ae/dotnet-runtime-6.0.28-linux-arm64.tar.gz";
+        sha512  = "84b9b2d9e2e9c8f1f8a35b184fbe6883c469224e72635efdd1802fd4c24a56b672427ec016d8f57b7c1bed4342cc77b7af1a613b225b1259ccbe634e75799d58";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/54b2f9c4-2c1a-4fdf-9054-f295d3ae24f2/bafc4747c493d32bbeab6a5dc3cef4a5/dotnet-runtime-6.0.27-osx-x64.tar.gz";
-        sha512  = "c15275726882d2cbbfe8e76b05a9dd6e6764a5889c54b2e40eefd057e39f4c44c2da0909b890e27f463b47b08755a8b83657b6f67c77a460e3009554e85b4942";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d04355db-6489-4205-8ad8-f42ca21c1c21/193b2519cd202d9cd8129e62dcf9ec1f/dotnet-runtime-6.0.28-osx-x64.tar.gz";
+        sha512  = "29beaa0d6889163cb8629d276961650e230d6393aa735a36865d6746caf8c5bfdb827bc382821418b5ed6b3db5411497ae7b85e99413e189e754719c55ed7bd7";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/ac022bcb-1ccc-4e7d-8b96-6d0379bec761/3ac011081768ec18387dee520e42c540/dotnet-runtime-6.0.27-osx-arm64.tar.gz";
-        sha512  = "5394fb21a6c4748ccf12c47c3774ad3a193ab3dec263161bc90522bf3b2de3dd65c0102a33a9c946c2b88588fc1d6083ee4c9c683d173d7f371a98ad78591705";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3093e11f-975b-4c5f-ae9d-197149efb629/ceb685df67884156ea052c95d3b3d466/dotnet-runtime-6.0.28-osx-arm64.tar.gz";
+        sha512  = "708a1421995e3e64457f91685463bdddd6df22d21b6fbb430fc2c830f48fb6e785e6a575e923eb5fb21483a0f956b93c2c4905d149fa62c08bd4426b5e2e459c";
       };
     };
   };
 
-  sdk_6_0 = buildNetSdk {
-    version = "6.0.419";
+  sdk_6_0_4xx = buildNetSdk {
+    version = "6.0.420";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/8828b97b-7bfd-4b1b-a646-e55bddc0d7ad/e2f7d168ad273e78fbae72ffb6d215d3/dotnet-sdk-6.0.419-linux-x64.tar.gz";
-        sha512  = "155a9ab33dc11a76502c24b94dbcd188b06e51f56814082f6570fd923cd74b0266baefbcb6becdd34e41c3979f5b21ca333a7fa57f0e41e5435d28e8815d1641";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/b521d7d2-108b-43d9-861a-58b2505a125a/0023553690a68328b33bc30a38f151db/dotnet-sdk-6.0.420-linux-x64.tar.gz";
+        sha512  = "53d6e688d0aee8f73edf3ec8e58ed34eca0873a28f0700b71936b9d7cb351864eff8ca593db7fd77659b1710fa421d2f4137da5f98746a85125dc2a49fbffc56";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3b18aefa-0e14-4193-a167-35e1de4cfe46/acf2b230ae3ecfbc4d5f4c20cbf97b2d/dotnet-sdk-6.0.419-linux-arm64.tar.gz";
-        sha512  = "c249e5c1d15f040e2e4ce444328ec30dd1097984b1b0c4d48d1beb61c7e35d06f133509500ee63ded86a420e569920809b587ff2abe073da3d8f10d4a03a9d15";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d4704678-77d5-433e-97d3-a72b5a1f3316/b73d2c0c05f3df0c119b68418404a618/dotnet-sdk-6.0.420-linux-arm64.tar.gz";
+        sha512  = "6625ab63705bcdeba990baf21a54c6ddc0fc399ee374e60d307724febd6dd1ca4f64f697041ec4a6f68f3e4c57765cc3da2f1d51591ec5eec6d544c8aee4f9cb";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/f9e10850-734b-4267-8fd4-27a8e0f83cb9/1ac81544781feb8717c584d991f831c3/dotnet-sdk-6.0.419-osx-x64.tar.gz";
-        sha512  = "43d9ee7f63131138b9a8aed10ca6797256c029168a07c340ff7a5b2fb43ebf62efcb62a4bcfe669de2b57749223d89028e68bb45e9dfbc0d5341ad5f1bd0516d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/fd6f52d7-42fb-47a3-befc-a1458fe3d345/82d7e21a105b02acc768fdbfdcd2cddf/dotnet-sdk-6.0.420-osx-x64.tar.gz";
+        sha512  = "611c7a8b89575fa4ee4fbe345d002e953eceb208c7751d72764d9347c67a49b019d4e0150cac84b0b51e181c61efbcdb66a10e836ba4d94b89da875acb99a556";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c4bdba21-86ac-4c0b-8d65-c26459e115ee/8fcb7e012eda317486ad00d095cddba4/dotnet-sdk-6.0.419-osx-arm64.tar.gz";
-        sha512  = "9db6455c2bad80f8c8b312630c77700fd845203ba20cb7022671cf6a22b1663a1742e47eed7a384142a1d58388d8d736b4868efc5ce80b205c949e4ed5d71fe9";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/4a4728b7-96e6-48f1-a072-6906205e6a58/de54331936784caded5ecd5d10b0ee81/dotnet-sdk-6.0.420-osx-arm64.tar.gz";
+        sha512  = "b19ef70a71a5bfe78520bd790e1490b541791e02dc5331f9a00ef14abed7f5b0c3bdfa2f4595d0c312256431aa6eef0af63e6dc2b1d140408d3e7285bf452701";
       };
     };
-    packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.27"; sha256 = "0i70y4jznmwx4yak570mcpy8sg3myrxk32p0183d06614q8vr9bf"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.27"; sha256 = "078vz7l3sw25jxkhxf646hwc1csasna4n04rjq6vcv30c9kx3lp9"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "6.0.27"; sha256 = "13jaasca9yn89wn1pm007dmlfjvxf1h9m7wqi1ngjggbxd2cahlg"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "6.0.27"; sha256 = "0zqsh0kcnch9n9sg59iqwm5ws1bjg2vh3swlwjppw7fi6xw2w753"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.27"; sha256 = "0cdvdbvvbky0y60732j2n2jjycgpm2ngx38hl6zq198xm1d4g43x"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.27"; sha256 = "0r7qqwkqm9lraqwc25aadbg856v006h17yj8cxmp800iz7288k07"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.27"; sha256 = "15f1p32gkb05xlkv4vl2vnbj6q81r0x65cbyzinxacx736xr1wqm"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.27"; sha256 = "01ghqfpcpf54vw5rj81zjmhl4mrnq1lcwhdzr78wys0pjzdmic8b"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.27"; sha256 = "014m4kz2fx8xqjhyqj01x59y14wb2q6v6n723in3vrvj1a32a69f"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "6.0.27"; sha256 = "1pxpndm99k8cbaxfxwnw0qhsaz84hwkla1q8fd02ym98iqijanm2"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.27"; sha256 = "11sfm0vb8grybwdfzl9y3y1v9jg94rn3fpsf0995xm1qgk57piiv"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "6.0.27"; sha256 = "1b6jyx86dv6p2iwc6n2cyjfp11z6nw8x2vm03rdgy2lq7h9jyg7i"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.27"; sha256 = "11l2a80xxinf08m9i6jdy0nkjpdjs9llqb8gs7x0762cnyhds7la"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.27"; sha256 = "1qcbvhg6r7j407q9y5i0srprccpfwww153xrajipk6v3fwykk9rw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.27"; sha256 = "0p0apwm7xpwwvjl453livb8ngvc0izjp5yfpgv116vhig2mxszsa"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "6.0.27"; sha256 = "02fl061bfdxcb7md4v1xra0c6pfvsy9x6s05pz28km71p96qyykg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "6.0.27"; sha256 = "1ifbyf6rd834k5dzcfxdds2gacg3w3qb1gh1df5xb4262g68ryl6"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.27"; sha256 = "1vglh2l7brp6qbdngiiwsjwsp3cyzbzjcjw7dwqhfk0whc7n96kg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.27"; sha256 = "1kf3sm7hkqz5a4y5rb49yna10041f1h3lcqx885xlbhyb4q67gi9"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.27"; sha256 = "100557k9hhbldm670fs3p0wx51r0i57i1p3m1jxrhpp07n5rnmax"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.27"; sha256 = "1d217mgqcxkfq3kyxi46rqbfcwswxi1rhm512av99cp4g4i5w2lg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.27"; sha256 = "1pml11hgqmfy21hscracmmvi8y031jdwv89zs4hpiicxangvss9l"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.27"; sha256 = "00jl8jxhn9dxii2xf5lmssb03b2kwjsadxw1jwiniwv7l5lkma40"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.27"; sha256 = "1dxvssf7rx05bipj03g8jm36j2mmdm13sg8rdwn6aa6whbwpip0r"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "6.0.27"; sha256 = "11sy3bp7xzimicns0l8i0ivhvvxdvxbh5virglfhwckpfhz7iydr"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "6.0.27"; sha256 = "0b4ydsyi5a85vg5awgblblzhk49z8y64n7wqdkgidjq3g97qlvpg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.27"; sha256 = "1j913pm78h35kvcm70276cnfvjn1r7r6jsc3jm1y0vb395qy6nfd"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.27"; sha256 = "0dr1y76wgkqnkjxk5m8ps2g086sn4kp3a04v0ynarw5j0cipg994"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.27"; sha256 = "1ig2q3galhs866572nqa2b0vfw91lshaj502w3p5pqy28hvl74m9"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.27"; sha256 = "1mwzhgfi98hy65j8f0qwr9f134nfc33ddnj36b050222q4iv66na"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.27"; sha256 = "04dz9a8ddb7cm1mvl9plhsgznvzbq4wgy8dyg8jxvw1zgqa1gikw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "0nhmrbrvll5vqnk6gl8s0kgyg9zfdsmdbxphj0jd9lf096xwahrp"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "0xlkc54w9xr3a9xsmkyhk2qjfy9lrirq1xxhl1599ql1yaiph9rk"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1mj57llnfhasnzm9mmgsz8j76bqrkvqw28dzxp007c5qv9dd9jvq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "01x6zj8q3h1ddbsr2idj6acmnxh59bzb1f393fxplknm3naf1da6"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "04si4x3jc24p4nx3bgy7d246k6hyfcp2pzvbwy40p2v4cdcd7x06"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "0k3df5b2aqkhq59apygcji4i9d4k0wjnppsn0hlkqm9pxidgca4r"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "15i0j8rx6n80bpix8x5vxcqpxdhbciib3n22klj0nb5gfhqnd7wj"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "0l9hx0yjw1s7ngcwg9ad18lyd00hhnf12f3sk0mddhixzxljn6f5"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "0y793pg5y7n1gc7w95yd7slakfb8yplzjx186r2ifrad4p7qpd47"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "12xabxnpw1c24psqdd6gi8w7vqvid7p43pc7l2wcjnzggjsqz3wb"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1xv0kcp6ym5xsw3vkwaz457z0id3k6pyi39z6c20yr6g0cvc9rbc"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "0a80hs753mzzyfab6xl11jdb5kajszrhhxxpi1c6v3ppgi7vggyn"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "0h60p0nz2zpw1r4dcw41v8qh14r48gb0i77ggjqsspnw2xni18x3"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "16kp9g1y4y4zgz9ddcjik27cgsb7ywivyynlkzbnmzgn24hwgyk1"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1d855rhk8qv4fpzm683ri888s66v43kg6sqxflz4bz405s2a5ysx"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "153rxl7i7grl46mskfsnhhr7v7b5j7m42awr7v0d0c19qx6f5vaw"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "1pn50973cjm1qravx0sqb88k7rc7rgzar0gjlm6cwwgy93ds5bdl"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "04az07rqpiffwdgn90ifxka09wgabgh99bayl8kil595akaqxigz"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1nsg2pqz51ahgb75gfrqwbvxi49q9q742k40pqslwbwraspjl2nf"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "0z9217d2sfh8984haf064bqa81w4bcia0c3gdf39rjv8ilq664ag"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "1hma20dbppvzqwpfb50lkrdx8g007ix29h6hrimi6382y8v4vg6j"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "14l9dckj8q8rsbpcw6gjl905wrpr1w6rk76gxnxccvxjc28pb66a"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "04131710bvi5qg5qabbw54q34dsr9mg0xfxv6r15nlri31mi8rl5"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "0kh1ri99gndvrbnxqzpd3xlwjdjxdydamgjd5zbplbjsj16z4zlz"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "0sns0j30ppcj9ivz8nlxalxiak28gabb9p98gfnnyhp7izk4yzkr"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "1c7r1fjzkc76ls0qm3kilrq0wgygvyzynlx02r19295f3r601c8k"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "0bicffp7ijvdjiqci924jadf5jka5ddrbzrci46pjxnhrcpgb7vl"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "11dbh0yv0bxnvl713c9awf6hvz8z7xgll7xhawad4a4gv9vz9y87"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "1qdfyyqgr7bfh2bsz27qx4dm1m0cr12bb0x94gvr6wgjyk22hy8k"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "0c7chsjv4rwb1xyk8m0mf9z7csv1j4bpj10v3z5dqzzb7kk90zii"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1kvlhhwzklbwqz3vvhyi4xkapsl2xw14iincxb050vqzrrwwynrv"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "0f6qyjnnvql2qgqqwf7nm616klhgbnb1w5145nrayzs1z142q6d6"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "0dy3is2dzpwkybqinaa6mm7y9vblqf4bn090pbssshcq6yvqxjph"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "08yx368a44qjr2npjqs66pn3h79chzxmhy10yxjb6szk497mhqsj"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "0j6hpcprib6y6nga3bm2nkq3w6n8y58vzzgxwd3kaaj25b73wqa9"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "1xkaq7bknnjahn3ds3n9iqs8ibzd3k2274sk4366zkprlz5q5n1z"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "1ggc83318n3l5x4vi9p7vqzi9qvvyp8z3lrah9ynw7rp2kiz4094"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "0ih4wdq31g12zxx8799rgzi2wbrsprfsy65042k7vm605rz3f5y8"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1mpi59an3nifc52dnfgi20fsbc4dbps11l22an59g0gnr3dzd0j8"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "1jv1kaq4r3bqg51r4gvf2d9d079w2c5yq4np0qrib73v824gxp8z"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "6.0.27"; sha256 = "1i60hm288jaynx9cpgcvhb5spjbvspn8yr583qwyrrfm7hnfybr4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.27"; sha256 = "14zd7mgl866bhqqrcb6q3xbwrllks1nmfzhnbm8rf7h5cqqrqwbn"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "6.0.27"; sha256 = "0cysxz3ak4wgdb8ba3ggpbdqm4nn0c0wm37gx6cxnqrrz359289h"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.27"; sha256 = "1mbjbj9c7sxw0hfq25ypv56hi9kik3vrrvr8ika3wcwv1ilpvczj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.27"; sha256 = "15fwbjq2r406fq175j2lsh4f91iiipmvaq96nsba3q2fh0c433zm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "6.0.27"; sha256 = "18hdnp0r5z177fap9qwwwm4lmnv1vcg35k079j11g9d0935916la"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "6.0.27"; sha256 = "139hpnq1calf7hgpilkdpzzmzdrbx4fz8svn3y4q1ivgajqzpzj7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "6.0.27"; sha256 = "1dmdzmjncjnga8r606g2pcszh3sqlhfgjz8dp62v5i07327l65yl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "6.0.27"; sha256 = "0dyjkrvqald4dyabw5a4zvqdn7hz4x37ifjlc16h146vwqmlxrcm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "6.0.27"; sha256 = "0bswzvdy8nfd3wraja226j200a7qkpk3shs70hc3kwpr98bf92xv"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "6.0.27"; sha256 = "072yfx28hynv3hx0jrd47js77k7xlxx55x4yw1cjdzk24x3a2kln"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "6.0.27"; sha256 = "0xks0gvjlz4c0ys75yc1a0aivrb49yzvwq2ks06adwp1763h0lnc"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "6.0.27"; sha256 = "0fw86pzq30iblbqfm2y45r920fhp59ars3sdcn4f2kz9p2xkgd57"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "16fdjdy1lb82llxpsxf98zm2w3r0my46ddgdri7f93q7wwdhiqpn"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "1h82yr6mxjdgsl32mx0pzxlicxknf1sahzbbhmx7xl8fvlxw4f5n"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "0rn1l75ry5k1ph6ykwp3jh5nffvfyd3wv0hnrzrrhp86fpppf45f"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "076g4fwfxfa5b57b9zfwfriw761in9lzjasgk252f9gzx01za6x3"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "0pg2p7499b378gv41c85vkb86kfb4vrhhbsgzcc1w3726f58qsfk"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "0azr1zxg4wl6hz8pyrsrgjjhvrlvc3lzs9ww08vdcvqcjccd8p46"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1z1hhlqdaikdsh8a20xdpkwivdl3qca656xxx2ldzsg5zfrspyf5"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "0hh92l077fzgwjyy9b1v8vphcqrh0prlrjhvx7siq75ibpqyvk2l"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "6.0.27"; sha256 = "0wa03db8292s91sffzwscb07kvkg8zfy645mbflcvi3mi6pk3w66"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "6.0.27"; sha256 = "0hbq38dldjdwny12qy0cs3f68af2d2r5g1niwn8rjw1c4hdjaci6"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "6.0.27"; sha256 = "082pf381ayhrwy805w995x55jls3wpgmgqxzsnd63ij8q9l7j6bq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "6.0.27"; sha256 = "14lv78j411q5496lv6nw29ivlnf88882v7264zr2pfvrasms3i0j"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "6.0.27"; sha256 = "1r8g35f2x25nyimd3yrhrm2cbdqcdljmw59jy3mqsjz9h7kcj68h"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "6.0.27"; sha256 = "1a2rzh4005lpwv9sdzrvjdr89q0jjh5vg3h6zd008db5hj637hbn"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "6.0.27"; sha256 = "14b4nz7qf1rkbr2jrrhhay10qqv8jiz71rq5iymabik16m92664p"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "6.0.27"; sha256 = "0v397sn3z136y8dh3q5g1361sxmq15acsv3x86dxhn9rkxj50md8"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "6.0.27"; sha256 = "0ra8kr1xkk89lvy9ggkp25dc6l9z0zqi23hfwwqlyy9sc1fhwmwn"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "6.0.27"; sha256 = "04q8c0z44iqg3nx2nxc104al1hnmszk2hdirmjnhkm3ilqm8fhx7"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.27"; sha256 = "0ly1m46dm5zfxnjcbd8fv99mnlnzfw8mnlzw59ii7izixixm5a97"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.27"; sha256 = "1f55c522angyng8rd31hwjjyj1vkmxbzvl6nkfqsr8wwzlv7hgpv"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.27"; sha256 = "1s070v08j0vylcdpl6l59p0g5rrkqpbc10c4y16id1g6qfnpgq7w"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.27"; sha256 = "09d8c6mp1d9g3fgdbccvh3z75qc8mnrl1767p2ym2p0c6vin4893"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "6.0.27"; sha256 = "1zkmnz2a70ki50j7apgxk7q9b7x9qqcgn04pkdcaya1ig64h53cc"; })
-    ];
+    inherit packages;
   };
+
+  sdk_6_0_1xx = buildNetSdk {
+    version = "6.0.128";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/530c0041-ad39-4918-b658-9e8d9b0e3982/41efca744e6ae51fbffd51a8f546bb9c/dotnet-sdk-6.0.128-linux-x64.tar.gz";
+        sha512  = "0f282e8b801e37b762a8e0a8d98df8d0a566973f60b8d99d1f08622ebf00655d65d682d971ddeb0d3594ea3276382dc6e2a96de22e6b22e4122b57f0054906ea";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0041b4a7-e890-4fb5-8bf3-8d31cefed5ac/505c3738dbcd0a94edfa0af32afdc95e/dotnet-sdk-6.0.128-linux-arm64.tar.gz";
+        sha512  = "3bc341f842346f0fae948c4ff4d52a14c7ebe09aec8e76afd19f8441e52456f66fb32998ea19354053fb4994d38ac7b0572df39708d6e7ba53623a73138cf6eb";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/15f361b9-5a74-4345-b268-0a22ba7e0a97/8113ded4fff1234c307050e7b0f760dd/dotnet-sdk-6.0.128-osx-x64.tar.gz";
+        sha512  = "eb696e628a92ca18a841c23958e5efb0e0881299062301340786316db28f9e5b4ac60ea2d135f7b39933fbc88b37be315707c5dedec73792958ece299c5cee39";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d4b2a693-09e5-4f68-b9e6-5f0a0a3d7fdc/e3985f6d25d32394d0da5b259e79a438/dotnet-sdk-6.0.128-osx-arm64.tar.gz";
+        sha512  = "7bf615a8ee80839a46c1e6d70b34774ffe049f3a5a5d1a215eaf94c50a451e5c31e4f3bdfa5e42772f2735d541db78a68bed6330a2c68369237876ac31be238d";
+      };
+    };
+    inherit packages;
+  };
+
+  sdk_6_0 = sdk_6_0_4xx;
 }
diff --git a/pkgs/development/compilers/dotnet/versions/7.0.nix b/pkgs/development/compilers/dotnet/versions/7.0.nix
index c16de5c33d9d6..bb99ba1ea9976 100644
--- a/pkgs/development/compilers/dotnet/versions/7.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/7.0.nix
@@ -1,186 +1,239 @@
 { buildAspNetCore, buildNetRuntime, buildNetSdk }:
 
 # v7.0 (maintenance)
-{
+
+let
+  packages = { fetchNuGet }: [
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "7.0.17"; sha256 = "08ar7v2x9g0bnfcnn46jj6k61f7n2zf2gk3mw9mmqgzihhi077r5"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.17"; sha256 = "02x99bzgfcpvfnvspar5qdw0184k5g00v9ibpg7g034iraljknzg"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "7.0.17"; sha256 = "14cbdizjybg6icsyrnhqmbpbszwycgyqblqkhnkm23h5x3pjsl8f"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "7.0.17"; sha256 = "19cigrq2biql6a1hj2gggck8gp0a8qyk22grqfpq301xq9gpd81b"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.17"; sha256 = "08chy1p9mv3qxl10ml6dpj61x167ipdf61y5xx7hlwc6a4pas3x0"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.17"; sha256 = "0r7jd2p6i3yq1py72glr01j0f99h3idn1px096ql29s1snwzkvpd"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "7.0.17"; sha256 = "09pkr8zq9d3d1gvfwyv5smwl7hccg7dqh44mr7265736b9mrsg96"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "7.0.17"; sha256 = "08vygpnxnmh28nm9lbwm5w4xg4pmkwkdgsvx7w886j7prrkzn7qg"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "7.0.17"; sha256 = "0dgbmcdacma5xz5i0c91dwpl8kk36nzvi8z3n3iz6bnpmfaz0rbj"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "7.0.17"; sha256 = "1vgnd1ghs4barfb6ja0zvzqk612rsbjqmdq5klz0rp9w57pywjbd"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.17"; sha256 = "1mgbbbp6jr4fb4rl7dpa4qbpfkwhkfnaqnylk0vyw3rr2ryla5j0"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "7.0.17"; sha256 = "1qc15ygf2njgnd3i252h5w1bz73qdy59csd23k9ml41r5jn87g68"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.17"; sha256 = "173a4jzvcxqrf654wg2ravhqdc9yr4yjaw2dg0lcygyygb33gnhg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "7.0.17"; sha256 = "1w8ylvscpr1rjy2axlyxv17sjvk5878v3w29dcdma6p6ia6181is"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.17"; sha256 = "1fab8pym8mbgw8dw5gzr0bsqmjsalpdj31fwvyyal33bqcynf8d1"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "7.0.17"; sha256 = "0i7kcidqp0qcpx8mlgpbrizcmhpa5vwsb25d32jzd1a3jd5car4d"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "7.0.17"; sha256 = "1f5syprz551lh51b3b940nb73vh4bqigkyqrgxlfgi6bfvfcxp2g"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.17"; sha256 = "01bf8spy40sgks6glicsp17wcwah2dvm96n9p892iyyal4dwhsf9"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.17"; sha256 = "12fda37hj555vk1kp0nvrgb0pn2h5vym0wdl4zmplz5plalkrxfp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "7.0.17"; sha256 = "0axpazf00kpysl645i1vmfzhln4bnihld2szfamy2ic5m7db0rwx"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "7.0.17"; sha256 = "12bspc5scy6hh6ix8fkiwf2y20ay0sr9i5csqvnv5v19z49ylllg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "7.0.17"; sha256 = "09wak1ja4d1h8gq7yxx82qa1gpa20wbyx2b40a70ii18i9lckgv9"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "7.0.17"; sha256 = "1g66bbzsn26i75chncmfc0prwmmgvxp33j3i9q1yryxwmwwbgwbc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.17"; sha256 = "1blpmgp6a6xsghsgibmdjdm9w2kfjji1x869yxg5i2q0v3dwy4ga"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "7.0.17"; sha256 = "1zbs1w2b6c7h0h65168qwxzh14mdmglckjsfwhf1gdkmlwp17x3p"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "7.0.17"; sha256 = "0flx7vd8l93vsr2bc6w5pz2pwnlqyppwrp3ayb01w0xrcpqisrri"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.17"; sha256 = "0xigswggvnr72czhqscyixch2lhabx7amnk1ay5cjs4syshsczw8"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.17"; sha256 = "0zsbg3023xcgln2x8ijv8r6dcis8vmjjklpcbz8yqkhp20vm77hd"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "7.0.17"; sha256 = "0y3scq473wk85lcnsjb6bw6shg4qyshqabfz62df3s8cw3dylkja"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "7.0.17"; sha256 = "1f7n90bqzdii8w1xgk5bvz3hyrljpzcqfz545sxx5fbnh1xm9bw2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "7.0.17"; sha256 = "02jdvys715c1p0vh8601vdrjspg5v332qyl504qm5y8ygikcbvlb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1vsql26zppc7s1a0dbrni3rf14iqc1m41jgzzq5w9fnk9mqrd54k"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "0ixn3imwmbzb55prhqwij686c5gmcg5hryr239w29nqdfv4ym0sf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "0yvm9fzbin7j0rz67jqbqmlghmvjrh4m35970kwn8n7jrvyiprk2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "0182pgnc6l4lmmv9rcrxdmab14gv6aq7qx4yqn25y5q899ksr2wb"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "14gsvg0v345kb7nqkg9bmw12qk1w3s3kipw2w9rf9hc8k46n5gw0"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "058l5jixczxbzirsyh628jddim7j6j3qxby7ac143gyrccgpdc9k"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "1216lf35ynhl7f53by1fgyss5ibb3wdq2wm69sb7vv50yd8668w8"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "19y73178xkkl1m7fcp4n9x7xw7fxmrsmmim3zjs8vll18mzmmmlh"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1c5f6g8ysqyb5wzp3g01pmkhb6yddm8gyqb434f9m4m3b093r0hc"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "16p5zzmyrmisjpvd2r7rn2bqp0minplyf66fcxijy3b1wy3qrbg4"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "1m1ns40bxskq2pcxy4qzjcqw022gra0bgsv289pb19jvks9vxfbp"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "0lnwrwmsgy39w0s46x6x9i55lwl8bvdimbpfhlv0n5jgmiqnm3nq"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1wac2sv87dw0i81i6g8v6vdz68n173y9yknj3vic9vj7lab0rnyv"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "083rakqdn1lxsp7jz6hvlzi7d4p6jjjfv2k2jqbx298q4i8l5cqp"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "0pzwksyh1jzi000d8jb23073jdygyh19b3lnai05xz4g7zjbrilz"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "17vgqprd9mh8vrf58lidml0bixqld83sknffs7ahfk8wnvn00gh6"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1h438hmi68qp7rpxcn19rf036hlyfxch6sw21k4x5r0gvm5vbynx"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "06j1jpdnmr94m8imwqgj09mba73w7kjxkchb32ysy61f6rvbs66l"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "0mg628pr6ih221yqfah2bkv6ca4wvwyjs3kdm7kph286if5ncvgc"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "0z07cka23hj54ljs7cy0q2161zs0365jfp5ajkmcidpqp6gp1drm"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1fx17zidsx0ifq2mbszyyhl4c416xcqy1ssqgylqnr7a2lj39inh"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "0c9j01gb8bx1ww56g73753px9yy0knsiph5aaainfniqm9sxwrih"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "1s146rl4al0mbmgkh4mkkkp34gjgadggxk99gsgbfqlmbjm0d9m5"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "0smkd3ydd3fyjnkkiwjr82b7cp8vsn4qnfhv94k23ql5w1msx29f"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1d4py22hj8v992i166imkvav2x5qyja2345cisr1fi2c1sd7zcc5"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "0sxk5pjz8jzmgxd3k2xr6hxdjp777fj0qpblr3h7jskjqh4jsmpw"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "1iacgda97z7dahjl911qkpjqmkfqd0p5b893vi0nk6f4nmc7dr12"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "06nsxsadknqfiqhw7bhngwwzi22jam9lkhgv8pd4s3spfnlmgfr2"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1ixpfkcj338hxb5vlimvn308gkzgpm53ik4ryq80wg15l3hw1b24"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "14s7nv3l4ff1js9m9c1lzvvh9wp77kxmz5pvbhspkrpxl60qyjxi"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "1310ryri2jlqza9rc8n7bv7l9h7n8lab27ya2chs49iq90f71qmf"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "1blmwpy0wgwjykc538hksvshbij26d5dwp76swfc9m6f7i9fnwbi"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1q7ib8yplff0h5q5mxiy58fxliaz1c6jswq7gbqnr0fm52vvn9ij"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "1rlm27nrcl4r45k8nmrxx2jz41cd1z9jvxqj7904zvch6vbp1acq"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "18i9m1dik9mwy46594vy8bx41nkr0viwkcykkxljlzqiiahsia17"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "0vh5x7bc2fgvvz05v3jvlp7f017cyi2agi3h5cmh9mhm08ibsmql"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "01y99n9nnbdzswfsmylkxcn89gy8l659riv2nw8vsg9qi8aab379"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "1lvnd3kmd061wzsj267pbmghgjrmk4k6cj2z4w50y6yrxwixy5wh"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "0gm37a49vwrzl73d6nyai4hplc55jfylw7g025qx57l3092nk03n"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "0g5vj59fbchbywbb55k66bax78wxz950c1ky1zdscbz44khdajkf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "7.0.17"; sha256 = "0bpf3avhbmlbgwycph5ri6jli6i0sz796dpqf7awqd163xqxpd1f"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.17"; sha256 = "0mrlvqvaxqayp8r91jjgnacm61pqj9xa024kkah4flhsrsq7jzvq"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "7.0.17"; sha256 = "0pxw42d8d5bfvgxqdaqapb7w3c48ahdk7a1wwzzmxmfshdqs5h6k"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.17"; sha256 = "0yrjq96igpn5xpiynf376xx1yhygryx8rrg2j5zml953sb9wwnkg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.17"; sha256 = "1d5fvclmcsq5d8sj5c95dailnalrv9ncmqmxqrxac4qq6r096ihc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "7.0.17"; sha256 = "06h53xbwnfcw8pdpr1749jyi2mx05mi7x6726vasn376w11p02hv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "7.0.17"; sha256 = "06panjabpc48pr12f52v7j590yiw7pr3rgiaamfkspjhjac3cf9w"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "7.0.17"; sha256 = "1cl8dyf32qzas8z9yp7q7089xpx38yfcahnhdpalyvkagx2n78by"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "7.0.17"; sha256 = "0753xd5lwxgh2fdzv607fj9gav9pyskzy6kxq80y4f2x02ijcvyq"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "7.0.17"; sha256 = "1n846nq2xdpggwqg3gcig1hnw18nim94ycb4vrd2x9qj68rlm39p"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "7.0.17"; sha256 = "0p2gx2mhc1xm2xn1g3vkhs72i3vp2qqxjbfblnlhr9bql2mygvva"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "7.0.17"; sha256 = "16704wkgzz6njzcbvrhfw1m8lbrf7lg5bhwnsqc46kmm7s18913l"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "7.0.17"; sha256 = "08387qf7jf8wrrkrn9xc3hvl5qmfxv5r0dajn6q5lar852171afz"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1a327g4dfj0n0pi2sw69mlc0qbnnxpgcfn9d0zam75r6678dhb41"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "0ld9ldb1xv7b5dh9yls8r4pqy4nwg1wlcf24rcbzh77622hljcvp"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "00hk31alqqwdl417v3c98jwy2fjn38df17mrc5jr9c3gfdxa30y8"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "1xwks2qwgqmjl5yj5gpmbvwr9pnbxdlq717iw1075h02avjybywr"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1gl7sxwb2xwm4pnd1f9hfw3bq8pi0f4zfwr3rcql6a88vrvn1p09"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "1gx4swhsvyh31j852n4m91401vhfllwc75sqgi74ih9l03fywyyw"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "0z2zcmaycjbqhzjp6i55ndz43hggl6s2l0iml7s5rqsn8iw6znxr"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "1739qpgwhdc84jdpnhfki6dysi0gn3q17pbk2kqy1118ik0rsys3"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "7.0.17"; sha256 = "0d9kl3hv223sqnfnn5b8q7514wzn6sbkxzm2ypb2bqbr34adk7gs"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "7.0.17"; sha256 = "113h87sdgfp9pkk7j5mng7li01nc780fy0nizhva1k4ay7dv91f7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "7.0.17"; sha256 = "18jpmgkialz04q98h6b9kw2xd9h5j6rgssapvzx0sb11jslj53d2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "7.0.17"; sha256 = "1ignp0mfnpi8gy69hhn7as806vjq27j13spgn6f3anda75y5iqv3"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "7.0.17"; sha256 = "0pd2wkrfnl2898wqcgj3pd18fbssal5brjnyp743w4w45fj39jj2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "7.0.17"; sha256 = "0fin6di8yz07bh0b8lv2lbjahc513h6h8x4fsfvkan23qkdzh84y"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "7.0.17"; sha256 = "002959daj2pj8zr7i3hzmjh249bf36fa1z5zi5g3ydnpscd7y5gw"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "7.0.17"; sha256 = "1c1v0h71a9v5f3py105q7cp8r1h0ycvixn94r8vdh1y75yr3wrkv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "7.0.17"; sha256 = "1n1x26hall4p081wvpdgm1jgx85zrmznwsz6sdga7mg87dc9hvci"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "7.0.17"; sha256 = "0dx7s9fmm763fx23gl52jwin2aak2x8fbmq2vsl7vxg5j09y82g5"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.17"; sha256 = "1v5ki2g28sii106mnsnq0smch5fkviibndbnqin5h02n8b26n472"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.17"; sha256 = "03qclsxki7jhhc26fh49vf7ak8mg5a9s219y87mmqxd6wvql8nnd"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.17"; sha256 = "1dbljqp87zg00cgljw2qmni885j6k3r31ah9hjxszaijsw8147lx"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.17"; sha256 = "18lma1vkq839yx8dhg0wasnir508j19q4w1zcqhy7vi8j1z2mff3"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "7.0.17"; sha256 = "1gdjp8sn4m80ry4flxmyjzsk71axr282xdlkmkg814idf4qcr4iz"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.17"; sha256 = "1xnnf6fas1im8ccsp95qk9dj822swi66gkprza2q3mxgr7pdq2ig"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.17"; sha256 = "1zy6548yncxwhjn8ydl8p0gkbswqza14qypwkcgc69718l4d2ig3"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.17"; sha256 = "1d8pkl1kw4l0d9g7m0wnrfz4iz9mzpwafzi4hzwra9sjz03mwigc"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.17"; sha256 = "0bbvibqdr11wrlcvajl4k9jl4yjs8c2qjam9dkqrwpscp8jv8l5m"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.17"; sha256 = "00wccrip77zsr41g38h076wz9xzih1ix5m5naw5lqikg5919vmja"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.17"; sha256 = "1d9rb3r41zps3bfvjyay93b1nbk8klbmalypch50hdy640396dzp"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.17"; sha256 = "0565ifq7g1i3166w6vjwkcdspm8n0pq65ww740hzckz7zxbq5yi4"; })
+  ];
+in rec {
+  release_7_0 = "7.0.17";
+
   aspnetcore_7_0 = buildAspNetCore {
-    version = "7.0.16";
+    version = "7.0.17";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/cd076f88-c72a-411d-8d7c-a5ed352dce9c/fd020c0de8e056bb5c4a7ef6d1d983d4/aspnetcore-runtime-7.0.16-linux-x64.tar.gz";
-        sha512  = "1482c7c946c1b1a0a39f2bef4eaceed0a9b9eae44d3e8a103e6574b64391749d163ad4d65198573571885906215078ff41f53ebfc7884aa8a437c527532521f4";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c97c327d-c699-455e-8c98-f2bee01a9816/ac33d9589182f506d2c498b5e7d52bb2/aspnetcore-runtime-7.0.17-linux-x64.tar.gz";
+        sha512  = "a0cc7f76f24d123fbe787ff3b554736000c3f6b4f7b919819fb3039f6df4a15d28713a0a169c9493012e14afc3a0299f3d800d93d6749a70b567833ef3f3aeed";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/ce5326f4-7aa5-4463-b7aa-5be3a85387a7/940a239d2a0401a1c5745905f22d750b/aspnetcore-runtime-7.0.16-linux-arm64.tar.gz";
-        sha512  = "9acc4c8e99d9ff50f3f5e5615e25e30561a8475ca66332bcb93d3305aa68f1bfb142d21c3eb7cd07627c15d2e3abcfd4d504db617e7c662b83e2b76e4019b3d4";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/aedca120-d2eb-4b54-aef0-45520ebcf2fb/514dac96b582bcafc7eb238499c3fff5/aspnetcore-runtime-7.0.17-linux-arm64.tar.gz";
+        sha512  = "a5b6c6a262334506675447d157d7b4e5683c77715b74f97c9b219166bf9226a20d5194ff1c5eb8e17b625a17f8fd114da4b44ad19888760956ff735facd1d41e";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/7b668555-cb1a-4ec9-a095-a2f04c20a0c5/477ca3d9b92b53f4a2cf6fe3ad6859fc/aspnetcore-runtime-7.0.16-osx-x64.tar.gz";
-        sha512  = "f28ef3bf07682d6a85bf70c69159f66583fdab5de0b8f693de2b7477b55376ebf797e504f9d0026bfb24bf6f884d843363d3f42921c89b164d084c05288ec2df";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/2b87831a-9970-4bb7-8932-e84444b16429/e7f75f20ba9711a8c8a6b23272ec155d/aspnetcore-runtime-7.0.17-osx-x64.tar.gz";
+        sha512  = "040172bdc6a5ad63dee2925261650f0f4d00c7bb0200b64677e18fdd3877b8b3ce52fb68ab42842bcc4de36c5eeb28622ea483d48c245b9407905ef776971a9c";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/d549c9a5-79cc-40fb-a71d-e3a5e80dddf0/9f3abc8afdc5a110776f0b727e13d1cb/aspnetcore-runtime-7.0.16-osx-arm64.tar.gz";
-        sha512  = "ae2e61279788227908ca2308cc22db56c3bc9497f8544a009c33c669469d22909882c91758f28ea45ea0670211417300a448b431ea6b6079c55cdf55651af816";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ed189d17-cd55-4f43-ad0b-5b5cee85090b/835d867a5efb1236e1e17ee76af30e16/aspnetcore-runtime-7.0.17-osx-arm64.tar.gz";
+        sha512  = "384f571ed3e8f623760c37eb4d39dfd50e977063683e2c22e9366dabcfbf509af44a12d14da758d119778261c6d95580fa9eb50d3bdc5a216f69ff33364b4f37";
       };
     };
   };
 
   runtime_7_0 = buildNetRuntime {
-    version = "7.0.16";
+    version = "7.0.17";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/7329e982-d340-4e00-9a4a-933327710b9e/c578c156a3e2a94cc4e59447dd312c33/dotnet-runtime-7.0.17-linux-x64.tar.gz";
+        sha512  = "bf65378d4e9b1f14559dbe4a0bf5fb7e66fdf9a7bef9d109deccb22fae8a5cac9b5af5df4b67321dbd5f34764d911ba580c62b0456da648a57e94f82be7e4abc";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/7016bc89-6c69-40da-a8cb-50107f339810/41d1c8560655da79817eb31532570401/dotnet-runtime-7.0.17-linux-arm64.tar.gz";
+        sha512  = "f3a23da65f11bc43a4ea8722a872132a16d76982da1445b79fbfc8e5b2b38f904fdd22c986a0598d5565dbbf104b4e852ac2bebb7d79cefd20b9b5a1d40036f0";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/7055c472-e60a-41f3-b583-e3d95f2b0730/b099f5fbbedb6c1801465ea9b6f6e55f/dotnet-runtime-7.0.17-osx-x64.tar.gz";
+        sha512  = "d9a79b44c9e97e170ca5ff036f36ad64b077abfe3e5913c458f7de0ba55f56e6512ba5ed70bb4d9a056d3674d0efc41ca66507e5f977e1e291f815592f96fd1c";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/a5585224-b050-4e21-938e-f9c68e3bce62/7af1c98ed83514644337f17028282ae1/dotnet-runtime-7.0.17-osx-arm64.tar.gz";
+        sha512  = "62655e34a84ddb54db19fc0b51955171fc07c987777dbfa8d8abc370957829e4c7baeb64f9596f2a2078c04bb1843b4ca0601e371124f0016084622e68930c47";
+      };
+    };
+  };
+
+  sdk_7_0_4xx = buildNetSdk {
+    version = "7.0.407";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a1b18f18-1bd5-4c11-a9ed-b38ff8e5276d/c357409f720369b1eb5b6f183521ac95/dotnet-runtime-7.0.16-linux-x64.tar.gz";
-        sha512  = "e1eae1aae9088e8131317e217f4cd3059628cce847103775c61c2d641d19486168bede5fe3123668f81f35bdc5a41100cbb49126d55445e7f5c5c617e2ca3b49";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/bd9f066f-c0cf-495f-95bc-c3b96c9cf06e/ec93222e82bca1aa14590beb8a73625c/dotnet-sdk-7.0.407-linux-x64.tar.gz";
+        sha512  = "82e659aee7d3ab6595bfc141f24eda13551f5c5bd9048aad53ebe3963b8e25836ca07eb3d1d39d6adae145db399aab44ed57db27d34119e836202eb3af93c9e3";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/2d4227ba-2a3c-4313-a22e-216898a2ba28/6de108672de382cacb507d12874abacd/dotnet-runtime-7.0.16-linux-arm64.tar.gz";
-        sha512  = "4a38d656e22129605a5f156b61098f6eb598a88e1d6248577d064481e7f4632fecf9bb60580c266347b4ee60133a617a5528aa6fc789faee83e5cca5fba884c2";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/20d6bfe0-2d50-4f21-a074-a0c1462bcbcb/7300ba9d53182edea839535774cf9336/dotnet-sdk-7.0.407-linux-arm64.tar.gz";
+        sha512  = "94c5832ee830035a1329f28c5bf12651537c61b013d9f1afae2ef495f62b93f615c0940754a815f03612125683c242e98e8a9d28912b2eff26f44d998ed6e680";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/1f9ceba6-cf74-43d1-b595-79f77648c9cb/00af259fec984c4a51b2f34bbf86402f/dotnet-runtime-7.0.16-osx-x64.tar.gz";
-        sha512  = "0261d0f93dcb56a0dd7e506be16405c533964254924bbc8412465c6d12c45f07ca7cb61b1025f6d222fb881cdd7f19224a58699e19e21ebcd7f6df92e832a829";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0fb2e12b-4cb7-409c-ba65-91efbc7ed601/8846094f62316e41e44fd751e24264bc/dotnet-sdk-7.0.407-osx-x64.tar.gz";
+        sha512  = "6320463f19cd4448a361181b83f41f19f1e01dfce1d426be6f22cb42976ddbf83ba48c8dcf9440187dd4a4acfc65b7741d0757aad42263ca6a2df03d4a0db061";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/ddbf1eea-34b3-4b30-98c4-73ecc0493e43/8d15c0d6dada8fe863549d4ccbf04e82/dotnet-runtime-7.0.16-osx-arm64.tar.gz";
-        sha512  = "69e42aca2fcaf4f5f8787aed3e1db00c6c8a3b5ad83ce8425842222db6453d13cc623778d80fd39219ba6e553c8fe0326b3bfa3802de5ef19247cf1f07ee4a56";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/4d625ad2-9c2e-41cd-a21b-1de0a49128dd/2f46d764be06da15cdfe07414763601f/dotnet-sdk-7.0.407-osx-arm64.tar.gz";
+        sha512  = "84edf6d50264efff29f76acf714514140ed23a33a7e93eaf2c3dd7b81c9b6ae6a0c5d511d7d481ef1cf8a58202be68cfff90b7410f2f0d255c9811503370a79f";
       };
     };
+    inherit packages;
   };
 
-  sdk_7_0 = buildNetSdk {
-    version = "7.0.406";
+  sdk_7_0_3xx = buildNetSdk {
+    version = "7.0.314";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/57150757-56af-450b-ba30-8532fac51e0f/507247327723f24970f66f51554c18bc/dotnet-sdk-7.0.406-linux-x64.tar.gz";
-        sha512  = "5455ac21b1d8a37da326b99128a7d10983673259f4ccf89b7cdc6f67bb5f6d4f123caadb9532d523b2d9025315e3de684a63a09712e2dc6de1702f5ad1e9c410";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/1516b4b9-d63f-46a7-8ba6-00210f151ae2/b52b022eaaf287b82bf54f86cf3b4864/dotnet-sdk-7.0.314-linux-x64.tar.gz";
+        sha512  = "0f5ae49aaa7fbc63bf7a48837af6299120088e88a272c24176aa70a61ae9654ce15db0a9a7bc36219ecf8eef214ee711354e87872134ec71c32b4e2b90d88da5";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/67aad17a-4584-40ff-8ac3-0093c63105a4/472183e47222f475198a4b4a394036f8/dotnet-sdk-7.0.406-linux-arm64.tar.gz";
-        sha512  = "7543ab3197653864aa72c2f711e0661a881d7c74ef861fb1e952b15b7f8efd909866e99ea0e43430768db223b79d4e0285f3114087b6e009b5d382b4adad13fc";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/810aa235-29c4-4070-8318-b260245a780e/c85836039cfc38f8de666148d01936cb/dotnet-sdk-7.0.314-linux-arm64.tar.gz";
+        sha512  = "497e833385d62b9f835648bf9a9b1fa214274f9c98c306485ae5634622d3908c2990e0bd09d2950b4be491b5984748cc2f8a6e71814a44ec7f9bb608363834e0";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3a380401-9a77-40a2-a5bd-16c537f7e0a8/ad443240d2182d363d3b5ef7e22d2e46/dotnet-sdk-7.0.406-osx-x64.tar.gz";
-        sha512  = "c21e57b566364607ed17bd8032a48fd7f6319646a07265333147fd0de0f7cf9c862958537d08c0c5837d22fae144b4295363c689daffb538ee956587d2f65461";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c8f92913-14c4-440a-af7d-61b266718974/a85c1168ab1bfbb7794e333a0171d799/dotnet-sdk-7.0.314-osx-x64.tar.gz";
+        sha512  = "8c3ede3c1b0e8aa379ff054a830fb7f5c4364c5639352671aa7c68fe9b486f1f29cef83c3e99d24859a4e4757bddac4a94e4d98507e4f63e3075ebd3683854ff";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/188a79a4-50f2-4a36-b56b-6a764d5458c4/033b59ec3d8e0ab8d76ca6763be7ae5c/dotnet-sdk-7.0.406-osx-arm64.tar.gz";
-        sha512  = "a186477633215784f7dd50f4f82f4a08323ee0929dc5ac99c9c76a23c74b31b4de7ea81eb4f0b6223f02ae40f5a74fe6533c7989a4a0de6669882ae0065c71e7";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d8ca66f1-1be5-4d18-bf6a-ba0cb04235c5/cfa7141a76477bc066605bd808e19cbe/dotnet-sdk-7.0.314-osx-arm64.tar.gz";
+        sha512  = "3960968eb545bf8329ff5c0205dfe2a07ddf6985a62bb34916f09faee56a06f60aa3ebbf8bb0edd7309a1bc29ed19ecf92f63cc60dad44dff47abf6a4c678f25";
       };
     };
-    packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "7.0.16"; sha256 = "1jx0lrh2lj8bq9smcz3j04iirpnias10a0i7w8649lcg3xf0s50c"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.16"; sha256 = "0g4zxka97q3bdc72yql296hx2laim5b4rfb8vxmknzdpzj0ydiks"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "7.0.16"; sha256 = "12dbai7f9rvb3aidyc58sibkyz3wjjgfn94pzia8jrgysx43xnqn"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "7.0.16"; sha256 = "0nlfblnfwm8b9dxk1v6vvhx1bjsbxx0xdr8rv7lwnzzjy1jwiif7"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.16"; sha256 = "0zy1zarikg4d1g06ax3zdjvfysw2393b9fgg7xnracqi17hr38ah"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.16"; sha256 = "1ggcy57k31bxqk6k1hsbmzxkyly9bzch7dw7fgl2yx4a439nkh54"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "7.0.16"; sha256 = "0hxy9mc5g5504d0x1wx41dacw3sixifxxqlvz5ifrrxrfxv9aswp"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "7.0.16"; sha256 = "0j2fwc3pbxl1k2biwz76hv0vxkvnziw2hj2hnc7rdmyw219l9ad3"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "7.0.16"; sha256 = "18276lifx22vzz13r9l038cc9s3knqyy45jvmzjl2y6j4a1kb70c"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "7.0.16"; sha256 = "1q3xkgsx57k6q9rq0jz6jrxffyxm62lh61n3ammz6cdpbdwdx2gz"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.16"; sha256 = "1nrk00w3jkb1r3m8zn7c05snan02b6s7n5s93aq2dl9kz0bm530c"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "7.0.16"; sha256 = "02zbv3ilzvv5169v0ihvss6dlls9vl792d7cip9qd2x2b3vv3axp"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.16"; sha256 = "1wgmbbn81rbqlx44hg9zqrrcmiinss1qhgfsq37vzy2i8ycyn59w"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "7.0.16"; sha256 = "1w6r98zlksyls5cxp7dqf0l22lqbypwzhic6zcvynkjrfxv914x4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.16"; sha256 = "0wxa2mm34l32324rywns3bphxrkxm265wxck93z030klwvxdalri"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "7.0.16"; sha256 = "1vgfzzgn3vxs0lpj46bymix0ynzqxnkxgl56qsrqhr8myp5r09pj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "7.0.16"; sha256 = "07mi30j37418a27ibrq1pk2f8gm9bmbcl94z3hawhp2d4wvm0aya"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.16"; sha256 = "1xiq43br5lk1xa4d4wzhdpn9lz3mixmyxggzbsf4i4q5692rv35f"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.16"; sha256 = "1b8w278n8hcxysjs56ghx4pdbfall66nnmk1kx5a0my7lp7yp6xf"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "7.0.16"; sha256 = "0qqfjjka29fi986yjhins55h5zb4xdgdjbjdlv5dm725kp1fllm4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "7.0.16"; sha256 = "1g7cpyfcmf9q3qnz6isqng3y96b40z4n7gyjbxg557rcjni1776f"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "7.0.16"; sha256 = "1wqby5cfkhz55dgksfzydrs4li4s9xpmpan9ckjb5bp9n2gnl4fa"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "7.0.16"; sha256 = "1qs0h8pn0lhwriqrz19mpr17k4wz1baaysydlszqnnbprcx9yilj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.16"; sha256 = "1qb3pk1kgvwjc2n4kqfx4bqjmaihjf8cd9cfkqkkwmnnw9jd7f83"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "7.0.16"; sha256 = "05jy2w5sdkzlmad919fb8f7pj9jxx5br77jfxfasy407iqsb3hk9"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "7.0.16"; sha256 = "1g5cgagfkgwyfd07h4a4c9pgijvnw7w3cx7nlxr3m8zd902s20wy"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.16"; sha256 = "1w41xwdikkyplxr1kqfn1fwjvbglgsaripgdglhdx9qdxgr3nfi3"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.16"; sha256 = "0mghc3ihk2j60yyrb57k200ddmhj5impl81lldpxxx9821pb0qha"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "7.0.16"; sha256 = "0rrlnlv549008akl81wb0x22sbhrr8qrpag3w6pwa92fkyi4f20v"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "7.0.16"; sha256 = "0wmx9axb48ackmd51dyi066dxgkjp0zqnx2pa53gl49xdrs0msrd"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "7.0.16"; sha256 = "09s99ni88kh4znq2mljvbnrnmg987i66aibgpvsb3xzwnncmb6hq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "0fsaw2pfzsl3jd8z58s3xs9jrcssnbj0m67fbjcdmircgf8vk8dz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "0pa22gkjjniw5q4sq7i5jg4p73c2gn439nmac1zncsarbxvjyypr"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "0wv11navikqipxnd2dj500n28jai4gqkqzmkmcci0m886k05pkzg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "1b08nqx5fjlxnsibzqhlah5df03rxq0mwzwplaiq3pga2mj914zi"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "03qdqykh4sx9imimwy8p1g76dyvqp72174mm8498x0707h2g1srz"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "0588ax90h2hsivnx2jpspb8g67n36626rq429scggzcx8xlmsp2p"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "0qdz5nrhvyx7sjnx6mggzm0m72lqy5v33y1l8hgnk2639pcvpr1c"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "1lnw4d54g344aivyz347db01vg7r4cv3cw7nam9jbm8q6pva5wp7"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "19jw2aii4s52qp60ka5p1z7hfwn9qyz53gw1g0bc3cd02q74spg2"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "03nf68xr3cpadvgiyvdwkjmmhfsb527gdccviam4xwizh9ins8i0"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "0ib8hdlz9zfhn0ra2vp3r5kv2n2vrr80krx1qi1wjjd9sn84fnm5"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "06byb9vzpvfb32waspx8b7n4mbz04fsj808y1waxva4wxk31fkcs"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "0yj24v6vp38y74pwzdkyx4j2ib5md7d47h4ic5294sq073c9j8xa"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "1xkgk8yb3zigqgpnr28wwr4pjwxxnfnrf98q6jj7hpxwc8xai8j7"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "1d65bii8g3jd03xjgb5w6dxfxbk8mpqa4gcykpnp3v05sq9g25bn"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "0qxsrcw4781lc4hlqqd09hrnv2f5yhpzv3hg6cym6l1736ka5y7p"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "13aycnw2s32gw3i2nq0a9g1p7gly02516svzz8qmbp6f3cj36x4m"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "021p4xzb6l1b8dsvfwzqpshq82hgmqpccxlpkrs6dkkiwdx977xh"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "1qzkpdq5f206vxh21lm283mbrqr0kkpjz2b0c8hd8f1lvvbwa7qb"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "08djiaa81rakjb4hjl364ia8is76mbhp8lcqw4d4mz7n3d9hh693"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "18nhlvnck66vsn479f36jn1rxhc29r4xxkai6ff0h1advill3a87"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "0d61y424dz9zl2h4irimcvxwv7r2bvdxlnzx6zl44aa18flsi8ci"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "1psm2x071v3i2125dlljh1r3wyznvjlfkwzxv1h3vwl5195fgsr4"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "0bvhikschpxcp9jxiwd7n6shbfadwvp9ndrjd1hxylds5fbar1ca"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "1qpxb4d96j3ch9mwh77d50ifla0j83g2r01g69ad967ghzwyl872"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "07pil5vdaywhxc7qb7dzhmab02bi1ihvzb8dj9qn4a9009skgsgk"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "0jpkh1nssgiq6kwbzcx5mq2wpa146lj3x1fbix5dq9xzq6f8kdyz"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "1cq2qxds3fjcrk5km9zb95362f54cgvmhvnxxx7b5zh0jgi2aqzz"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "1dbqhpgm6137j2i20pmlzyk1ail6r29cfkshnci4hqij0lxcjsf7"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "1gws1vrlr7aj2317sd8vi7867ph9m806cszkxd59qhpvlsa61rk2"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "19gd4x7b21mk8zllr5scrh8d0p6cw1lak2njp7ywskvcafbj1bcw"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "1x82m3ja5jdimldc3nssxb14yz70pkc2sj9zr8vbab51j3lvmfcg"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "091v9nr2mpphnp4cmv1w9mcb86fhz8qg9nki6qh6y6q1rhasz3wl"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "0br0vl3a7fs6fg4897w3w43cw8ck21lch3vxf6jqz7qdjhry5a96"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "0jmzzwyp61s1dkk3apirvg4b7a2dvhfx3vqy1q2azs5hi734q7kr"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "1884ns4iyv7wa0syzxmp0jcmgr7m9x3z2c7bp3pdxxga9hy6gd3a"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "093znlbha6bqimv1v6wxm4s1nbgkzbw2iwx4av0f7sy4ipbhvg8f"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "0234x44hfrxlm3w8j4pbfk83jxpz4b02zfxqy2jvwyiq61qd77l9"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "0mn6wp6gdxgd76wxf07hd4j54iwqfl4mzdijw39aia0ihcaivf8k"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "1bd3k9q7zmw90wrwcza4sm14h1xa4lnlwm66myc2bk5a772i74r3"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "7.0.16"; sha256 = "02yfpqaznjkjd4xriiav9d8jxa71bw0wnhxik2522mzahfykrpj5"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.16"; sha256 = "0ln013191h2rkhm8xss4aqbb52ywp44rjfnn7pip99wdx66bkazs"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "7.0.16"; sha256 = "1xbr1pc937gbvrz92ijwbpxbpjifp3dyf5fq30yrhlw9rqy73b4d"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.16"; sha256 = "0xgd5nj5nx3w3m9cbh3b6r0c2w5svxjkslwqq35w445vjhq435fz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.16"; sha256 = "19lnkab2p8nkfc4jag0whkv51v3qabwdyzjk6xgj61i6s8lnnz1f"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "7.0.16"; sha256 = "1yccrsv4il1rzfnz1chf1irzyjz7mny95j0dp8r5macw6qyvr55r"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "7.0.16"; sha256 = "167kcrzmbhg974smd4ph4pcn9plhpgb4n8rc65i01ap2jyzllgz9"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "7.0.16"; sha256 = "1hmwj4d0axhs9nn5anvnmgpa9pj03b13mcfcskn3izcwdz8wp1nz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "7.0.16"; sha256 = "1mxag31556vd31wardb7dj28vy5cabblvhlvwq1jhy6ipcvzwkvl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "7.0.16"; sha256 = "0ba54vjlzmvzwmifw150phidz06vijzxnph50jjv5rs2vzjd2vfz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "7.0.16"; sha256 = "1p5kk30w9rdds765ya6fl4b785maf21xks8favjshkaki5n5rwm7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "7.0.16"; sha256 = "0s4bmbb8rpk20x54iyyzc45fzmmi0j0fw5m8s06vrl756lqwn0av"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "7.0.16"; sha256 = "0x7pbzlk2rhnww0ja5x5xz9fqxxx6rdv83cvhnkw5gfvjy3y4gr7"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "0hww2wdvqpjhznl2m8a1hqmhv2gagym63b56ffwkmjqmg6d77n2h"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "1wly691zlazcj5978wv44z6m371fim9ahjgkjkr1ap0bfks5j8py"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "0xdpgibmkcicga80xb7s8msa2l4jhskvg8q7455pj90dlmx7w0k6"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "1n0cp4wykirh9rw66qjdqp06m9qdp76b130ra8rr9ylhiidhwhx6"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "1pjwzk3a7d8i0p1jl190vq7iyyy8wi5zdm76zxxmn032q77ywsgr"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "08h23dfkfmq572lckbqzlxnx1ahy80n8kf0s6s80sm9sv4vcp0ys"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "09snx65nfb865b1nv167lvqjw678zqbhgxgdbfrv78kisg93xn74"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "0qdpmnnpfpnjgfdpbjh4fwzcciqn04d4wbwrz02fh1bcqj4p7q7v"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "7.0.16"; sha256 = "0i0cnv001kzx8rw83kaa5lzqv1irm1m41bzkx7i81ng0mkswvh5s"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "7.0.16"; sha256 = "1n1mwx3bc0fxb722sc2gkhpcixsgii2c1081vdzcr84vkz048bv5"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "7.0.16"; sha256 = "09mkamk7y6nxc7z5pb3c24jyhgnc7mbdbp089hvggr940sgwnwma"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "7.0.16"; sha256 = "0kgccsa34pzxalagkj7lxf1d01ikacpbdjwkj3g4qj3nmcjjcv5s"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "7.0.16"; sha256 = "0brd887irlf2f8nnpi3crsbxnh3jy7dpljpakv6sjqsfmh21vzvf"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "7.0.16"; sha256 = "08xbf1r3yxi5p26zbqk67ib7x2fiag82rhsd9bw27y28r0yrgjnz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "7.0.16"; sha256 = "0hb8gabxpzggzi9b1yswbcjvd2cp8bln59yrzjb88xv1n7rb7zg8"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "7.0.16"; sha256 = "04j5ngl1dy1l70zswl3ph9mwwij5yj99zlbxvnij59pa6vqhnd9w"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "7.0.16"; sha256 = "0yc9dfnmvqb5grwv75c5ixz42l4lkqb326pi362k910rhqdg6rgd"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "7.0.16"; sha256 = "0zzsfzd5chf6fygsj9mfzaiyxi4ymg6ndr6mgpr5qb1dvkxyzgj9"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.16"; sha256 = "1njsks3g2nc83inpj0jywscy6lv3rbs3zksnrg8pcj3qkx4dydph"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.16"; sha256 = "0kl9wrnf8d8k72wfyk6kg247s41h3ad64a2zw6b3crzyp8g0kyy4"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.16"; sha256 = "1phmdcih3a456v8l03hr8mw58vb8zza7f94i2zwf8833azqp64hl"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.16"; sha256 = "14s0099y3ilr75p80zzvawdcvs2isadavhgi4im88nswnljc40qw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "7.0.16"; sha256 = "16fzqj99z9fj8x3vjmwa1iwx5bvnyk6wkkznyax0222v9cfbcim1"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.16"; sha256 = "1hsx2mxpwxwp6r1akh8dxqnzqqzlr5xc0w4i36m5ngacjficw3a7"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.16"; sha256 = "10gympyxph3dfdjf0aznmjxw8jiyj17ffs0bxrriyyvys6h386aj"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.16"; sha256 = "0311aapybm1qbqxqgdx27a2lmic8ngqp9m2m616jirj2c1qipdq8"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.16"; sha256 = "0r2n2vkxv8cfcczi900k7wdcg0jaxsw789mla192zw1d80xx5k35"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.16"; sha256 = "07ad9kd1p0wwfa2cr7zs0bzqzcbrzspxmrflg06vyzzcagckz3lx"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.16"; sha256 = "1b0canksc2q34kvngshcqjxvb9lm76vg9z8fj3k40vjbchybs297"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.16"; sha256 = "1pj35db9gwg37ip66rhvnv3jvxhq1v3sz3ilrlhfa3s1bmws3awk"; })
-    ];
+    inherit packages;
   };
+
+  sdk_7_0_1xx = buildNetSdk {
+    version = "7.0.117";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/6cd9009e-085f-4378-9e52-bf217b7ae7c8/a241e54bf3bb4c028ff3ec36340a9506/dotnet-sdk-7.0.117-linux-x64.tar.gz";
+        sha512  = "9448f187d8912bdf036b996ea8890292697206e14d171c231f4bf3e5b6f1b317eb9468fcf76356fd2d9532693e36c1a3909f91cafbeb9f82911c836131a72e39";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/40cdf4df-bfb7-4b0e-a178-313201bbd11b/52d9f2b6f7bf4c4f9adf738fb46d9458/dotnet-sdk-7.0.117-linux-arm64.tar.gz";
+        sha512  = "2d9e071727d0da836cfef4f46bcb546567c68cf37196d58335b6245fa4152bbce835bae60eda3afc87d478becf65f2faeb88afb815e66cf3399b0f654e278bb4";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/674cf162-da19-44fc-a9c1-e0fe33fafa27/e08a19628c1901e66575e7d300aa6b13/dotnet-sdk-7.0.117-osx-x64.tar.gz";
+        sha512  = "b394d3cd901db197346bbea28969148e2ae29c1bc506ca2f1b0cb50c30605ec8191261ec02387659d8da8a474736b0afe56e423680f31f14feed8606e4df4d6c";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/a669acce-bffd-4591-bb89-270800fec424/38df8b4002a3bb5a8ded21a8f77f4173/dotnet-sdk-7.0.117-osx-arm64.tar.gz";
+        sha512  = "fa4ab2acde6973f8b741f56f3706e36556522691cc903877d4519274fdaa3900659afa32c81b0771a755e14ccc4a53004cbeb036af8586a69e0c2690bf258085";
+      };
+    };
+    inherit packages;
+  };
+
+  sdk_7_0 = sdk_7_0_4xx;
 }
diff --git a/pkgs/development/compilers/dotnet/versions/8.0.102.nix b/pkgs/development/compilers/dotnet/versions/8.0.102.nix
deleted file mode 100644
index 2cbba9f84f37e..0000000000000
--- a/pkgs/development/compilers/dotnet/versions/8.0.102.nix
+++ /dev/null
@@ -1,179 +0,0 @@
-{ buildAspNetCore, buildNetRuntime, buildNetSdk }:
-
-# v8.0 (active)
-{
-  aspnetcore_8_0 = buildAspNetCore {
-    version = "8.0.2";
-    srcs = {
-      x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/d6d79cc3-df2f-4680-96ff-a7198f461139/df025000eaf5beb85d9137274a8c53ea/aspnetcore-runtime-8.0.2-linux-x64.tar.gz";
-        sha512  = "c8d4f9ad45cc97570ac607c0d14064da6c1215ef864afd73688ec7470af774f80504a937cbb5aadbb0083250122aae361770d2bca68f30ac7b62b4717bee6fca";
-      };
-      aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/bdfd0216-539e-4dfd-81ea-1b7a77dda929/59a62884bdb8684ef0e4f434eaea0ca3/aspnetcore-runtime-8.0.2-linux-arm64.tar.gz";
-        sha512  = "9e5733a0d40705df17a1c96025783fd2544ad344ac98525f9d11947ea6ef632a23b0d2bf536314e4aeda8ae9c0f65b8f8feee184e1a1aabfda30059f59b1b9a6";
-      };
-      x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a44da2c3-cb74-4ffe-af5a-34286598a885/263f113228e88df3f654510c9092f68b/aspnetcore-runtime-8.0.2-osx-x64.tar.gz";
-        sha512  = "a7edf091509305d27275d5d7911c3c61a2546e0d3b5b0fe9fcb9e704daf3c550ea0a5ae659272a29b5e218d02f28b7d331ab0905e9459711624692f1589d7285";
-      };
-      aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a5692569-6092-4db1-9d5c-4862265a7b5b/7173de926da466e21ab9c7666a31dee3/aspnetcore-runtime-8.0.2-osx-arm64.tar.gz";
-        sha512  = "9e79556cf58f9d0b0f302a50ef9724122a9b18daba70e715b7334f9ed97a4983be0386e4132f5273d120f00d18f8af8a8ad7ea1ef0a82c610e268a33e76a30e4";
-      };
-    };
-  };
-
-  runtime_8_0 = buildNetRuntime {
-    version = "8.0.2";
-    srcs = {
-      x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/307e4bf7-53c1-4b03-a2e5-379151ab3a04/140e7502609d45dfd83e4750b4bb5178/dotnet-runtime-8.0.2-linux-x64.tar.gz";
-        sha512  = "f30f72f55b9e97e36107f920e932477183867726a963ea0d4d151f291981877ba253a7175614c60b386b6a37f9192d97d7402dafdad2529369f512698cb9d1dd";
-      };
-      aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/9de452db-acbe-48eb-b3f0-305a4e48e32a/515bbe7e3e1deef5ab9a4b8123b901ca/dotnet-runtime-8.0.2-linux-arm64.tar.gz";
-        sha512  = "12c5f49b7bd63d73cae57949e1520eaebc47732f559f68199ecd3bcca597f2da702352313a20aa100c667ede1d701dc6822f7a4eee9063d1c73d1f451ed832ac";
-      };
-      x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/414af43f-fdc6-4e8e-bbff-8b544a6627a8/0719a2eafa1d0d5f73ee0a7aae4ce670/dotnet-runtime-8.0.2-osx-x64.tar.gz";
-        sha512  = "e8945057f5fdf55994675caeff07ff53ba96324edbfe148ea60f58c883548be59cd1d891552b55ed5a594c1cfa549bd783ce9e25b5467ae48ab3f97590f36003";
-      };
-      aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c7b73f69-39ca-4d2a-bd02-a72abb3a4fc5/6d68aa25f4576b70fff4925fb4e69c4b/dotnet-runtime-8.0.2-osx-arm64.tar.gz";
-        sha512  = "c410f56283f0d51484d26755349a7b62364e2c54650c87dcee6fea0a370fa84b14b4ebc8c5e121e2b3ea4f0ac2880ebe40a43bcb02aa30ce360fd0dbc12fbfbb";
-      };
-    };
-  };
-
-  sdk_8_0 = buildNetSdk {
-    version = "8.0.102";
-    srcs = {
-      x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/672cfd95-c7fe-42e3-8b68-30c74f7af88e/ecdaa65fe42b6572ed37d407c26de8a2/dotnet-sdk-8.0.102-linux-x64.tar.gz";
-        sha512  = "f5928f5b947441065f2f34b25ae8de1fbf7dbae2c0ba918bfb4224d2d08849c79cbdc1825c0d42a5822f12757f78efa58e295a8ee0f0e6fce39cc7c6ed977b8f";
-      };
-      aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/23568042-614a-41d3-a6b9-51e178e42977/cb1e1f4f5fb5d46080a60cd14d631660/dotnet-sdk-8.0.102-linux-arm64.tar.gz";
-        sha512  = "5e0b5762ab2f038de50859a2e18a3964ea6b754faa01d72f9824100546a271148908e84d666bb63d25e5d9a92038bc8a2f944d0342bbf8834cb5d5e936878c76";
-      };
-      x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e60574bc-0bb6-45c6-ad3f-5c5fa29c75b7/1d903893164d767b98e9998153ed4c88/dotnet-sdk-8.0.102-osx-x64.tar.gz";
-        sha512  = "963432c5c7d7d0b204a92248c61d1be227369c6bc1d47f977c913c416c61584451fd05d0e95a6fbe51f0e1958e1c1a71f2530f478dd036ed2b0e123944b3ce00";
-      };
-      aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e89e4d12-89c6-419c-a2be-9b2ec96b209f/0f393a6b611b26d7e4599694dff857e2/dotnet-sdk-8.0.102-osx-arm64.tar.gz";
-        sha512  = "69d702b561ae7ddf4c47fe228c16472fd8d7065de1a4a206fc07c6906db49e7da25b21c06f0ef080f41658aeddc0f3c0a23ce1de7e65b830c308bfe13cf95fe8";
-      };
-    };
-    packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.2"; sha256 = "06s21b9k4niwb2qlrz4faccfmqyxfv08vzd85izla3zjxmqv3jxb"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.2"; sha256 = "1bxsrlsyvia4v3fswxl9pnf9107zwf1n1hlwffyxs0kd5iq7jabr"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.2"; sha256 = "14yysn896flzsisnc3bhfc98slj2xg3f5jr39m62w2p54km0jcrj"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.2"; sha256 = "1486lnpn9al764f4q9p2xry38qrk1127m62j5n8ikcx8iazrbkqm"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.2"; sha256 = "0fh2lvjrl41r1r4q3v9mylr16arb190x4xs0m5nsg6qak93y6pip"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.2"; sha256 = "0ihhhsypb0f8lffl5lbm4nw0l9cwcv6dgylxbgvs10yfpvpix8av"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.2"; sha256 = "1pfwb7j3gg62z10k799w2hr8yqmiv9gjvqzw6g72navzk322901s"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.2"; sha256 = "0anifybcb7yipazd0qsiz6g1kj7liw6qz3lmqhkw3ipbr0zip0vv"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.2"; sha256 = "0ag84bb4p9w41njyf7yh5h2wgz49qgx1xzhb6q4ls0m03mknp2g6"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.2"; sha256 = "1iv12b2pdngn9pzd9cx0n7v3q6dsw8c38vx1ypd6fb27qqwrdrr6"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.2"; sha256 = "1a0zy0sfd4k7pwwk7fkgyd4vph91nfbxhjzvha96ravdh8isxngx"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.2"; sha256 = "0xfwnqbbzg1xb6zxlms5v1dj3jh46lh6vzfjbqxj55fj87qr73yi"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.2"; sha256 = "1217mw4mw978f2d84h0vf0bbzl55kp8z1n4620rphqh6l4r1gr52"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.2"; sha256 = "1pi4s9sn64cyvarba1vgb17k92ank7q95xmn7dz9zb1z9n6v19hm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.2"; sha256 = "13ckd4w7ysa5ay5wmklsnws7hhzw6nnlblhcda7r11m0fjfly6lr"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.2"; sha256 = "0vy2r79sgr6p665943rb44d1m5xv8m6h96rqlr03g6ipk1gzz6xw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.2"; sha256 = "1kbdpqfq64h3dy2mj90sfi2pjks77fmp74fqkvps35fh3lacb3dq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.2"; sha256 = "1xlnlp4ckqn0myl5pzsqhmpall1pnbmqhb62rr7m61dy83xhvm6l"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.2"; sha256 = "131kgy0787a38zmb3y002yr1lrnkfc4mk2xmh8jx5pqkl7bp5p67"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.2"; sha256 = "1p7152v1wyhrxh1mqq29bm06xcfilzngr89cl8kxv5lcars3yc00"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.2"; sha256 = "0yyix9cypm53b0q6zfw5bqbm18x2s54ns7a1w7apxfzs8cckjfp7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.2"; sha256 = "0j31y9qwcm76zsxbid52zn4350sbq489pa7znmkzdrxgbcn19dmq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.2"; sha256 = "1g2n69s8sa9ik9jhkc6xcdjcvghwr5m9glbxr1f22dbj6nw433c4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.2"; sha256 = "0h148hmzrplhw2cx9yd2jmrw6ilpc9ys98w6jcaphzb7n184y374"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.2"; sha256 = "1xcfs5yxsxis9hx1dkp5bkhgl0n95ja2ibwwnxmg2agc8134y935"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.2"; sha256 = "0zvivfiz8lja1k6vcmwswh4lz6ch8x0nlap3x35psfw3p7j51163"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.2"; sha256 = "0x3fsfkv2gcilhsj31pjgg2vfibq2xvqhprw3hpm4gig4c2qi4fg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.2"; sha256 = "1w6bads6vyiikbfds95zpw91qmb87a20my67c5pri3q6qqwcny6d"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.2"; sha256 = "1cfd2bq41y3m86528hxlh3cj975rvhj8gigalfxaw5jsv8hw6cdm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.2"; sha256 = "0s92zdr0midkjk5xip0l3s8md7gcfh4dz81pqz2p7wwhcm29k1hq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0c99m8sh056wkk7h3f9bj8l67dxwzwnmz0ix398ff1w1pdpiabcm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "13l2xa4fxnm6i6kpjwr173hyd61s2ks7sjzp2ah3l1n71wds3vag"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "16qhn61di7gz5a68sc2rg5y2y4293rsbks4rvplyjr68scnba4hb"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "0mz7h7silzjgf6p4f0qk8izvjf0dlppvxjf44f381kkamm6viiqd"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0bvivl9ffgpsq4rbv8n8ivw9jr8yykbsp8r77n23xjm5vz8fcaks"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1k6vv7mpa81pjx1v8wd8d7ns3wr3ydql1ihx59s6cfg8fx18j5w9"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "05480dq2mzzfvk9whlz16lq0rs2kzy55d905cl832df6j36yzy9w"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1gm5yrbyh6h09lsr7izbg7izqiq3nwf7cx4y12hwk63544hprh2j"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0wqdx4h3isn1la8wbm8mvip0ai3fspvr8q2g2hx04lylpilcwnfy"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "16l4dzmqsjnppl8ra3dz3062na1324zqpibcb9kk6aliayzkwjmp"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0qzqbpwa79qizj7yzmmk2kr1ibwdg0m104rp2ava2qp8c9mxx1lq"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "10k85lqnczpdnzw43ylkma0iv1wxzqv9x4pfr31zwfb5z5p3m7ja"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0yd9vf8z1p264411p4y2aka4dnzhjvi7zhxc9dy6yfjwndlqfz03"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1vhi86iwln4pv2k0v6xfx5rp2vk5l6l4p399rj63wmm928n3v2la"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0i7l7zw99nfq1s43d4cyhs9p5bx719x0q1fmlkp8am4mwga554kf"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1ny0hjyip2n9mv0iiv2rpikb3apk4cjhvcdi17xn6vf3m79xxbwi"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0cllix46qh7lxihkaaxhb3islwn8vqn5lkr4c8c3bynvyblskjvw"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1f20gw4sq0s8idysdbpgrdh5l8ik3lry0i3nq60km9z9n183svxd"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0c31vfab355bi27wlz18azpyir9y89nn8dcg43j074whc469q0vx"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1xmy68m6vslqbl4njllgqscdslqj7xgkgjzpx4pq344mxh6r9agc"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0s93dmisai8wgjid697rgdx3lw2a0s0krr1gcnaav8jz9dg9i8lc"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "0ikwfn1q8jkvzyx77b8ycm7k7004j2w8zgjzkf8kgyw55gy8xfjm"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0gcwjjaw1lajqmwaji0x03w24721dczgnqrzqjw5ayjh8ib3dir2"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1i6wijgpksz81hg01c2pwi06k413x6vni4x8v3y38jyazg7qkfp0"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0hsby9ssa974cqkcc29xrjrrqmxyhfkkssmmhrrimh46n7sxzqab"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "0vwlfcpvbjhw0qmqnscnin75a5lb5llhzjizcp3nh5mjnkdghd8q"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "00kv6ijg6yway8km36yj7jq9y1p87iw8b8ysga66qv05y4fvjch1"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "05dz9mxc94y59y6ja05zamdp63qfdss831816y28kjjw4v4crz1q"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0qbm5zgvcwmmqlcj4jaixbw4a1zzyrf8ap81nlqjfdxp03bv9zqa"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1jsnxh1hgy7jrjhbz4kf6gq2x3smfx071cb2w1fa3a740h3i0f4m"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "1738mc91wy3yn2bf4srs2wxksd864hm565nmll396q6gw97a4df4"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "152jc4v2zxcax55vmd9xrsxq76q4cqpjlgrd1mfszipnngrlrc71"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1z9fa5ryi23sn163j7jry45f64rxqkgv7v91r04b9cpb4hc1qgym"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "14qz0ypylcwldyjn1ins8syjzbqpmfsy4nfkzri12mfn0626qmn2"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "136ss58j9wpxp6sj81mijlk32l2f6h81rvaq4l7x0s8wb9fzzbb5"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "02562zc9nrkfwikzff7km6mixxb1qf632r60jpzykizgx6w0nrck"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1sylbjvrr1jnlgd1215czr3xql2gdqy5h5sz7rnfq31hb1j5nc20"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "0ia1igli2r5gnli0r0yzqm012l56zrjf1jk42viahlil2ic3i144"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0h1kydv3dxnd9s32fd68x44jhc2pm79gv44mb7jf4227lr1dcxss"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1njywfwlq2785yk4b0114nzdb33zsgsmqj5fhpr6ii1crym649hl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.2"; sha256 = "16lp15z1msadrhiqlwwp0ni9k0slp3am05gqs5bagzwk35mcn27q"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.2"; sha256 = "1v8nngksh0cp51g221bizz52jjpc4rzm1avcy5psl81ywmkwmj93"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.2"; sha256 = "142s1ricyk351nqg298w5qlzd4scz8pc66x5mw9qh75vcyxsr83f"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.2"; sha256 = "116rkq5ri5dbhp5g7zyc71ml2v92vb5bw5f3nx96llb1pqk74grh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.2"; sha256 = "1c2n7cfc7b6sjgk84hxppv57sh1n4dy49cmdd16ki1l6yl2f3j9d"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.2"; sha256 = "0c6v2mdfshy5966fl2pfkfhgfs8y1sd0r47lfx7d4igy933dqfga"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.2"; sha256 = "1g8asdz9f3i0mjyh1mkxzfc6x8x77z0d88fa6irpyhh0w45qfccw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.2"; sha256 = "14djb55i8nwsr3170b82lr89dqxjghnkkghxxy2sl4d2bxw0bsfa"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.2"; sha256 = "0h0cc31c1izakpx554kivjqw3s5030a9zy3q4a2apwyj16znv2cw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.2"; sha256 = "18599d4y8n4y0w489pg7zm4nd4a23iz4zwx317pr5z57b4wrk61k"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.2"; sha256 = "04wvf035rr5kw6bj46ici8353lx5k95slydpm42kv1fcy3slqb4p"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.2"; sha256 = "1adxkh9y3y9cxisrn52c75dmzgfkbnz9aqs2p97ln9qdxxvhzhc2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.2"; sha256 = "0721kp5l7k25ivi2sdxx12kjpddas5l6y5qjmfw8pjcyximhqn0b"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1kkjmyhrnghihhfvm3qjrkrjbml2nqv8vyslj0g79pjanaqv3prs"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1j5qhbgy9d1d89xcgdyjcnww0ziad846nd6x5l8fa109z8wvsnki"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "12n0m0rbxp05ggrkxa9yr6kn46pnn3pc4c22p6kkv5ijyg8nhd74"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1mhwggjfpwssyzxl2mj3j9017xc8qwnw4xlm2rn96yfgsd1pxfpv"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1nvis5p0gvymv6sdrmgpgg94sr2w3maskm0c3d8p861wfiwwh0hv"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1vjrnga6inham84hggkx1kkpx4yn7v7z1xnwxas9lisxd0ych7k1"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0rrblgydpz3yf5gj9kpjc8b17x739nzr1956pwwyarhvh9y0vqrd"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "0xpsaxi54g0xac80gy5nv7qk5b513ak1s397b36vwg7mivwc4yhh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "8.0.2"; sha256 = "1nm6ibys303xlawqibqygpg1gqc8wm1nxb6pl6vgwmp5w4q02r5h"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "8.0.2"; sha256 = "0h6wwlz3mqb8758laczcaq7a0wmnmjf797dh5xwyiq50j1ss1mhw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "8.0.2"; sha256 = "09id8hnx0s4x5qvmvifb6jhkfaxzj53yvhl84pvrr4wv4p6ns7cm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "8.0.2"; sha256 = "0cg7b57fysgw809m77nb9dqr56g48ya6bjlh7x880ih5b76bnlak"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "8.0.2"; sha256 = "1rqr95ix3khc7mbaji520l2vv8vjbrg8zzpv6h1i3p3rdbzjm3l2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "8.0.2"; sha256 = "0kzvyghyj95p2qxidp1g8nx5d9qd7wlchpg1a5dqbpv9skljdn7m"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "8.0.2"; sha256 = "0hmk25bvlpn3sfx4vlvysj2myx4dd8fc2pv3gmhfgb2y01dnswjh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "8.0.2"; sha256 = "1z76l5mpvik3517lcl3qygsfsws4yp37j37sslb4sq7gls4aa0w2"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "1kjlc67bqz7d04ga42l7jm9d3jm773a9i77zc5w7cd591wa8vbbv"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "0bx7jv4q8dapx6fb6dbk1im057qmk43isvzygp5ci6nd07p419qf"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "1nf6m85f10j5qcyk0w18qxd06n79w0jvnifis08shdsq1isz403z"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "0pl0w114qrlb8bv6d4jw1gv29dz2cs86y3r0nj5z2fxd1r30khym"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "05bs32vhcvpd1dbvmk1rgqm2swp4gn5yv4mwfsisa4q5qi2xlaza"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "12q0adp0hakl9qrf4bqzkvfsy4az55im6sm1nv7g3k5q4vwkqh30"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "1k1iwpsranma2mrljfz9yr63pxbv5l9j4n0zmancbsxlhx31m30s"; })
-      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "8.0.2"; sha256 = "1fd7ws4qf0354np3lvd735p5r1mdj3zy6gbmv5fzz5cx2bdlplwy"; })
-    ];
-  };
-}
diff --git a/pkgs/development/compilers/dotnet/versions/8.0.nix b/pkgs/development/compilers/dotnet/versions/8.0.nix
index b0b4433cf7bce..053743f72d4ee 100644
--- a/pkgs/development/compilers/dotnet/versions/8.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/8.0.nix
@@ -1,179 +1,209 @@
 { buildAspNetCore, buildNetRuntime, buildNetSdk }:
 
 # v8.0 (active)
-{
+
+let
+  packages = { fetchNuGet }: [
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.3"; sha256 = "13wg9ygbsziflxyjwn0yrci1h0fbl8zkzgbvknf94qfpfd8vrf34"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.3"; sha256 = "1s4lq0qiya5v73b5niipzmqkhj2d9wcb3nfaqlkbyjq660ahw98w"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.3"; sha256 = "1wmkiklh37sfqw5p840a0yad9lgk6x5gigmhkdhw5wrvivbnm4wi"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.3"; sha256 = "08z7lr4hndf3ach9j8c1snkfighqsk5gsp6q1hzv8z6c1i3s0nnp"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.3"; sha256 = "0w2az1b4bp5494qi922kjh6hmrnkz4x8nbf9xbrz08wyfkbw8vng"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.3"; sha256 = "0ri4jdv0v0pdwmvwgdzc46v43bd9d0xbbwscszqp8yd64dffs33v"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.3"; sha256 = "0isjhgqr3a6ys5rj394dywvpzgcidjvmz7asr6vfn0c6lhqcf10h"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.3"; sha256 = "0pfwzvnm7js1k1xydr4jll46psdxqb5402ypdzh7gc4ihcbm689q"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.3"; sha256 = "0lkzrrdgsx26hp07ky6zikdw0kcdbaqxl9d26s1zjvcpdsa9xz2p"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.3"; sha256 = "156zl00c6zlgvyfkfnfbb85y5g1b8r31v0kzn9ghkv79xy037h5i"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.3"; sha256 = "0xahpvdqaabkiyafb7x6cbzwf7vdvvgxbk0nhcb9379c87wpcb7s"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.3"; sha256 = "188bxir2v9rcfg036jmnczw3zlmf0kpy2f28jgbqli8ramlj5jq6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.3"; sha256 = "1pi1kgqnc2kn9kdvnxzddlx8vfw6qviv7n200c12ld9azgnxad0a"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.3"; sha256 = "1ck7pky6ks5qq294vlqjvxrdpi70xc1g0yhank9kb3vmx9ixm9li"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.3"; sha256 = "093hyzhyfadj41wdc2ryk1i2yfrsxcqsflvpxaqlaiipmcj89yfr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.3"; sha256 = "1a4dj7wm42zxpra368p0hv02nfdx7rmrhbq7bid4xxpyqrks0hyl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.3"; sha256 = "0bw3rq614n7nzs2m7i2wi18rrrxz932lj0nqrpabkiff085fk3vv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.3"; sha256 = "1bpx1fkyd9dpfjb70l4gh73qvin7rimfrx2hsi1m2amqjmx88s6j"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.3"; sha256 = "1kbhmn6rdam2cp7pbfd78qfsb19cggi5301g7zglisxpnsds82py"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.3"; sha256 = "1s5mzb855fbg76pa72cqw2l2nzysb0gfffq62hyv0bwga8xpcqq6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.3"; sha256 = "1n2g90mg627hdw0w22kglg32zdzdxgkbkhgidsxrhk0lb88gk3k9"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.3"; sha256 = "07gx4dvdq8bvz2w2aynvxjzljwnaxgkbarl433jfwmjkfdw2r2wf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.3"; sha256 = "19cbqcbsmx2mx88b6xhyh08r16bl0pjq1c5vgj5ai63phs6hlsjp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.3"; sha256 = "1b2fx07v1hbw67lqk4dpq0z95s4akl5wnx7vw2gvnhx9qcmpqccj"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.3"; sha256 = "05apdnf8m204qlirsysrbhvnpy57lf74dl5iz4z4l9qw0fm7gn81"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.3"; sha256 = "0ycmbs1dbk98j5q6pw8khhfsf2lrkqah80c2v3jb3bxbf9x0sfg7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.3"; sha256 = "0gk6082rr0fm3dzspwdqfjzhsbi02iym28r4kcyiy1wcx83z7dfq"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.3"; sha256 = "1mv54c05wzr4mlzsrpwcxpgg8ldq7vd39f023skmfs416ixqp41x"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.3"; sha256 = "1p83bh6nd0m5m5br0grzcc85cflc0xpia25vxxs16i0irzc1fqm2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.3"; sha256 = "1h8d2nid9p4xm4lgav9b1iiicpg52x9nb60lslgivag7lh7insbb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "11rrcvxg50qsqzrpg65zpp1cdfcgvxbzd8ff6myiq5fzq8bx72xz"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "14z23ir1snd6mlf2jcivrclrmy8vaa9s6kxqa8al2zs02k590a0d"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "0v8g43vwfi4gym3jbkpwqhw6fsv5naa7vm527cdvqa3yq1pgb258"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "14jxk4r7f08q605dd72vfclis916knpwc0zfhzdgwb55v70a7kii"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "1wiv4idfprsj5x4xxi04nff7qnqniyiscrbpry94nx76vxag0029"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "18hrvqjwlx2c85wlnk8czkvma5kjs85mkqb7f8ry6yqpkjm1zbc9"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "03c747j8sqqwia8ja1ac5h22qrdzz6aj7fmkrsvh1dsds0dkzsdv"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "00iy6g8cr4imzjrcjxf5sl4axgqsr940bbw58xz6g46psc7adzg0"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "1jlg3mclqzs2wd1vv4kxgsbwcdvna7qk97vk6016vl2cynnsyrfp"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "09nhkp9bsvbk6yrfcv05h574gafhc4xfsyxjfrh3wlxb9j93frcm"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "0pqh5qvg711ipv0y006lpr31s5c55rxb334jsgvlf5srk4smvxzx"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "041qkxagvan49jq360xhnh89ibckh3ymjxm72bxv2ccf1klk3126"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "1j46kgss9n3vwnvz3zcix2a9gb709i62l60xcz70nk0p1d3nbg58"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "0510amnrki6rjlxs131rp6ff22p5hlamhsfrhcnwl7f3jb4gby30"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "0zxch9ln8iawzxm4g98yjkyn31f6wn3midq19mzafimzjry1g8sl"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "0lsflbq0l6jbyrwx3k6ff09n7q40sfs53rn9cvc71cjyam61raja"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "1mdghlrcma5k5701xzwhlgwn5mm0zasxy4igrgsfgc3v9s3qjs40"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "11psiydrjxfbc4kl7q4al5jn7n8f8d4wm7nlqwcw7jvrfyrp4l6j"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "0k26pdbd7cjvrbaw0fq95f9v7f0rwnfhgplp0f2rwf5bp64nn4gn"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "0c6mzp5fy9zjad59gc9f14hz92lcxgxagc6dkya9n5fvp9qwjzmv"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "115f9gzja94vnc93x68bwzc3am5q87hkpd07iwxnk3dh67nksbxj"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "0syqscra6z005byz9sbz9yc815q617g21ha0460q4pvzii031yp7"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "19pqql64wa0dhgcpxz5xyb46ryxrwhg62f3y8mhk2gm53aq52v3q"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "0743z371y3xzm3cvm5nzssnv8vyva9rrk3aphz87xss3rb23wn92"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "1202ap5dc92p70w0cda8vb0lrlyigdqbzscm4pr7vvcwl7xwwb0c"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "0ffz835gdr33pzsf3vp38kgh7ivg7wzq15a5im25zlbcd88ach1b"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "0srxz39gwmx11ril5ba4nnavl6rdf56bdy5gslqx89y99jnnz73p"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "1a3pip3b2wzg16pl68yxmpcz51fg25v3lwh66lb0z14cc847p4w0"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "0s3qln7mmniijbqy06pnjj7gsp19z6cnrb612chaj2k8fr9jmvba"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "1x9qar4fk1nl6r06gvhd0v1jgnhdr6wpqkrjvdxa5nkyi6gi03r0"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "0wcvf7f9d187bapjdyfc4c75z02n9h5kjhkazv64rn7bp9pyyl45"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "1yrsg8fd5006n8rimn0hzfgz2mshmvalc0ffg5s30fbvv9w1i423"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "1bdcymyz32af2msd5g0ip0iihla3i98f7wfll6kiwfl3f71czx3f"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "11v3wrfm1y011h4rky3xc9k868yhaizb0rhc4nzrbp0fnijca8ar"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "1yhmvxjw3jc9fjs8a61cyyhn9gwkij40191ip103bwjkayyqb9sm"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "1rvi2xczd7q13piy9sddaim899kv7zbsbw1q4lc1w0pzgms2kzyc"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "0mxwp1lqv6956qdagx78a5vgqkhdvrapp3y5fvf095qrzszwpk10"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "0mnd2lrgsln1yhk2kdikgkcx7n6m1imy0cca9jyqnmn0hv2i730w"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "1nywm6b3pjixsn6yzhhcgrn0nrp6mqbmcdl28idizz3j817d0sx6"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "11dv4fp84wr940vwviwxmbx83q97lf94wima3x1r9yqxfz30hisa"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.3"; sha256 = "1bp62jp52ksrsmyarfdss7913v7xxg3k55mbcyfd8n8h700d098q"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.3"; sha256 = "03qrqwd5v9rvc15i26ik1jxy670xm3gl5qv6mmk0ii1b6qw97ckp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.3"; sha256 = "1sy01757gmln3f56mi64ax2689fqxkh77rqk91i75kcxl0hr60x1"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.3"; sha256 = "0jnd22x6hi16c8q7l74kh6iqvpl0cbny3fcrrpqky38685n5nzw5"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.3"; sha256 = "00n4qfz9c62xfx8lmfigfyghj59lgkrc1rpv58n0588i6l73njk5"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.3"; sha256 = "1jzqv4ldygjm1hmlslc83wjbh0h1zxrcjl9g564vlp56wql2yy73"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.3"; sha256 = "1qminm5v4sdzaa7bsya6hq0n9xjibha4sqgxxbkf8firc61rnni7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.3"; sha256 = "0z8si6qavip6x33m15lznla0iz1h6hcdggqxaacn4syibjs4bf2l"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.3"; sha256 = "11yw9zlqx5hfa90hxz2f79728ivqi7n8w1dkxs95i7k075bbinv4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.3"; sha256 = "0h3ff5aqp78k2p8xn3rsr7fpcgf2d60xp1pipmp37v5c08mlr4zj"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.3"; sha256 = "07lzl490k58bdq9l1dbwzd4mv5i5jlcxzqac9i6xzbqydk2pfrlh"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.3"; sha256 = "00d271x2058cjyd4cy2l3phfz771qnmvy5p8ackhv1fwjn5zwvgl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.3"; sha256 = "0zj3ni8ckbzxzwspgb8lwdf154ibdfnipjfghn7940j45cak2n9p"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "1sii9j84x9ipi3hj5dqw9anw76xrwnzyn3pdbwx2hyk2pdcss4iv"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "16nzx2sxplay6iipvrnb93mmvh4ypq27j5c4h2hlcqxi8bzz6dnq"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "10ad9x2piw8ci30pfrin59yc02ylrzal3przmhgk7zd34wvaphq4"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "0263g5k2xg853c4pizyq88g38ykc4a5v7ixr88jq5q9hrs215x2x"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.3"; sha256 = "0kd18616hxcq3hs7275h7sw6fs3br7rvvx8258575740l1wcnqsn"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.3"; sha256 = "06xfiki341ygqq4c6nb3l5dna8z6p695bibrn6q4lxmdhjjkh9kj"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.3"; sha256 = "180wwhib64wvsmycawkrdabxjpk6s2wzd1mw9gd1n4knf1r3sb6x"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.3"; sha256 = "1mqkwsc57vav90ld2k0llgpsmp768r7gr82qd3xwmxmwjk9ch9lc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "8.0.3"; sha256 = "0vb6qv8p0baw0gndd56na5cp8zrp83h14ljqxjary57ni3w37bir"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "8.0.3"; sha256 = "0ddi76rp2kspzghladd14v43ygjri0n4kdha75f16a9zbnlj4p14"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "8.0.3"; sha256 = "07lmljj19hhmq762ls76j8f73vmkcwr4bng7j3v2wnc63lif60bf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "8.0.3"; sha256 = "00kvs8a3nkl11d6zp2f1x4r9dfjs1pix4cvl6l1np00i0vwa9019"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "8.0.3"; sha256 = "1znfsgvwi1p1v21qv6vib9n4kl7g0faylr83b375dh9f6pz6gayz"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "8.0.3"; sha256 = "1pl6lg22k3rwrcfx7nb5vv5jmdqx3y3r5n70r7jzhc7f0f4sr8ls"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "8.0.3"; sha256 = "0zw9n8zb4i24ryb0w0v8iwb370r30mh059vaasvfcgs3kf4rhm3v"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "8.0.3"; sha256 = "1hl3jc8nkv2qw2jqpzx0brimd3yi8qmywcgvcljiwb4hglfypi7d"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.3"; sha256 = "0wahww6zd2054yfwrgm330i5bs0fnxnimiqam9c2xbi07cjdzs0c"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.3"; sha256 = "1f2h7nqwhr2yc4lsl1v9xy3znf7l9y6mkn7xqbkxncjsa8ily5hq"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.3"; sha256 = "024w9m1hyp6g50kn4lydhknac0bna7sn2q9wljnridlrkibrpfj3"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.3"; sha256 = "0gwjfzmghm4fmspraygdj9z9bsmczqlnkyxp3xk8bdrs5x5z62bm"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.3"; sha256 = "0z0cl2p3ax93zjmzi623mc1l9x9nw6rmhjqmqch5yrvwa4a6h3k1"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.3"; sha256 = "00s4nax6jbdp2ny80sg372xj1xmj76c867ym77d1s63fjkfwxq60"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.3"; sha256 = "1c5f2m12kxd871ydsmz4sjwqk7scga2bh0dldg6pq9rb3lgyfzwq"; })
+      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "8.0.3"; sha256 = "050a64bjws084rsq1xn17mw0v8m4b85y6gwlnhh3rxhp9jygpvwp"; })
+  ];
+in rec {
+  release_8_0 = "8.0.3";
+
   aspnetcore_8_0 = buildAspNetCore {
-    version = "8.0.2";
+    version = "8.0.3";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/d6d79cc3-df2f-4680-96ff-a7198f461139/df025000eaf5beb85d9137274a8c53ea/aspnetcore-runtime-8.0.2-linux-x64.tar.gz";
-        sha512  = "c8d4f9ad45cc97570ac607c0d14064da6c1215ef864afd73688ec7470af774f80504a937cbb5aadbb0083250122aae361770d2bca68f30ac7b62b4717bee6fca";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c1371dc2-eed2-47be-9af3-ae060dbe3c7d/bd509e0a87629764ed47608466d183e6/aspnetcore-runtime-8.0.3-linux-x64.tar.gz";
+        sha512  = "73a16e08402989f25ca780acc981c2ae3a41ef39b4bb6b6b4962053144b6eda7c175fdd5ee3c25bcd0c86a27d1a83d4f8b9b2f69f37d4e3972f5901a9e0600b6";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/bdfd0216-539e-4dfd-81ea-1b7a77dda929/59a62884bdb8684ef0e4f434eaea0ca3/aspnetcore-runtime-8.0.2-linux-arm64.tar.gz";
-        sha512  = "9e5733a0d40705df17a1c96025783fd2544ad344ac98525f9d11947ea6ef632a23b0d2bf536314e4aeda8ae9c0f65b8f8feee184e1a1aabfda30059f59b1b9a6";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9feb7c60-3821-433f-994d-c6861b341d3b/5b90405a9978455b10ce6f1fc058fc1a/aspnetcore-runtime-8.0.3-linux-arm64.tar.gz";
+        sha512  = "2ddf440be273febae8049df9b2837fe9b9d95d43a31898b915dbf39aedaf15a291ff28711e983fe099ab22a291ad244813256d57ebb6ef1fb94f04d712a96435";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a44da2c3-cb74-4ffe-af5a-34286598a885/263f113228e88df3f654510c9092f68b/aspnetcore-runtime-8.0.2-osx-x64.tar.gz";
-        sha512  = "a7edf091509305d27275d5d7911c3c61a2546e0d3b5b0fe9fcb9e704daf3c550ea0a5ae659272a29b5e218d02f28b7d331ab0905e9459711624692f1589d7285";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/bb76b58a-59e9-4652-b457-ca7ce7f124d4/1afc9b4da60ab79bd103caa9516b8259/aspnetcore-runtime-8.0.3-osx-x64.tar.gz";
+        sha512  = "b9c4ecddbaa20aa707e7fd817895823d42211fc34b44146a2a994cbee1837ea0a2d3d5d5a84318039de0a0ed51af3249d11b2b31904e54b86114bceb05b31f0b";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a5692569-6092-4db1-9d5c-4862265a7b5b/7173de926da466e21ab9c7666a31dee3/aspnetcore-runtime-8.0.2-osx-arm64.tar.gz";
-        sha512  = "9e79556cf58f9d0b0f302a50ef9724122a9b18daba70e715b7334f9ed97a4983be0386e4132f5273d120f00d18f8af8a8ad7ea1ef0a82c610e268a33e76a30e4";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/794f6ac7-83e4-4af7-9150-7722bf51b5ed/fb380221e5933bc50e5266ddae54e083/aspnetcore-runtime-8.0.3-osx-arm64.tar.gz";
+        sha512  = "06fddde704006f92eb3be4bfc95efb9971d54c24038dd739a78ebc2af2e71ca97202350211b53f82f23a4e3ca37ae89d23fb56bf64b5d58d404e7a153c17ded1";
       };
     };
   };
 
   runtime_8_0 = buildNetRuntime {
-    version = "8.0.2";
+    version = "8.0.3";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/307e4bf7-53c1-4b03-a2e5-379151ab3a04/140e7502609d45dfd83e4750b4bb5178/dotnet-runtime-8.0.2-linux-x64.tar.gz";
-        sha512  = "f30f72f55b9e97e36107f920e932477183867726a963ea0d4d151f291981877ba253a7175614c60b386b6a37f9192d97d7402dafdad2529369f512698cb9d1dd";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ed0c9129-950a-48db-80be-e770daf2db41/53879e5802bc6e76bac55c1b8154ed06/dotnet-runtime-8.0.3-linux-x64.tar.gz";
+        sha512  = "08ad7065abf73d09bd718963bd1277c4736f9d51c7c51849255732db03b59f2321d321235be8be35ca5ef2bbd4f331a0fecaefb48d3e1075659e075bcd1f0169";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/9de452db-acbe-48eb-b3f0-305a4e48e32a/515bbe7e3e1deef5ab9a4b8123b901ca/dotnet-runtime-8.0.2-linux-arm64.tar.gz";
-        sha512  = "12c5f49b7bd63d73cae57949e1520eaebc47732f559f68199ecd3bcca597f2da702352313a20aa100c667ede1d701dc6822f7a4eee9063d1c73d1f451ed832ac";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/988a1d6e-6bfb-406c-90ba-682f5c11a7fc/28208806b0a6151c4e5d9e1441b01a6f/dotnet-runtime-8.0.3-linux-arm64.tar.gz";
+        sha512  = "a78f51500fe180936152f561b3c2385939053aaeb1c2eba5e1353c6427a57fc1c6de8ffcc398afa0d2051ec696813b7c635917f6f0554028b725c58fda981871";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/414af43f-fdc6-4e8e-bbff-8b544a6627a8/0719a2eafa1d0d5f73ee0a7aae4ce670/dotnet-runtime-8.0.2-osx-x64.tar.gz";
-        sha512  = "e8945057f5fdf55994675caeff07ff53ba96324edbfe148ea60f58c883548be59cd1d891552b55ed5a594c1cfa549bd783ce9e25b5467ae48ab3f97590f36003";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/564a929b-4f15-490b-895e-5260338cbae1/1db7fd97d0907d3911ac3e4dda32fbb2/dotnet-runtime-8.0.3-osx-x64.tar.gz";
+        sha512  = "5ea3f5cbbd9855cb0f305b8b3252e10af03bb0e116ce04f8c764cf5512bbcf7803378ed48cd9fc394e5282761f4137d061a1e2447d2d5cfdf3a2226a2e14a9e8";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c7b73f69-39ca-4d2a-bd02-a72abb3a4fc5/6d68aa25f4576b70fff4925fb4e69c4b/dotnet-runtime-8.0.2-osx-arm64.tar.gz";
-        sha512  = "c410f56283f0d51484d26755349a7b62364e2c54650c87dcee6fea0a370fa84b14b4ebc8c5e121e2b3ea4f0ac2880ebe40a43bcb02aa30ce360fd0dbc12fbfbb";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/08f11d3e-84de-440c-8982-0c8c62273548/d8a497c6cae9b84456d0b90cc7635231/dotnet-runtime-8.0.3-osx-arm64.tar.gz";
+        sha512  = "c70ec1c2f258adc07b585896d5cee6246d8ee5a2f7228c9a52c958c0cad2e6bd8dd6803bfb0c5243635e89dc5a5fac6e32274f1b574b79dc4fd31d69e1aba2cd";
       };
     };
   };
 
-  sdk_8_0 = buildNetSdk {
-    version = "8.0.201";
+  sdk_8_0_2xx = buildNetSdk {
+    version = "8.0.203";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/85bcc525-4e9c-471e-9c1d-96259aa1a315/930833ef34f66fe9ee2643b0ba21621a/dotnet-sdk-8.0.201-linux-x64.tar.gz";
-        sha512  = "310cf54f595698435b533931b12f86d49f89d27243cf7c87a5b926e0c676b80e869aa58aaff17b5095536c432f377c67d92bf0ca8941b9d891d4b3879637d488";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/656a3402-6889-400f-927f-7f956856e58b/93750973d6eedd17c6d963658e7ec214/dotnet-sdk-8.0.203-linux-x64.tar.gz";
+        sha512  = "78b1913b54a1a4c9f13cc2864a11540b5fd3bdf4ebb49837483e19c0906a1890f2dfcf173635a1c89714bf735cbcaa01db0f7ae90add5295da69a0638ed5e60e";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3bebb4ec-8bb7-4854-b0a2-064bf50805eb/38e6972473f83f11963245ffd940b396/dotnet-sdk-8.0.201-linux-arm64.tar.gz";
-        sha512  = "37e230970cfeffdc3873e42595b79ecdf6bfe266a01ace6953725e69a2b64313ce144bf4d4f861130f61f680ead9b4d8a819dd5543c5470c37bbc13d88a78c80";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/aed2eece-af6d-42e6-8683-21e7835b7479/786b4f225591440a741c1702407fb7b3/dotnet-sdk-8.0.203-linux-arm64.tar.gz";
+        sha512  = "cda16b2141c1115ec42303d82f2720ddf5368b7242207e21d3fdd81fa89df2676f0d394ca7293c76c35ed2448b289174739771ec447404ad9c84c72459cc0d81";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/b61aa134-3109-4aea-915b-f4ad9fddac27/63f2187933dbefad3ae2df55f3a032d0/dotnet-sdk-8.0.201-osx-x64.tar.gz";
-        sha512  = "254e578bae6150f194ec9e7d5cfe8a8cbaf048dedafd78afdb421cb0cae22364d21742eb2d11619a8330974739256d45a5d477483a1f82129acc3d12c6805767";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/87f31249-1415-4edb-87d5-7f16e63414e9/a1ad58c05a131c618ad458a1564784e4/dotnet-sdk-8.0.203-osx-x64.tar.gz";
+        sha512  = "28588e173bcd185a2acaf26f029dc63e238e29027cab0659717549de15ea88c6075fd384b276265b39c4a91f0005dc81417fede62b6f2f81c1a9c5a4a9b0153c";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/d89ef89a-8e7e-4e04-b32a-8eb6d32a4409/ff889260b90ff66ec8818dd5619de64c/dotnet-sdk-8.0.201-osx-arm64.tar.gz";
-        sha512  = "7457d5413dfee375d9e418707ebd726ff8ca9dbb7c34476e9fe33fd77962fbed5827bcbcc6d7978e918faf58a4e2470456b7383df6c0e47ed3b49d00b563611e";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9019f736-bf0c-45c6-8ea1-c2370f7c59f1/e88a79c0abd77fd38de8271b7c06b293/dotnet-sdk-8.0.203-osx-arm64.tar.gz";
+        sha512  = "39fdb91136516f070b5f398b46a7503115493f1cc89d9bee7ea7ee4541ec9d69a4d673d87498e578ebb2cc81df8b062d05c4f7c8be80bc2b113cc61df1157c0d";
       };
     };
-    packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.2"; sha256 = "06s21b9k4niwb2qlrz4faccfmqyxfv08vzd85izla3zjxmqv3jxb"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.2"; sha256 = "1bxsrlsyvia4v3fswxl9pnf9107zwf1n1hlwffyxs0kd5iq7jabr"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.2"; sha256 = "14yysn896flzsisnc3bhfc98slj2xg3f5jr39m62w2p54km0jcrj"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.2"; sha256 = "1486lnpn9al764f4q9p2xry38qrk1127m62j5n8ikcx8iazrbkqm"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.2"; sha256 = "0fh2lvjrl41r1r4q3v9mylr16arb190x4xs0m5nsg6qak93y6pip"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.2"; sha256 = "0ihhhsypb0f8lffl5lbm4nw0l9cwcv6dgylxbgvs10yfpvpix8av"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.2"; sha256 = "1pfwb7j3gg62z10k799w2hr8yqmiv9gjvqzw6g72navzk322901s"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.2"; sha256 = "0anifybcb7yipazd0qsiz6g1kj7liw6qz3lmqhkw3ipbr0zip0vv"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.2"; sha256 = "0ag84bb4p9w41njyf7yh5h2wgz49qgx1xzhb6q4ls0m03mknp2g6"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.2"; sha256 = "1iv12b2pdngn9pzd9cx0n7v3q6dsw8c38vx1ypd6fb27qqwrdrr6"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.2"; sha256 = "1a0zy0sfd4k7pwwk7fkgyd4vph91nfbxhjzvha96ravdh8isxngx"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.2"; sha256 = "0xfwnqbbzg1xb6zxlms5v1dj3jh46lh6vzfjbqxj55fj87qr73yi"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.2"; sha256 = "1217mw4mw978f2d84h0vf0bbzl55kp8z1n4620rphqh6l4r1gr52"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.2"; sha256 = "1pi4s9sn64cyvarba1vgb17k92ank7q95xmn7dz9zb1z9n6v19hm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.2"; sha256 = "13ckd4w7ysa5ay5wmklsnws7hhzw6nnlblhcda7r11m0fjfly6lr"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.2"; sha256 = "0vy2r79sgr6p665943rb44d1m5xv8m6h96rqlr03g6ipk1gzz6xw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.2"; sha256 = "1kbdpqfq64h3dy2mj90sfi2pjks77fmp74fqkvps35fh3lacb3dq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.2"; sha256 = "1xlnlp4ckqn0myl5pzsqhmpall1pnbmqhb62rr7m61dy83xhvm6l"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.2"; sha256 = "131kgy0787a38zmb3y002yr1lrnkfc4mk2xmh8jx5pqkl7bp5p67"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.2"; sha256 = "1p7152v1wyhrxh1mqq29bm06xcfilzngr89cl8kxv5lcars3yc00"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.2"; sha256 = "0yyix9cypm53b0q6zfw5bqbm18x2s54ns7a1w7apxfzs8cckjfp7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.2"; sha256 = "0j31y9qwcm76zsxbid52zn4350sbq489pa7znmkzdrxgbcn19dmq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.2"; sha256 = "1g2n69s8sa9ik9jhkc6xcdjcvghwr5m9glbxr1f22dbj6nw433c4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.2"; sha256 = "0h148hmzrplhw2cx9yd2jmrw6ilpc9ys98w6jcaphzb7n184y374"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.2"; sha256 = "1xcfs5yxsxis9hx1dkp5bkhgl0n95ja2ibwwnxmg2agc8134y935"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.2"; sha256 = "0zvivfiz8lja1k6vcmwswh4lz6ch8x0nlap3x35psfw3p7j51163"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.2"; sha256 = "0x3fsfkv2gcilhsj31pjgg2vfibq2xvqhprw3hpm4gig4c2qi4fg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.2"; sha256 = "1w6bads6vyiikbfds95zpw91qmb87a20my67c5pri3q6qqwcny6d"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.2"; sha256 = "1cfd2bq41y3m86528hxlh3cj975rvhj8gigalfxaw5jsv8hw6cdm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.2"; sha256 = "0s92zdr0midkjk5xip0l3s8md7gcfh4dz81pqz2p7wwhcm29k1hq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0c99m8sh056wkk7h3f9bj8l67dxwzwnmz0ix398ff1w1pdpiabcm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "13l2xa4fxnm6i6kpjwr173hyd61s2ks7sjzp2ah3l1n71wds3vag"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "16qhn61di7gz5a68sc2rg5y2y4293rsbks4rvplyjr68scnba4hb"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "0mz7h7silzjgf6p4f0qk8izvjf0dlppvxjf44f381kkamm6viiqd"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0bvivl9ffgpsq4rbv8n8ivw9jr8yykbsp8r77n23xjm5vz8fcaks"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1k6vv7mpa81pjx1v8wd8d7ns3wr3ydql1ihx59s6cfg8fx18j5w9"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "05480dq2mzzfvk9whlz16lq0rs2kzy55d905cl832df6j36yzy9w"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1gm5yrbyh6h09lsr7izbg7izqiq3nwf7cx4y12hwk63544hprh2j"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0wqdx4h3isn1la8wbm8mvip0ai3fspvr8q2g2hx04lylpilcwnfy"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "16l4dzmqsjnppl8ra3dz3062na1324zqpibcb9kk6aliayzkwjmp"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0qzqbpwa79qizj7yzmmk2kr1ibwdg0m104rp2ava2qp8c9mxx1lq"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "10k85lqnczpdnzw43ylkma0iv1wxzqv9x4pfr31zwfb5z5p3m7ja"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0yd9vf8z1p264411p4y2aka4dnzhjvi7zhxc9dy6yfjwndlqfz03"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1vhi86iwln4pv2k0v6xfx5rp2vk5l6l4p399rj63wmm928n3v2la"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0i7l7zw99nfq1s43d4cyhs9p5bx719x0q1fmlkp8am4mwga554kf"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1ny0hjyip2n9mv0iiv2rpikb3apk4cjhvcdi17xn6vf3m79xxbwi"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0cllix46qh7lxihkaaxhb3islwn8vqn5lkr4c8c3bynvyblskjvw"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1f20gw4sq0s8idysdbpgrdh5l8ik3lry0i3nq60km9z9n183svxd"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0c31vfab355bi27wlz18azpyir9y89nn8dcg43j074whc469q0vx"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1xmy68m6vslqbl4njllgqscdslqj7xgkgjzpx4pq344mxh6r9agc"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0s93dmisai8wgjid697rgdx3lw2a0s0krr1gcnaav8jz9dg9i8lc"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "0ikwfn1q8jkvzyx77b8ycm7k7004j2w8zgjzkf8kgyw55gy8xfjm"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0gcwjjaw1lajqmwaji0x03w24721dczgnqrzqjw5ayjh8ib3dir2"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1i6wijgpksz81hg01c2pwi06k413x6vni4x8v3y38jyazg7qkfp0"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0hsby9ssa974cqkcc29xrjrrqmxyhfkkssmmhrrimh46n7sxzqab"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "0vwlfcpvbjhw0qmqnscnin75a5lb5llhzjizcp3nh5mjnkdghd8q"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "00kv6ijg6yway8km36yj7jq9y1p87iw8b8ysga66qv05y4fvjch1"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "05dz9mxc94y59y6ja05zamdp63qfdss831816y28kjjw4v4crz1q"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "0qbm5zgvcwmmqlcj4jaixbw4a1zzyrf8ap81nlqjfdxp03bv9zqa"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1jsnxh1hgy7jrjhbz4kf6gq2x3smfx071cb2w1fa3a740h3i0f4m"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "1738mc91wy3yn2bf4srs2wxksd864hm565nmll396q6gw97a4df4"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "152jc4v2zxcax55vmd9xrsxq76q4cqpjlgrd1mfszipnngrlrc71"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1z9fa5ryi23sn163j7jry45f64rxqkgv7v91r04b9cpb4hc1qgym"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "14qz0ypylcwldyjn1ins8syjzbqpmfsy4nfkzri12mfn0626qmn2"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "136ss58j9wpxp6sj81mijlk32l2f6h81rvaq4l7x0s8wb9fzzbb5"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "02562zc9nrkfwikzff7km6mixxb1qf632r60jpzykizgx6w0nrck"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1sylbjvrr1jnlgd1215czr3xql2gdqy5h5sz7rnfq31hb1j5nc20"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "0ia1igli2r5gnli0r0yzqm012l56zrjf1jk42viahlil2ic3i144"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0h1kydv3dxnd9s32fd68x44jhc2pm79gv44mb7jf4227lr1dcxss"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1njywfwlq2785yk4b0114nzdb33zsgsmqj5fhpr6ii1crym649hl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.2"; sha256 = "16lp15z1msadrhiqlwwp0ni9k0slp3am05gqs5bagzwk35mcn27q"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.2"; sha256 = "1v8nngksh0cp51g221bizz52jjpc4rzm1avcy5psl81ywmkwmj93"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.2"; sha256 = "142s1ricyk351nqg298w5qlzd4scz8pc66x5mw9qh75vcyxsr83f"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.2"; sha256 = "116rkq5ri5dbhp5g7zyc71ml2v92vb5bw5f3nx96llb1pqk74grh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.2"; sha256 = "1c2n7cfc7b6sjgk84hxppv57sh1n4dy49cmdd16ki1l6yl2f3j9d"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.2"; sha256 = "0c6v2mdfshy5966fl2pfkfhgfs8y1sd0r47lfx7d4igy933dqfga"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.2"; sha256 = "1g8asdz9f3i0mjyh1mkxzfc6x8x77z0d88fa6irpyhh0w45qfccw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.2"; sha256 = "14djb55i8nwsr3170b82lr89dqxjghnkkghxxy2sl4d2bxw0bsfa"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.2"; sha256 = "0h0cc31c1izakpx554kivjqw3s5030a9zy3q4a2apwyj16znv2cw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.2"; sha256 = "18599d4y8n4y0w489pg7zm4nd4a23iz4zwx317pr5z57b4wrk61k"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.2"; sha256 = "04wvf035rr5kw6bj46ici8353lx5k95slydpm42kv1fcy3slqb4p"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.2"; sha256 = "1adxkh9y3y9cxisrn52c75dmzgfkbnz9aqs2p97ln9qdxxvhzhc2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.2"; sha256 = "0721kp5l7k25ivi2sdxx12kjpddas5l6y5qjmfw8pjcyximhqn0b"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1kkjmyhrnghihhfvm3qjrkrjbml2nqv8vyslj0g79pjanaqv3prs"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1j5qhbgy9d1d89xcgdyjcnww0ziad846nd6x5l8fa109z8wvsnki"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "12n0m0rbxp05ggrkxa9yr6kn46pnn3pc4c22p6kkv5ijyg8nhd74"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "1mhwggjfpwssyzxl2mj3j9017xc8qwnw4xlm2rn96yfgsd1pxfpv"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.2"; sha256 = "1nvis5p0gvymv6sdrmgpgg94sr2w3maskm0c3d8p861wfiwwh0hv"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.2"; sha256 = "1vjrnga6inham84hggkx1kkpx4yn7v7z1xnwxas9lisxd0ych7k1"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.2"; sha256 = "0rrblgydpz3yf5gj9kpjc8b17x739nzr1956pwwyarhvh9y0vqrd"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.2"; sha256 = "0xpsaxi54g0xac80gy5nv7qk5b513ak1s397b36vwg7mivwc4yhh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "8.0.2"; sha256 = "1nm6ibys303xlawqibqygpg1gqc8wm1nxb6pl6vgwmp5w4q02r5h"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "8.0.2"; sha256 = "0h6wwlz3mqb8758laczcaq7a0wmnmjf797dh5xwyiq50j1ss1mhw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "8.0.2"; sha256 = "09id8hnx0s4x5qvmvifb6jhkfaxzj53yvhl84pvrr4wv4p6ns7cm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "8.0.2"; sha256 = "0cg7b57fysgw809m77nb9dqr56g48ya6bjlh7x880ih5b76bnlak"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "8.0.2"; sha256 = "1rqr95ix3khc7mbaji520l2vv8vjbrg8zzpv6h1i3p3rdbzjm3l2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "8.0.2"; sha256 = "0kzvyghyj95p2qxidp1g8nx5d9qd7wlchpg1a5dqbpv9skljdn7m"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "8.0.2"; sha256 = "0hmk25bvlpn3sfx4vlvysj2myx4dd8fc2pv3gmhfgb2y01dnswjh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "8.0.2"; sha256 = "1z76l5mpvik3517lcl3qygsfsws4yp37j37sslb4sq7gls4aa0w2"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "1kjlc67bqz7d04ga42l7jm9d3jm773a9i77zc5w7cd591wa8vbbv"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "0bx7jv4q8dapx6fb6dbk1im057qmk43isvzygp5ci6nd07p419qf"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "1nf6m85f10j5qcyk0w18qxd06n79w0jvnifis08shdsq1isz403z"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "0pl0w114qrlb8bv6d4jw1gv29dz2cs86y3r0nj5z2fxd1r30khym"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "05bs32vhcvpd1dbvmk1rgqm2swp4gn5yv4mwfsisa4q5qi2xlaza"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "12q0adp0hakl9qrf4bqzkvfsy4az55im6sm1nv7g3k5q4vwkqh30"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.2"; sha256 = "1k1iwpsranma2mrljfz9yr63pxbv5l9j4n0zmancbsxlhx31m30s"; })
-      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "8.0.2"; sha256 = "1fd7ws4qf0354np3lvd735p5r1mdj3zy6gbmv5fzz5cx2bdlplwy"; })
-    ];
+    inherit packages;
   };
+
+  sdk_8_0_1xx = buildNetSdk {
+    version = "8.0.103";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9e445c62-e14b-4a06-8913-ff19d8e7de50/39a40667f110cd352de02f7e7eeb4c6d/dotnet-sdk-8.0.103-linux-x64.tar.gz";
+        sha512  = "5894942d53ff9acaacde589e6a761bd170f06b696cac465b2dc62b741bf9d9a635721ef4e7fe9477c52ff22feabc928bd8cbcd167a9ea92a6bf6a362c8b63daf";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/af9ecab6-0ee9-4256-8470-1dc4530f637e/084a6690b85f806c06764846e3d9fb39/dotnet-sdk-8.0.103-linux-arm64.tar.gz";
+        sha512  = "486c6dfd0c37771422fddaec155950663e79bf2afca085ffde68e2af20e42bcac1bcbf0d95dcc0df9469e643a7f81813ab828afa114d5f715057d2a3895e531b";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/89e38f58-5392-442e-b5d8-9c495d6710a6/5368de8a490982fe1cb191f76f6e9f62/dotnet-sdk-8.0.103-osx-x64.tar.gz";
+        sha512  = "86174aee177e039751a5dbd019ed95e4cb56389c9725902c513e5f50fbf2d89cdcb113173a8f9de9bab844c70e1986b3bc3acf8f22402e09473af413df657a3c";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/5218a7b6-0e8c-419f-9ea3-5115a194b954/02c7cc5c3bc4ff89c14893ecc299f05e/dotnet-sdk-8.0.103-osx-arm64.tar.gz";
+        sha512  = "cdfe17109e0b55777e2ed95e9a538bed67ca532edb0e56eb1c52cbb53eec73959141a9f744c1c1a6c5f9e2863d2f845296b65afa94c726c1a7b3274bda869a65";
+      };
+    };
+    inherit packages;
+  };
+
+  sdk_8_0 = sdk_8_0_2xx;
 }
diff --git a/pkgs/development/compilers/dotnet/versions/9.0.nix b/pkgs/development/compilers/dotnet/versions/9.0.nix
index 530a7f65075cc..795e25956c05a 100644
--- a/pkgs/development/compilers/dotnet/versions/9.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/9.0.nix
@@ -1,72 +1,9 @@
 { buildAspNetCore, buildNetRuntime, buildNetSdk }:
 
 # v9.0 (preview)
-{
-  aspnetcore_9_0 = buildAspNetCore {
-    version = "9.0.0-preview.1.24081.5";
-    srcs = {
-      x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/14b2b268-4d58-4f7b-9708-46c5a0a5b868/3cfbd27c7e2aabc0ca70f474709a4767/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-x64.tar.gz";
-        sha512  = "29bfe0b5b72608eba97151909308a67a47dc299902a46bf1a22d67bb5f8a0c87c6f4533c0c2d4679f9440f9ccccf549c434a4280c101f7633bdbdcf049c95817";
-      };
-      aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3f2586f3-89fd-44ad-aae2-4c241f72996f/f973c7140305733792dd25b466e37606/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm64.tar.gz";
-        sha512  = "118967e64995d7c242738bf806928ecc52cfae3b0e0429a6951047eaf37d27bdde0adc0c6dc74e32d61b69565f7666cbfd4658396c37988e5d343debcc15bdf6";
-      };
-      x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/2e9a9af2-f1dd-467a-85f3-430f5142bf0b/6ce0853ee69a127bb767270a737f6467/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-x64.tar.gz";
-        sha512  = "3ed80631a3ca0a4684a70fc0f17d46257a63cc71c7497c958accb4d329eff4a7c832a29c028b608798fbed0b82e2c5b7d5533c57dff2188d4142559b57341192";
-      };
-      aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a407f4d8-183b-45c9-8153-c889c10630b9/2388fbcc5171e20d05abeb301027df2e/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-arm64.tar.gz";
-        sha512  = "09746054c291b10bacf3fba8ad147443fd41f42b6b04d9559281bc7d919ddc56ebe7402021997f6f24b745b3292368719cc2142d0eebba76226c5603545b6743";
-      };
-    };
-  };
-
-  runtime_9_0 = buildNetRuntime {
-    version = "9.0.0-preview.1.24080.9";
-    srcs = {
-      x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/5bcb417b-0de3-461c-9ce2-a9ddd5df1aff/73e36aaa7c2e381724a2adac149eb376/dotnet-runtime-9.0.0-preview.1.24080.9-linux-x64.tar.gz";
-        sha512  = "68f0b89227c8e0b3239477409708c1b0c5cc7d80afd6661dc2150946c66e2130cf560c2471609f0fd063f01ca1d8e72f74beec45ecb519cf58f1cdc434615054";
-      };
-      aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/7d911f96-acdc-4f5f-b283-cae6d6439bfd/f9e1c8d283ffd1d2e40346926a9c37bc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm64.tar.gz";
-        sha512  = "265b7bf094730be765bdaadec3215c1a7c51bff6fb18bb51cff383473e32d1ba821b6d046e0f7fa864400dc5cb68e35943057f5b6ae6e8c411375fc15fdbaf3c";
-      };
-      x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/0307fdd7-b398-4e90-a88b-574d853b769b/ab8938a35b03d8308a7a16331fa65cfa/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.tar.gz";
-        sha512  = "f644ce6ee158bd86a4aba21bdd955a3aebb0367b5af618b6e77dc85922bc790b9c33b572606a15f566b2729a90923f66a933159124e803494105a695c890b775";
-      };
-      aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/079214b6-0ce6-4d6f-a0ac-9bd9072dad0f/14b558eb20224c345f78ea80f7029e11/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.tar.gz";
-        sha512  = "63bf6a57f61c4dcf4e0cdcedb8ff6c76cb702a95d4e0033f17b4cd2a3e800e73ab16c401fb098416404ea5716c725c175f9422250b2a8816c08eed2702cd38e5";
-      };
-    };
-  };
 
-  sdk_9_0 = buildNetSdk {
-    version = "9.0.100-preview.1.24101.2";
-    srcs = {
-      x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz";
-        sha512  = "e176126d9a12075d91a0ad2b4dd50021a564258742d86560bd216ac36482c763087bd8affc68fe9a8d3c46f61f864bc2c7c2e455739d21614516c4f73fd281fd";
-      };
-      aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz";
-        sha512  = "b7c29e4e4baf2d2ba7b29fc5a080df708c5a915e6fb1ce2ff93ffc8f18e7725fae5d569ab1349ef4b067d05d00886a17c8d1a95e211602db1ee5da820b5edefd";
-      };
-      x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz";
-        sha512  = "90c6709c54c0f9f4d7100bbf9c3b8136b6468617034c23f6a60dc17092e311539d54b741e149b70f1b6a6e2c6be0aacc948d4c72abac724f47d5ea05e02a2939";
-      };
-      aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz";
-        sha512  = "901835cfc277c626d38c7a2bc1a6704115d240812631cd32f4b51833b41ddcd3a4a169a1bbda42a9446eb33b2337f6a8c6410bc3d1bae557c8898d427e2fc8c1";
-      };
-    };
-    packages = { fetchNuGet }: [
+let
+  packages = { fetchNuGet }: [
       (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "9.0.0-preview.1.24081.5"; sha256 = "1li21dfibwmzrcnf1jlaybhrxjk3cb9vqyy700s5bqwcw69px7dh"; })
       (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "9.0.0-preview.1.24081.5"; sha256 = "1gnilvb9ys76snhlv2vnv3h6xp9a6hb6pjjvlaawvl71y2cpjy4q"; })
       (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "9.0.0-preview.1.24081.5"; sha256 = "05gvwi0i1s3rsi43cb3v8cd2pzr0qzccq8vhf4wm9rj63j0flz9y"; })
@@ -138,6 +75,76 @@
       (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "13411aghpjxkip2ddq0pkg7b4gmy1qr9migfbpd2nc7287gngd72"; })
       (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "16dw2qixs6bn16inplwc57x4kbwkd0amaqzhsrf1wsaajal4fh5q"; })
       (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "9.0.0-preview.1.24080.9"; sha256 = "0sxas6zxpfwrz6bvkw9jyraprksvrgm92hccispxp7yh8mjkhcr0"; })
-    ];
+  ];
+in rec {
+  release_9_0 = "9.0.0-preview.1";
+
+  aspnetcore_9_0 = buildAspNetCore {
+    version = "9.0.0-preview.1.24081.5";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/14b2b268-4d58-4f7b-9708-46c5a0a5b868/3cfbd27c7e2aabc0ca70f474709a4767/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-x64.tar.gz";
+        sha512  = "29bfe0b5b72608eba97151909308a67a47dc299902a46bf1a22d67bb5f8a0c87c6f4533c0c2d4679f9440f9ccccf549c434a4280c101f7633bdbdcf049c95817";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3f2586f3-89fd-44ad-aae2-4c241f72996f/f973c7140305733792dd25b466e37606/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm64.tar.gz";
+        sha512  = "118967e64995d7c242738bf806928ecc52cfae3b0e0429a6951047eaf37d27bdde0adc0c6dc74e32d61b69565f7666cbfd4658396c37988e5d343debcc15bdf6";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/2e9a9af2-f1dd-467a-85f3-430f5142bf0b/6ce0853ee69a127bb767270a737f6467/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-x64.tar.gz";
+        sha512  = "3ed80631a3ca0a4684a70fc0f17d46257a63cc71c7497c958accb4d329eff4a7c832a29c028b608798fbed0b82e2c5b7d5533c57dff2188d4142559b57341192";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/a407f4d8-183b-45c9-8153-c889c10630b9/2388fbcc5171e20d05abeb301027df2e/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-arm64.tar.gz";
+        sha512  = "09746054c291b10bacf3fba8ad147443fd41f42b6b04d9559281bc7d919ddc56ebe7402021997f6f24b745b3292368719cc2142d0eebba76226c5603545b6743";
+      };
+    };
   };
+
+  runtime_9_0 = buildNetRuntime {
+    version = "9.0.0-preview.1.24080.9";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/5bcb417b-0de3-461c-9ce2-a9ddd5df1aff/73e36aaa7c2e381724a2adac149eb376/dotnet-runtime-9.0.0-preview.1.24080.9-linux-x64.tar.gz";
+        sha512  = "68f0b89227c8e0b3239477409708c1b0c5cc7d80afd6661dc2150946c66e2130cf560c2471609f0fd063f01ca1d8e72f74beec45ecb519cf58f1cdc434615054";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/7d911f96-acdc-4f5f-b283-cae6d6439bfd/f9e1c8d283ffd1d2e40346926a9c37bc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm64.tar.gz";
+        sha512  = "265b7bf094730be765bdaadec3215c1a7c51bff6fb18bb51cff383473e32d1ba821b6d046e0f7fa864400dc5cb68e35943057f5b6ae6e8c411375fc15fdbaf3c";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0307fdd7-b398-4e90-a88b-574d853b769b/ab8938a35b03d8308a7a16331fa65cfa/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.tar.gz";
+        sha512  = "f644ce6ee158bd86a4aba21bdd955a3aebb0367b5af618b6e77dc85922bc790b9c33b572606a15f566b2729a90923f66a933159124e803494105a695c890b775";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/079214b6-0ce6-4d6f-a0ac-9bd9072dad0f/14b558eb20224c345f78ea80f7029e11/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.tar.gz";
+        sha512  = "63bf6a57f61c4dcf4e0cdcedb8ff6c76cb702a95d4e0033f17b4cd2a3e800e73ab16c401fb098416404ea5716c725c175f9422250b2a8816c08eed2702cd38e5";
+      };
+    };
+  };
+
+  sdk_9_0_1xx = buildNetSdk {
+    version = "9.0.100-preview.1.24101.2";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz";
+        sha512  = "e176126d9a12075d91a0ad2b4dd50021a564258742d86560bd216ac36482c763087bd8affc68fe9a8d3c46f61f864bc2c7c2e455739d21614516c4f73fd281fd";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz";
+        sha512  = "b7c29e4e4baf2d2ba7b29fc5a080df708c5a915e6fb1ce2ff93ffc8f18e7725fae5d569ab1349ef4b067d05d00886a17c8d1a95e211602db1ee5da820b5edefd";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz";
+        sha512  = "90c6709c54c0f9f4d7100bbf9c3b8136b6468617034c23f6a60dc17092e311539d54b741e149b70f1b6a6e2c6be0aacc948d4c72abac724f47d5ea05e02a2939";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz";
+        sha512  = "901835cfc277c626d38c7a2bc1a6704115d240812631cd32f4b51833b41ddcd3a4a169a1bbda42a9446eb33b2337f6a8c6410bc3d1bae557c8898d427e2fc8c1";
+      };
+    };
+    inherit packages;
+  };
+
+  sdk_9_0 = sdk_9_0_1xx;
 }
diff --git a/pkgs/development/compilers/dotnet/vmr.nix b/pkgs/development/compilers/dotnet/vmr.nix
index 962c0c0844a5b..cf1035da2cbd1 100644
--- a/pkgs/development/compilers/dotnet/vmr.nix
+++ b/pkgs/development/compilers/dotnet/vmr.nix
@@ -251,6 +251,11 @@ in stdenv.mkDerivation rec {
     substituteInPlace \
       src/runtime/src/native/libs/System.Security.Cryptography.Native.Apple/CMakeLists.txt \
       --replace-fail 'xcrun swiftc' 'xcrun swiftc -module-cache-path "$ENV{HOME}/.cache/module-cache"'
+
+    # fix: strip: error: unknown argument '-n'
+    substituteInPlace \
+      src/runtime/eng/native/functions.cmake \
+      --replace-fail ' -no_code_signature_warning' ""
   '';
 
   prepFlags = [
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index 44e1459af84da..ca9f37ff53673 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -5,307 +5,52 @@
 }:
 
 let
-  fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { };
+  fetchElmDeps = pkgs.callPackage ./lib/fetchElmDeps.nix { };
 
   # Haskell packages that require ghc 9.6
-  hs96Pkgs = self: pkgs.haskell.packages.ghc96.override {
-    overrides = self: super: with pkgs.haskell.lib.compose; with lib;
-    let elmPkgs = rec {
-      elm = overrideCabal (drv: {
-        # sadly with parallelism most of the time breaks compilation
-        enableParallelBuilding = false;
-        preConfigure = fetchElmDeps {
-          elmPackages = (import ./packages/elm-srcs.nix);
-          elmVersion = drv.version;
-          registryDat = ./registry.dat;
-        };
-        buildTools = drv.buildTools or [] ++ [ makeWrapper ];
-        postInstall = ''
-          wrapProgram $out/bin/elm \
-            --prefix PATH ':' ${lib.makeBinPath [ nodejs ]}
-        '';
-
-        description = "A delightful language for reliable webapps";
-        homepage = "https://elm-lang.org/";
-        license = licenses.bsd3;
-        maintainers = with maintainers; [ domenkozar turbomack ];
-      }) (self.callPackage ./packages/elm.nix { });
-
-      inherit fetchElmDeps;
-      elmVersion = elmPkgs.elm.version;
-    };
-    in elmPkgs // {
-      inherit elmPkgs;
-
-      ansi-wl-pprint = overrideCabal (drv: {
-        jailbreak = true;
-      }) (self.callPackage ./packages/ansi-wl-pprint.nix {});
-    };
-  };
+  hs96Pkgs = import ./packages/ghc9_6 { inherit pkgs lib makeWrapper nodejs fetchElmDeps; };
 
   # Haskell packages that require ghc 8.10
-  hs810Pkgs = self: pkgs.haskell.packages.ghc810.override {
-    overrides = self: super: with pkgs.haskell.lib.compose; with lib;
-    let elmPkgs = rec {
-      elmi-to-json = justStaticExecutables (overrideCabal (drv: {
-        prePatch = ''
-          substituteInPlace package.yaml --replace "- -Werror" ""
-          hpack
-        '';
-        jailbreak = true;
-
-        description = "Tool that reads .elmi files (Elm interface file) generated by the elm compiler";
-        homepage = "https://github.com/stoeffel/elmi-to-json";
-        license = licenses.bsd3;
-        maintainers = [ maintainers.turbomack ];
-      }) (self.callPackage ./packages/elmi-to-json.nix {}));
-
-      elm-instrument = justStaticExecutables (overrideCabal (drv: {
-        prePatch = ''
-          sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
-        '';
-        jailbreak = true;
-        # Tests are failing because of missing instances for Eq and Show type classes
-        doCheck = false;
-
-        description = "Instrument Elm code as a preprocessing step for elm-coverage";
-        homepage = "https://github.com/zwilias/elm-instrument";
-        license = licenses.bsd3;
-        maintainers = [ maintainers.turbomack ];
-      }) (self.callPackage ./packages/elm-instrument.nix {}));
-    };
-    in elmPkgs // {
-      inherit elmPkgs;
-
-      # We need attoparsec < 0.14 to build elm for now
-      attoparsec = self.attoparsec_0_13_2_5;
-
-      # aeson 2.0.3.0 does not build with attoparsec_0_13_2_5
-      aeson = doJailbreak self.aeson_1_5_6_0;
-
-      # elm-instrument needs this
-      indents = self.callPackage ./packages/indents.nix {};
-
-      # elm-instrument's tests depend on an old version of elm-format, but we set doCheck to false for other reasons above
-      elm-format = null;
-    };
-  };
+  hs810Pkgs = import ./packages/ghc8_10 { inherit pkgs lib; };
 
   # Haskell packages that require ghc 9.2
-  hs92Pkgs = self: pkgs.haskell.packages.ghc92.override {
-    overrides = self: super: with pkgs.haskell.lib.compose; with lib;
-    let elmPkgs = rec {
-      /*
-      The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
-      `package/nix/build.sh`
-      */
-      elm-format = justStaticExecutables (overrideCabal (drv: {
-        jailbreak = true;
-
-        description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
-        homepage = "https://github.com/avh4/elm-format";
-        license = licenses.bsd3;
-        maintainers = with maintainers; [ avh4 turbomack ];
-      }) (self.callPackage ./packages/elm-format.nix {}));
-    };
-    in elmPkgs // {
-      inherit elmPkgs;
-
-      # Needed for elm-format
-      avh4-lib = doJailbreak (self.callPackage ./packages/avh4-lib.nix {});
-      elm-format-lib = doJailbreak (self.callPackage ./packages/elm-format-lib.nix {});
-      elm-format-test-lib = self.callPackage ./packages/elm-format-test-lib.nix {};
-      elm-format-markdown = self.callPackage ./packages/elm-format-markdown.nix {};
-
-      # elm-format requires text >= 2.0
-      text = self.text_2_0_2;
-      # unorderd-container's tests indirectly depend on text < 2.0
-      unordered-containers = overrideCabal (drv: { doCheck = false; }) super.unordered-containers;
-      # relude-1.1.0.0's tests depend on hedgehog < 1.2, which indirectly depends on text < 2.0
-      relude = overrideCabal (drv: { doCheck = false; }) super.relude;
-    };
-  };
-
-  nodePkgs = pkgs.callPackage ./packages/node-composition.nix {
-    inherit pkgs nodejs;
-    inherit (pkgs.stdenv.hostPlatform) system;
-  };
-
-in lib.makeScope pkgs.newScope (self: with self; {
-  inherit fetchElmDeps nodejs;
-
-  /* Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`.
-
-      * Packages which rely on `bin-wrap` will fail by default
-        and can be patched using `patchBinwrap` function defined in `packages/lib.nix`.
-
-      * Packages which depend on npm installation of elm can be patched using
-        `patchNpmElm` function also defined in `packages/lib.nix`.
-  */
-  elmLib = let
-    hsElmPkgs = (hs810Pkgs self) // (hs96Pkgs self);
-  in import ./packages/lib.nix {
-    inherit lib;
-    inherit (pkgs) writeScriptBin stdenv;
-    inherit (hsElmPkgs.elmPkgs) elm;
-  };
+  hs92Pkgs = import ./packages/ghc9_2 { inherit pkgs lib; };
 
-  elm-json = callPackage ./packages/elm-json.nix { };
+  # Patched, originally npm-downloaded, packages
+  patchedNodePkgs = import ./packages/node { inherit pkgs lib nodejs makeWrapper; };
 
-  elm-test-rs = callPackage ./packages/elm-test-rs.nix { };
+  assembleScope = self: basics:
+    (hs96Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (hs810Pkgs self).elmPkgs // (patchedNodePkgs self) // basics;
+in
+lib.makeScope pkgs.newScope
+  (self: assembleScope self
+    (with self; {
+      inherit fetchElmDeps nodejs;
 
-  elm-test = callPackage ./packages/elm-test.nix { };
-} // (hs96Pkgs self).elmPkgs // (hs92Pkgs self).elmPkgs // (hs810Pkgs self).elmPkgs // (with elmLib; with (hs96Pkgs self).elmPkgs; {
-  elm-verify-examples = let
-    patched = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples // {
-    meta = with lib; nodePkgs.elm-verify-examples.meta // {
-      description = "Verify examples in your docs";
-      homepage = "https://github.com/stoeffel/elm-verify-examples";
-      license = licenses.bsd3;
-      maintainers = [ maintainers.turbomack ];
-    };
-  };
-  in patched.override (old: {
-    preRebuild = (old.preRebuild or "") + ''
-      # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
-      # in case of just this package
-      # TODO: investigate, same as for elm-coverage below
-      sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
-    '';
-  });
+      /* Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`.
 
-  elm-coverage = let
-      patched = patchNpmElm (patchBinwrap [elmi-to-json] nodePkgs.elm-coverage);
-    in patched.override (old: {
-      # Symlink Elm instrument binary
-      preRebuild = (old.preRebuild or "") + ''
-        # Noop custom installation script
-        sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
+        * Packages which rely on `bin-wrap` will fail by default
+          and can be patched using `patchBinwrap` function defined in `packages/lib.nix`.
 
-        # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
-        # in case of just this package
-        # TODO: investigate
-        sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
-      '';
-      postInstall = (old.postInstall or "") + ''
-        mkdir -p unpacked_bin
-        ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
-      '';
-      meta = with lib; nodePkgs.elm-coverage.meta // {
-        description = "Work in progress - Code coverage tooling for Elm";
-        homepage = "https://github.com/zwilias/elm-coverage";
-        license = licenses.bsd3;
-        maintainers = [ maintainers.turbomack ];
-      };
-    });
-
-    create-elm-app = patchNpmElm
-    nodePkgs.create-elm-app // {
-      meta = with lib; nodePkgs.create-elm-app.meta // {
-        description = "Create Elm apps with no build configuration";
-        homepage = "https://github.com/halfzebra/create-elm-app";
-        license = licenses.mit;
-        maintainers = [ maintainers.turbomack ];
-      };
-    };
-
-    elm-graphql =
-      nodePkgs."@dillonkearns/elm-graphql" // {
-        meta = with lib; nodePkgs."@dillonkearns/elm-graphql".meta // {
-          description = " Autogenerate type-safe GraphQL queries in Elm.";
-          license = licenses.bsd3;
-          maintainers = [ maintainers.pedrohlc ];
-        };
-      };
-
-    elm-review =
-      nodePkgs.elm-review // {
-        meta = with lib; nodePkgs.elm-review.meta // {
-          description = "Analyzes Elm projects, to help find mistakes before your users find them";
-          homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}";
-          license = licenses.bsd3;
-          maintainers = [ maintainers.turbomack ];
-        };
-      };
-
-      elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // {
-        meta = with lib; nodePkgs."@elm-tooling/elm-language-server".meta // {
-          description = "Language server implementation for Elm";
-          homepage = "https://github.com/elm-tooling/elm-language-server";
-          license = licenses.mit;
-          maintainers = [ maintainers.turbomack ];
-        };
-      };
-
-      elm-spa = nodePkgs."elm-spa".overrideAttrs  (
-        old: {
-          nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ];
-
-          meta = with lib; nodePkgs."elm-spa".meta // {
-            description = "A tool for building single page apps in Elm";
-            homepage = "https://www.elm-spa.dev/";
-            license = licenses.bsd3;
-            maintainers = [ maintainers.ilyakooo0 ];
-          };
-        }
-      );
-
-      elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
-        meta = with lib; nodePkgs."elm-optimize-level-2".meta // {
-          description = "A second level of optimization for the Javascript that the Elm Compiler produces";
-          homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
-          license = licenses.bsd3;
-          maintainers = [ maintainers.turbomack ];
-        };
-      };
-
-      elm-pages = nodePkgs."elm-pages".overrideAttrs (
-        old: {
-          nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ];
-
-          # can't use `patches = [ <patch_file> ]` with a nodePkgs derivation;
-          # need to patch in one of the build phases instead.
-          # see upstream issue https://github.com/dillonkearns/elm-pages/issues/305 for dealing with the read-only problem
-          preFixup = ''
-            patch $out/lib/node_modules/elm-pages/generator/src/codegen.js ${./packages/elm-pages-fix-read-only.patch}
-            patch $out/lib/node_modules/elm-pages/generator/src/init.js ${./packages/elm-pages-fix-init-read-only.patch}
-          '';
-
-          postFixup = ''
-            wrapProgram $out/bin/elm-pages --prefix PATH : ${
-              with pkgs.elmPackages; lib.makeBinPath [ elm elm-review elm-optimize-level-2 ]
-            }
-          '';
-
-          meta = with lib; nodePkgs."elm-pages".meta // {
-            description = "A statically typed site generator for Elm.";
-            homepage = "https://github.com/dillonkearns/elm-pages";
-            license = licenses.bsd3;
-            maintainers = [ maintainers.turbomack maintainers.jali-clarke ];
-          };
-        }
-      );
-
-      elm-land =
+        * Packages which depend on npm installation of elm can be patched using
+          `patchNpmElm` function also defined in `packages/lib.nix`.
+      */
+      elmLib =
         let
-          patched = patchNpmElm nodePkgs.elm-land;
+          hsElmPkgs = (hs810Pkgs self) // (hs96Pkgs self);
         in
-        patched.override (old: {
-          meta = with lib; nodePkgs."elm-land".meta // {
-            description = "A production-ready framework for building Elm applications.";
-            homepage = "https://elm.land/";
-            license = licenses.bsd3;
-            maintainers = [ maintainers.zupo ];
-          };
-        }
-      );
+        import ./lib {
+          inherit lib;
+          inherit (pkgs) writeScriptBin stdenv;
+          inherit (self) elm;
+        };
+
+      elm-json = callPackage ./packages/elm-json { };
 
-      lamdera = callPackage ./packages/lamdera.nix {};
+      elm-test-rs = callPackage ./packages/elm-test-rs { };
 
-      elm-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: {
-        nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ old.nodejs.pkgs.node-gyp-build ];
-      });
+      elm-test = callPackage ./packages/elm-test { };
 
-      inherit (nodePkgs) elm-live elm-upgrade elm-xref elm-analyse elm-git-install;
+      lamdera = callPackage ./packages/lamdera { };
     })
   )
diff --git a/pkgs/development/compilers/elm/packages/lib.nix b/pkgs/development/compilers/elm/lib/default.nix
index 12e0600dc2310..12e0600dc2310 100644
--- a/pkgs/development/compilers/elm/packages/lib.nix
+++ b/pkgs/development/compilers/elm/lib/default.nix
diff --git a/pkgs/development/compilers/elm/fetchElmDeps.nix b/pkgs/development/compilers/elm/lib/fetchElmDeps.nix
index 9715bfbe037d4..9715bfbe037d4 100644
--- a/pkgs/development/compilers/elm/fetchElmDeps.nix
+++ b/pkgs/development/compilers/elm/lib/fetchElmDeps.nix
diff --git a/pkgs/development/compilers/elm/lib/makeDotElm.nix b/pkgs/development/compilers/elm/lib/makeDotElm.nix
new file mode 100644
index 0000000000000..ab62eb88e2202
--- /dev/null
+++ b/pkgs/development/compilers/elm/lib/makeDotElm.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchurl, registryDat }:
+
+ver: deps:
+let
+  cmds = lib.mapAttrsToList
+    (name: info:
+      let
+        pkg = stdenv.mkDerivation {
+          name = lib.replaceStrings [ "/" ] [ "-" ] name + "-${info.version}";
+
+          src = fetchurl {
+            url = "https://github.com/${name}/archive/${info.version}.tar.gz";
+            meta.homepage = "https://github.com/${name}/";
+            inherit (info) sha256;
+          };
+
+          dontConfigure = true;
+          dontBuild = true;
+
+          installPhase = ''
+            mkdir -p $out
+            cp -r * $out
+          '';
+        };
+      in
+      ''
+        mkdir -p .elm/${ver}/packages/${name}
+        cp -R ${pkg} .elm/${ver}/packages/${name}/${info.version}
+      '')
+    deps;
+in
+(lib.concatStrings cmds) + ''
+  mkdir -p .elm/${ver}/packages;
+  cp ${registryDat} .elm/${ver}/packages/registry.dat;
+  chmod -R +w .elm
+''
diff --git a/pkgs/development/compilers/elm/makeDotElm.nix b/pkgs/development/compilers/elm/makeDotElm.nix
deleted file mode 100644
index 43252747c3a38..0000000000000
--- a/pkgs/development/compilers/elm/makeDotElm.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{stdenv, lib, fetchurl, registryDat}:
-
-ver: deps:
-  let cmds = lib.mapAttrsToList (name: info: let
-               pkg = stdenv.mkDerivation {
-                 name = lib.replaceStrings ["/"] ["-"] name + "-${info.version}";
-
-                 src = fetchurl {
-                   url = "https://github.com/${name}/archive/${info.version}.tar.gz";
-                   meta.homepage = "https://github.com/${name}/";
-                   inherit (info) sha256;
-                 };
-
-                 configurePhase = ''
-                   true
-                 '';
-
-                 buildPhase = ''
-                   true
-                 '';
-
-                 installPhase = ''
-                   mkdir -p $out
-                   cp -r * $out
-                 '';
-               };
-             in ''
-               mkdir -p .elm/${ver}/packages/${name}
-               cp -R ${pkg} .elm/${ver}/packages/${name}/${info.version}
-             '') deps;
-  in (lib.concatStrings cmds) + ''
-    mkdir -p .elm/${ver}/packages;
-    cp ${registryDat} .elm/${ver}/packages/registry.dat;
-    chmod -R +w .elm
-  ''
diff --git a/pkgs/development/compilers/elm/packages/bimap.nix b/pkgs/development/compilers/elm/packages/bimap.nix
deleted file mode 100644
index 41412d1639c7f..0000000000000
--- a/pkgs/development/compilers/elm/packages/bimap.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ mkDerivation, base, containers, exceptions, lib, QuickCheck
-, template-haskell
-}:
-mkDerivation {
-  pname = "bimap";
-  version = "0.3.3";
-  sha256 = "73829355c7bcbd3eedba22a382a04a3ab641702b00828790ec082ec2db3a8ad1";
-  libraryHaskellDepends = [ base containers exceptions ];
-  testHaskellDepends = [
-    base containers exceptions QuickCheck template-haskell
-  ];
-  homepage = "https://github.com/joelwilliamson/bimap";
-  description = "Bidirectional mapping between two key types";
-  license = lib.licenses.bsd3;
-}
diff --git a/pkgs/development/compilers/elm/packages/elm-json.nix b/pkgs/development/compilers/elm/packages/elm-json/default.nix
index 5b988244cc97b..16cd7f972ce45 100644
--- a/pkgs/development/compilers/elm/packages/elm-json.nix
+++ b/pkgs/development/compilers/elm/packages/elm-json/default.nix
@@ -17,12 +17,13 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256:nlpxlPzWk3wwDgczuMI9T6DFY1YtQpQ1R4BhdPbzZBs=";
   };
 
-  cargoPatches = [ ./elm-json.patch ];
+  cargoPatches = [ ./use-system-ssl.patch ];
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
-    curl openssl
+    curl
+    openssl
   ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
 
   cargoSha256 = "sha256:8SOpL8nfhYen9vza0LYpB/5fgVmBwG7vGMmFOaJskIc=";
diff --git a/pkgs/development/compilers/elm/packages/elm-json.patch b/pkgs/development/compilers/elm/packages/elm-json/use-system-ssl.patch
index 54df030192312..54df030192312 100644
--- a/pkgs/development/compilers/elm/packages/elm-json.patch
+++ b/pkgs/development/compilers/elm/packages/elm-json/use-system-ssl.patch
diff --git a/pkgs/development/compilers/elm/packages/elm-test-rs.nix b/pkgs/development/compilers/elm/packages/elm-test-rs/default.nix
index 02f69c2d2f03f..02f69c2d2f03f 100644
--- a/pkgs/development/compilers/elm/packages/elm-test-rs.nix
+++ b/pkgs/development/compilers/elm/packages/elm-test-rs/default.nix
diff --git a/pkgs/development/compilers/elm/packages/elm-test.nix b/pkgs/development/compilers/elm/packages/elm-test/default.nix
index eca45395c3df2..eca45395c3df2 100644
--- a/pkgs/development/compilers/elm/packages/elm-test.nix
+++ b/pkgs/development/compilers/elm/packages/elm-test/default.nix
diff --git a/pkgs/development/compilers/elm/packages/ghc8_10/default.nix b/pkgs/development/compilers/elm/packages/ghc8_10/default.nix
new file mode 100644
index 0000000000000..f68e582b3d0b9
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/ghc8_10/default.nix
@@ -0,0 +1,79 @@
+{ pkgs, lib }:
+
+self: pkgs.haskell.packages.ghc810.override {
+  overrides = self: super: with pkgs.haskell.lib.compose; with lib;
+    let
+      elmPkgs = rec {
+        elmi-to-json = justStaticExecutables (overrideCabal
+          (drv: {
+            version = "unstable-2021-07-19";
+            src = pkgs.fetchgit {
+              url = "https://github.com/stoeffel/elmi-to-json";
+              sha256 = "0vy678k15rzpsn0aly90fb01pxsbqkgf86pa86w0gd94lka8acwl";
+              rev = "6a42376ef4b6877e130971faf964578cc096e29b";
+              fetchSubmodules = true;
+            };
+
+            prePatch = ''
+              substituteInPlace package.yaml --replace "- -Werror" ""
+              hpack
+            '';
+            jailbreak = true;
+
+            description = "Tool that reads .elmi files (Elm interface file) generated by the elm compiler";
+            homepage = "https://github.com/stoeffel/elmi-to-json";
+            license = licenses.bsd3;
+            maintainers = [ maintainers.turbomack ];
+          })
+          (self.callPackage ./elmi-to-json { }));
+
+        elm-instrument = justStaticExecutables (overrideCabal
+          (drv: {
+            version = "unstable-2020-03-16";
+            src = pkgs.fetchgit {
+              url = "https://github.com/zwilias/elm-instrument";
+              sha256 = "167d7l2547zxdj7i60r6vazznd9ichwc0bqckh3vrh46glkz06jv";
+              rev = "63e15bb5ec5f812e248e61b6944189fa4a0aee4e";
+              fetchSubmodules = true;
+            };
+            patches = [
+              # Update code after breaking change in optparse-applicative
+              # https://github.com/zwilias/elm-instrument/pull/5
+              (pkgs.fetchpatch {
+                name = "update-optparse-applicative.patch";
+                url = "https://github.com/mdevlamynck/elm-instrument/commit/c548709d4818aeef315528e842eaf4c5b34b59b4.patch";
+                sha256 = "0ln7ik09n3r3hk7jmwwm46kz660mvxfa71120rkbbaib2falfhsc";
+              })
+            ];
+
+            prePatch = ''
+              sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
+            '';
+            jailbreak = true;
+            # Tests are failing because of missing instances for Eq and Show type classes
+            doCheck = false;
+
+            description = "Instrument Elm code as a preprocessing step for elm-coverage";
+            homepage = "https://github.com/zwilias/elm-instrument";
+            license = licenses.bsd3;
+            maintainers = [ maintainers.turbomack ];
+          })
+          (self.callPackage ./elm-instrument { }));
+      };
+    in
+    elmPkgs // {
+      inherit elmPkgs;
+
+      # We need attoparsec < 0.14 to build elm for now
+      attoparsec = self.attoparsec_0_13_2_5;
+
+      # aeson 2.0.3.0 does not build with attoparsec_0_13_2_5
+      aeson = doJailbreak self.aeson_1_5_6_0;
+
+      # elm-instrument needs this
+      indents = self.callPackage ./indents { };
+
+      # elm-instrument's tests depend on an old version of elm-format, but we set doCheck to false for other reasons above
+      elm-format = null;
+    };
+}
diff --git a/pkgs/development/compilers/elm/packages/elm-instrument.nix b/pkgs/development/compilers/elm/packages/ghc8_10/elm-instrument/default.nix
index 02593b8550777..7f6a25905e36f 100644
--- a/pkgs/development/compilers/elm/packages/elm-instrument.nix
+++ b/pkgs/development/compilers/elm/packages/ghc8_10/elm-instrument/default.nix
@@ -1,28 +1,18 @@
-{ mkDerivation, fetchpatch, ansi-terminal, ansi-wl-pprint, base, binary
+{ mkDerivation, ansi-terminal, ansi-wl-pprint, base, binary
 , bytestring, Cabal, cmark, containers, directory, elm-format
-, fetchgit, filepath, free, HUnit, indents, json, mtl
+, fetchgit, filepath, free, HUnit, indents, json, lib, mtl
 , optparse-applicative, parsec, process, QuickCheck, quickcheck-io
-, split, lib, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
-, text
+, split, tasty, tasty-golden, tasty-hunit, tasty-quickcheck, text
 }:
 mkDerivation {
   pname = "elm-instrument";
   version = "0.0.7";
   src = fetchgit {
     url = "https://github.com/zwilias/elm-instrument";
-    sha256 = "167d7l2547zxdj7i60r6vazznd9ichwc0bqckh3vrh46glkz06jv";
-    rev = "63e15bb5ec5f812e248e61b6944189fa4a0aee4e";
+    sha256 = "14yfzwsyvgc6rzn19sdmwk2mc1vma9hcljnmjnmlig8mp0271v56";
+    rev = "31b527e405a6afdb25bb87ad7bd14f979e65cff7";
     fetchSubmodules = true;
   };
-  patches = [
-    # Update code after breaking change in optparse-applicative
-    # https://github.com/zwilias/elm-instrument/pull/5
-    (fetchpatch {
-      name = "update-optparse-applicative.patch";
-      url = "https://github.com/mdevlamynck/elm-instrument/commit/c548709d4818aeef315528e842eaf4c5b34b59b4.patch";
-      sha256 = "0ln7ik09n3r3hk7jmwwm46kz660mvxfa71120rkbbaib2falfhsc";
-    })
-  ];
   isLibrary = true;
   isExecutable = true;
   setupHaskellDepends = [ base Cabal directory filepath process ];
@@ -37,7 +27,7 @@ mkDerivation {
     quickcheck-io split tasty tasty-golden tasty-hunit tasty-quickcheck
     text
   ];
-  homepage = "https://elm-lang.org";
+  homepage = "http://elm-lang.org";
   description = "Instrumentation library for Elm";
   license = lib.licenses.bsd3;
   mainProgram = "elm-instrument";
diff --git a/pkgs/development/compilers/elm/packages/elmi-to-json.nix b/pkgs/development/compilers/elm/packages/ghc8_10/elmi-to-json/default.nix
index f82f3e5179ac8..fc2c76149a1a5 100644
--- a/pkgs/development/compilers/elm/packages/elmi-to-json.nix
+++ b/pkgs/development/compilers/elm/packages/ghc8_10/elmi-to-json/default.nix
@@ -1,15 +1,15 @@
 { mkDerivation, aeson, base, binary, bytestring, containers
-, directory, fetchgit, filepath, ghc-prim, hpack
-, optparse-applicative, lib, text, unliftio
-, unordered-containers
+, directory, fetchgit, filepath, ghc-prim, hpack, lib
+, optparse-applicative, text, unliftio, unordered-containers
 }:
 mkDerivation {
   pname = "elmi-to-json";
   version = "1.3.0";
   src = fetchgit {
     url = "https://github.com/stoeffel/elmi-to-json";
-    rev = "bd18efb59d247439b362272b480e67a16a4e424e";
-    sha256 = "sha256-9fScXRSyTkqzeXwh/Jjza6mnENCThlU6KI366CLFcgY=";
+    sha256 = "0vy678k15rzpsn0aly90fb01pxsbqkgf86pa86w0gd94lka8acwl";
+    rev = "6a42376ef4b6877e130971faf964578cc096e29b";
+    fetchSubmodules = true;
   };
   isLibrary = true;
   isExecutable = true;
@@ -23,4 +23,5 @@ mkDerivation {
   prePatch = "hpack";
   homepage = "https://github.com/stoeffel/elmi-to-json#readme";
   license = lib.licenses.bsd3;
+  mainProgram = "elmi-to-json";
 }
diff --git a/pkgs/development/compilers/elm/packages/indents.nix b/pkgs/development/compilers/elm/packages/ghc8_10/indents/default.nix
index 85e765db3e50b..85e765db3e50b 100644
--- a/pkgs/development/compilers/elm/packages/indents.nix
+++ b/pkgs/development/compilers/elm/packages/ghc8_10/indents/default.nix
diff --git a/pkgs/development/compilers/elm/packages/ghc9_2/default.nix b/pkgs/development/compilers/elm/packages/ghc9_2/default.nix
new file mode 100644
index 0000000000000..5ef5eff3bef17
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/ghc9_2/default.nix
@@ -0,0 +1,53 @@
+{ pkgs, lib }:
+
+self: pkgs.haskell.packages.ghc92.override {
+  overrides = self: super: with pkgs.haskell.lib.compose; with lib;
+    let
+      elmPkgs = rec {
+        /*
+          The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
+          `package/nix/build.sh`
+        */
+        elm-format = justStaticExecutables (overrideCabal
+          (drv: {
+            jailbreak = true;
+            doHaddock = false;
+            postPatch = ''
+              mkdir -p ./generated
+              cat <<EOHS > ./generated/Build_elm_format.hs
+              module Build_elm_format where
+              gitDescribe :: String
+              gitDescribe = "${drv.version}"
+              EOHS
+            '';
+
+            description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
+            homepage = "https://github.com/avh4/elm-format";
+            license = licenses.bsd3;
+            maintainers = with maintainers; [ avh4 turbomack ];
+          })
+          (self.callPackage ./elm-format/elm-format.nix { }));
+      };
+
+      fixHaddock = overrideCabal (_: {
+        configureFlags = [ "--ghc-option=-Wno-error=unused-packages" ];
+        doHaddock = false;
+      });
+    in
+    elmPkgs // {
+      inherit elmPkgs;
+
+      # Needed for elm-format
+      avh4-lib = fixHaddock (doJailbreak (self.callPackage ./elm-format/avh4-lib.nix { }));
+      elm-format-lib =  fixHaddock (doJailbreak (self.callPackage ./elm-format/elm-format-lib.nix { }));
+      elm-format-test-lib = fixHaddock (self.callPackage ./elm-format/elm-format-test-lib.nix { });
+      elm-format-markdown = fixHaddock (self.callPackage ./elm-format/elm-format-markdown.nix { });
+
+      # elm-format requires text >= 2.0
+      text = self.text_2_0_2;
+      # unorderd-container's tests indirectly depend on text < 2.0
+      unordered-containers = overrideCabal (drv: { doCheck = false; }) super.unordered-containers;
+      # relude-1.1.0.0's tests depend on hedgehog < 1.2, which indirectly depends on text < 2.0
+      relude = overrideCabal (drv: { doCheck = false; }) super.relude;
+    };
+}
diff --git a/pkgs/development/compilers/elm/packages/avh4-lib.nix b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/avh4-lib.nix
index f7f9381703c6f..e320edfd11623 100644
--- a/pkgs/development/compilers/elm/packages/avh4-lib.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/avh4-lib.nix
@@ -12,7 +12,6 @@ mkDerivation {
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/avh4-lib; echo source root reset to $sourceRoot";
-  configureFlags = [ "--ghc-option=-Wno-error=unused-packages" ];
   libraryHaskellDepends = [
     array base bytestring directory filepath mtl pooled-io process
     relude text
@@ -22,7 +21,6 @@ mkDerivation {
     relude tasty tasty-hspec tasty-hunit text
   ];
   testToolDepends = [ tasty-discover ];
-  doHaddock = false;
   description = "Common code for haskell projects";
   license = lib.licenses.bsd3;
 }
diff --git a/pkgs/development/compilers/elm/packages/elm-format-lib.nix b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-lib.nix
index a6b70414143f1..290534bbea9a5 100644
--- a/pkgs/development/compilers/elm/packages/elm-format-lib.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-lib.nix
@@ -24,7 +24,6 @@ mkDerivation {
     text
   ];
   testToolDepends = [ tasty-discover ];
-  doHaddock = false;
   description = "Common code used by elm-format and elm-refactor";
   license = lib.licenses.bsd3;
 }
diff --git a/pkgs/development/compilers/elm/packages/elm-format-markdown.nix b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-markdown.nix
index fdeb2e88d384a..e57d2127822e7 100644
--- a/pkgs/development/compilers/elm/packages/elm-format-markdown.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-markdown.nix
@@ -10,7 +10,6 @@ mkDerivation {
   };
   postUnpack = "sourceRoot+=/elm-format-markdown; echo source root reset to $sourceRoot";
   libraryHaskellDepends = [ base containers mtl text ];
-  doHaddock = false;
   description = "Markdown parsing for Elm documentation comments";
   license = lib.licenses.bsd3;
 }
diff --git a/pkgs/development/compilers/elm/packages/elm-format-test-lib.nix b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-test-lib.nix
index ccd6264d6c163..43090abbeae49 100644
--- a/pkgs/development/compilers/elm/packages/elm-format-test-lib.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format-test-lib.nix
@@ -21,7 +21,6 @@ mkDerivation {
     split tasty tasty-hspec tasty-hunit text
   ];
   testToolDepends = [ tasty-discover ];
-  doHaddock = false;
   description = "Test helpers used by elm-format-tests and elm-refactor-tests";
   license = lib.licenses.bsd3;
 }
diff --git a/pkgs/development/compilers/elm/packages/elm-format.nix b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix
index c4448f2464254..82ec995e1ecc2 100644
--- a/pkgs/development/compilers/elm/packages/elm-format.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix
@@ -3,7 +3,7 @@
 , optparse-applicative, QuickCheck, quickcheck-io, relude, tasty
 , tasty-hspec, tasty-hunit, tasty-quickcheck, text
 }:
-mkDerivation rec {
+mkDerivation {
   pname = "elm-format";
   version = "0.8.7";
   src = fetchgit {
@@ -24,18 +24,8 @@ mkDerivation rec {
     quickcheck-io relude tasty tasty-hspec tasty-hunit tasty-quickcheck
     text
   ];
-  doHaddock = false;
   homepage = "https://elm-lang.org";
   description = "A source code formatter for Elm";
   license = lib.licenses.bsd3;
   mainProgram = "elm-format";
-  postPatch = ''
-    mkdir -p ./generated
-    cat <<EOHS > ./generated/Build_elm_format.hs
-    module Build_elm_format where
-
-    gitDescribe :: String
-    gitDescribe = "${version}"
-    EOHS
-  '';
 }
diff --git a/pkgs/development/compilers/elm/packages/ansi-wl-pprint.nix b/pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix
index 392ca5ab31b1b..392ca5ab31b1b 100644
--- a/pkgs/development/compilers/elm/packages/ansi-wl-pprint.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix
diff --git a/pkgs/development/compilers/elm/packages/ghc9_6/default.nix b/pkgs/development/compilers/elm/packages/ghc9_6/default.nix
new file mode 100644
index 0000000000000..13ba7faa03088
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/ghc9_6/default.nix
@@ -0,0 +1,42 @@
+{ pkgs, lib, makeWrapper, nodejs, fetchElmDeps }:
+
+self: pkgs.haskell.packages.ghc96.override {
+  overrides = self: super: with pkgs.haskell.lib.compose; with lib;
+    let
+      elmPkgs = rec {
+        elm = overrideCabal
+          (drv: {
+            # sadly with parallelism most of the time breaks compilation
+            enableParallelBuilding = false;
+            preConfigure = fetchElmDeps {
+              elmPackages = (import ../elm-srcs.nix);
+              elmVersion = drv.version;
+              registryDat = ../../registry.dat;
+            };
+            buildTools = drv.buildTools or [ ] ++ [ makeWrapper ];
+            postInstall = ''
+              wrapProgram $out/bin/elm \
+                --prefix PATH ':' ${lib.makeBinPath [ nodejs ]}
+            '';
+
+            description = "A delightful language for reliable webapps";
+            homepage = "https://elm-lang.org/";
+            license = licenses.bsd3;
+            maintainers = with maintainers; [ domenkozar turbomack ];
+          })
+          (self.callPackage ./elm { });
+
+        inherit fetchElmDeps;
+        elmVersion = elmPkgs.elm.version;
+      };
+    in
+    elmPkgs // {
+      inherit elmPkgs;
+
+      ansi-wl-pprint = overrideCabal
+        (drv: {
+          jailbreak = true;
+        })
+        (self.callPackage ./ansi-wl-pprint { });
+    };
+}
diff --git a/pkgs/development/compilers/elm/packages/elm.nix b/pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix
index 1071d50a84c95..1071d50a84c95 100644
--- a/pkgs/development/compilers/elm/packages/elm.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix
diff --git a/pkgs/development/compilers/elm/packages/lamdera.nix b/pkgs/development/compilers/elm/packages/lamdera/default.nix
index e3dda4c31a524..c92d2d144d4b8 100644
--- a/pkgs/development/compilers/elm/packages/lamdera.nix
+++ b/pkgs/development/compilers/elm/packages/lamdera/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib
+{ stdenv
+, lib
 , fetchurl
 }:
 
diff --git a/pkgs/development/compilers/elm/packages/node/default.nix b/pkgs/development/compilers/elm/packages/node/default.nix
new file mode 100644
index 0000000000000..6d4d38a6d199c
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/node/default.nix
@@ -0,0 +1,139 @@
+{ pkgs, lib, nodejs, makeWrapper }: self:
+
+let
+  # Untouched npm-downloaded packages
+  nodePkgs = pkgs.callPackage ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (pkgs.stdenv.hostPlatform) system;
+  };
+in
+with self; with elmLib; {
+  inherit (nodePkgs) elm-live elm-upgrade elm-xref elm-analyse elm-git-install;
+
+  elm-verify-examples =
+    let
+      patched = patchBinwrap [ elmi-to-json ] nodePkgs.elm-verify-examples // {
+        meta = with lib; nodePkgs.elm-verify-examples.meta // {
+          description = "Verify examples in your docs";
+          homepage = "https://github.com/stoeffel/elm-verify-examples";
+          license = licenses.bsd3;
+          maintainers = [ maintainers.turbomack ];
+        };
+      };
+    in
+    patched.override (old: {
+      preRebuild = (old.preRebuild or "") + ''
+        # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
+        # in case of just this package
+        # TODO: investigate, same as for elm-coverage below
+        sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
+      '';
+    });
+
+  elm-coverage =
+    let
+      patched = patchNpmElm (patchBinwrap [ elmi-to-json ] nodePkgs.elm-coverage);
+    in
+    patched.override (old: {
+      # Symlink Elm instrument binary
+      preRebuild = (old.preRebuild or "") + ''
+        # Noop custom installation script
+        sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
+
+        # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
+        # in case of just this package
+        # TODO: investigate
+        sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
+      '';
+      postInstall = (old.postInstall or "") + ''
+        mkdir -p unpacked_bin
+        ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
+      '';
+      meta = with lib; nodePkgs.elm-coverage.meta // {
+        description = "Work in progress - Code coverage tooling for Elm";
+        homepage = "https://github.com/zwilias/elm-coverage";
+        license = licenses.bsd3;
+        maintainers = [ maintainers.turbomack ];
+      };
+    });
+
+  create-elm-app = patchNpmElm
+    nodePkgs.create-elm-app // {
+    meta = with lib; nodePkgs.create-elm-app.meta // {
+      description = "Create Elm apps with no build configuration";
+      homepage = "https://github.com/halfzebra/create-elm-app";
+      license = licenses.mit;
+      maintainers = [ maintainers.turbomack ];
+    };
+  };
+
+  elm-graphql =
+    nodePkgs."@dillonkearns/elm-graphql" // {
+      meta = with lib; nodePkgs."@dillonkearns/elm-graphql".meta // {
+        description = " Autogenerate type-safe GraphQL queries in Elm.";
+        license = licenses.bsd3;
+        maintainers = [ maintainers.pedrohlc ];
+      };
+    };
+
+  elm-review =
+    nodePkgs.elm-review // {
+      meta = with lib; nodePkgs.elm-review.meta // {
+        description = "Analyzes Elm projects, to help find mistakes before your users find them";
+        homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}";
+        license = licenses.bsd3;
+        maintainers = [ maintainers.turbomack ];
+      };
+    };
+
+  elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // {
+    meta = with lib; nodePkgs."@elm-tooling/elm-language-server".meta // {
+      description = "Language server implementation for Elm";
+      homepage = "https://github.com/elm-tooling/elm-language-server";
+      license = licenses.mit;
+      maintainers = [ maintainers.turbomack ];
+    };
+  };
+
+  elm-spa = nodePkgs."elm-spa".overrideAttrs (
+    old: {
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ];
+
+      meta = with lib; nodePkgs."elm-spa".meta // {
+        description = "A tool for building single page apps in Elm";
+        homepage = "https://www.elm-spa.dev/";
+        license = licenses.bsd3;
+        maintainers = [ maintainers.ilyakooo0 ];
+      };
+    }
+  );
+
+  elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
+    meta = with lib; nodePkgs."elm-optimize-level-2".meta // {
+      description = "A second level of optimization for the Javascript that the Elm Compiler produces";
+      homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
+      license = licenses.bsd3;
+      maintainers = [ maintainers.turbomack ];
+    };
+  };
+
+  elm-pages = import ./elm-pages { inherit nodePkgs pkgs lib makeWrapper; };
+
+  elm-land =
+    let
+      patched = patchNpmElm nodePkgs.elm-land;
+    in
+    patched.override (old: {
+      meta = with lib; nodePkgs."elm-land".meta // {
+        description = "A production-ready framework for building Elm applications.";
+        homepage = "https://elm.land/";
+        license = licenses.bsd3;
+        maintainers = [ maintainers.zupo ];
+      };
+    }
+    );
+
+  elm-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: {
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ old.nodejs.pkgs.node-gyp-build ];
+  });
+}
diff --git a/pkgs/development/compilers/elm/packages/node/elm-pages/default.nix b/pkgs/development/compilers/elm/packages/node/elm-pages/default.nix
new file mode 100644
index 0000000000000..5502e26b415dd
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/node/elm-pages/default.nix
@@ -0,0 +1,28 @@
+{ nodePkgs, pkgs, lib, makeWrapper }:
+
+nodePkgs."elm-pages".overrideAttrs (
+  old: {
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ];
+
+    # can't use `patches = [ <patch_file> ]` with a nodePkgs derivation;
+    # need to patch in one of the build phases instead.
+    # see upstream issue https://github.com/dillonkearns/elm-pages/issues/305 for dealing with the read-only problem
+    preFixup = ''
+      patch $out/lib/node_modules/elm-pages/generator/src/codegen.js ${./fix-read-only.patch}
+      patch $out/lib/node_modules/elm-pages/generator/src/init.js ${./fix-init-read-only.patch}
+    '';
+
+    postFixup = ''
+      wrapProgram $out/bin/elm-pages --prefix PATH : ${
+        with pkgs.elmPackages; lib.makeBinPath [ elm elm-review elm-optimize-level-2 ]
+      }
+    '';
+
+    meta = with lib; nodePkgs."elm-pages".meta // {
+      description = "A statically typed site generator for Elm.";
+      homepage = "https://github.com/dillonkearns/elm-pages";
+      license = licenses.bsd3;
+      maintainers = [ maintainers.turbomack maintainers.jali-clarke ];
+    };
+  }
+)
diff --git a/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch b/pkgs/development/compilers/elm/packages/node/elm-pages/fix-init-read-only.patch
index 9704ef9f7c088..9704ef9f7c088 100644
--- a/pkgs/development/compilers/elm/packages/elm-pages-fix-init-read-only.patch
+++ b/pkgs/development/compilers/elm/packages/node/elm-pages/fix-init-read-only.patch
diff --git a/pkgs/development/compilers/elm/packages/elm-pages-fix-read-only.patch b/pkgs/development/compilers/elm/packages/node/elm-pages/fix-read-only.patch
index 547f89f86f69c..547f89f86f69c 100644
--- a/pkgs/development/compilers/elm/packages/elm-pages-fix-read-only.patch
+++ b/pkgs/development/compilers/elm/packages/node/elm-pages/fix-read-only.patch
diff --git a/pkgs/development/compilers/elm/packages/generate-node-packages.sh b/pkgs/development/compilers/elm/packages/node/generate-node-packages.sh
index 49e697e43e88a..66cc71ca32bb2 100755
--- a/pkgs/development/compilers/elm/packages/generate-node-packages.sh
+++ b/pkgs/development/compilers/elm/packages/node/generate-node-packages.sh
@@ -1,11 +1,12 @@
 #!/usr/bin/env bash
 
-ROOT="$(realpath "$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")"/../../../../..)"
+ROOT="$(realpath "$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")"/../../../../../..)"
 
 set -eu -o pipefail
 
 $(nix-build $ROOT -A nodePackages.node2nix --no-out-link)/bin/node2nix \
+    --nodejs-18 \
     -i node-packages.json \
     -o node-packages.nix \
     -c node-composition.nix \
-    --no-copy-node-env -e ../../../node-packages/node-env.nix
+    --no-copy-node-env -e ../../../../node-packages/node-env.nix
diff --git a/pkgs/development/compilers/elm/packages/node-composition.nix b/pkgs/development/compilers/elm/packages/node/node-composition.nix
index c825c6c663495..1f86de75e3578 100644
--- a/pkgs/development/compilers/elm/packages/node-composition.nix
+++ b/pkgs/development/compilers/elm/packages/node/node-composition.nix
@@ -5,7 +5,7 @@
   }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_18"}:
 
 let
-  nodeEnv = import ../../../node-packages/node-env.nix {
+  nodeEnv = import ../../../../node-packages/node-env.nix {
     inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
     inherit pkgs nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
diff --git a/pkgs/development/compilers/elm/packages/node-packages.json b/pkgs/development/compilers/elm/packages/node/node-packages.json
index 8112b01bc9e81..8112b01bc9e81 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.json
+++ b/pkgs/development/compilers/elm/packages/node/node-packages.json
diff --git a/pkgs/development/compilers/elm/packages/node-packages.nix b/pkgs/development/compilers/elm/packages/node/node-packages.nix
index 0efccbb5ff90a..0efccbb5ff90a 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.nix
+++ b/pkgs/development/compilers/elm/packages/node/node-packages.nix
diff --git a/pkgs/development/compilers/elm/update.sh b/pkgs/development/compilers/elm/update.sh
index 4de11bd8ff5dd..d718bd0fbb081 100755
--- a/pkgs/development/compilers/elm/update.sh
+++ b/pkgs/development/compilers/elm/update.sh
@@ -1,13 +1,21 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -p cabal2nix elm2nix -i bash ../../..
 
-cabal2nix https://github.com/ekmett/ansi-wl-pprint --revision d16e2f6896d76b87b72af7220c2e93ba15c53280 > packages/ansi-wl-pprint.nix
+# Update all cabal packages.
+cabal2nix 'https://github.com/zwilias/elm-instrument' --revision '0.0.7' > packages/ghc8_10/elm-instrument/default.nix
+for subpath in 'avh4-lib' 'elm-format-lib' 'elm-format-markdown' 'elm-format-test-lib'; do
+  cabal2nix 'https://github.com/avh4/elm-format' --revision '0.8.7' \
+    --subpath $subpath > packages/ghc9_2/elm-format/${subpath}.nix
+done
+cabal2nix 'https://github.com/avh4/elm-format' --revision '0.8.7' > packages/ghc9_2/elm-format/elm-format.nix
+cabal2nix 'https://github.com/stoeffel/elmi-to-json' --revision '1.3.0' > packages/ghc8_10/elmi-to-json/default.nix
+cabal2nix 'https://github.com/ekmett/ansi-wl-pprint' --revision 'v0.6.8.1' > packages/ghc9_6/ansi-wl-pprint/default.nix
 
 # We're building binaries from commit that npm installer is using since
 # November 1st release called 0.19.1-6 in npm registry.
 # These binaries are built with newer ghc version and also support Aarch64 for Linux and Darwin.
 # Upstream git tag for 0.19.1 is still pointing to original commit from 2019.
-cabal2nix https://github.com/elm/compiler --revision 2f6dd29258e880dbb7effd57a829a0470d8da48b > packages/elm.nix
+cabal2nix https://github.com/elm/compiler --revision 2f6dd29258e880dbb7effd57a829a0470d8da48b > packages/ghc9_6/elm/default.nix
 
 echo "need to manually copy registry.dat from an existing elm project"
 #elm2nix snapshot > registry.dat
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index a6fff5feb6b01..ab7771e947339 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -1,5 +1,5 @@
 import ./common-hadrian.nix {
-  version = "9.9.20231121";
-  rev = "955520c6c4f07187b6d5e4770ecf681cc78374f2";
-  sha256 = "0pv77khciv513aw64pfac5p60xn5z90rxl84dcalj6knmbhm8dqy";
+  version = "9.11.20240323";
+  rev = "8f7cfc7ee00978fda14f31ce4a56ad4639c07138";
+  sha256 = "1id5gmn472zrzx372hy4wci5sby941jd8imspgaam6vrqxibdyln";
 }
diff --git a/pkgs/development/compilers/idris2/build-idris.nix b/pkgs/development/compilers/idris2/build-idris.nix
index e66306c4344b1..1df763e4c4fd4 100644
--- a/pkgs/development/compilers/idris2/build-idris.nix
+++ b/pkgs/development/compilers/idris2/build-idris.nix
@@ -32,28 +32,34 @@ let
     "idrisLibraries"
   ];
 
-  sharedAttrs = drvAttrs // {
-    pname = ipkgName;
-    inherit version;
-    src = src;
-    nativeBuildInputs = [ idris2 makeWrapper ] ++ attrs.nativeBuildInputs or [];
-    buildInputs = propagatedIdrisLibraries ++ attrs.buildInputs or [];
+  derivation = stdenv.mkDerivation (finalAttrs:
+    drvAttrs // {
+      pname = ipkgName;
+      inherit version;
+      src = src;
+      nativeBuildInputs = [ idris2 makeWrapper ] ++ attrs.nativeBuildInputs or [];
+      buildInputs = propagatedIdrisLibraries ++ attrs.buildInputs or [];
 
-    IDRIS2_PACKAGE_PATH = libDirs;
+      IDRIS2_PACKAGE_PATH = libDirs;
 
-    buildPhase = ''
-      runHook preBuild
-      idris2 --build ${ipkgFileName}
-      runHook postBuild
-    '';
+      buildPhase = ''
+        runHook preBuild
+        idris2 --build ${ipkgFileName}
+        runHook postBuild
+      '';
 
-    passthru = {
-      inherit propagatedIdrisLibraries;
-    };
-  };
+      passthru = {
+        inherit propagatedIdrisLibraries;
+      };
+
+      shellHook = ''
+        export IDRIS2_PACKAGE_PATH="${finalAttrs.IDRIS2_PACKAGE_PATH}"
+      '';
+    }
+  );
 
 in {
-  executable = stdenv.mkDerivation (sharedAttrs // {
+  executable = derivation.overrideAttrs {
     installPhase = ''
       runHook preInstall
       mkdir -p $out/bin
@@ -76,11 +82,11 @@ in {
       fi
       runHook postInstall
     '';
-  });
+  };
 
   library = { withSource ? false }:
     let installCmd = if withSource then "--install-with-src" else "--install";
-    in stdenv.mkDerivation (sharedAttrs // {
+    in derivation.overrideAttrs {
       installPhase = ''
         runHook preInstall
         mkdir -p $out/${libSuffix}
@@ -88,5 +94,5 @@ in {
         idris2 ${installCmd} ${ipkgFileName}
         runHook postInstall
       '';
-    });
+    };
 }
diff --git a/pkgs/development/compilers/koka/default.nix b/pkgs/development/compilers/koka/default.nix
index 4dcc772ab55f7..23b7ced0a15eb 100644
--- a/pkgs/development/compilers/koka/default.nix
+++ b/pkgs/development/compilers/koka/default.nix
@@ -20,7 +20,7 @@
 , FloatingHex
 , isocline
 , lens
-, lsp_2_4_0_0
+, lsp
 , mtl
 , network
 , network-simple
@@ -86,7 +86,7 @@ mkDerivation rec {
     FloatingHex
     isocline
     lens
-    lsp_2_4_0_0
+    lsp
     mtl
     network
     network-simple
diff --git a/pkgs/development/compilers/llvm/17/default.nix b/pkgs/development/compilers/llvm/17/default.nix
index a9138e3c79b67..c8d9569253450 100644
--- a/pkgs/development/compilers/llvm/17/default.nix
+++ b/pkgs/development/compilers/llvm/17/default.nix
@@ -213,6 +213,7 @@ in let
           (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
           "-lunwind"
         ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+      nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ];
     };
 
     clangNoLibcxx = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/18/clang/default.nix b/pkgs/development/compilers/llvm/18/clang/default.nix
new file mode 100644
index 0000000000000..1e777c6132e43
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/clang/default.nix
@@ -0,0 +1,139 @@
+{ lib, stdenv, llvm_meta
+, monorepoSrc, runCommand
+, substituteAll, cmake, ninja, libxml2, libllvm, version, python3
+, buildLlvmTools
+, fixDarwinDylibNames
+, enableManpages ? false
+}:
+
+let
+  self = stdenv.mkDerivation (finalAttrs: rec {
+    pname = "clang";
+    inherit version;
+
+    src = runCommand "${pname}-src-${version}" {} ''
+      mkdir -p "$out"
+      cp -r ${monorepoSrc}/cmake "$out"
+      cp -r ${monorepoSrc}/${pname} "$out"
+      cp -r ${monorepoSrc}/clang-tools-extra "$out"
+    '';
+
+    sourceRoot = "${src.name}/${pname}";
+
+    nativeBuildInputs = [ cmake ninja python3 ]
+      ++ lib.optional (lib.versionAtLeast version "18" && enableManpages) python3.pkgs.myst-parser
+      ++ lib.optional enableManpages python3.pkgs.sphinx
+      ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+
+    buildInputs = [ libxml2 libllvm ];
+
+    cmakeFlags = [
+      "-DCLANG_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/clang"
+      "-DCLANGD_BUILD_XPC=OFF"
+      "-DLLVM_ENABLE_RTTI=ON"
+      "-DLLVM_INCLUDE_TESTS=OFF"
+    ] ++ lib.optionals enableManpages [
+      "-DCLANG_INCLUDE_DOCS=ON"
+      "-DLLVM_ENABLE_SPHINX=ON"
+      "-DSPHINX_OUTPUT_MAN=ON"
+      "-DSPHINX_OUTPUT_HTML=OFF"
+      "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
+      # Added in LLVM15:
+      # `clang-tidy-confusable-chars-gen`: https://github.com/llvm/llvm-project/commit/c3574ef739fbfcc59d405985a3a4fa6f4619ecdb
+      # `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"
+    ];
+
+    patches = [
+      ./purity.patch
+      # https://reviews.llvm.org/D51899
+      ./gnu-install-dirs.patch
+      ../../common/clang/add-nostdlibinc-flag.patch
+      (substituteAll {
+        src = ../../common/clang/clang-at-least-16-LLVMgold-path.patch;
+       libllvmLibdir = "${libllvm.lib}/lib";
+      })
+    ];
+
+    postPatch = ''
+      (cd tools && ln -s ../../clang-tools-extra extra)
+    '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
+    '';
+
+    outputs = [ "out" "lib" "dev" "python" ];
+
+    postInstall = ''
+      ln -sv $out/bin/clang $out/bin/cpp
+
+      # Move libclang to 'lib' output
+      moveToOutput "lib/libclang.*" "$lib"
+      moveToOutput "lib/libclang-cpp.*" "$lib"
+      substituteInPlace $dev/lib/cmake/clang/ClangTargets-release.cmake \
+          --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \
+          --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp."
+
+      mkdir -p $python/bin $python/share/clang/
+      mv $out/bin/{git-clang-format,scan-view} $python/bin
+      if [ -e $out/bin/set-xcode-analyzer ]; then
+        mv $out/bin/set-xcode-analyzer $python/bin
+      fi
+      mv $out/share/clang/*.py $python/share/clang
+      rm $out/bin/c-index-test
+      patchShebangs $python/bin
+
+      mkdir -p $dev/bin
+      cp bin/{clang-tblgen,clang-tidy-confusable-chars-gen,clang-pseudo-gen} $dev/bin
+    '';
+
+    passthru = {
+      inherit libllvm;
+      isClang = true;
+      hardeningUnsupportedFlags = [
+        "fortify3"
+      ];
+      hardeningUnsupportedFlagsByTargetPlatform = targetPlatform:
+        lib.optional (!(targetPlatform.isx86_64 || targetPlatform.isAarch64)) "zerocallusedregs"
+        ++ (finalAttrs.passthru.hardeningUnsupportedFlags or []);
+    };
+
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
+      mainProgram = "clang";
+    };
+  } // lib.optionalAttrs enableManpages {
+    pname = "clang-manpages";
+
+    ninjaFlags = [ "docs-clang-man" ];
+
+    installPhase = ''
+      mkdir -p $out/share/man/man1
+      # Manually install clang manpage
+      cp docs/man/*.1 $out/share/man/man1/
+    '';
+
+    outputs = [ "out" ];
+
+    doCheck = false;
+
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
+  });
+in self
diff --git a/pkgs/development/compilers/llvm/18/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/18/clang/gnu-install-dirs.patch
new file mode 100644
index 0000000000000..9517df973ad09
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/clang/gnu-install-dirs.patch
@@ -0,0 +1,71 @@
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index 75b0080f6715..c895b884cd27 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -119,8 +119,8 @@ macro(add_clang_library name)
+         install(TARGETS ${lib}
+           COMPONENT ${lib}
+           ${export_to_clangtargets}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
++          LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
++          ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
+           RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ 
+         if (NOT LLVM_ENABLE_IDE)
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index f2b0c5cddcbb..52f37fc368ce 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -473,6 +473,7 @@ add_header_target("windows-resource-headers" ${windows_only_files})
+ add_header_target("utility-resource-headers" ${utility_files})
+ 
+ get_clang_resource_dir(header_install_dir SUBDIR include)
++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include)
+ 
+ #############################################################
+ # Install rules for the catch-all clang-resource-headers target
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 4f23065a2472..6a0f55991e24 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+           COMPONENT
+             libclang-python-bindings
+           DESTINATION
+-            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
++            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
+ endforeach()
+ if(NOT LLVM_ENABLE_IDE)
+   add_custom_target(libclang-python-bindings)
+diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt
+index 3aca22c0b0a8..3115353e3fe3 100644
+--- a/tools/scan-build-py/CMakeLists.txt
++++ b/tools/scan-build-py/CMakeLists.txt
+@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild})
+                      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib})
+   list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib})
+   install(FILES lib/libscanbuild/${lib}
+-          DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild
++          DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild"
+           COMPONENT scan-build-py)
+ endforeach()
+ 
+@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources})
+                      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource})
+   list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource})
+   install(FILES lib/libscanbuild/resources/${resource}
+-          DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources
++          DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources"
+           COMPONENT scan-build-py)
+ endforeach()
+ 
+@@ -122,7 +122,7 @@ foreach(lib ${LibEar})
+                      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib})
+   list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib})
+   install(FILES lib/libear/${lib}
+-          DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear
++          DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear"
+           COMPONENT scan-build-py)
+ endforeach()
+ 
diff --git a/pkgs/development/compilers/llvm/18/clang/purity.patch b/pkgs/development/compilers/llvm/18/clang/purity.patch
new file mode 100644
index 0000000000000..5ce14a3479a08
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/clang/purity.patch
@@ -0,0 +1,25 @@
+From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Thu, 18 May 2017 11:56:12 -0500
+Subject: [PATCH] "purity" patch for 5.0
+
+---
+ lib/Driver/ToolChains/Gnu.cpp | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
+index fe3c0191bb..c6a482bece 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -446,9 +446,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+                            ToolChain.isPIEDefault(Args));
+       if (IsPIE)
+         CmdArgs.push_back("-pie");
+-      CmdArgs.push_back("-dynamic-linker");
+-      CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) +
+-                                           ToolChain.getDynamicLinker(Args)));
+     }
+   }
+ 
+-- 
+2.11.0
diff --git a/pkgs/development/compilers/llvm/18/compiler-rt/X86-support-extension.patch b/pkgs/development/compilers/llvm/18/compiler-rt/X86-support-extension.patch
new file mode 100644
index 0000000000000..07013e5a68259
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/compiler-rt/X86-support-extension.patch
@@ -0,0 +1,21 @@
+diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt
+index 3a66dd9c3fb..7efc85d9f9f 100644
+--- a/lib/builtins/CMakeLists.txt
++++ b/lib/builtins/CMakeLists.txt
+@@ -348,4 +348,8 @@ if (NOT MSVC)
+ 
++  set(i486_SOURCES ${i386_SOURCES})
++  set(i586_SOURCES ${i386_SOURCES})
++  set(i686_SOURCES ${i386_SOURCES})
++
+   if (WIN32)
+     set(i386_SOURCES
+       ${i386_SOURCES}
+@@ -723,6 +723,7 @@ else ()
+   endif()
+ 
+   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
++      message("arch: ${arch}")
+     if (CAN_TARGET_${arch})
+       # For ARM archs, exclude any VFP builtins if VFP is not supported
+       if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
diff --git a/pkgs/development/compilers/llvm/18/compiler-rt/darwin-targetconditionals.patch b/pkgs/development/compilers/llvm/18/compiler-rt/darwin-targetconditionals.patch
new file mode 100644
index 0000000000000..425dc2af01e7c
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/compiler-rt/darwin-targetconditionals.patch
@@ -0,0 +1,71 @@
+diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp
+--- a/lib/sanitizer_common/sanitizer_mac.cpp
++++ b/lib/sanitizer_common/sanitizer_mac.cpp
+@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) {
+ // Offset example:
+ // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4
+ constexpr u16 GetOSMajorKernelOffset() {
+-  if (TARGET_OS_OSX) return 4;
+-  if (TARGET_OS_IOS || TARGET_OS_TV) return 6;
+-  if (TARGET_OS_WATCH) return 13;
++#if TARGET_OS_OSX
++  return 4;
++#endif
++#if TARGET_OS_IOS || TARGET_OS_TV
++  return 6;
++#endif
++#if TARGET_OS_WATCH
++  return 13;
++#endif
+ }
+ 
+ using VersStr = char[64];
+@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) {
+   u16 os_major = kernel_major - offset;
+ 
+   const char *format = "%d.0";
+-  if (TARGET_OS_OSX) {
+-    if (os_major >= 16) {  // macOS 11+
+-      os_major -= 5;
+-    } else {  // macOS 10.15 and below
+-      format = "10.%d";
+-    }
++#if TARGET_OS_OSX
++  if (os_major >= 16) {  // macOS 11+
++    os_major -= 5;
++  } else {  // macOS 10.15 and below
++    format = "10.%d";
+   }
++#endif
+   return internal_snprintf(vers, sizeof(VersStr), format, os_major);
+ }
+ 
+@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) {
+ // Aligned versions example:
+ // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6
+ static void MapToMacos(u16 *major, u16 *minor) {
+-  if (TARGET_OS_OSX)
+-    return;
+-
+-  if (TARGET_OS_IOS || TARGET_OS_TV)
++#if !TARGET_OS_OSX
++#if TARGET_OS_IOS || TARGET_OS_TV
+     *major += 2;
+-  else if (TARGET_OS_WATCH)
++#elif TARGET_OS_WATCH
+     *major += 9;
+-  else
++#else
+     UNREACHABLE("unsupported platform");
++#endif
+ 
+   if (*major >= 16) {  // macOS 11+
+     *major -= 5;
+@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) {
+     *minor = *major;
+     *major = 10;
+   }
++#endif
+ }
+ 
+ static MacosVersion GetMacosAlignedVersionInternal() {
diff --git a/pkgs/development/compilers/llvm/18/compiler-rt/default.nix b/pkgs/development/compilers/llvm/18/compiler-rt/default.nix
new file mode 100644
index 0000000000000..f51316beb5705
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/compiler-rt/default.nix
@@ -0,0 +1,157 @@
+{ lib, stdenv, llvm_meta, version
+, monorepoSrc, runCommand
+, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
+, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
+}:
+
+let
+
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+  bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
+  isDarwinStatic = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic;
+  inherit (stdenv.hostPlatform) isMusl;
+
+  baseName = "compiler-rt";
+
+  src = runCommand "${baseName}-src-${version}" {} ''
+    mkdir -p "$out"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/${baseName} "$out"
+  '';
+in
+
+stdenv.mkDerivation {
+  pname = baseName + lib.optionalString (haveLibc) "-libc";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "${src.name}/${baseName}";
+
+  nativeBuildInputs = [ cmake ninja python3 libllvm.dev ]
+    ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
+  buildInputs =
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
+
+  env.NIX_CFLAGS_COMPILE = toString ([
+    "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
+  ] ++ lib.optionals (!haveLibc) [
+    # The compiler got stricter about this, and there is a usellvm patch below
+    # which patches out the assert include causing an implicit definition of
+    # assert. It would be nicer to understand why compiler-rt thinks it should
+    # be able to #include <assert.h> in the first place; perhaps it's in the
+    # wrong, or perhaps there is a way to provide an assert.h.
+    "-Wno-error=implicit-function-declaration"
+  ]);
+
+  cmakeFlags = [
+    "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
+    "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
+    "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
+  ] ++ lib.optionals (haveLibc && stdenv.hostPlatform.libc == "glibc") [
+    "-DSANITIZER_COMMON_CFLAGS=-I${libxcrypt}/include"
+  ] ++ lib.optionals (useLLVM || bareMetal || isMusl || isDarwinStatic) [
+    "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
+    "-DCOMPILER_RT_BUILD_XRAY=OFF"
+    "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
+    "-DCOMPILER_RT_BUILD_MEMPROF=OFF"
+    "-DCOMPILER_RT_BUILD_ORC=OFF" # may be possible to build with musl if necessary
+  ] ++ lib.optionals (useLLVM || bareMetal) [
+     "-DCOMPILER_RT_BUILD_PROFILE=OFF"
+  ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal || isDarwinStatic ) [
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+  ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal) [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
+    "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+  ] ++ lib.optionals (useLLVM && !haveLibc) [
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
+  ] ++ lib.optionals (useLLVM) [
+    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
+    #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
+    "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
+  ] ++ lib.optionals (bareMetal) [
+    "-DCOMPILER_RT_OS_DIR=baremetal"
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
+    "-DCMAKE_LIPO=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}lipo"
+    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
+    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
+
+    # `COMPILER_RT_DEFAULT_TARGET_ONLY` does not apply to Darwin:
+    # https://github.com/llvm/llvm-project/blob/27ef42bec80b6c010b7b3729ed0528619521a690/compiler-rt/cmake/base-config-ix.cmake#L153
+    "-DCOMPILER_RT_ENABLE_IOS=OFF"
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
+    # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
+    # extra `/`.
+    ./normalize-var.patch
+    # See: https://github.com/NixOS/nixpkgs/pull/186575
+    ../../common/compiler-rt/darwin-plistbuddy-workaround.patch
+    # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
+    # ../../common/compiler-rt/armv7l-15.patch
+  ];
+
+  # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
+  # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
+  # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
+  # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
+  # a flag and turn the flag off during the stdenv build.
+  postPatch = lib.optionalString (!stdenv.isDarwin) ''
+    substituteInPlace cmake/builtin-config-ix.cmake \
+      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace cmake/config-ix.cmake \
+      --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
+  '' + lib.optionalString (useLLVM && !haveLibc) ''
+    substituteInPlace lib/builtins/aarch64/sme-libc-routines.c \
+      --replace "<stdlib.h>" "<stddef.h>"
+    substituteInPlace lib/builtins/int_util.c \
+      --replace "#include <stdlib.h>" ""
+    substituteInPlace lib/builtins/clear_cache.c \
+      --replace "#include <assert.h>" ""
+    substituteInPlace lib/builtins/cpu_model${lib.optionalString (lib.versionAtLeast version "18") "/x86"}.c \
+      --replace "#include <assert.h>" ""
+  '';
+
+  # Hack around weird upsream RPATH bug
+  postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin) ''
+    ln -s "$out/lib"/*/* "$out/lib"
+  '' + lib.optionalString (useLLVM && stdenv.hostPlatform.isLinux) ''
+    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
+    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
+    # Note the history of crt{begin,end}S in previous versions of llvm in nixpkg:
+    # The presence of crtbegin_shared has been added and removed; it's possible
+    # people have added/removed it to get it working on their platforms.
+    # Try each in turn for now.
+    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbeginS.o
+    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtendS.o
+    ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
+    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
+  '' + lib.optionalString doFakeLibgcc ''
+     ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a
+  '';
+
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
+    # https://reviews.llvm.org/D43106#1019077
+    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/18/compiler-rt/normalize-var.patch b/pkgs/development/compilers/llvm/18/compiler-rt/normalize-var.patch
new file mode 100644
index 0000000000000..2b25fd4a07449
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/compiler-rt/normalize-var.patch
@@ -0,0 +1,16 @@
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index 4c85551d7766..297d7a47c54b 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -328,8 +328,9 @@ macro(load_llvm_config)
+     endif()
+   endif()
+ 
+-  set(LLVM_LIBRARY_OUTPUT_INTDIR
+-    ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
++  get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR
++    ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}
++    REALPATH)
+ 
+   set(LLVM_MAIN_SRC_DIR "${LLVM_MAIN_SRC_DIR_DEFAULT}" CACHE PATH "Path to LLVM source tree")
+   message(STATUS "LLVM_MAIN_SRC_DIR: \"${LLVM_MAIN_SRC_DIR}\"")
diff --git a/pkgs/development/compilers/llvm/18/default.nix b/pkgs/development/compilers/llvm/18/default.nix
new file mode 100644
index 0000000000000..dd3000c042594
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/default.nix
@@ -0,0 +1,329 @@
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
+, preLibcCrossHeaders
+, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
+, buildLlvmTools # tools, but from the previous stage, for cross
+, targetLlvmLibraries # libraries, but from the next stage, for cross
+, targetLlvm
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
+, darwin
+# LLVM release information; specify one of these but not both:
+, gitRelease ? null
+  # i.e.:
+  # {
+  #   version = /* i.e. "15.0.0" */;
+  #   rev = /* commit SHA */;
+  #   rev-version = /* human readable version; i.e. "unstable-2022-26-07" */;
+  #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
+  # }
+, officialRelease ? { version = "18.1.1"; sha256 = "sha256-qAPNvEpztJjPz+kr5KcZz4iUTErsD8iXLURKl3yZoC8="; }
+  # i.e.:
+  # {
+  #   version = /* i.e. "15.0.0" */;
+  #   candidate = /* optional; if specified, should be: "rcN" */
+  #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
+  # }
+# By default, we'll try to fetch a release from `github:llvm/llvm-project`
+# corresponding to the `gitRelease` or `officialRelease` specified.
+#
+# You can provide your own LLVM source by specifying this arg but then it's up
+# to you to make sure that the LLVM repo given matches the release configuration
+# specified.
+, monorepoSrc ? null
+}:
+
+assert let
+  int = a: if a then 1 else 0;
+  xor = a: b: ((builtins.bitXor (int a) (int b)) == 1);
+in
+  lib.assertMsg
+    (xor
+      (gitRelease != null)
+      (officialRelease != null))
+    ("must specify `gitRelease` or `officialRelease`" +
+      (lib.optionalString (gitRelease != null) " — not both"));
+let
+  monorepoSrc' = monorepoSrc;
+in let
+  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+
+  inherit (releaseInfo) release_version version;
+
+  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+
+  tools = lib.makeExtensible (tools: let
+    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
+    major = lib.versions.major release_version;
+    mkExtraBuildCommands0 = cc: ''
+      rsrc="$out/resource-root"
+      mkdir "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
+    '';
+
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
+  in {
+
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
+
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm;
+
+    libclang = callPackage ./clang {
+      inherit llvm_meta;
+    };
+
+    clang-unwrapped = tools.libclang;
+
+    llvm-manpages = lowPrio (tools.libllvm.override {
+      enableManpages = true;
+      python3 = pkgs.python3;  # don't use python-boot
+    });
+
+    clang-manpages = lowPrio (tools.libclang.override {
+      enableManpages = true;
+      python3 = pkgs.python3;  # don't use python-boot
+    });
+
+    lldb-manpages = lowPrio (tools.lldb.override {
+      enableManpages = true;
+      python3 = pkgs.python3;  # don't use python-boot
+    });
+
+    # pick clang appropriate for package set we are targeting
+    clang =
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+      else tools.libcxxClang;
+
+    libstdcxxClang = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+    };
+
+    libcxxClang = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = targetLlvmLibraries.libcxx;
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+    };
+
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
+
+    mlir = callPackage ../common/mlir {
+      inherit llvm_meta;
+    };
+
+    lldb = callPackage ../common/lldb.nix {
+      src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} ''
+        mkdir -p "$out"
+        cp -r ${monorepoSrc}/cmake "$out"
+        cp -r ${monorepoSrc}/lldb "$out"
+      '') { };
+      patches =
+        [
+          # FIXME: do we need this? ./procfs.patch
+          ../common/lldb/gnu-install-dirs.patch
+        ]
+        # This is a stopgap solution if/until the macOS SDK used for x86_64 is
+        # updated.
+        #
+        # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h`
+        # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use
+        # of this preprocessor symbol in `lldb` with its expansion.
+        #
+        # See here for some context:
+        # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132
+        ++ lib.optional (
+          stdenv.targetPlatform.isDarwin
+            && !stdenv.targetPlatform.isAarch64
+            && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
+        ) ./lldb/cpu_subtype_arm64e_replacement.patch;
+      inherit llvm_meta;
+    };
+
+    # Below, is the LLVM bootstrapping logic. It handles building a
+    # fully LLVM toolchain from scratch. No GCC toolchain should be
+    # pulled in. As a consequence, it is very quick to build different
+    # targets provided by LLVM and we can also build for what GCC
+    # doesn’t support like LLVM. Probably we should move to some other
+    # file.
+
+    bintools-unwrapped = callPackage ../common/bintools.nix { };
+
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
+
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
+
+    clangUseLLVM = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = targetLlvmLibraries.libcxx;
+      bintools = bintools';
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
+        targetLlvmLibraries.libunwind
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+      nixSupport.cc-cflags =
+        [ "-rtlib=compiler-rt"
+          "-Wno-unused-command-line-argument"
+          "-B${targetLlvmLibraries.compiler-rt}/lib"
+        ]
+        ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind"
+        ++ lib.optional
+          (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
+          "-lunwind"
+        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+      nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ];
+    };
+
+    clangNoLibcxx = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+      nixSupport.cc-cflags =
+        [
+          "-rtlib=compiler-rt"
+          "-B${targetLlvmLibraries.compiler-rt}/lib"
+          "-nostdlib++"
+        ]
+        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+    };
+
+    clangNoLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintoolsNoLibc';
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+      nixSupport.cc-cflags =
+        [
+          "-rtlib=compiler-rt"
+          "-B${targetLlvmLibraries.compiler-rt}/lib"
+        ]
+        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+    };
+
+    clangNoCompilerRt = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintoolsNoLibc';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
+      nixSupport.cc-cflags =
+        [
+          "-nostartfiles"
+        ]
+        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith (rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
+    } // lib.optionalAttrs stdenv.targetPlatform.isWasm {
+      nixSupport.cc-cflags = [ "-fno-exceptions" ];
+    });
+
+    # Has to be in tools despite mostly being a library,
+    # because we use a native helper executable from a
+    # non-cross build in cross builds.
+    libclc = callPackage ../common/libclc.nix {
+      inherit buildLlvmTools;
+    };
+  });
+
+  libraries = lib.makeExtensible (libraries: let
+    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; });
+  in {
+
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic)
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
+               else stdenv;
+    };
+
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt = if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
+
+    stdenv = overrideCC stdenv buildLlvmTools.clang;
+
+    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
+
+    # `libcxx` requires a fairly modern C++ compiler,
+    # so: we use the clang from this LLVM package set instead of the regular
+    # stdenv's compiler.
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
+    };
+
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
+    };
+
+    openmp = callPackage ./openmp {
+      inherit llvm_meta targetLlvm;
+    };
+  });
+  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
+
+in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/18/libcxx/0001-darwin-10.12-mbstate_t-fix.patch b/pkgs/development/compilers/llvm/18/libcxx/0001-darwin-10.12-mbstate_t-fix.patch
new file mode 100644
index 0000000000000..29942f8ed03d6
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/libcxx/0001-darwin-10.12-mbstate_t-fix.patch
@@ -0,0 +1,31 @@
+From 9c1cb26c1dd3f92d1c1177e548107d2cd3c5e616 Mon Sep 17 00:00:00 2001
+From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
+Date: Fri, 23 Feb 2024 22:58:58 +0000
+Subject: [PATCH] darwin 10.12 mbstate_t fix
+
+https://github.com/llvm/llvm-project/issues/64226
+
+removes space from
+https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch
+so it applies cleanly
+---
+ libcxx/include/__mbstate_t.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/libcxx/include/__mbstate_t.h b/libcxx/include/__mbstate_t.h
+index bfa6d61..5f51112 100644
+--- a/libcxx/include/__mbstate_t.h
++++ b/libcxx/include/__mbstate_t.h
+@@ -42,6 +42,9 @@
+ #elif __has_include(<bits/types/mbstate_t.h>)
+ #  include <bits/types/mbstate_t.h> // works on most Unixes
+ #elif __has_include(<sys/_types/_mbstate_t.h>)
++#  if __has_include(<machine/_types.h>)
++#    include <machine/_types.h>
++#  endif
+ #  include <sys/_types/_mbstate_t.h> // works on Darwin
+ #elif !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) && __has_include_next(<wchar.h>)
+ #  include_next <wchar.h> // fall back to the C standard provider of mbstate_t
+-- 
+2.43.0
+
diff --git a/pkgs/development/compilers/llvm/18/libcxx/default.nix b/pkgs/development/compilers/llvm/18/libcxx/default.nix
new file mode 100644
index 0000000000000..d6c304c0b476a
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/libcxx/default.nix
@@ -0,0 +1,130 @@
+{ lib, stdenv, llvm_meta
+, monorepoSrc, runCommand
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
+let
+  basename = "libcxx";
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
+
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+
+  cxxabiCMakeFlags = [
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=OFF"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_ADDITIONAL_LIBRARIES=unwind"
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals (lib.versionAtLeast version "18" && !useLLVM && stdenv.hostPlatform.libc == "glibc" && !stdenv.hostPlatform.isStatic) [
+    "-DLIBCXX_ADDITIONAL_LIBRARIES=gcc_s"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+    # There's precedent for this in llvm-project/libcxx/cmake/caches.
+    # In a monorepo build you might do the following in the libcxxabi build:
+    #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwinder
+    #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
+    # libcxx appears to require unwind and doesn't pull it in via other means.
+    "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
+
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
+
+in
+
+stdenv.mkDerivation rec {
+  pname = basename;
+  inherit version cmakeFlags;
+
+  src = runCommand "${pname}-src-${version}" {} (''
+    mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/libcxx "$out"
+    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
+    cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
+    cp -r ${monorepoSrc}/third-party "$out"
+    cp -r ${monorepoSrc}/runtimes "$out"
+  '' + lib.optionalString (cxxabi == null) ''
+    cp -r ${monorepoSrc}/libcxxabi "$out"
+  '');
+
+  outputs = [ "out" "dev" ];
+
+  patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
+    # https://github.com/llvm/llvm-project/issues/64226
+    ./0001-darwin-10.12-mbstate_t-fix.patch
+  ];
+
+  postPatch = ''
+    cd runtimes
+  '';
+
+  preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
+    patchShebangs utils/cat_files.py
+  '';
+
+  nativeBuildInputs = [ cmake ninja python3 ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
+
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
+
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include ''${!outputDev}/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib ''${!outputLib}/lib
+  '';
+
+  passthru = {
+    isLLVM = true;
+  };
+
+  meta = llvm_meta // {
+    homepage = "https://libcxx.llvm.org/";
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/pkgs/development/compilers/llvm/18/libunwind/default.nix b/pkgs/development/compilers/llvm/18/libunwind/default.nix
new file mode 100644
index 0000000000000..e67823ffb85c2
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/libunwind/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, llvm_meta, version
+, monorepoSrc, runCommand
+, cmake
+, ninja
+, python3
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libunwind";
+  inherit version;
+
+  # I am not so comfortable giving libc++ and friends the whole monorepo as
+  # requested, so I filter it to what is needed.
+  src = runCommand "${pname}-src-${version}" {} ''
+    mkdir -p "$out"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/${pname} "$out"
+    mkdir -p "$out/libcxx"
+    cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
+    cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
+    mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
+    cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
+    cp -r ${monorepoSrc}/runtimes "$out"
+  '';
+
+  sourceRoot = "${src.name}/runtimes";
+
+  postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) ''
+    # libcxxabi wants to link to libunwind_shared.so (?).
+    ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake ninja python3 ];
+
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=libunwind"
+  ] ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
+}
diff --git a/pkgs/development/compilers/llvm/18/lld/default.nix b/pkgs/development/compilers/llvm/18/lld/default.nix
new file mode 100644
index 0000000000000..24ff0933dd1d8
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/lld/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
+, monorepoSrc, runCommand
+, cmake
+, ninja
+, libxml2
+, libllvm
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lld";
+  inherit version;
+
+  # Blank llvm dir just so relative path works
+  src = runCommand "${pname}-src-${version}" {} ''
+    mkdir -p "$out"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/${pname} "$out"
+    mkdir -p "$out/libunwind"
+    cp -r ${monorepoSrc}/libunwind/include "$out/libunwind"
+    mkdir -p "$out/llvm"
+  '';
+
+  sourceRoot = "${src.name}/${pname}";
+
+  nativeBuildInputs = [ cmake ninja ];
+  buildInputs = [ libllvm libxml2 ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  cmakeFlags = [
+    "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
+
+  # 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";
+
+  outputs = [ "out" "lib" "dev" ];
+
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker (unwrapped)";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
+      WebAssembly in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
+  };
+}
diff --git a/pkgs/development/compilers/llvm/18/lld/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/18/lld/gnu-install-dirs.patch
new file mode 100644
index 0000000000000..6c73a240ab6d2
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/lld/gnu-install-dirs.patch
@@ -0,0 +1,15 @@
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index d3924f7243d4..42a7cd62281c 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -18,8 +18,8 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
++      LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
++      ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
+       RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
diff --git a/pkgs/development/compilers/llvm/18/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/development/compilers/llvm/18/lldb/cpu_subtype_arm64e_replacement.patch
new file mode 100644
index 0000000000000..20d35c9f3ea91
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/lldb/cpu_subtype_arm64e_replacement.patch
@@ -0,0 +1,12 @@
+diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
+--- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm
++++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
+@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32,
+     len = sizeof(is_64_bit_capable);
+     ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0);
+ 
+-    if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) {
++    if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers
+       // The arm64e architecture is a preview. Pretend the host architecture
+       // is arm64.
+       cpusubtype = CPU_SUBTYPE_ARM64_ALL;
diff --git a/pkgs/development/compilers/llvm/18/lldb/procfs.patch b/pkgs/development/compilers/llvm/18/lldb/procfs.patch
new file mode 100644
index 0000000000000..7b200e86505ca
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/lldb/procfs.patch
@@ -0,0 +1,46 @@
+--- a/source/Plugins/Process/Linux/Procfs.h
++++ b/source/Plugins/Process/Linux/Procfs.h
+@@ -10,6 +10,13 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+ 
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
++
++// on i686 preprocessor symbols with these register names are defined as
++// numeric constants; these symbols clash with identifier names used in
++// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h`
++#undef FS
++#undef CS
+ 
+ #include "lldb/lldb-types.h"
+ 
+@@ -17,23 +24,13 @@
+ 
+ #include <vector>
+ 
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+-    elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
+ 
+ namespace lldb_private {
+ namespace process_linux {
diff --git a/pkgs/development/compilers/llvm/18/llvm/default.nix b/pkgs/development/compilers/llvm/18/llvm/default.nix
new file mode 100644
index 0000000000000..670171a707f9c
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/llvm/default.nix
@@ -0,0 +1,439 @@
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
+, monorepoSrc
+, runCommand
+, cmake
+, darwin
+, ninja
+, python3
+, python3Packages
+, libffi
+, enableGoldPlugin ? true
+, libbfd
+, libpfm
+, libxml2
+, ncurses
+, version
+, release_version
+, zlib
+, which
+, sysctl
+, buildLlvmTools
+, debugVersion ? false
+, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl)
+  && (stdenv.hostPlatform == stdenv.buildPlatform)
+, enableManpages ? false
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
+, enablePFM ? stdenv.isLinux /* PFM only supports Linux */
+  # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
+  # broken for the armv7l builder
+  && !stdenv.hostPlatform.isAarch
+, enablePolly ? true
+}:
+
+let
+  inherit (lib) optional optionals optionalString;
+
+  # Used when creating a version-suffixed symlink of libLLVM.dylib
+  shortVersion = with lib;
+    concatStringsSep "." (take 1 (splitString "." release_version));
+
+  # Ordinarily we would just the `doCheck` and `checkDeps` functionality
+  # `mkDerivation` gives us to manage our test dependencies (instead of breaking
+  # out `doCheck` as a package level attribute).
+  #
+  # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in
+  # particular the children it uses to do feature detection.
+  #
+  # This means that python deps we add to `checkDeps` (which the python
+  # interpreter is made aware of via `$PYTHONPATH` – populated by the python
+  # setup hook) are not picked up by `lit` which causes it to skip tests.
+  #
+  # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work
+  # because this package is shadowed in `$PATH` by the regular `python3`
+  # package.
+  #
+  # So, we "manually" assemble one python derivation for the package to depend
+  # on, taking into account whether checks are enabled or not:
+  python = if doCheck then
+    # Note that we _explicitly_ ask for a python interpreter for our host
+    # platform here; the splicing that would ordinarily take care of this for
+    # us does not seem to work once we use `withPackages`.
+    let
+      checkDeps = ps: with ps; [ psutil ];
+    in pkgsBuildBuild.targetPackages.python3.withPackages checkDeps
+  else python3;
+
+in
+
+stdenv.mkDerivation (rec {
+  pname = "llvm";
+  inherit version;
+
+  src = runCommand "${pname}-src-${version}" {} (''
+    mkdir -p "$out"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/${pname} "$out"
+    cp -r ${monorepoSrc}/third-party "$out"
+  '' + lib.optionalString enablePolly ''
+    chmod u+w "$out/${pname}/tools"
+    cp -r ${monorepoSrc}/polly "$out/${pname}/tools"
+  '');
+
+  sourceRoot = "${src.name}/${pname}";
+
+  outputs = [ "out" "lib" "dev" "python" ];
+
+  nativeBuildInputs = [ cmake ninja python ]
+    ++ optionals enableManpages [
+    # Note: we intentionally use `python3Packages` instead of `python3.pkgs`;
+    # splicing does *not* work with the latter. (TODO: fix)
+    python3Packages.sphinx
+  ] ++ optionals (lib.versionOlder version "18" && enableManpages) [
+    python3Packages.recommonmark
+  ] ++ optionals (lib.versionAtLeast version "18" && enableManpages) [
+    python3Packages.myst-parser
+  ];
+
+  buildInputs = [ libxml2 libffi ]
+    ++ optional enablePFM libpfm; # exegesis
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  nativeCheckInputs = [
+    which
+  ] ++ lib.optional stdenv.isDarwin sysctl;
+
+  patches = [
+    ./gnu-install-dirs.patch
+
+    # Running the tests involves invoking binaries (like `opt`) that depend on
+    # the LLVM dylibs and reference them by absolute install path (i.e. their
+    # nix store path).
+    #
+    # Because we have not yet run the install phase (we're running these tests
+    # as part of `checkPhase` instead of `installCheckPhase`) these absolute
+    # paths do not exist yet; to work around this we point the loader (`ld` on
+    # unix, `dyld` on macOS) at the `lib` directory which will later become this
+    # package's `lib` output.
+    #
+    # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib`
+    # dir but:
+    #   - this doesn't generalize well to other platforms; `lit` doesn't forward
+    #     `DYLD_LIBRARY_PATH` (macOS):
+    #     + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26
+    #   - even if `lit` forwarded this env var, we actually cannot set
+    #     `DYLD_LIBRARY_PATH` in the child processes `lit` launches because
+    #     `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for
+    #     "protected processes" (i.e. the python interpreter that runs `lit`):
+    #     https://stackoverflow.com/a/35570229
+    #   - other LLVM subprojects deal with this issue by having their `lit`
+    #     configuration set these env vars for us; it makes sense to do the same
+    #     for LLVM:
+    #     + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31
+    #
+    # !!! TODO: look into upstreaming this patch
+    ./llvm-lit-cfg-add-libs-to-dylib-path.patch
+
+    # `lit` has a mode where it executes run lines as a shell script which is
+    # constructs; this is problematic for macOS because it means that there's
+    # another process in between `lit` and the binaries being tested. As noted
+    # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our
+    # tests fail with dyld errors.
+    #
+    # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when
+    # present in the test configuration.
+    #
+    # It's not clear to me why this isn't an issue for LLVM developers running
+    # on macOS (nothing about this _seems_ nix specific)..
+    ./lit-shell-script-runner-set-dyld-library-path.patch
+  ] ++ lib.optionals enablePolly [
+    ./gnu-install-dirs-polly.patch
+
+    # Just like the `llvm-lit-cfg` patch, but for `polly`.
+    ./polly-lit-cfg-add-libs-to-dylib-path.patch
+  ];
+
+  postPatch = optionalString stdenv.isDarwin ''
+    substituteInPlace cmake/modules/AddLLVM.cmake \
+      --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
+
+    # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick
+    # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7
+    rm test/MC/ELF/cfi-version.ll
+
+    # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`)
+    # and thus fails under the sandbox:
+    substituteInPlace unittests/TargetParser/Host.cpp \
+      --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }"
+
+    # This test tries to call the intrinsics `@llvm.roundeven.f32` and
+    # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf`
+    # and `roundeven` on macOS.
+    #
+    # However these functions are glibc specific so the test fails:
+    #   - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html
+    #   - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html
+    #
+    substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \
+      --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \
+      --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" ""
+
+    # fails when run in sandbox
+    substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \
+      --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure"
+  '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) ''
+    # This test fails on darwin x86_64 because `sw_vers` reports a different
+    # macOS version than what LLVM finds by reading
+    # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into
+    # the sandbox on macOS).
+    #
+    # The `sw_vers` provided by nixpkgs reports the macOS version associated
+    # with the `CoreFoundation` framework with which it was built. Because
+    # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what
+    # `sw_vers` reports is not guaranteed to match the macOS version of the host
+    # that's building this derivation.
+    #
+    # Astute readers will note that we only _patch_ this test on aarch64-darwin
+    # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright.
+    # So why does this test pass on aarch64?
+    #
+    # Well, it seems that `sw_vers` on aarch64 actually links against the _host_
+    # CoreFoundation framework instead of the nixpkgs provided one.
+    #
+    # Not entirely sure what the right fix is here. I'm assuming aarch64
+    # `sw_vers` doesn't intentionally link against the host `CoreFoundation`
+    # (still digging into how this ends up happening, will follow up) but that
+    # aside I think the more pertinent question is: should we be patching LLVM's
+    # macOS version detection logic to use `sw_vers` instead of reading host
+    # paths? This *is* a way in which details about builder machines can creep
+    # into the artifacts that are produced, affecting reproducibility, but it's
+    # not clear to me when/where/for what this even gets used in LLVM.
+    #
+    # TODO(@rrbutani): fix/follow-up
+    substituteInPlace unittests/TargetParser/Host.cpp \
+      --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion"
+
+    # This test fails with a `dysmutil` crash; have not yet dug into what's
+    # going on here (TODO(@rrbutani)).
+    rm test/tools/dsymutil/ARM/obfuscated.test
+  '' + ''
+    # FileSystem permissions tests fail with various special bits
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "Path.cpp" ""
+    rm unittests/Support/Path.cpp
+    substituteInPlace unittests/IR/CMakeLists.txt \
+      --replace "PassBuilderCallbacksTest.cpp" ""
+    rm unittests/IR/PassBuilderCallbacksTest.cpp
+    rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
+
+    # Fails in the presence of anti-virus software or other intrusion-detection software that
+    # modifies the atime when run. See #284056.
+    rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
+  '' + optionalString stdenv.hostPlatform.isMusl ''
+    patch -p1 -i ${../../common/llvm/TLI-musl.patch}
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "add_subdirectory(DynamicLibrary)" ""
+    rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+    # valgrind unhappy with musl or glibc, but fails w/musl only
+    rm test/CodeGen/AArch64/wineh4.mir
+  '' + optionalString stdenv.hostPlatform.isAarch32 ''
+    # skip failing X86 test cases on 32-bit ARM
+    rm test/DebugInfo/X86/convert-debugloc.ll
+    rm test/DebugInfo/X86/convert-inlined.ll
+    rm test/DebugInfo/X86/convert-linked.ll
+    rm test/tools/dsymutil/X86/op-convert.test
+    rm test/tools/gold/X86/split-dwarf.ll
+    rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s
+    rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s
+    rm test/CodeGen/RISCV/attributes.ll
+    rm test/CodeGen/RISCV/xtheadmempair.ll
+  '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
+    # Seems to require certain floating point hardware (NEON?)
+    rm test/ExecutionEngine/frem.ll
+  '' + ''
+    patchShebangs test/BugPoint/compile-custom.ll.py
+  '';
+
+  preConfigure = ''
+    # Workaround for configure flags that need to have spaces
+    cmakeFlagsArray+=(
+      -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar"
+    )
+  '';
+
+  # Defensive check: some paths (that we make symlinks to) depend on the release
+  # version, for example:
+  #  - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185
+  #
+  # So we want to sure that the version in the source matches the release
+  # version we were given.
+  #
+  # We do this check here, in the LLVM build, because it happens early.
+  postConfigure = let
+    v = lib.versions;
+    major = v.major release_version;
+    minor = v.minor release_version;
+    patch = v.patch release_version;
+  in ''
+    # $1: part, $2: expected
+    check_version() {
+      part="''${1^^}"
+      part="$(cat include/llvm/Config/llvm-config.h  | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)"
+
+      if [[ "$part" != "$2" ]]; then
+        echo >&2 \
+          "mismatch in the $1 version! we have version ${release_version}" \
+          "and expected the $1 version to be '$2'; the source has '$part' instead"
+        exit 3
+      fi
+    }
+
+    check_version major ${major}
+    check_version minor ${minor}
+    check_version patch ${patch}
+  '';
+
+  # E.g. mesa.drivers use the build-id as a cache key (see #93946):
+  LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
+
+  hardeningDisable = [ "trivialautovarinit" ];
+
+  cmakeBuildType = if debugVersion then "Debug" else "Release";
+
+  cmakeFlags = with stdenv; let
+    # These flags influence llvm-config's BuildVariables.inc in addition to the
+    # general build. We need to make sure these are also passed via
+    # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+    # will return different results from the cross llvm-config.
+    #
+    # Some flags don't need to be repassed because LLVM already does so (like
+    # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+    flagsForLlvmConfig = [
+      "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm"
+      "-DLLVM_ENABLE_RTTI=ON"
+    ] ++ optionals enableSharedLibraries [
+      "-DLLVM_LINK_LLVM_DYLIB=ON"
+    ];
+  in flagsForLlvmConfig ++ [
+    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
+    "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_ENABLE_DUMP=ON"
+  ] ++ optionals stdenv.hostPlatform.isStatic [
+    # Disables building of shared libs, -fPIC is still injected by cc-wrapper
+    "-DLLVM_ENABLE_PIC=OFF"
+    "-DLLVM_BUILD_STATIC=ON"
+    "-DLLVM_LINK_LLVM_DYLIB=off"
+    # libxml2 needs to be disabled because the LLVM build system ignores its .la
+    # file and doesn't link zlib as well.
+    # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812
+    "-DLLVM_ENABLE_LIBXML2=OFF"
+  ] ++ optionals enableManpages [
+    "-DLLVM_BUILD_DOCS=ON"
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+  ] ++ optionals enableGoldPlugin [
+    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
+  ] ++ optionals isDarwin [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DCAN_TARGET_i386=false"
+  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
+    "-DCMAKE_CROSSCOMPILING=True"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+        # We need to repass the custom GNUInstallDirs values, otherwise CMake
+        # will choose them for us, leading to wrong results in llvm-config-native
+        nativeInstallFlags = [
+          "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+          "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+          "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+          "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+          "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+      + lib.concatStringsSep ";" (lib.concatLists [
+        flagsForLlvmConfig
+        nativeToolchainFlags
+        nativeInstallFlags
+      ])
+    )
+  ];
+
+  postInstall = ''
+    mkdir -p $python/share
+    mv $out/share/opt-viewer $python/share/opt-viewer
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")'
+  ''
+  + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
+    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
+  '';
+
+  inherit doCheck;
+
+  checkTarget = "check-all";
+
+  # For the update script:
+  passthru.monorepoSrc = monorepoSrc;
+
+  requiredSystemFeatures = [ "big-parallel" ];
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
+  };
+} // lib.optionalAttrs enableManpages {
+  pname = "llvm-manpages";
+
+  propagatedBuildInputs = [];
+
+  ninjaFlags = [ "docs-llvm-man" ];
+  installTargets = [ "install-docs-llvm-man" ];
+
+  postPatch = null;
+  postInstall = null;
+
+  outputs = [ "out" ];
+
+  doCheck = false;
+
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
+})
diff --git a/pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 0000000000000..6a359bdbefde5
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,13 @@
+--- a/tools/polly/cmake/polly_macros.cmake	2024-03-15 17:36:20.550893344 -0700
++++ b/tools/polly/cmake/polly_macros.cmake	2024-03-15 17:37:06.277332960 -0700
+@@ -45,8 +45,8 @@
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+     add_llvm_install_targets(install-${name}
+       COMPONENT ${name})
+   endif()
diff --git a/pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs.patch
new file mode 100644
index 0000000000000..8b89839490ba5
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/llvm/gnu-install-dirs.patch
@@ -0,0 +1,137 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 471817d68286..c51463304159 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1010,7 +1010,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "")
+   add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src
+     ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime)
+   install(TARGETS tf_xla_runtime EXPORT LLVMExports
+-    ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime)
++    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime)
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime)
+   # Once we add more modules, we should handle this more automatically.
+   if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL)
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 230620c37027..dd16cab1835e 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -876,8 +876,8 @@ macro(add_llvm_library name)
+       get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella})
+       install(TARGETS ${name}
+               ${export_to_llvmexports}
+-              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name}
++              ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name}
+               RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+@@ -2069,7 +2069,7 @@ function(llvm_install_library_symlink name dest type)
+     set(LLVM_LINK_OR_COPY copy)
+   endif()
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir "${CMAKE_INSTALL_BINDIR}")
+   endif()
+@@ -2344,16 +2344,37 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath ${extra_libdir})
+   elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS)
+     # $ORIGIN is not interpreted at link time by aix ld.
+     # Since BUILD_SHARED_LIBS is only recommended for use by developers,
+     # hardcode the rpath to build/install lib dir first in this mode.
+     # FIXME: update this when there is better solution.
+-    set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}")
++    # Note that we add `extra_libdir` (aka `LLVM_LIBRARY_DIR` in our case) back
++    # to `_install_rpath` here.
++    #
++    # In nixpkgs we do not build and install LLVM alongside rdeps of LLVM (i.e.
++    # clang); instead LLVM is its own package and thus lands at its own nix
++    # store path. This makes it so that the default relative rpath (`../lib/`)
++    # does not point at the LLVM shared objects.
++    #
++    # More discussion here:
++    #   - https://github.com/NixOS/nixpkgs/pull/235624#discussion_r1220150329
++    #   - https://reviews.llvm.org/D146918 (16.0.5+)
++    #
++    # Note that we leave `extra_libdir` in `_build_rpath`: without FHS there is
++    # no potential that this will result in us pulling in the "wrong" LLVM.
++    # Adding this to the build rpath means we aren't forced to use
++    # `installCheckPhase` instead of `checkPhase` (i.e. binaries in the build
++    # dir, pre-install, will have the right rpath for LLVM).
++    #
++    # As noted in the differential above, an alternative solution is to have
++    # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set
++    # `CMAKE_INSTALL_RPATH`.
++    set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 891c9e6d618c..8d963f3b0069 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -147,9 +147,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath ${LLVM_LIBRARY_DIR})
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath ${LLVM_LIBRARY_DIR})
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index d99af79aa38e..21e794224b99 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -127,7 +127,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS
+   )
+ list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS)
+ 
+-extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}")
++extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_LIBRARY_DIRS
+   "${LLVM_CONFIG_LIBRARY_DIR}"
+   # FIXME: Should there be other entries here?
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index 370005cd8d7d..7e790bc52111 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -23,6 +23,7 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
+ #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
+ #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index e86eb2b44b10..f63e207e792e 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -366,7 +366,11 @@ int main(int argc, char **argv) {
+       sys::fs::make_absolute(ActivePrefix, Path);
+       ActiveBinDir = std::string(Path.str());
+     }
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
++    {
++      SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX);
++      sys::fs::make_absolute(ActivePrefix, Path);
++      ActiveLibDir = std::string(Path.str());
++    }
+     {
+       SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR);
+       sys::fs::make_absolute(ActivePrefix, Path);
diff --git a/pkgs/development/compilers/llvm/18/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/development/compilers/llvm/18/llvm/lit-shell-script-runner-set-dyld-library-path.patch
new file mode 100644
index 0000000000000..e4f049f4b1777
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/llvm/lit-shell-script-runner-set-dyld-library-path.patch
@@ -0,0 +1,12 @@
+--- a/utils/lit/lit/TestRunner.py	2024-03-15 17:27:53.170780798 -0700
++++ b/utils/lit/lit/TestRunner.py	2024-03-15 17:28:43.277447791 -0700
+@@ -1183,6 +1183,9 @@
+         f.write("@echo on\n")
+         f.write("\n@if %ERRORLEVEL% NEQ 0 EXIT\n".join(commands))
+     else:
++        if "DYLD_LIBRARY_PATH" in test.config.environment:
++            f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n')
++
+         for i, ln in enumerate(commands):
+             match = re.fullmatch(kPdbgRegex, ln)
+             if match:
diff --git a/pkgs/development/compilers/llvm/18/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/18/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch
new file mode 100644
index 0000000000000..d4ccb2ae98227
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch
@@ -0,0 +1,80 @@
+diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py
+index 81e8dc04acea..479ff95681e2 100644
+--- a/test/Unit/lit.cfg.py
++++ b/test/Unit/lit.cfg.py
+@@ -3,6 +3,7 @@
+ # Configuration file for the 'lit' test runner.
+ 
+ import os
++import platform
+ import subprocess
+ 
+ import lit.formats
+@@ -55,3 +56,26 @@ if sys.platform in ["win32", "cygwin"] and os.path.isdir(config.shlibdir):
+ # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate.
+ if sys.platform == "win32" and "SYSTEMDRIVE" in os.environ:
+     config.environment["SYSTEMDRIVE"] = os.environ["SYSTEMDRIVE"]
++
++# Add the LLVM dynamic libs to the platform-specific loader search path env var:
++#
++# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify..
++def find_shlibpath_var():
++    if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]:
++        yield "LD_LIBRARY_PATH"
++    elif platform.system() == "Darwin":
++        yield "DYLD_LIBRARY_PATH"
++    elif platform.system() == "Windows":
++        yield "PATH"
++    elif platform.system() == "AIX":
++        yield "LIBPATH"
++
++for shlibpath_var in find_shlibpath_var():
++    shlibpath = os.path.pathsep.join(
++        (config.shlibdir,
++         config.environment.get(shlibpath_var, '')))
++    config.environment[shlibpath_var] = shlibpath
++    break
++else:
++    lit_config.warning("unable to inject shared library path on '{}'"
++                       .format(platform.system()))
+diff --git a/test/lit.cfg.py b/test/lit.cfg.py
+index 75a38b4c5dad..856fc75c9d74 100644
+--- a/test/lit.cfg.py
++++ b/test/lit.cfg.py
+@@ -42,6 +42,26 @@ llvm_config.with_environment("PATH", config.llvm_tools_dir, append_path=True)
+ llvm_config.with_system_environment(
+     ["HOME", "INCLUDE", "LIB", "TMP", "TEMP"])
+ 
++# Add the LLVM dynamic libs to the platform-specific loader search path env var:
++#
++# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify..
++def find_shlibpath_var():
++    if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]:
++        yield "LD_LIBRARY_PATH"
++    elif platform.system() == "Darwin":
++        yield "DYLD_LIBRARY_PATH"
++    elif platform.system() == "Windows":
++        yield "PATH"
++    elif platform.system() == "AIX":
++        yield "LIBPATH"
++
++for shlibpath_var in find_shlibpath_var():
++    shlibpath = config.llvm_shlib_dir
++    llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True)
++    break
++else:
++    lit_config.warning("unable to inject shared library path on '{}'"
++                       .format(platform.system()))
+ 
+ # Set up OCAMLPATH to include newly built OCaml libraries.
+ top_ocaml_lib = os.path.join(config.llvm_lib_dir, "ocaml")
+@@ -318,7 +338,7 @@ def have_cxx_shared_library():
+ 
+     try:
+         readobj_cmd = subprocess.Popen(
+-            [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE
++            [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE, env=config.environment
+         )
+     except OSError:
+         print("could not exec llvm-readobj")
+
diff --git a/pkgs/development/compilers/llvm/18/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/18/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
new file mode 100644
index 0000000000000..1354ad267314a
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
@@ -0,0 +1,24 @@
+diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg
+index 41e3a589c61e..09f3b17498b0 100644
+--- a/tools/polly/test/lit.cfg
++++ b/tools/polly/test/lit.cfg
+@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']]
+ path = os.path.pathsep.join(base_paths + config.extra_paths)
+ config.environment['PATH'] = path
+ 
++# (Copied from polly/test/Unit/lit.cfg)
++if platform.system() == 'Darwin':
++    shlibpath_var = 'DYLD_LIBRARY_PATH'
++elif platform.system() == 'Windows':
++    shlibpath_var = 'PATH'
++else:
++    shlibpath_var = 'LD_LIBRARY_PATH'
++
+ path = os.path.pathsep.join((config.llvm_libs_dir,
+-                              config.environment.get('LD_LIBRARY_PATH','')))
+-config.environment['LD_LIBRARY_PATH'] = path
++                              config.environment.get(shlibpath_var,'')))
++config.environment[shlibpath_var] = path
+ 
+ llvm_config.use_default_substitutions()
+ 
diff --git a/pkgs/development/compilers/llvm/18/openmp/default.nix b/pkgs/development/compilers/llvm/18/openmp/default.nix
new file mode 100644
index 0000000000000..e1c3c2379af2a
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/openmp/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, llvm_meta
+, monorepoSrc
+, runCommand
+, cmake
+, ninja
+, llvm
+, targetLlvm
+, lit
+, clang-unwrapped
+, perl
+, pkg-config
+, xcbuild
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  src = runCommand "${pname}-src-${version}" {} ''
+    mkdir -p "$out"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/${pname} "$out"
+  '';
+
+  sourceRoot = "${src.name}/${pname}";
+
+  patches = [
+    ./fix-find-tool.patch
+    ./run-lit-directly.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake ninja perl pkg-config lit ];
+  buildInputs = [
+    (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
+  ];
+
+  nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin xcbuild.xcrun;
+
+  # Unsup:Pass:XFail:Fail
+  # 26:267:16:8
+  doCheck = false;
+  checkTarget = "check-openmp";
+
+  preCheck = ''
+    patchShebangs ../tools/archer/tests/deflake.bash
+  '';
+
+  cmakeFlags = [
+    "-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
+    "-DOPT_TOOL=${llvm}/bin/opt"
+    "-DLINK_TOOL=${llvm}/bin/llvm-link"
+  ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/pkgs/development/compilers/llvm/18/openmp/fix-find-tool.patch b/pkgs/development/compilers/llvm/18/openmp/fix-find-tool.patch
new file mode 100644
index 0000000000000..b7f51196f7bab
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/openmp/fix-find-tool.patch
@@ -0,0 +1,17 @@
+diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt
+index 630947abec7e..9f032dc7bd3f 100644
+--- a/libomptarget/DeviceRTL/CMakeLists.txt
++++ b/libomptarget/DeviceRTL/CMakeLists.txt
+@@ -27,10 +27,10 @@ endif()
+ if (LLVM_DIR)
+   # Builds that use pre-installed LLVM have LLVM_DIR set.
+   # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route
+-  find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
++  find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR})
+   find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
+   find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
+-  find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
++  find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR})
+   if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL) OR (NOT PACKAGER_TOOL))
+     libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL}, opt: ${OPT_TOOL}, or clang-offload-packager: ${PACKAGER_TOOL}")
+     return()
diff --git a/pkgs/development/compilers/llvm/18/openmp/run-lit-directly.patch b/pkgs/development/compilers/llvm/18/openmp/run-lit-directly.patch
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/18/openmp/run-lit-directly.patch
diff --git a/pkgs/development/compilers/llvm/git/clang/default.nix b/pkgs/development/compilers/llvm/git/clang/default.nix
index 01b33c540ca28..1e777c6132e43 100644
--- a/pkgs/development/compilers/llvm/git/clang/default.nix
+++ b/pkgs/development/compilers/llvm/git/clang/default.nix
@@ -70,9 +70,6 @@ let
     postInstall = ''
       ln -sv $out/bin/clang $out/bin/cpp
 
-      mkdir -p $lib/lib/clang
-      mv $lib/lib/${lib.versions.major version} $lib/lib/clang/${lib.versions.major version}
-
       # Move libclang to 'lib' output
       moveToOutput "lib/libclang.*" "$lib"
       moveToOutput "lib/libclang-cpp.*" "$lib"
diff --git a/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
index cc8737f353433..9517df973ad09 100644
--- a/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
+++ b/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
@@ -1,30 +1,3 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f7936d72e088..a362fa49b534 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -31,7 +31,21 @@ if(CLANG_BUILT_STANDALONE)
-   find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
-   list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
- 
--  # Turn into CACHE PATHs for overwritting
-+  # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets
-+  # LLVM_CONFIG.
-+  if (NOT LLVM_CONFIG_FOUND)
-+    # Pull values from LLVMConfig.cmake.  We can drop this once the llvm-config
-+    # path is removed.
-+    set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS})
-+    set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}")
-+    # N.B. this is just a default value, the CACHE PATHs below can be overriden.
-+    set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm")
-+    set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}")
-+    set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}")
-+  else()
-+    set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}")
-+  endif()
-+
-   set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
-   set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree")
-   set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree")
 diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
 index 75b0080f6715..c895b884cd27 100644
 --- a/cmake/modules/AddClang.cmake
@@ -48,7 +21,7 @@ index f2b0c5cddcbb..52f37fc368ce 100644
  add_header_target("utility-resource-headers" ${utility_files})
  
  get_clang_resource_dir(header_install_dir SUBDIR include)
-+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${CLANG_VERSION_MAJOR}/include)
++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include)
  
  #############################################################
  # Install rules for the catch-all clang-resource-headers target
diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/default.nix b/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
index 51f4e95ef2b5a..f51316beb5705 100644
--- a/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
@@ -87,12 +87,9 @@ stdenv.mkDerivation {
 
   patches = [
     ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
-    ./gnu-install-dirs.patch
     # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
     # extra `/`.
     ./normalize-var.patch
-    # Prevent a compilation error on darwin
-    ./darwin-targetconditionals.patch
     # See: https://github.com/NixOS/nixpkgs/pull/186575
     ../../common/compiler-rt/darwin-plistbuddy-workaround.patch
     # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
@@ -111,6 +108,8 @@ stdenv.mkDerivation {
     substituteInPlace cmake/config-ix.cmake \
       --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
   '' + lib.optionalString (useLLVM && !haveLibc) ''
+    substituteInPlace lib/builtins/aarch64/sme-libc-routines.c \
+      --replace "<stdlib.h>" "<stddef.h>"
     substituteInPlace lib/builtins/int_util.c \
       --replace "#include <stdlib.h>" ""
     substituteInPlace lib/builtins/clear_cache.c \
diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch
deleted file mode 100644
index f3b1f63a7d713..0000000000000
--- a/pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
-index 8a6219568b3f..30ee68a47ccf 100644
---- a/cmake/base-config-ix.cmake
-+++ b/cmake/base-config-ix.cmake
-@@ -100,13 +100,13 @@ endif()
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(COMPILER_RT_OUTPUT_LIBRARY_DIR
-     ${COMPILER_RT_OUTPUT_DIR}/lib)
--  extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib)
-+  extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}")
-   set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH
-     "Path where built compiler-rt libraries should be installed.")
- else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(COMPILER_RT_OUTPUT_LIBRARY_DIR
-     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
--  extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}")
-+  extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}")
-   set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH
-     "Path where built compiler-rt libraries should be installed.")
- endif()
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
index 6ebb2ea9fcc2c..80cff85372d06 100644
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ b/pkgs/development/compilers/llvm/git/default.nix
@@ -17,15 +17,20 @@
     else pkgs.bintools
 , darwin
 # LLVM release information; specify one of these but not both:
-, gitRelease ? null
+, gitRelease ? {
+    version = "19.0.0-git";
+    rev = "65058a8d732c3c41664a4dad1a1ae2a504d5c98e";
+    rev-version = "19.0.0-unstable-2024-03-16";
+    sha256 = "sha256-xV33kx/8OZ2KLtaz25RmudDrlIX7nScauTykf87jyTE=";
+}
   # i.e.:
   # {
   #   version = /* i.e. "15.0.0" */;
   #   rev = /* commit SHA */;
-  #   rev-version = /* human readable version; i.e. "unstable-2022-26-07" */;
+  #   rev-version = /* human readable version; i.e. "15.0.0-unstable-2022-07-26" */;
   #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
   # }
-, officialRelease ? { version = "18.1.0-rc4"; sha256 = "sha256-fVpwewbjoPMPslIEZ+WAtaQ+YKc0XWGl8EbP/TbQb8o="; }
+, officialRelease ? null
   # i.e.:
   # {
   #   version = /* i.e. "15.0.0" */;
diff --git a/pkgs/development/compilers/llvm/git/libcxx/default.nix b/pkgs/development/compilers/llvm/git/libcxx/default.nix
index 4e3404dbe1945..d6c304c0b476a 100644
--- a/pkgs/development/compilers/llvm/git/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/git/libcxx/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, llvm_meta
-, monorepoSrc, runCommand, fetchpatch
+, monorepoSrc, runCommand
 , cmake, lndir, ninja, python3, fixDarwinDylibNames, version
 , cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
 , libcxxrt, libunwind
@@ -19,11 +19,11 @@ let
   # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
   useLLVM = stdenv.hostPlatform.useLLVM or false;
 
-  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
-    "-DLIBCXXABI_USE_COMPILER_RT=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals (lib.versionAtLeast version "18" && !(useLLVM && !stdenv.hostPlatform.isWasm)) [
+  cxxabiCMakeFlags = [
     "-DLIBCXXABI_USE_LLVM_UNWINDER=OFF"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_ADDITIONAL_LIBRARIES=unwind"
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
   ] ++ lib.optionals stdenv.hostPlatform.isWasm [
     "-DLIBCXXABI_ENABLE_THREADS=OFF"
     "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
@@ -87,18 +87,6 @@ stdenv.mkDerivation rec {
   patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
     # https://github.com/llvm/llvm-project/issues/64226
     ./0001-darwin-10.12-mbstate_t-fix.patch
-  ] ++ lib.optionals (cxxabi == null && lib.versionAtLeast version "18") [
-    # Allow building libcxxabi alone when using LLVM unwinder
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/77610dd10454e87bb387040d2b51100a17ac5755.patch";
-      revert = true;
-      hash = "sha256-jFbC3vBY3nKfjknJ7UzaPyoy0iSYdD3+jUmOFeOaVcA=";
-    })
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/48e5b5ea92674ded69b998cf35724d9012c0f57d.patch";
-      revert = true;
-      hash = "sha256-WN63L4T3GxVozPZb6kx21AgNe4rwwSUOeeryIGsvQYY=";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/compilers/llvm/git/libunwind/default.nix b/pkgs/development/compilers/llvm/git/libunwind/default.nix
index a3c8e2594f5a7..e67823ffb85c2 100644
--- a/pkgs/development/compilers/llvm/git/libunwind/default.nix
+++ b/pkgs/development/compilers/llvm/git/libunwind/default.nix
@@ -27,15 +27,6 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "${src.name}/runtimes";
 
-  prePatch = ''
-    cd ../${pname}
-    chmod -R u+w .
-  '';
-
-  postPatch = ''
-    cd ../runtimes
-  '';
-
   postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) ''
     # libcxxabi wants to link to libunwind_shared.so (?).
     ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
diff --git a/pkgs/development/compilers/llvm/git/lld/default.nix b/pkgs/development/compilers/llvm/git/lld/default.nix
index cc18aee76a448..24ff0933dd1d8 100644
--- a/pkgs/development/compilers/llvm/git/lld/default.nix
+++ b/pkgs/development/compilers/llvm/git/lld/default.nix
@@ -24,13 +24,13 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "${src.name}/${pname}";
 
+  nativeBuildInputs = [ cmake ninja ];
+  buildInputs = [ libllvm libxml2 ];
+
   patches = [
     ./gnu-install-dirs.patch
   ];
 
-  nativeBuildInputs = [ cmake ninja ];
-  buildInputs = [ libllvm libxml2 ];
-
   cmakeFlags = [
     "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
diff --git a/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
index 86e76f4a16d8b..6c73a240ab6d2 100644
--- a/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
+++ b/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
@@ -1,34 +1,3 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3d6225646fe6..9b5d0b15af13 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -33,10 +33,22 @@ if(LLD_BUILT_STANDALONE)
-   find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
-   list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
- 
--  # Turn into CACHE PATHs for overwriting
--  set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
--  set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree")
--  set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree")
-+  # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets
-+  # LLVM_CONFIG.
-+  if (NOT LLVM_CONFIG_FOUND)
-+    # Pull values from LLVMConfig.cmake.  We can drop this once the llvm-config
-+    # path is removed.
-+    set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS})
-+    set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}")
-+    # N.B. this is just a default value, the CACHE PATHs below can be overridden.
-+    set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm")
-+  else()
-+    set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}")
-+  endif()
-+
-+  set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
-+  set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree")
-+  set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree")
- 
-   find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
-     NO_DEFAULT_PATH)
 diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
 index d3924f7243d4..42a7cd62281c 100644
 --- a/cmake/modules/AddLLD.cmake
diff --git a/pkgs/development/compilers/llvm/git/llvm/default.nix b/pkgs/development/compilers/llvm/git/llvm/default.nix
index b8715228ab1c9..670171a707f9c 100644
--- a/pkgs/development/compilers/llvm/git/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/git/llvm/default.nix
@@ -179,6 +179,10 @@ stdenv.mkDerivation (rec {
     substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \
       --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \
       --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" ""
+
+    # fails when run in sandbox
+    substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \
+      --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure"
   '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) ''
     # This test fails on darwin x86_64 because `sw_vers` reports a different
     # macOS version than what LLVM finds by reading
@@ -382,7 +386,6 @@ stdenv.mkDerivation (rec {
       --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
   ''
   + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
diff --git a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch
index 442ebddad3f60..6a359bdbefde5 100644
--- a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch
+++ b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch
@@ -1,12 +1,6 @@
-This is the one remaining Polly install dirs related change that hasn't made it
-into upstream yet; previously this patch file also included:
-https://reviews.llvm.org/D117541
-
-diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
-index 518a09b45a42..bd9d6f5542ad 100644
---- a/tools/polly/cmake/polly_macros.cmake
-+++ b/tools/polly/cmake/polly_macros.cmake
-@@ -45,8 +45,8 @@ macro(add_polly_library name)
+--- a/tools/polly/cmake/polly_macros.cmake	2024-03-15 17:36:20.550893344 -0700
++++ b/tools/polly/cmake/polly_macros.cmake	2024-03-15 17:37:06.277332960 -0700
+@@ -45,8 +45,8 @@
      install(TARGETS ${name}
        COMPONENT ${name}
        EXPORT LLVMExports
diff --git a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
index e2122ebf603d9..8b89839490ba5 100644
--- a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
+++ b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
@@ -40,7 +40,7 @@ index 230620c37027..dd16cab1835e 100644
    if (APPLE)
      set(_install_name_dir INSTALL_NAME_DIR "@rpath")
 -    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath ${extra_libdir})
    elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS)
      # $ORIGIN is not interpreted at link time by aix ld.
      # Since BUILD_SHARED_LIBS is only recommended for use by developers,
@@ -72,8 +72,8 @@ index 230620c37027..dd16cab1835e 100644
 +    # As noted in the differential above, an alternative solution is to have
 +    # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set
 +    # `CMAKE_INSTALL_RPATH`.
-+    set(_build_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath ${extra_libdir})
      if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
        set_property(TARGET ${name} APPEND_STRING PROPERTY
                     LINK_FLAGS " -Wl,-z,origin ")
@@ -86,10 +86,10 @@ index 891c9e6d618c..8d963f3b0069 100644
  
    if( APPLE )
 -    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath ${LLVM_LIBRARY_DIR})
    elseif( UNIX )
 -    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath ${LLVM_LIBRARY_DIR})
    endif()
    list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
  
diff --git a/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch
index 82b7b21c55fb1..e4f049f4b1777 100644
--- a/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch
+++ b/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch
@@ -1,17 +1,12 @@
-diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py
-index 0242e0b75af3..d732011306f7 100644
---- a/utils/lit/lit/TestRunner.py
-+++ b/utils/lit/lit/TestRunner.py
-@@ -1029,6 +1029,12 @@ def executeScript(test, litConfig, tmpBase, commands, cwd):
-             f.write('@echo off\n')
-         f.write('\n@if %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands))
+--- a/utils/lit/lit/TestRunner.py	2024-03-15 17:27:53.170780798 -0700
++++ b/utils/lit/lit/TestRunner.py	2024-03-15 17:28:43.277447791 -0700
+@@ -1183,6 +1183,9 @@
+         f.write("@echo on\n")
+         f.write("\n@if %ERRORLEVEL% NEQ 0 EXIT\n".join(commands))
      else:
-+        # This env var is *purged* when invoking subprocesses so we have to
-+        # manually set it from within the bash script in order for the commands
-+        # in run lines to see this var:
 +        if "DYLD_LIBRARY_PATH" in test.config.environment:
 +            f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n')
 +
          for i, ln in enumerate(commands):
-             match = re.match(kPdbgRegex, ln)
+             match = re.fullmatch(kPdbgRegex, ln)
              if match:
diff --git a/pkgs/development/compilers/llvm/git/openmp/default.nix b/pkgs/development/compilers/llvm/git/openmp/default.nix
index d51335436ad23..e1c3c2379af2a 100644
--- a/pkgs/development/compilers/llvm/git/openmp/default.nix
+++ b/pkgs/development/compilers/llvm/git/openmp/default.nix
@@ -29,7 +29,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./fix-find-tool.patch
-    ./gnu-install-dirs.patch
     ./run-lit-directly.patch
   ];
 
diff --git a/pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch
deleted file mode 100644
index 0d0d4130c7610..0000000000000
--- a/pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b6ddbe90516d..311ab1d50e7f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -29,7 +29,7 @@ if (OPENMP_STANDALONE_BUILD)
-   set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING
-     "Suffix of lib installation directory, e.g. 64 => lib64")
-   # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR.
--  set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}" CACHE STRING
-+  set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}" CACHE STRING
-       "Path where built OpenMP libraries should be installed.")
- 
-   # Group test settings.
-@@ -47,7 +47,7 @@ if (OPENMP_STANDALONE_BUILD)
- else()
-   set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR})
-   # If building in tree, we honor the same install suffix LLVM uses.
--  set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}" CACHE STRING
-+  set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" CACHE STRING
-       "Path where built OpenMP libraries should be installed.")
- 
-   if (NOT MSVC)
diff --git a/pkgs/development/compilers/llvm/update-git.py b/pkgs/development/compilers/llvm/update-git.py
index b5e900df502bb..9be43e8e1afb9 100755
--- a/pkgs/development/compilers/llvm/update-git.py
+++ b/pkgs/development/compilers/llvm/update-git.py
@@ -43,7 +43,7 @@ def get_current_revision():
     """Get the current revision of llvmPackages_git."""
     with open(DEFAULT_NIX) as f:
         for line in f:
-            rev = re.search(r'^  rev = "(.*)";', line)
+            rev = re.search(r'^    rev = "(.*)";', line)
             if rev:
                 return rev.group(1)
     sys.exit(1)
@@ -75,11 +75,11 @@ hash = nix_prefetch_url(f'https://github.com/llvm/llvm-project/archive/{commit["
 print('Updating default.nix...')
 with fileinput.FileInput(DEFAULT_NIX, inplace=True) as f:
     for line in f:
-        if match := re.search(r'^  rev-version = "unstable-(.+)";', line):
+        if match := re.search(r'^    rev-version = "unstable-(.+)";', line):
                 old_date = match.group(1)
-        result = re.sub(r'^  release_version = ".+";', f'  release_version = "{release_version}";', line)
-        result = re.sub(r'^  rev = ".*";', f'  rev = "{commit["sha"]}";', result)
-        result = re.sub(r'^  rev-version = ".+";', f'  rev-version = "{version}";', result)
+        result = re.sub(r'^    version = ".+";', f'    version = "{release_version}";', line)
+        result = re.sub(r'^    rev = ".*";', f'    rev = "{commit["sha"]}";', result)
+        result = re.sub(r'^    rev-version = ".+";', f'    rev-version = "{version}";', result)
         result = re.sub(r'^    sha256 = ".+";', f'    sha256 = "{hash}";', result)
         print(result, end='')
 # Commit the result:
diff --git a/pkgs/development/compilers/ocaml/5.2.nix b/pkgs/development/compilers/ocaml/5.2.nix
new file mode 100644
index 0000000000000..26d77f63044d4
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/5.2.nix
@@ -0,0 +1,9 @@
+import ./generic.nix {
+  major_version = "5";
+  minor_version = "2";
+  patch_version = "0-beta1";
+  src = fetchTarball {
+    url = "https://caml.inria.fr/pub/distrib/ocaml-5.2/ocaml-5.2.0~beta1.tar.xz";
+    sha256 = "sha256:0prf87a41k2y1znnh2pjkggrvhh5cihj68sxqrjn162889rf7wam";
+  };
+}
diff --git a/pkgs/development/compilers/picat/default.nix b/pkgs/development/compilers/picat/default.nix
index f52eed6ddf8d0..a723e314b3cae 100644
--- a/pkgs/development/compilers/picat/default.nix
+++ b/pkgs/development/compilers/picat/default.nix
@@ -2,18 +2,20 @@
 
 let
   ARCH = {
-    i686-linux    = "linux32";
-    x86_64-linux  = "linux64";
+    x86_64-linux = "linux64";
     aarch64-linux = "linux64";
+    x86_64-cygwin = "cygwin64";
+    x86_64-darwin = "mac64";
+    aarch64-darwin = "mac64";
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 in
 stdenv.mkDerivation {
   pname = "picat";
-  version = "3.3p3";
+  version = "3.6";
 
   src = fetchurl {
-    url = "http://picat-lang.org/download/picat333_src.tar.gz";
-    hash = "sha256-LMmAHCGKgon/wNbrXTUH9hiHyGVwwSDpB1236xawzXs=";
+    url = "http://picat-lang.org/download/picat36_src.tar.gz";
+    hash = "sha256-DjP1cjKxRLxMjiHmYX42+kaG5//09IrPIc1O75gLA6k=";
   };
 
   buildInputs = [ zlib ];
@@ -23,15 +25,30 @@ stdenv.mkDerivation {
   hardeningDisable = [ "format" ];
   enableParallelBuilding = true;
 
-  buildPhase = "cd emu && make -j $NIX_BUILD_CORES -f Makefile.$ARCH";
-  installPhase = "mkdir -p $out/bin && cp picat $out/bin/picat";
+  buildPhase = ''
+    cd emu
+    make -j $NIX_BUILD_CORES -f Makefile.$ARCH
+  '';
+  installPhase = ''
+    mkdir -p $out/bin $out/share
+    cp picat $out/bin/
+    cp -r ../doc $out/share/doc
+    cp -r ../exs $out/share/examples
+  '';
 
   meta = with lib; {
     description = "Logic-based programming langage";
     mainProgram = "picat";
     homepage    = "http://picat-lang.org/";
     license     = licenses.mpl20;
-    platforms   = platforms.linux;
+    platforms   = [
+      "x86_64-linux"
+      "aarch64-linux"
+      "x86_64-cygwin"
+      "x86_64-darwin"
+      "aarch64-darwin"
+    ];
     maintainers = with maintainers; [ earldouglas thoughtpolice ];
   };
 }
+
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 2371ed6519501..1e3e04d72f4e3 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -24,12 +24,12 @@ let
       sha256 = "189gjqzdz10xh3ybiy4ch1r98bsmkcb4hpnrmggd4y2g5kqnyx4y";
     };
 
-    "2.4.1" = {
-      sha256 = "sha256-2k+UhvrUE9OversbCSaTJf20v/fnuI8hld3udDJjz34=";
-    };
     "2.4.2" = {
       sha256 = "sha256-/APLUtEqr+h1nmMoRQogG73fibFwcaToPznoC0Pd7w8=";
     };
+    "2.4.3" = {
+      sha256 = "sha256-icmq35K4KtPHSj1PFYoDiJPeoOTzlNyvyWNYPDC3w/I=";
+    };
   };
   # Collection of pre-built SBCL binaries for platforms that need them for
   # bootstrapping. Ideally these are to be avoided.  If CLISP (or any other
@@ -125,6 +125,9 @@ stdenv.mkDerivation (self: rec {
     # This is failing on aarch64-linux on ofBorg. Not on my local machine nor on
     # a VM on my laptop. Not sure what’s wrong.
     "traceroot.impure.lisp"
+    # Heisentest, sometimes fails on ofBorg, would rather just disable it than
+    # have it block a release.
+    "futex-wait.test.sh"
   ];
   postPatch = lib.optionalString (self.disabledTestFiles != [ ]) ''
     (cd tests ; rm -f ${lib.concatStringsSep " " self.disabledTestFiles})
diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix
index 6a572acd62ee6..4ff3f9c7379f6 100644
--- a/pkgs/development/compilers/tinygo/default.nix
+++ b/pkgs/development/compilers/tinygo/default.nix
@@ -29,13 +29,13 @@ in
 
 buildGoModule rec {
   pname = "tinygo";
-  version = "0.31.1";
+  version = "0.31.2";
 
   src = fetchFromGitHub {
     owner = "tinygo-org";
     repo = "tinygo";
     rev = "v${version}";
-    sha256 = "sha256-YocRTgGSyjnQsYd4a2nCQ0vdQi/z2gHPguix5xIkkgc=";
+    sha256 = "sha256-e0zXxIdAtJZXJdP/S6lHRnPm5Rsf638Fhox8XcqOWrk=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 5abe309624bb4..d29fb743c7dc9 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -14,15 +14,10 @@ let
     # https://github.com/openembedded/openembedded-core/blob/a5440d4288e09d3e/meta/recipes-devtools/vala/vala/disable-graphviz.patch
     graphvizPatch =
       {
-        "0.48" = ./disable-graphviz-0.46.1.patch;
-
-        "0.54" = ./disable-graphviz-0.46.1.patch;
-
         "0.56" = ./disable-graphviz-0.56.8.patch;
-
       }.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala");
 
-    disableGraphviz = lib.versionAtLeast version "0.38" && !withGraphviz;
+    disableGraphviz = !withGraphviz;
 
   in stdenv.mkDerivation rec {
     pname = "vala";
@@ -55,14 +50,14 @@ let
 
     nativeBuildInputs = [
       pkg-config flex bison libxslt
-    ] ++ lib.optional (stdenv.isDarwin && (lib.versionAtLeast version "0.38")) expat
+    ] ++ lib.optional (stdenv.isDarwin) expat
       ++ lib.optional disableGraphviz autoreconfHook # if we changed our ./configure script, need to reconfigure
       ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ vala ]
       ++ extraNativeBuildInputs;
 
     buildInputs = [
       glib libiconv libintl
-    ] ++ lib.optional (lib.versionAtLeast version "0.38" && withGraphviz) graphviz
+    ] ++ lib.optional (withGraphviz) graphviz
       ++ extraBuildInputs;
 
     enableParallelBuilding = true;
@@ -90,16 +85,6 @@ let
   });
 
 in rec {
-  vala_0_48 = generic {
-    version = "0.48.25";
-    sha256 = "UMs8Xszdx/1DaL+pZBSlVgReedKxWmiRjHJ7jIOxiiQ=";
-  };
-
-  vala_0_54 = generic {
-    version = "0.54.9";
-    sha256 = "hXLA6Nd9eMFZfVFgCPBUDH50leA10ou0wlzJk+U85LQ=";
-  };
-
   vala_0_56 = generic {
     version = "0.56.14";
     sha256 = "k4LCaMqb3AKq7cgVKpgYvzk1JzBB9inFbeQQ42Cj9Vc=";
diff --git a/pkgs/development/compilers/vala/disable-graphviz-0.46.1.patch b/pkgs/development/compilers/vala/disable-graphviz-0.46.1.patch
deleted file mode 100644
index 7c2ded4c8eda3..0000000000000
--- a/pkgs/development/compilers/vala/disable-graphviz-0.46.1.patch
+++ /dev/null
@@ -1,280 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index f70234759..b3d6c3833 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -13,19 +13,9 @@ SUBDIRS = \
- 	doc \
- 	gobject-introspection \
- 	vapigen \
--	$(NULL)
--
--if ENABLE_VALADOC
--SUBDIRS += \
- 	libvaladoc \
- 	valadoc \
- 	$(NULL)
--endif
--
--DISTCHECK_CONFIGURE_FLAGS = \
--	--enable-valadoc \
--	--enable-unversioned \
--	$(NULL)
- 
- if ENABLE_UNVERSIONED
- aclocaldir = $(datadir)/aclocal
-diff --git a/configure.ac b/configure.ac
-index 6de326bbb..91f159b16 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -160,10 +160,11 @@ AC_SUBST(GMODULE_CFLAGS)
- AC_SUBST(GMODULE_LIBS)
- 
- AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check)
--AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
--if test x$enable_valadoc = xyes; then
-+AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes)
-+if test x$enable_graphviz = xyes; then
- 	PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
- 	AC_MSG_CHECKING([for CGRAPH])
-+	VALAFLAGS="$VALAFLAGS -D HAVE_GRAPHVIZ"
- 	cgraph_tmp_LIBADD="$LIBADD"
- 	cgraph_tmp_CFLAGS="$CFLAGS"
- 	LIBADD="$LIBADD $LIBGVC_LIBS"
-@@ -201,8 +202,8 @@ if test x$enable_valadoc = xyes; then
- 	LIBADD="$cgraph_tmp_LIBADD"
- 	CFLAGS="$cgraph_tmp_CFLAGS"
- fi
-+AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes)
- AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
--AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes)
- 
- AC_PATH_PROG([XSLTPROC], [xsltproc], :)
- AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :)
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index d2684a0e0..b343c7c10 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -6,16 +6,11 @@ SUBDIRS = \
- 
- dist_man_MANS = \
- 	valac.1 \
-+	valadoc.1 \
- 	vala-gen-introspect.1 \
- 	vapigen.1 \
- 	$(NULL)
- 
--if ENABLE_VALADOC
--dist_man_MANS += \
--	valadoc.1 \
--	$(NULL)
--endif
--
- EXTRA_DIST = \
- 	valac.h2m \
- 	valadoc.h2m \
-@@ -24,11 +19,7 @@ EXTRA_DIST = \
- 	$(NULL)
- 
- if HAVE_HELP2MAN
--if ENABLE_VALADOC
- manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1
--else
--manpages: valac.1 vala-gen-introspect.1 vapigen.1
--endif
- 	@rm $^
- 	$(MAKE) $(AM_MAKEFLAGS) $^
- 
-@@ -37,13 +28,11 @@ valac.1:
- 		--include $(srcdir)/valac.h2m \
- 		--libtool --no-info \
- 		--output=$@
--if ENABLE_VALADOC
- valadoc.1:
- 	$(HELP2MAN) $(top_builddir)/valadoc/valadoc \
- 		--include $(srcdir)/valadoc.h2m \
- 		--libtool --no-info \
- 		--output=$@
--endif
- vala-gen-introspect.1:
- 	$(HELP2MAN) $(top_builddir)/gobject-introspection/gen-introspect \
- 		--include $(srcdir)/vala-gen-introspect.h2m \
-@@ -60,15 +49,12 @@ endif
- if ENABLE_UNVERSIONED
- install-data-hook:
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f valac@PACKAGE_SUFFIX@.1 valac.1
--if ENABLE_VALADOC
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f valadoc@PACKAGE_SUFFIX@.1 valadoc.1
--endif
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1
- endif
- 
- 
--if ENABLE_VALADOC
- COMMON_VALADOCFLAGS = \
- 	--force \
- 	--verbose \
-@@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen
- 	@touch $@
- 
- internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc
--endif
- 
- clean-local:
- 	rm -rf $(builddir)/internal-apis
-diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
-index 8a3924b54..81fde9ac8 100644
---- a/libvaladoc/Makefile.am
-+++ b/libvaladoc/Makefile.am
-@@ -119,10 +119,6 @@ libvaladoc_la_VALASOURCES = \
- 	content/tablerow.vala \
- 	content/taglet.vala \
- 	content/text.vala \
--	charts/chart.vala \
--	charts/chartfactory.vala \
--	charts/hierarchychart.vala \
--	charts/simplechartfactory.vala \
- 	parser/manyrule.vala \
- 	parser/oneofrule.vala \
- 	parser/optionalrule.vala \
-@@ -149,13 +145,24 @@ libvaladoc_la_VALASOURCES = \
- 	highlighter/codetoken.vala \
- 	highlighter/highlighter.vala \
- 	html/basicdoclet.vala \
--	html/htmlchartfactory.vala \
- 	html/linkhelper.vala \
- 	html/cssclassresolver.vala \
- 	html/htmlmarkupwriter.vala \
- 	html/htmlrenderer.vala \
- 	$(NULL)
- 
-+if ENABLE_GRAPHVIZ
-+libvaladoc_la_VALASOURCES += \
-+	charts/chart.vala \
-+	charts/chartfactory.vala \
-+	charts/hierarchychart.vala \
-+	charts/simplechartfactory.vala \
-+	html/htmlchartfactory.vala \
-+	$(NULL)
-+
-+LIBGVC_PKG = --vapidir $(top_srcdir)/vapi --pkg libgvc
-+endif
-+
- libvaladoc@PACKAGE_SUFFIX@_la_SOURCES = \
- 	libvaladoc.vala.stamp \
- 	$(libvaladoc_la_VALASOURCES:.vala=.c) \
-@@ -175,11 +182,11 @@ libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES)
- 		--library valadoc \
- 		--vapi valadoc@PACKAGE_SUFFIX@.vapi \
- 		--vapidir $(top_srcdir)/vapi --pkg gmodule-2.0 \
--		--vapidir $(top_srcdir)/vapi --pkg libgvc \
- 		--vapidir $(top_srcdir)/gee --pkg gee \
- 		--vapidir $(top_srcdir)/vala --pkg vala \
- 		--vapidir $(top_srcdir)/ccode --pkg ccode \
- 		--vapidir $(top_srcdir)/codegen --pkg codegen \
-+		$(LIBGVC_PKG) \
- 		--pkg config \
- 		$(filter %.vala %.c,$^)
- 	touch $@
-@@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc
- 
- valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc
- 	cp $< $@
-+if !ENABLE_GRAPHVIZ
-+	sed -i "s/libgvc //g" $@
-+endif
- 
- vapidir = $(datadir)/vala/vapi
- dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi
-@@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps
- 
- valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps
- 	cp $< $@
-+if !ENABLE_GRAPHVIZ
-+	sed -i "s/libgvc//g" $@
-+endif
- 
- EXTRA_DIST = \
- 	$(libvaladoc_la_VALASOURCES) \
-diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala
-index 46578c28f..f6ce7097c 100644
---- a/libvaladoc/html/basicdoclet.vala
-+++ b/libvaladoc/html/basicdoclet.vala
-@@ -46,7 +46,11 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 	protected HtmlRenderer _renderer;
- 	protected Html.MarkupWriter writer;
- 	protected Html.CssClassResolver cssresolver;
-+#if HAVE_GRAPHVIZ
- 	protected Charts.Factory image_factory;
-+#else
-+	protected void* image_factory;
-+#endif
- 	protected ErrorReporter reporter;
- 	protected string package_list_link = "../index.html";
- 
-@@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 		this.linker = new LinkHelper ();
- 
- 		_renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
-+#if HAVE_GRAPHVIZ
- 		this.image_factory = new SimpleChartFactory (settings, linker);
-+#endif
- 	}
- 
- 
-@@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 	}
- 
- 	protected void write_image_block (Api.Node element) {
-+#if HAVE_GRAPHVIZ
- 		if (element is Class || element is Interface || element is Struct) {
- 			unowned string format = (settings.use_svg_images ? "svg" : "png");
- 			var chart = new Charts.Hierarchy (image_factory, element);
-@@ -1044,6 +1051,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 									   this.get_img_path_html (element, format)});
- 			writer.add_usemap (chart);
- 		}
-+#endif
- 	}
- 
- 	public void write_namespace_content (Namespace node, Api.Node? parent) {
-diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala
-index 5aa4afdea..e79b0b8f5 100644
---- a/libvaladoc/html/htmlmarkupwriter.vala
-+++ b/libvaladoc/html/htmlmarkupwriter.vala
-@@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter {
- 		}
- 	}
- 
-+#if HAVE_GRAPHVIZ
- 	public unowned MarkupWriter add_usemap (Charts.Chart chart) {
- 		string? buf = (string?) chart.write_buffer ("cmapx");
- 		if (buf != null) {
- 			raw_text ("\n");
- 			raw_text ((!) buf);
- 		}
-+#else
-+	public unowned MarkupWriter add_usemap (void* chart) {
-+#endif
- 
- 		return this;
- 	}
-diff --git i/libvaladoc/Makefile.am w/libvaladoc/Makefile.am
-index 8dc398cf1..a5d8a45b4 100644
---- i/libvaladoc/Makefile.am
-+++ w/libvaladoc/Makefile.am
-@@ -176,9 +176,13 @@ endif
- libvaladoc@PACKAGE_SUFFIX@_la_SOURCES = \
- 	libvaladoc.vala.stamp \
- 	$(libvaladoc_la_VALASOURCES:.vala=.c) \
--	gvc-compat.c \
- 	$(NULL)
- 
-+if ENABLE_GRAPHVIZ
-+libvaladoc@PACKAGE_SUFFIX@_la_SOURCES += \
-+	gvc-compat.c
-+endif
-+
- valadoc@PACKAGE_SUFFIX@.vapi valadoc.h: libvaladoc.vala.stamp
- libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES)
- 	$(VALA_V)$(VALAC) \
diff --git a/pkgs/development/coq-modules/HoTT/default.nix b/pkgs/development/coq-modules/HoTT/default.nix
index 970591264d73a..426880940070b 100644
--- a/pkgs/development/coq-modules/HoTT/default.nix
+++ b/pkgs/development/coq-modules/HoTT/default.nix
@@ -6,7 +6,7 @@ mkCoqDerivation {
   owner = "HoTT";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
-    { case = range "8.14" "8.18"; out = coq.coq-version; }
+    { case = range "8.14" "8.19"; out = coq.coq-version; }
   ] null;
   releaseRev = v: "V${v}";
   release."8.14".sha256 = "sha256-7kXk2pmYsTNodHA+Qts3BoMsewvzmCbYvxw9Sgwyvq0=";
@@ -14,6 +14,7 @@ mkCoqDerivation {
   release."8.16".sha256 = "sha256-xcEbz4ZQ+U7mb0SEJopaczfoRc2GSgF2BGzUSWI0/HY=";
   release."8.17".sha256 = "sha256-GjTUpzL9UzJm4C2ilCaYEufLG3hcj7rJPc5Op+OMal8=";
   release."8.18".sha256 = "sha256-URoUoQOsG0432wg9i6pTRomWQZ+ewutq2+V29TBrVzc=";
+  release."8.19".sha256 = "sha256-igG3mhR6uPXV+SCtPH9PBw/eAtTFFry6HPT5ypWj3tQ=";
 
   # versions of HoTT for Coq 8.17 and onwards will use dune
   # opam-name = if lib.versions.isLe "8.17" coq.coq-version then "coq-hott" else null;
diff --git a/pkgs/development/coq-modules/dpdgraph/default.nix b/pkgs/development/coq-modules/dpdgraph/default.nix
index dac3fb2b74dff..905dbf1377b6f 100644
--- a/pkgs/development/coq-modules/dpdgraph/default.nix
+++ b/pkgs/development/coq-modules/dpdgraph/default.nix
@@ -8,6 +8,7 @@ mkCoqDerivation {
   repo = "coq-dpdgraph";
   inherit version;
   defaultVersion = lib.switch coq.coq-version [
+    { case = "8.19"; out = "1.0+8.19"; }
     { case = "8.18"; out = "1.0+8.18"; }
     { case = "8.17"; out = "1.0+8.17"; }
     { case = "8.16"; out = "1.0+8.16"; }
@@ -22,6 +23,7 @@ mkCoqDerivation {
     { case = "8.7";  out = "0.6.2"; }
   ] null;
 
+  release."1.0+8.19".sha256 = "sha256-L1vjEydYiwDFTXES3sgfdaO/D50AbTJKBXUKUCgbpto=";
   release."1.0+8.18".sha256 = "sha256-z14MI1VSYzPqmF1PqDXzymXWRMYoTlQAfR/P3Pdf7fI=";
   release."1.0+8.17".sha256 = "sha256-gcvL3vseLKEF9xinT0579jXBBaA5E3rJ5KaU8RfKtm4=";
   release."1.0+8.16".sha256 = "sha256-xy4xcVHaD1OHBdGUzUy3SeZnHtOf1+UIh6YjUYFINm0=";
diff --git a/pkgs/development/coq-modules/metacoq/default.nix b/pkgs/development/coq-modules/metacoq/default.nix
index 5695bcf2ee998..174f44b7702ae 100644
--- a/pkgs/development/coq-modules/metacoq/default.nix
+++ b/pkgs/development/coq-modules/metacoq/default.nix
@@ -13,8 +13,9 @@ let
       { case = "8.14"; out = "1.1-8.14"; }
       { case = "8.15"; out = "1.1-8.15"; }
       { case = "8.16"; out = "1.1-8.16"; }
-      { case = "8.17"; out = "1.2.1-8.17"; }
-      { case = "8.18"; out = "1.2.1-8.18"; }
+      { case = "8.17"; out = "1.3.1-8.17"; }
+      { case = "8.18"; out = "1.3.1-8.18"; }
+      { case = "8.19"; out = "1.3.1-8.19"; }
     ] null;
   release = {
     "1.0-beta2-8.11".sha256 = "sha256-I9YNk5Di6Udvq5/xpLSNflfjRyRH8fMnRzbo3uhpXNs=";
@@ -28,6 +29,9 @@ let
     "1.1-8.16".sha256 = "sha256-cTK4ptxpPPlqxAhasZFX3RpSlsoTZwhTqs2A3BZy9sA=";
     "1.2.1-8.17".sha256 = "sha256-FP4upuRsG8B5Q5FIr76t+ecRirrOUX0D1QiLq0/zMyE=";
     "1.2.1-8.18".sha256 = "sha256-49g5db2Bv8HpltptJdxA7zrmgNFGC6arx5h2mKHhrko=";
+    "1.3.1-8.17".sha256 = "sha256-l0/QLC7V3zSk/FsaE2eL6tXy2BzbcI5MAk/c+FESwnc=";
+    "1.3.1-8.18".sha256 = "sha256-L6Ym4Auwqaxv5tRmJLSVC812dxCqdUU5aN8+t5HVYzY=";
+    "1.3.1-8.19".sha256 = "sha256-fZED/Uel1jt5XF83dR6HfyhSkfBdLkET8C/ArDgsm64=";
   };
   releaseRev = v: "v${v}";
 
diff --git a/pkgs/development/cuda-modules/aliases.nix b/pkgs/development/cuda-modules/aliases.nix
new file mode 100644
index 0000000000000..3c4a791ebd713
--- /dev/null
+++ b/pkgs/development/cuda-modules/aliases.nix
@@ -0,0 +1,4 @@
+# Packges which have been deprecated or removed from cudaPackages
+final: prev: {
+
+}
diff --git a/pkgs/development/cuda-modules/nccl/default.nix b/pkgs/development/cuda-modules/nccl/default.nix
index e3d10b79386f9..fe99b31e12a89 100644
--- a/pkgs/development/cuda-modules/nccl/default.nix
+++ b/pkgs/development/cuda-modules/nccl/default.nix
@@ -6,13 +6,13 @@
   fetchFromGitHub,
   python3,
   which,
+  autoAddDriverRunpath,
   cudaPackages,
   # passthru.updateScript
   gitUpdater,
 }:
 let
   inherit (cudaPackages)
-    autoAddDriverRunpath
     backendStdenv
     cuda_cccl
     cuda_cudart
diff --git a/pkgs/development/cuda-modules/saxpy/default.nix b/pkgs/development/cuda-modules/saxpy/default.nix
index bc299dea006f4..399493d43b07b 100644
--- a/pkgs/development/cuda-modules/saxpy/default.nix
+++ b/pkgs/development/cuda-modules/saxpy/default.nix
@@ -1,11 +1,11 @@
 {
+  autoAddDriverRunpath,
   cmake,
   cudaPackages,
   lib,
 }:
 let
   inherit (cudaPackages)
-    autoAddDriverRunpath
     backendStdenv
     cuda_cccl
     cuda_cudart
diff --git a/pkgs/development/haskell-modules/configuration-arm.nix b/pkgs/development/haskell-modules/configuration-arm.nix
index 5a9f923ad00e3..2f4e085855a44 100644
--- a/pkgs/development/haskell-modules/configuration-arm.nix
+++ b/pkgs/development/haskell-modules/configuration-arm.nix
@@ -70,7 +70,6 @@ self: super: {
   headroom = dontCheck super.headroom;
   hgeometry = dontCheck super.hgeometry;
   hhp = dontCheck super.hhp;
-  hls-splice-plugin = dontCheck super.hls-splice-plugin;
   hsakamai = dontCheck super.hsakamai;
   hsemail-ns = dontCheck super.hsemail-ns;
   html-validator-cli = dontCheck super.html-validator-cli;
@@ -99,13 +98,6 @@ self: super: {
   xml-html-qq = dontCheck super.xml-html-qq;
   yaml-combinators = dontCheck super.yaml-combinators;
   yesod-paginator = dontCheck super.yesod-paginator;
-  hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;
-  hls-call-hierarchy-plugin = dontCheck super.hls-call-hierarchy-plugin;
-  hls-module-name-plugin = dontCheck super.hls-module-name-plugin;
-  hls-brittany-plugin = dontCheck super.hls-brittany-plugin;
-  hls-qualify-imported-names-plugin = dontCheck super.hls-qualify-imported-names-plugin;
-  hls-class-plugin = dontCheck super.hls-class-plugin;
-  hls-selection-range-plugin = dontCheck super.hls-selection-range-plugin;
 
   # https://github.com/ekmett/half/issues/35
   half = dontCheck super.half;
@@ -116,11 +108,6 @@ self: super: {
   # Similar RTS issue in test suite:
   # rts/linker/elf_reloc_aarch64.c:98: encodeAddendAarch64: Assertion `isInt64(21+12, addend)' failed.
   # These still fail sporadically on ghc 9.2
-  hls-ormolu-plugin = dontCheck super.hls-ormolu-plugin;
-  hls-haddock-comments-plugin = dontCheck super.hls-haddock-comments-plugin;
-  hls-rename-plugin = dontCheck super.hls-rename-plugin;
-  hls-fourmolu-plugin = dontCheck super.hls-fourmolu-plugin;
-  hls-floskell-plugin = dontCheck super.hls-floskell-plugin;
 } // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch32 {
   # AARCH32-SPECIFIC OVERRIDES
 
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index ec0545a892817..e9c0303afb55d 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -144,6 +144,11 @@ self: super: {
   # https://github.com/lspitzner/czipwith/issues/5
   czipwith = doJailbreak super.czipwith;
 
+  # jacinda needs latest version of alex
+  jacinda = super.jacinda.override {
+    alex = self.alex_3_5_1_0;
+  };
+
   aeson =
     # aeson's test suite includes some tests with big numbers that fail on 32bit
     # https://github.com/haskell/aeson/issues/1060
@@ -160,28 +165,32 @@ self: super: {
   # 2023-06-28: Test error: https://hydra.nixos.org/build/225565149
   orbits = dontCheck super.orbits;
 
-  # Fixes the build if Cabal >= 3.10.2 is used for Setup.hs, as it got stricter
-  # about c- vs. cxx-sources: https://github.com/haskell/double-conversion/issues/43
-  double-conversion = overrideCabal (drv: {
-    patches = drv.patches or [ ] ++ [
-      (pkgs.fetchpatch {
-        name = "double-conversion-c-to-cxx-sources.patch";
-        url = "https://github.com/haskell/double-conversion/pull/44/commits/d480fb057c5387251b8cfdeb3666b24087811219.patch";
-        sha256 = "0jw2i2cybmv190bhab0afhz2v3zva2chazhmngh884fsq2p3j1cv";
-      })
-    ];
-    prePatch = drv.prePatch or "" + ''
-      ${pkgs.buildPackages.dos2unix}/bin/dos2unix *.cabal
-    '';
-  }) super.double-conversion;
-
   # Too strict bounds on hspec < 2.11
   http-api-data = doJailbreak super.http-api-data;
   tasty-discover = doJailbreak super.tasty-discover;
 
   # Allow aeson == 2.1.*
   # https://github.com/hdgarrood/aeson-better-errors/issues/23
-  aeson-better-errors = doJailbreak super.aeson-better-errors;
+  aeson-better-errors = lib.pipe super.aeson-better-errors [
+    doJailbreak
+    (appendPatches [
+      # https://github.com/hdgarrood/aeson-better-errors/pull/25
+      (fetchpatch {
+        name = "mtl-2-3.patch";
+        url = "https://github.com/hdgarrood/aeson-better-errors/commit/1ec49ab7d1472046b680b5a64ae2930515b47714.patch";
+        hash = "sha256-xuuocWxSoBDclVp0bJ9UrDamVcDVOAFgJIi/un1xBvk=";
+      })
+    ])
+  ];
+
+  # https://github.com/mpickering/eventlog2html/pull/187
+  eventlog2html = lib.pipe super.eventlog2html [
+    (appendPatch (fetchpatch {
+      name = "blaze-html-compat.patch";
+      url = "https://github.com/mpickering/eventlog2html/commit/666aee9ee44c571173a73036b36ad4154c188481.patch";
+      sha256 = "sha256-9PLygLEpJ6pAZ31gSWiEMqWxmvElT6Unc/pgr6ULIaw=";
+    }))
+   ];
 
   # 2023-08-09: Jailbreak because of vector < 0.13
   # 2023-11-09: don't check because of https://github.com/tweag/monad-bayes/pull/326
@@ -201,8 +210,14 @@ self: super: {
   # currently, cabal-plan seems to get not much maintenance
   cabal-plan = doJailbreak super.cabal-plan;
 
-  # Too strict bounds on optparse-applicative
-  weeder = lib.warnIf (lib.versionAtLeast super.weeder.version "2.8.0") "jailbreak on weeder may be obsolete" doJailbreak super.weeder;
+  # test dependency has incorrect upper bound but still supports the newer dependency
+  # https://github.com/fused-effects/fused-effects/issues/451
+  # https://github.com/fused-effects/fused-effects/pull/452
+  fused-effects = doJailbreak super.fused-effects;
+
+  # support for transformers >= 0.6
+  fused-effects-random = doJailbreak super.fused-effects-random;
+  fused-effects-readline = doJailbreak super.fused-effects-readline;
 
   # Allow scotty < 0.21
   # For < 0.22 add https://github.com/taffybar/taffybar/commit/71fe820d892a85e49ad2f2843eac0a59e01f3fd4
@@ -220,12 +235,6 @@ self: super: {
     sha256 = "14gllipl28lqry73c5dnclsskzk1bsrrgazibl4lkl8z98j2csjb";
   }) super.leveldb-haskell;
 
-  # 2024-01-08: fix tests failure for fgl >= 5.8.1 https://github.com/koalaman/shellcheck/issues/2677
-  ShellCheck = appendPatch (fetchpatch {
-    url = "https://github.com/koalaman/shellcheck/commit/c05380d518056189412e12128a8906b8ca6f6717.patch";
-    hash = "sha256-FXZQ/D7ut84Yng2/denihDM8e+q04/t2LVALFbohfT0=";
-  }) super.ShellCheck;
-
   # Arion's test suite needs a Nixpkgs, which is cumbersome to do from Nixpkgs
   # itself. For instance, pkgs.path has dirty sources and puts a huge .git in the
   # store. Testing is done upstream.
@@ -350,7 +359,11 @@ self: super: {
   # http2 also overridden in all-packages.nix for mailctl.
   # twain is currently only used by mailctl, so the .overrideScope shouldn't
   # negatively affect any other packages, at least currently...
-  twain = super.twain.overrideScope (self: _: { http2 = self.http2_3_0_3; });
+  # https://github.com/alexmingoia/twain/issues/5
+  twain = super.twain.overrideScope (self: _: {
+    http2 = self.http2_3_0_3;
+    warp = self.warp_3_3_30;
+  });
 
   # The latest release on hackage has an upper bound on containers which
   # breaks the build, though it works with the version of containers present
@@ -388,7 +401,7 @@ self: super: {
       name = "git-annex-${super.git-annex.version}-src";
       url = "git://git-annex.branchable.com/";
       rev = "refs/tags/" + super.git-annex.version;
-      sha256 = "sha256-DFdfRh4ST4hZl9AOsp0/Y4N+bT2Y1NoLdwi5sxVnCaw=";
+      sha256 = "sha256-tlEsBXfELnK9rU4LHSDNby/yym+guqXjsh2GA+L9aWA=";
       # delete android and Android directories which cause issues on
       # darwin (case insensitive directory). Since we don't need them
       # during the build process, we can delete it to prevent a hash
@@ -1019,63 +1032,6 @@ self: super: {
     '';
   }) super.structured-haskell-mode;
 
-  inherit (let
-    csound_src_git = pkgs.fetchFromGitHub {
-      owner = "spell-music";
-      repo = "csound-expression";
-      rev = "345df2c91c9831dd895f58951990165598504814";
-      hash = "sha256-6qPiKsZwZpqB2kmckKDKyQPTcWPIaVwi+EYs74tRod0=";
-    };
-  in {
-    # Compilation on recent GHC is fixed on git, but not yet on hackage
-    # https://github.com/spell-music/csound-expression/pull/68
-    csound-expression-typed =
-      assert super.csound-expression-typed.version == "0.2.7";
-      overrideCabal (drv: {
-        src = csound_src_git + "/csound-expression-typed";
-        editedCabalFile = null;
-      }) super.csound-expression-typed;
-
-    csound-expression-dynamic =
-      assert super.csound-expression-dynamic.version == "0.3.9";
-      overrideCabal (drv: {
-        src = csound_src_git + "/csound-expression-dynamic";
-        editedCabalFile = null;
-        libraryHaskellDepends = drv.libraryHaskellDepends ++ [
-          self.base64-bytestring self.cereal self.cereal-text
-          self.cryptohash-sha256 self.pretty-show self.safe
-          self.unordered-containers self.vector self.wl-pprint-text
-        ];
-      }) super.csound-expression-dynamic;
-
-    csound-expression =
-      assert super.csound-expression.version == "5.4.3";
-      overrideCabal (drv: {
-        src = csound_src_git + "/csound-expression";
-        editedCabalFile = null;
-      }) super.csound-expression;
-
-    csound-expression-opcodes =
-      assert super.csound-expression-opcodes.version == "0.0.5.1";
-      overrideCabal (drv: {
-        src = csound_src_git + "/csound-expression-opcodes";
-        editedCabalFile = null;
-      }) super.csound-expression-opcodes;
-
-    csound-sampler =
-      assert super.csound-sampler.version == "0.0.10.1";
-      overrideCabal (drv: {
-        src = csound_src_git + "/csound-sampler";
-        editedCabalFile = null;
-      }) super.csound-sampler;
-  })
-    csound-expression-typed
-    csound-expression-dynamic
-    csound-expression
-    csound-expression-opcodes
-    csound-sampler
-    ;
-
   # Make elisp files available at a location where people expect it.
   hindent = (overrideCabal (drv: {
     # We cannot easily byte-compile these files, unfortunately, because they
@@ -1139,15 +1095,19 @@ self: super: {
   }) newer;
 
   # * The standard libraries are compiled separately.
-  # * We need a patch from master to fix compilation with
-  #   updated dependencies (haskeline and megaparsec) which can be
+  # * We need a few patches from master to fix compilation with
+  #   updated dependencies which can be
   #   removed when the next idris release comes around.
-  idris = self.generateOptparseApplicativeCompletions [ "idris" ]
+  idris = lib.pipe super.idris [
+    dontCheck
+    doJailbreak
     (appendPatch (fetchpatch {
-      name = "idris-libffi-0.2.patch";
-      url = "https://github.com/idris-lang/Idris-dev/commit/6d6017f906c5aa95594dba0fd75e7a512f87883a.patch";
-      hash = "sha256-wyLjqCyLh5quHMOwLM5/XjlhylVC7UuahAM79D8+uls=";
-    }) (doJailbreak (dontCheck super.idris)));
+      name = "idris-bumps.patch";
+      url = "https://github.com/idris-lang/Idris-dev/compare/c99bc9e4af4ea32d2172f873152b76122ee4ee14...cf78f0fb337d50f4f0dba235b6bbe67030f1ff47.patch";
+      hash = "sha256-RCMIRHIAK1PCm4B7v+5gXNd2buHXIqyAxei4bU8+eCk=";
+    }))
+    (self.generateOptparseApplicativeCompletions [ "idris" ])
+  ];
 
   # Too strict bound on hspec
   # https://github.com/lspitzner/multistate/issues/9#issuecomment-1367853016
@@ -1679,6 +1639,18 @@ self: super: {
   # Upstream issue: https://github.com/kowainik/trial/issues/62
   trial = doJailbreak super.trial;
 
+  # 2024-03-19: Fix for mtl >= 2.3
+  pattern-arrows = lib.pipe super.pattern-arrows [
+    doJailbreak
+    (appendPatches [./patches/pattern-arrows-add-fix-import.patch])
+  ];
+
+  # 2024-03-19: Fix for mtl >= 2.3
+  cheapskate = lib.pipe super.cheapskate [
+    doJailbreak
+    (appendPatches [./patches/cheapskate-mtl-2-3-support.patch])
+  ];
+
   # 2020-06-24: Tests are broken in hackage distribution.
   # See: https://github.com/robstewart57/rdf4h/issues/39
   rdf4h = dontCheck super.rdf4h;
@@ -1879,17 +1851,6 @@ self: super: {
   # https://github.com/obsidiansystems/dependent-sum/issues/55
   dependent-sum = doJailbreak super.dependent-sum;
 
-  # 2024-02-03: Jailbreak because pretty much every dependency has
-  # tight bounds, and disable building the example executable because
-  # it's not compatible with Reflex 0.9 (the library itself is
-  # compatible however).
-  # https://gitlab.com/Kritzefitz/reflex-gi-gtk/-/merge_requests/16
-  reflex-gi-gtk = assert super.reflex-gi-gtk.version == "0.2.0.0";
-    overrideCabal (drv: {
-      jailbreak = true;
-      buildTarget = drv.pname;  # just the library
-    }) super.reflex-gi-gtk;
-
   # 2022-06-19: Disable checks because of https://github.com/reflex-frp/reflex/issues/475
   reflex = doJailbreak (dontCheck super.reflex);
 
@@ -1990,6 +1951,9 @@ self: super: {
   # compatible with Cabal 3. No upstream repository found so far
   readline = appendPatch ./patches/readline-fix-for-cabal-3.patch super.readline;
 
+  # https://github.com/jgm/pandoc/issues/9589
+  pandoc = assert super.pandoc.version == "3.1.11.1"; dontCheck super.pandoc;
+
   # 2020-12-06: Restrictive upper bounds w.r.t. pandoc-types (https://github.com/owickstrom/pandoc-include-code/issues/27)
   pandoc-include-code = doJailbreak super.pandoc-include-code;
 
@@ -2036,10 +2000,7 @@ self: super: {
   vivid-supercollider = dontCheck super.vivid-supercollider;
 
   # Test suite does not compile.
-  feed = overrideCabal (drv: {
-    jailbreak = lib.warnIf (lib.toInt drv.revision >= 4) "haskellPackages.feed: jailbreak can be removed" true;
-    doCheck = false;
-  }) super.feed;
+  feed = dontCheck super.feed;
 
   spacecookie = overrideCabal (old: {
     buildTools = (old.buildTools or []) ++ [ pkgs.buildPackages.installShellFiles ];
@@ -2334,10 +2295,22 @@ self: super: {
 
   # 2023-04-09: haskell-ci needs Cabal-syntax 3.10
   # 2023-07-03: allow lattices-2.2, waiting on https://github.com/haskell-CI/haskell-ci/pull/664
+  # 2024-03-21: pins specific version of ShellCheck
   haskell-ci = doJailbreak (super.haskell-ci.overrideScope (self: super: {
     Cabal-syntax = self.Cabal-syntax_3_10_2_0;
+    ShellCheck = self.ShellCheck_0_9_0;
   }));
 
+  # ShellCheck < 0.10.0 needs to be adjusted for changes in fgl >= 5.8
+  # https://github.com/koalaman/shellcheck/issues/2677
+  ShellCheck_0_9_0 = doJailbreak (appendPatches [
+    (fetchpatch {
+      name = "shellcheck-fgl-5.8.1.1.patch";
+      url = "https://github.com/koalaman/shellcheck/commit/c05380d518056189412e12128a8906b8ca6f6717.patch";
+      sha256 = "0gbx46x1a2sh5mvgpqxlx9xkqcw4wblpbgqdkqccxdzf7vy50xhm";
+    })
+  ] super.ShellCheck_0_9_0);
+
   # Too strict bound on hspec (<2.11)
   utf8-light = doJailbreak super.utf8-light;
 
@@ -2504,11 +2477,19 @@ self: super: {
     ] ++ drv.testFlags or [];
   }) super.hschema-aeson;
   # https://github.com/minio/minio-hs/issues/165
+  # https://github.com/minio/minio-hs/pull/191 Use crypton-connection instead of unmaintained connection
   minio-hs = overrideCabal (drv: {
     testFlags = [
       "-p" "!/Test mkSelectRequest/"
     ] ++ drv.testFlags or [];
-  }) super.minio-hs;
+    patches = drv.patches or [ ] ++ [
+      (pkgs.fetchpatch {
+        name = "use-crypton-connection.patch";
+        url = "https://github.com/minio/minio-hs/commit/786cf1881f0b62b7539e63547e76afc3c1ade36a.patch";
+        sha256 = "sha256-zw0/jhKzShpqV1sUyxWTl73sQOzm6kA/yQOZ9n0L1Ag";
+      })
+    ];
+  }) (super.minio-hs.override { connection = self.crypton-connection; });
 
   # Invalid CPP in test suite: https://github.com/cdornan/memory-cd/issues/1
   memory-cd = dontCheck super.memory-cd;
@@ -2867,6 +2848,10 @@ self: super: {
   co-log-polysemy = doJailbreak super.co-log-polysemy;
   co-log-polysemy-formatting = doJailbreak super.co-log-polysemy-formatting;
 
+  # calls ghc in tests
+  # https://github.com/brandonchinn178/tasty-autocollect/issues/54
+  tasty-autocollect = dontCheck super.tasty-autocollect;
+
   postgrest = lib.pipe super.postgrest [
     # 2023-12-20: New version needs extra dependencies
     (addBuildDepends [ self.extra self.fuzzyset_0_2_4 self.cache self.timeit ])
@@ -2965,6 +2950,11 @@ self: super: {
   # Too strict bounds on mtl, servant and servant-client
   unleash-client-haskell = doJailbreak super.unleash-client-haskell;
 
+  # Requires a newer zlib version than stackage provides
+  futhark = super.futhark.override {
+    zlib = self.zlib_0_7_0_0;
+  };
+
   # Tests rely on (missing) submodule
   unleash-client-haskell-core = dontCheck super.unleash-client-haskell-core;
 
@@ -2979,7 +2969,7 @@ self: super: {
   }) super.kmonad;
 
   ghc-syntax-highlighter_0_0_11_0 = super.ghc-syntax-highlighter_0_0_11_0.overrideScope(self: super: {
-    ghc-lib-parser = self.ghc-lib-parser_9_8_1_20231121;
+    ghc-lib-parser = self.ghc-lib-parser_9_8_2_20240223;
   });
 
   # 2024-03-17: broken
@@ -3013,6 +3003,9 @@ self: super: {
     })
   ] super.niv;
 
+  # 2024-03-25: HSH broken because of the unix-2.8.0.0 breaking change
+  HSH = appendPatches [./patches/HSH-unix-openFd.patch] super.HSH;
+
   inherit
     (let
       unbreakRepa = packageName: drv: lib.pipe drv [
@@ -3043,4 +3036,36 @@ self: super: {
     #   repa-query, repa-scalar, repa-store, repa-stream
   ;
 
+  # https://github.com/jhickner/smtp-mail/pull/41 Use crypton-connection instead of connection
+  smtp-mail = appendPatch (pkgs.fetchpatch {
+    name = "smtp-mail-crypton-connection.patch";
+    url = "https://github.com/jhickner/smtp-mail/commit/4c724c80814ab1da7c37256a6c10e04c88b9af95.patch";
+    hash = "sha256-rCyY4rB/wLspeAbLw1jji5BykYFLnmTjLiUyNkiEXmw";
+  }) (super.smtp-mail.override { connection = self.crypton-connection; });
+
+  # Use recent git version as the hackage version is outdated and not building on recent GHC versions
+  haskell-to-elm = overrideSrc {
+    version = "unstable-2023-12-02";
+    src = pkgs.fetchFromGitHub {
+      owner = "haskell-to-elm";
+      repo = "haskell-to-elm";
+      rev = "52ab086a320a14051aa38d0353d957fb6b2525e9";
+      hash = "sha256-j6F4WplJy7NyhTAuiDd/tHT+Agk1QdyPjOEkceZSxq8=";
+    };
+  } super.haskell-to-elm;
+
+  # https://github.com/dpwright/HaskellNet-SSL/pull/33 Use crypton-connection instead of connection
+  HaskellNet-SSL = appendPatch (pkgs.fetchpatch {
+    name = "HaskellNet-SSL-crypton-connection.patch";
+    url = "https://github.com/dpwright/HaskellNet-SSL/pull/34/commits/cab639143efb65acf96abb35ae6c48db8d37867c.patch";
+    hash = "sha256-hT4IZw70DxTw6iMofQHjPycz6IE6U76df72ftR2UB6Q=";
+  }) (super.HaskellNet-SSL.override { connection = self.crypton-connection; });
+
+  # https://github.com/isovector/type-errors/issues/9
+  type-errors = dontCheck super.type-errors;
+
+  cabal-gild = super.cabal-gild.overrideScope (self: super: {
+    tasty = super.tasty_1_5;
+    tasty-quickcheck = super.tasty-quickcheck_0_10_3;
+  });
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix
index e6400e2c46c85..3c8b742254a84 100644
--- a/pkgs/development/haskell-modules/configuration-darwin.nix
+++ b/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -214,20 +214,6 @@ self: super: ({
     ] ++ (drv.libraryHaskellDepends or []);
   }) super.cas-store;
 
-  # 2021-05-25: Tests fail and I have no way to debug them.
-  hls-class-plugin = dontCheck super.hls-class-plugin;
-  hls-brittany-plugin = dontCheck super.hls-brittany-plugin;
-  hls-fourmolu-plugin = dontCheck super.hls-fourmolu-plugin;
-  hls-module-name-plugin = dontCheck super.hls-module-name-plugin;
-  hls-splice-plugin = dontCheck super.hls-splice-plugin;
-  hls-ormolu-plugin = dontCheck super.hls-ormolu-plugin;
-  hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;
-  hls-haddock-comments-plugin = dontCheck super.hls-haddock-comments-plugin;
-  hls-floskell-plugin = dontCheck super.hls-floskell-plugin;
-  hls-call-hierarchy-plugin = dontCheck super.hls-call-hierarchy-plugin;
-  # 2022-05-05: Tests fail and I have no way to debug them.
-  hls-rename-plugin = dontCheck super.hls-rename-plugin;
-
   # We are lacking pure pgrep at the moment for tests to work
   tmp-postgres = dontCheck super.tmp-postgres;
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 137647da8b51b..c1a8e72384829 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -66,6 +66,9 @@ self: super: {
     self.base-orphans
   ] super.hashable;
 
+  # Too strict lower bounds on base
+  primitive-addr = doJailbreak super.primitive-addr;
+
   # Pick right versions for GHC-specific packages
   ghc-api-compat = doDistribute (unmarkBroken self.ghc-api-compat_8_10_7);
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index d3b7d11ef93f8..b19a5e9b1d904 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -97,9 +97,6 @@ self: super: {
   # This became a core library in ghc 8.10., so we don’t have an "exception" attribute anymore.
   exceptions = self.exceptions_0_10_7;
 
-  # Older compilers need the latest ghc-lib to build this package.
-  hls-hlint-plugin = addBuildDepend self.ghc-lib super.hls-hlint-plugin;
-
   # vector 0.12.2 indroduced doctest checks that don’t work on older compilers
   vector = dontCheck super.vector;
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index 5b17975ca8b70..4b21ad57fa295 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -65,6 +65,9 @@ self: super: {
     self.base-orphans
   ] super.hashable;
 
+  # Too strict lower bounds on base
+  primitive-addr = doJailbreak super.primitive-addr;
+
   hashable-time = doJailbreak super.hashable-time;
   tuple = addBuildDepend self.base-orphans super.tuple;
   vector-th-unbox = doJailbreak super.vector-th-unbox;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix
new file mode 100644
index 0000000000000..7133db2abccc1
--- /dev/null
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.12.x.nix
@@ -0,0 +1,53 @@
+{ pkgs, haskellLib }:
+
+let
+  inherit (pkgs) lib;
+in
+
+self: super: {
+  llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
+
+  # Disable GHC core libraries
+  array = null;
+  base = null;
+  binary = null;
+  bytestring = null;
+  Cabal = null;
+  Cabal-syntax = null;
+  containers = null;
+  deepseq = null;
+  directory = null;
+  exceptions = null;
+  filepath = null;
+  ghc-bignum = null;
+  ghc-boot = null;
+  ghc-boot-th = null;
+  ghc-compact = null;
+  ghc-experimental = null;
+  ghc-heap = null;
+  ghc-internal = null;
+  ghc-platform = null;
+  ghc-prim = null;
+  ghc-toolchain = null;
+  ghci = null;
+  haskeline = null;
+  hpc = null;
+  integer-gmp = null;
+  mtl = null;
+  os-string = null;
+  parsec = null;
+  pretty = null;
+  process = null;
+  rts = null;
+  semaphore-compat = null;
+  stm = null;
+  system-cxx-std-lib = null;
+  template-haskell = null;
+  # GHC only builds terminfo if it is a native compiler
+  terminfo = if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then null else haskellLib.doDistribute self.terminfo_0_4_1_6;
+  text = null;
+  time = null;
+  transformers = null;
+  unix = null;
+  xhtml = null;
+}
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index 59e8d0f0894e2..bcafc8c3fb78b 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -65,31 +65,33 @@ self: super: {
     algebraic-graphs = dontCheck self.algebraic-graphs_0_6_1;
   });
 
-  hls-cabal-plugin = super.hls-cabal-plugin.override {
-    Cabal-syntax = self.Cabal-syntax_3_8_1_0;
-  };
-
-  ormolu = self.ormolu_0_5_2_0.override {
-    Cabal-syntax = self.Cabal-syntax_3_8_1_0;
-  };
-
-  stylish-haskell = doJailbreak super.stylish-haskell_0_14_4_0;
-
-  haskell-language-server = lib.pipe (super.haskell-language-server.override {
-    hls-ormolu-plugin = null;
-    hls-stylish-haskell-plugin = null;
-    hls-fourmolu-plugin = null;
-    # Not buildable if GHC > 9.2.3, so we ship no compatible GHC
-    hls-stan-plugin = null;
-  }) [
-     (disableCabalFlag "fourmolu")
-     (disableCabalFlag "ormolu")
-     (disableCabalFlag "stylishHaskell")
-    ];
+
+  haskell-language-server = lib.pipe super.haskell-language-server [
+    (disableCabalFlag "fourmolu")
+    (disableCabalFlag "ormolu")
+    (disableCabalFlag "stylishHaskell")
+    (overrideCabal (drv: {
+      # Disabling the build flags isn't enough: `Setup configure` still configures
+      # every component for building and complains about missing dependencies.
+      # Thus we have to mark the undesired components as non-buildable.
+      postPatch = drv.postPatch or "" + ''
+        for lib in hls-ormolu-plugin hls-fourmolu-plugin; do
+          sed -i "/^library $lib/a\  buildable: False" haskell-language-server.cabal
+        done
+      '';
+    }))
+    (d: d.override {
+      ormolu = null;
+      fourmolu = null;
+    })
+  ];
+
   # For GHC < 9.4, some packages need data-array-byte as an extra dependency
   hashable = addBuildDepends [ self.data-array-byte ] super.hashable;
   primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
   primitive-unlifted = super.primitive-unlifted_0_1_3_1;
+  # Too strict lower bound on base
+  primitive-addr = doJailbreak super.primitive-addr;
 
   # Jailbreaks & Version Updates
   hashable-time = doJailbreak super.hashable-time;
@@ -118,9 +120,6 @@ self: super: {
   # https://github.com/clash-lang/clash-compiler/blob/f0f6275e19b8c672f042026c478484c5fd45191d/README.md#ghc-compatibility
   clash-prelude = dontDistribute (markBroken super.clash-prelude);
 
-  # 2022-08-01: Tests are broken on ghc 9.2.4: https://github.com/wz1000/HieDb/issues/46
-  hiedb = dontCheck super.hiedb;
-
   # Too strict upper bound on bytestring, relevant for GHC 9.2.6 specifically
   # https://github.com/protolude/protolude/issues/127#issuecomment-1428807874
   protolude = doJailbreak super.protolude;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
index 653187007b31c..de5f883e5f4be 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
@@ -102,9 +102,6 @@ in {
   # https://github.com/kowainik/relude/issues/436
   relude = dontCheck super.relude;
 
-  # Broken because of unix >= 2.8 for GHC >= 9.6
-  darcs = unmarkBroken (doDistribute super.darcs);
-
   inherit
     (
       let
@@ -140,4 +137,7 @@ in {
     self.foldable1-classes-compat
     self.OneTuple
   ] super.base-compat-batteries;
+
+  # Too strict lower bound on base
+  primitive-addr = doJailbreak super.primitive-addr;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
index e46a36dea4bcc..35a886c1d6bd9 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
@@ -118,7 +118,6 @@ self: super: {
   relude = dontCheck (doJailbreak super.relude);
 
   inherit (pkgs.lib.mapAttrs (_: doJailbreak ) super)
-    hls-cabal-plugin
     ghc-trace-events
     gi-cairo-connector          # mtl <2.3
     ghc-prof                    # base <4.18
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
index 5613f36b0c95b..71835751d24eb 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
@@ -50,36 +50,36 @@ self: super: {
   xhtml = null;
 
   #
-  # HLS
-  # https://haskell-language-server.readthedocs.io/en/latest/support/plugin-support.html
-  #
-  haskell-language-server = super.haskell-language-server.override {
-    hls-class-plugin = null;
-    hls-fourmolu-plugin = null;
-    hls-gadt-plugin = null;
-    hls-hlint-plugin = null;
-    hls-ormolu-plugin = null;
-    hls-refactor-plugin = null;
-    hls-rename-plugin = null;
-    hls-retrie-plugin = null;
-    hls-splice-plugin = null;
-    hls-stylish-haskell-plugin = null;
-  };
-
-  #
   # Version upgrades
   #
   th-abstraction = doDistribute self.th-abstraction_0_6_0_0;
-  ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_1_20231121;
-  ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_0;
+  ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_2_20240223;
+  ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_2;
   ghc-lib = doDistribute self.ghc-lib_9_8_1_20231121;
   megaparsec = doDistribute self.megaparsec_9_6_1;
   aeson = doDistribute self.aeson_2_2_1_0;
   attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_0_1;
-  ormolu = doDistribute self.ormolu_0_7_3_0;
-  fourmolu = doDistribute (dontCheck self.fourmolu_0_14_1_0);
   xmonad = doDistribute self.xmonad_0_18_0;
-  hlint = doDistribute self.hlint_3_8;
+  apply-refact = self.apply-refact_0_14_0_0;
+  ormolu = self.ormolu_0_7_4_0;
+  fourmolu = self.fourmolu_0_15_0_0;
+  stylish-haskell = self.stylish-haskell_0_14_6_0;
+  hlint = self.hlint_3_8;
+  ghc-syntax-highlighter = self.ghc-syntax-highlighter_0_0_11_0;
+
+  # A given major version of ghc-exactprint only supports one version of GHC.
+  ghc-exactprint = self.ghc-exactprint_1_8_0_0;
+  ghc-exactprint_1_8_0_0 = addBuildDepends [
+    self.Diff
+    self.HUnit
+    self.data-default
+    self.extra
+    self.free
+    self.ghc-paths
+    self.ordered-containers
+    self.silently
+    self.syb
+  ] super.ghc-exactprint_1_8_0_0;
 
   #
   # Jailbreaks
@@ -98,6 +98,12 @@ self: super: {
   # Too strict bound on base, believe it or not.
   # https://github.com/judah/terminfo/pull/55#issuecomment-1876894232
   terminfo_0_4_1_6 = doJailbreak super.terminfo_0_4_1_6;
+  HaskellNet-SSL = doJailbreak super.HaskellNet-SSL; # bytestring >=0.9 && <0.12
+  raven-haskell = doJailbreak super.raven-haskell; # aeson <2.2
+  stripe-concepts = doJailbreak super.stripe-concepts; # text >=1.2.5 && <1.3 || >=2.0 && <2.1
+  stripe-signature = doJailbreak super.stripe-signature; # text >=1.2.5 && <1.3 || >=2.0 && <2.1
+  string-random = doJailbreak super.string-random; # text >=1.2.2.1 && <2.1
+  inflections = doJailbreak super.inflections; # text >=0.2 && <2.1
 
   #
   # Test suite issues
@@ -106,6 +112,7 @@ self: super: {
   lifted-base = dontCheck super.lifted-base; # doesn't compile with transformers == 0.6.*
   hourglass = dontCheck super.hourglass; # umaintained, test suite doesn't compile anymore
   bsb-http-chunked = dontCheck super.bsb-http-chunked; # umaintained, test suite doesn't compile anymore
+  pcre-heavy = dontCheck super.pcre-heavy; # GHC warnings cause the tests to fail
 
   #
   # Other build fixes
@@ -122,10 +129,4 @@ self: super: {
       })
     super.libmpd;
 
-  # Symbol syntax seems to have changed in 9.8, removing a seemingly redundant colon; appears to be an overspecified assertion.
-  # https://github.com/wz1000/HieDb/issues/74
-  hiedb =
-    assert super.hiedb.version == "0.5.0.1";
-    dontCheck super.hiedb;
-
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index 3d63f4c2ae137..ced72a5d30be6 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -71,7 +71,6 @@ broken-packages:
   - adtrees # failure in job https://hydra.nixos.org/build/233192320 at 2023-09-02
   - AERN-Basics # failure in job https://hydra.nixos.org/build/233246999 at 2023-09-02
   - aeson-applicative # failure in job https://hydra.nixos.org/build/233213824 at 2023-09-02
-  - aeson-better-errors # failure in job https://hydra.nixos.org/build/252717339 at 2024-03-16
   - aeson-bson # failure in job https://hydra.nixos.org/build/233201964 at 2023-09-02
   - aeson-commit # failure in job https://hydra.nixos.org/build/233198515 at 2023-09-02
   - aeson-compat # failure in job https://hydra.nixos.org/build/233208257 at 2023-09-02
@@ -519,6 +518,7 @@ broken-packages:
   - boots # failure in job https://hydra.nixos.org/build/252733526 at 2024-03-16
   - boring-window-switcher # failure in job https://hydra.nixos.org/build/233252547 at 2023-09-02
   - borsh # failure in job https://hydra.nixos.org/build/252718760 at 2024-03-16
+  - botan-bindings # failure in job https://hydra.nixos.org/build/253695799 at 2024-03-31
   - bot # failure in job https://hydra.nixos.org/build/233230089 at 2023-09-02
   - botpp # failure in job https://hydra.nixos.org/build/233201674 at 2023-09-02
   - bottom # failure in job https://hydra.nixos.org/build/233225154 at 2023-09-02
@@ -616,7 +616,6 @@ broken-packages:
   - cabal-file-th # failure in job https://hydra.nixos.org/build/233224650 at 2023-09-02
   - cabal-ghc-dynflags # failure in job https://hydra.nixos.org/build/233244580 at 2023-09-02
   - cabal-ghci # failure in job https://hydra.nixos.org/build/233239354 at 2023-09-02
-  - cabal-gild # failure in job https://hydra.nixos.org/build/252731019 at 2024-03-16
   - cabal-graphdeps # failure in job https://hydra.nixos.org/build/233221966 at 2023-09-02
   - cabalgraph # failure in job https://hydra.nixos.org/build/233241573 at 2023-09-02
   - cabal-helper # failure in job https://hydra.nixos.org/build/252732588 at 2024-03-16
@@ -737,6 +736,7 @@ broken-packages:
   - chalkboard # failure in job https://hydra.nixos.org/build/234453414 at 2023-09-13
   - chalmers-lava2000 # failure in job https://hydra.nixos.org/build/233239592 at 2023-09-02
   - changelog-d # failure in job https://hydra.nixos.org/build/252716175 at 2024-03-16
+  - changelog-d # failure in job https://hydra.nixos.org/build/253689337 at 2024-03-31
   - changelogged # failure in job https://hydra.nixos.org/build/233211675 at 2023-09-02
   - character-cases # failure in job https://hydra.nixos.org/build/233197636 at 2023-09-02
   - charter # failure in job https://hydra.nixos.org/build/233237264 at 2023-09-02
@@ -746,7 +746,6 @@ broken-packages:
   - chatty-text # failure in job https://hydra.nixos.org/build/233199498 at 2023-09-02
   - chatty-utils # failure in job https://hydra.nixos.org/build/252710715 at 2024-03-16
   - chatwork # failure in job https://hydra.nixos.org/build/233240489 at 2023-09-02
-  - cheapskate # failure in job https://hydra.nixos.org/build/233197892 at 2023-09-02
   - check-cfg-ambiguity # failure in job https://hydra.nixos.org/build/233251852 at 2023-09-02
   - checked # failure in job https://hydra.nixos.org/build/233223182 at 2023-09-02
   - Checked # failure in job https://hydra.nixos.org/build/233257598 at 2023-09-02
@@ -845,6 +844,7 @@ broken-packages:
   - codecov-haskell # failure in job https://hydra.nixos.org/build/233256758 at 2023-09-02
   - codeforces-cli # failure in job https://hydra.nixos.org/build/233210719 at 2023-09-02
   - codepad # failure in job https://hydra.nixos.org/build/233197730 at 2023-09-02
+  - codet # failure in job https://hydra.nixos.org/build/253695383 at 2024-03-31
   - codeworld-api # failure in job https://hydra.nixos.org/build/252720413 at 2024-03-16
   - codex # failure in job https://hydra.nixos.org/build/233212311 at 2023-09-02
   - codo-notation # failure in job https://hydra.nixos.org/build/233202566 at 2023-09-02
@@ -988,6 +988,7 @@ broken-packages:
   - Control-Monad-ST2 # failure in job https://hydra.nixos.org/build/233222919 at 2023-09-02
   - contstuff-monads-tf # failure in job https://hydra.nixos.org/build/233224064 at 2023-09-02
   - contstuff-transformers # failure in job https://hydra.nixos.org/build/233244153 at 2023-09-02
+  - copilot-bluespec # failure in job https://hydra.nixos.org/build/253685418 at 2024-03-31
   - copilot-c99 # failure in job https://hydra.nixos.org/build/233258148 at 2023-09-02
   - copr # failure in job https://hydra.nixos.org/build/233252310 at 2023-09-02
   - coquina # failure in job https://hydra.nixos.org/build/233254665 at 2023-09-02
@@ -1018,7 +1019,6 @@ broken-packages:
   - cplusplus-th # failure in job https://hydra.nixos.org/build/233204461 at 2023-09-02
   - cps-except # failure in job https://hydra.nixos.org/build/252711064 at 2024-03-16
   - cpuperf # failure in job https://hydra.nixos.org/build/233252964 at 2023-09-02
-  - cpython # failure in job https://hydra.nixos.org/build/233255188 at 2023-09-02
   - cql-io # failure in job https://hydra.nixos.org/build/233245286 at 2023-09-02
   - cqrs-core # failure in job https://hydra.nixos.org/build/233192102 at 2023-09-02
   - crack # failure in job https://hydra.nixos.org/build/233229111 at 2023-09-02
@@ -1109,7 +1109,6 @@ broken-packages:
   - darcs2dot # failure in job https://hydra.nixos.org/build/233209236 at 2023-09-02
   - darcs-buildpackage # failure in job https://hydra.nixos.org/build/233213566 at 2023-09-02
   - darcs-cabalized # failure in job https://hydra.nixos.org/build/233234765 at 2023-09-02
-  - darcs # doesn't support unix >= 2.8, 2024-01-13
   - darcs-graph # failure in job https://hydra.nixos.org/build/233245230 at 2023-09-02
   - darcs-monitor # failure in job https://hydra.nixos.org/build/233249455 at 2023-09-02
   - darkplaces-rcon # failure in job https://hydra.nixos.org/build/233247609 at 2023-09-02
@@ -1366,6 +1365,7 @@ broken-packages:
   - do-spaces # failure in job https://hydra.nixos.org/build/233244331 at 2023-09-02
   - dotfs # failure in job https://hydra.nixos.org/build/233200762 at 2023-09-02
   - dot-linker # failure in job https://hydra.nixos.org/build/233237512 at 2023-09-02
+  - double-x-encoding # failure in job https://hydra.nixos.org/build/253694746 at 2024-03-31
   - doublezip # failure in job https://hydra.nixos.org/build/233219270 at 2023-09-02
   - doublify-toolkit # failure in job https://hydra.nixos.org/build/233223302 at 2023-09-02
   - dovin # failure in job https://hydra.nixos.org/build/252714139 at 2024-03-16
@@ -1872,7 +1872,6 @@ broken-packages:
   - funpat # failure in job https://hydra.nixos.org/build/233222123 at 2023-09-02
   - funspection # failure in job https://hydra.nixos.org/build/233227352 at 2023-09-02
   - fused-effects-exceptions # failure in job https://hydra.nixos.org/build/233203744 at 2023-09-02
-  - fused-effects # failure in job https://hydra.nixos.org/build/252724943 at 2024-03-16
   - fused-effects-mwc-random # failure in job https://hydra.nixos.org/build/233253228 at 2023-09-02
   - fused-effects-resumable # failure in job https://hydra.nixos.org/build/233242479 at 2023-09-02
   - fused-effects-th # failure in job https://hydra.nixos.org/build/233192186 at 2023-09-02
@@ -1945,6 +1944,7 @@ broken-packages:
   - geniplate-mirror # failure in job https://hydra.nixos.org/build/252731252 at 2024-03-16
   - gen-passwd # failure in job https://hydra.nixos.org/build/233224836 at 2023-09-02
   - genprog # failure in job https://hydra.nixos.org/build/233198970 at 2023-09-02
+  - GenSmsPdu # failure in job https://hydra.nixos.org/build/253702098 at 2024-03-31
   - gentlemark # failure in job https://hydra.nixos.org/build/233202158 at 2023-09-02
   - geocode-google # failure in job https://hydra.nixos.org/build/233191594 at 2023-09-02
   - GeocoderOpenCage # failure in job https://hydra.nixos.org/build/233214852 at 2023-09-02
@@ -1977,6 +1977,7 @@ broken-packages:
   - ghc-gc-hook # failure in job https://hydra.nixos.org/build/233195053 at 2023-09-02
   - ghc-generic-instances # failure in job https://hydra.nixos.org/build/233259298 at 2023-09-02
   - ghc-hotswap # failure in job https://hydra.nixos.org/build/233220146 at 2023-09-02
+  - ghcide-test-utils # failure in job https://hydra.nixos.org/build/253687657 at 2024-03-31
   - ghci-diagrams # failure in job https://hydra.nixos.org/build/233194407 at 2023-09-02
   - ghci-haskeline # failure in job https://hydra.nixos.org/build/233216940 at 2023-09-02
   - ghci-history-parser # failure in job https://hydra.nixos.org/build/233204448 at 2023-09-02
@@ -2008,10 +2009,13 @@ broken-packages:
   - ghc-usage # failure in job https://hydra.nixos.org/build/233199565 at 2023-09-02
   - gh-labeler # failure in job https://hydra.nixos.org/build/233233139 at 2023-09-02
   - giak # failure in job https://hydra.nixos.org/build/233242229 at 2023-09-02
+  - gi-ayatana-appindicator3 # failure in job https://hydra.nixos.org/build/253681898 at 2024-03-31
   - gi-clutter # failure in job https://hydra.nixos.org/build/233252753 at 2023-09-02
   - gi-coglpango # failure in job https://hydra.nixos.org/build/233194401 at 2023-09-02
   - Gifcurry # failure in job https://hydra.nixos.org/build/233200204 at 2023-09-02
+  - gi-ggit # failure in job https://hydra.nixos.org/build/253693036 at 2024-03-31
   - gi-gio-hs-list-model # failure in job https://hydra.nixos.org/build/233241640 at 2023-09-02
+  - gi-gstapp # failure in job https://hydra.nixos.org/build/253686159 at 2024-03-31
   - gi-gsttag # failure in job https://hydra.nixos.org/build/233197576 at 2023-09-02
   - gi-gtk-declarative # failure in job https://hydra.nixos.org/build/233217494 at 2023-09-02
   - gi-gtksheet # failure in job https://hydra.nixos.org/build/233211386 at 2023-09-02
@@ -2044,6 +2048,7 @@ broken-packages:
   - git-repair # failure in job https://hydra.nixos.org/build/233222686 at 2023-09-02
   - gitter # failure in job https://hydra.nixos.org/build/233210040 at 2023-09-02
   - git-vogue # failure in job https://hydra.nixos.org/build/233249420 at 2023-09-02
+  - gi-webkit2webextension # failure in job https://hydra.nixos.org/build/254424710 at 2024-03-31
   - gi-webkitwebprocessextension # failure in job https://hydra.nixos.org/build/233227647 at 2023-09-02
   - glade # failure in job https://hydra.nixos.org/build/233229566 at 2023-09-02
   - glambda # failure in job https://hydra.nixos.org/build/252728236 at 2024-03-16
@@ -2064,6 +2069,7 @@ broken-packages:
   - gloss-examples # failure in job https://hydra.nixos.org/build/252718124 at 2024-03-16
   - gloss-export # failure in job https://hydra.nixos.org/build/234444988 at 2023-09-13
   - gloss-game # failure in job https://hydra.nixos.org/build/234460935 at 2023-09-13
+  - gloss-raster-massiv # failure in job https://hydra.nixos.org/build/253683246 at 2024-03-31
   - glsl # failure in job https://hydra.nixos.org/build/233224139 at 2023-09-02
   - gltf-codec # failure in job https://hydra.nixos.org/build/233205342 at 2023-09-02
   - glue # failure in job https://hydra.nixos.org/build/233233587 at 2023-09-02
@@ -2351,7 +2357,6 @@ broken-packages:
   - haskell-src-match # failure in job https://hydra.nixos.org/build/233233529 at 2023-09-02
   - haskell-src-meta-mwotton # failure in job https://hydra.nixos.org/build/233251914 at 2023-09-02
   - haskell-stack-trace-plugin # failure in job https://hydra.nixos.org/build/233231305 at 2023-09-02
-  - haskell-to-elm # failure in job https://hydra.nixos.org/build/233210318 at 2023-09-02
   - HaskellTorrent # failure in job https://hydra.nixos.org/build/233231874 at 2023-09-02
   - HaskellTutorials # failure in job https://hydra.nixos.org/build/233209605 at 2023-09-02
   - haskell-type-exts # failure in job https://hydra.nixos.org/build/233209731 at 2023-09-02
@@ -2487,6 +2492,7 @@ broken-packages:
   - heterogeneous-list-literals # failure in job https://hydra.nixos.org/build/233212297 at 2023-09-02
   - hetris # failure in job https://hydra.nixos.org/build/233256814 at 2023-09-02
   - heukarya # failure in job https://hydra.nixos.org/build/233247440 at 2023-09-02
+  - hevm # failure in job https://hydra.nixos.org/build/254311642 at 2024-03-31
   - HExcel # failure in job https://hydra.nixos.org/build/233211971 at 2023-09-02
   - hexchat # failure in job https://hydra.nixos.org/build/233234161 at 2023-09-02
   - hexif # failure in job https://hydra.nixos.org/build/233245470 at 2023-09-02
@@ -2606,10 +2612,30 @@ broken-packages:
   - HLogger # failure in job https://hydra.nixos.org/build/233247351 at 2023-09-02
   - hlongurl # failure in job https://hydra.nixos.org/build/233227204 at 2023-09-02
   - hlrdb-core # failure in job https://hydra.nixos.org/build/252728012 at 2024-03-16
+  - hls-alternate-number-format-plugin # failure in job https://hydra.nixos.org/build/253704250 at 2024-03-31
   - hls-brittany-plugin # failure in job https://hydra.nixos.org/build/233201998 at 2023-09-02
+  - hls-cabal-fmt-plugin # failure in job https://hydra.nixos.org/build/253689716 at 2024-03-31
+  - hls-cabal-plugin # failure in job https://hydra.nixos.org/build/253694969 at 2024-03-31
+  - hls-change-type-signature-plugin # failure in job https://hydra.nixos.org/build/253678069 at 2024-03-31
+  - hls-class-plugin # failure in job https://hydra.nixos.org/build/253699207 at 2024-03-31
+  - hls-code-range-plugin # failure in job https://hydra.nixos.org/build/253700243 at 2024-03-31
+  - hls-eval-plugin # failure in job https://hydra.nixos.org/build/253679229 at 2024-03-31
+  - hls-explicit-fixity-plugin # failure in job https://hydra.nixos.org/build/253687927 at 2024-03-31
+  - hls-explicit-imports-plugin # failure in job https://hydra.nixos.org/build/253681732 at 2024-03-31
+  - hls-explicit-record-fields-plugin # failure in job https://hydra.nixos.org/build/253684668 at 2024-03-31
+  - hls-floskell-plugin # failure in job https://hydra.nixos.org/build/253700858 at 2024-03-31
+  - hls-fourmolu-plugin # failure in job https://hydra.nixos.org/build/253704260 at 2024-03-31
   - hls-haddock-comments-plugin # failure in job https://hydra.nixos.org/build/233233944 at 2023-09-02
+  - hls-hlint-plugin # failure in job https://hydra.nixos.org/build/253680401 at 2024-03-31
+  - hls-module-name-plugin # failure in job https://hydra.nixos.org/build/253699279 at 2024-03-31
+  - hls-ormolu-plugin # failure in job https://hydra.nixos.org/build/253701021 at 2024-03-31
+  - hls-overloaded-record-dot-plugin # failure in job https://hydra.nixos.org/build/253677979 at 2024-03-31
+  - hls-pragmas-plugin # failure in job https://hydra.nixos.org/build/253682147 at 2024-03-31
+  - hls-qualify-imported-names-plugin # failure in job https://hydra.nixos.org/build/253691095 at 2024-03-31
   - hls-refine-imports-plugin # failure in job https://hydra.nixos.org/build/233211155 at 2023-09-02
   - hls-selection-range-plugin # failure in job https://hydra.nixos.org/build/233205582 at 2023-09-02
+  - hls-stan-plugin # failure in job https://hydra.nixos.org/build/253693419 at 2024-03-31
+  - hls-stylish-haskell-plugin # failure in job https://hydra.nixos.org/build/253696920 at 2024-03-31
   - hls-tactics-plugin # failure in job https://hydra.nixos.org/build/233238907 at 2023-09-02
   - hlwm # failure in job https://hydra.nixos.org/build/233235119 at 2023-09-02
   - hly # failure in job https://hydra.nixos.org/build/233206910 at 2023-09-02
@@ -2723,6 +2749,7 @@ broken-packages:
   - hs2ps # failure in job https://hydra.nixos.org/build/233258362 at 2023-09-02
   - hsakamai # failure in job https://hydra.nixos.org/build/252722933 at 2024-03-16
   - hsaml2 # failure in job https://hydra.nixos.org/build/233252618 at 2023-09-02
+  - hsautogui # failure in job https://hydra.nixos.org/build/253687662 at 2024-03-31
   - hsay # failure in job https://hydra.nixos.org/build/233218925 at 2023-09-02
   - hsbc # failure in job https://hydra.nixos.org/build/233206310 at 2023-09-02
   - hsbencher # failure in job https://hydra.nixos.org/build/233214962 at 2023-09-02
@@ -2767,7 +2794,6 @@ broken-packages:
   - hsgnutls-yj # failure in job https://hydra.nixos.org/build/233220680 at 2023-09-02
   - hsgsom # failure in job https://hydra.nixos.org/build/233192340 at 2023-09-02
   - HsHaruPDF # failure in job https://hydra.nixos.org/build/233220916 at 2023-09-02
-  - HSH # failure in job https://hydra.nixos.org/build/252713464 at 2024-03-16
   - HsHyperEstraier # failure in job https://hydra.nixos.org/build/233253787 at 2023-09-02
   - hsI2C # failure in job https://hydra.nixos.org/build/233247520 at 2023-09-02
   - hSimpleDB # failure in job https://hydra.nixos.org/build/233236736 at 2023-09-02
@@ -2792,6 +2818,7 @@ broken-packages:
   - hsns # failure in job https://hydra.nixos.org/build/233240328 at 2023-09-02
   - hsnsq # failure in job https://hydra.nixos.org/build/233215245 at 2023-09-02
   - hsntp # failure in job https://hydra.nixos.org/build/233206211 at 2023-09-02
+  - hs-opentelemetry-instrumentation-auto # failure in job https://hydra.nixos.org/build/253678404 at 2024-03-31
   - hs-opentelemetry-propagator-datadog # failure in job https://hydra.nixos.org/build/237245341 at 2023-10-21
   - hsoptions # failure in job https://hydra.nixos.org/build/233198363 at 2023-09-02
   - hsoz # failure in job https://hydra.nixos.org/build/233217005 at 2023-09-02
@@ -3442,6 +3469,7 @@ broken-packages:
   - libsystemd-daemon # failure in job https://hydra.nixos.org/build/233207090 at 2023-09-02
   - libtagc # failure in job https://hydra.nixos.org/build/233223631 at 2023-09-02
   - libtelnet # failure in job https://hydra.nixos.org/build/233209594 at 2023-09-02
+  - libvirt-hs # failure in job https://hydra.nixos.org/build/253697570 at 2024-03-31
   - libxls # failure in job https://hydra.nixos.org/build/233257847 at 2023-09-02
   - libxlsxwriter-hs # failure in job https://hydra.nixos.org/build/233244798 at 2023-09-02
   - libxslt # failure in job https://hydra.nixos.org/build/233248464 at 2023-09-02
@@ -4005,6 +4033,7 @@ broken-packages:
   - netrium # failure in job https://hydra.nixos.org/build/233258377 at 2023-09-02
   - NetSNMP # failure in job https://hydra.nixos.org/build/233598256 at 2023-09-02
   - netspec # failure in job https://hydra.nixos.org/build/233251049 at 2023-09-02
+  - netw # failure in job https://hydra.nixos.org/build/253678214 at 2024-03-31
   - netwire-input-javascript # failure in job https://hydra.nixos.org/build/233245020 at 2023-09-02
   - netwire-vinylglfw-examples # failure in job https://hydra.nixos.org/build/233236274 at 2023-09-02
   - network-address # failure in job https://hydra.nixos.org/build/233248618 at 2023-09-02
@@ -4065,6 +4094,7 @@ broken-packages:
   - NMap # failure in job https://hydra.nixos.org/build/233246148 at 2023-09-02
   - nme # failure in job https://hydra.nixos.org/build/233224069 at 2023-09-02
   - nm # failure in job https://hydra.nixos.org/build/233258727 at 2023-09-02
+  - n-m # failure in job https://hydra.nixos.org/build/254311712 at 2024-03-31
   - nn # failure in job https://hydra.nixos.org/build/233236534 at 2023-09-02
   - nntp # failure in job https://hydra.nixos.org/build/233210197 at 2023-09-02
   - noether # failure in job https://hydra.nixos.org/build/233193462 at 2023-09-02
@@ -4331,6 +4361,7 @@ broken-packages:
   - parser-combinators-tests # failure in job https://hydra.nixos.org/build/233259610 at 2023-09-02
   - parsergen # failure in job https://hydra.nixos.org/build/233197332 at 2023-09-02
   - parser-helper # failure in job https://hydra.nixos.org/build/233198774 at 2023-09-02
+  - parser-regex # failure in job https://hydra.nixos.org/build/253688486 at 2024-03-31
   - parsers-megaparsec # failure in job https://hydra.nixos.org/build/233234736 at 2023-09-02
   - parser-unbiased-choice-monad-embedding # failure in job https://hydra.nixos.org/build/233258179 at 2023-09-02
   - parsimony # failure in job https://hydra.nixos.org/build/233230339 at 2023-09-02
@@ -4357,7 +4388,6 @@ broken-packages:
   - path-sing # failure in job https://hydra.nixos.org/build/237234354 at 2023-10-21
   - PathTree # failure in job https://hydra.nixos.org/build/233216203 at 2023-09-02
   - patronscraper # failure in job https://hydra.nixos.org/build/233258571 at 2023-09-02
-  - pattern-arrows # failure in job https://hydra.nixos.org/build/252718352 at 2024-03-16
   - pattern-trie # failure in job https://hydra.nixos.org/build/233237252 at 2023-09-02
   - paynow-zw # failure in job https://hydra.nixos.org/build/233221916 at 2023-09-02
   - paypal-adaptive-hoops # failure in job https://hydra.nixos.org/build/233244557 at 2023-09-02
@@ -4371,6 +4401,7 @@ broken-packages:
   - pcgen # failure in job https://hydra.nixos.org/build/233195356 at 2023-09-02
   - PCLT # failure in job https://hydra.nixos.org/build/233246845 at 2023-09-02
   - pcre-light-extra # failure in job https://hydra.nixos.org/build/233194585 at 2023-09-02
+  - pcubature # failure in job https://hydra.nixos.org/build/253698476 at 2024-03-31
   - pdfinfo # failure in job https://hydra.nixos.org/build/233214432 at 2023-09-02
   - pdf-slave-template # failure in job https://hydra.nixos.org/build/233217870 at 2023-09-02
   - pdf-toolbox-viewer # failure in job https://hydra.nixos.org/build/233196461 at 2023-09-02
@@ -4757,6 +4788,7 @@ broken-packages:
   - pure-priority-queue # failure in job https://hydra.nixos.org/build/233258014 at 2023-09-02
   - purescript-ast # failure in job https://hydra.nixos.org/build/233204157 at 2023-09-02
   - purescript-cst # failure in job https://hydra.nixos.org/build/233197178 at 2023-09-02
+  - purescript # failure in job https://hydra.nixos.org/build/253692073 at 2024-03-31
   - pure-zlib # failure in job https://hydra.nixos.org/build/233241392 at 2023-09-02
   - purview # failure in job https://hydra.nixos.org/build/233208821 at 2023-09-02
   - pushbullet # failure in job https://hydra.nixos.org/build/233209340 at 2023-09-02
@@ -4768,7 +4800,6 @@ broken-packages:
   - pushover # failure in job https://hydra.nixos.org/build/252739908 at 2024-03-16
   - putlenses # failure in job https://hydra.nixos.org/build/233197372 at 2023-09-02
   - puzzle-draw # failure in job https://hydra.nixos.org/build/233204953 at 2023-09-02
-  - pvar # failure in job https://hydra.nixos.org/build/252711515 at 2024-03-16
   - pvector # failure in job https://hydra.nixos.org/build/233217965 at 2023-09-02
   - pyffi # failure in job https://hydra.nixos.org/build/233260156 at 2023-09-02
   - pyfi # failure in job https://hydra.nixos.org/build/233214389 at 2023-09-02
@@ -4866,6 +4897,7 @@ broken-packages:
   - rbst # failure in job https://hydra.nixos.org/build/233238184 at 2023-09-02
   - rclient # failure in job https://hydra.nixos.org/build/233239290 at 2023-09-02
   - rdf4h # failure in job https://hydra.nixos.org/build/233234057 at 2023-09-02
+  - rds-data-codecs # failure in job https://hydra.nixos.org/build/253696582 at 2024-03-31
   - react-flux # failure in job https://hydra.nixos.org/build/233246819 at 2023-09-02
   - react-haskell # failure in job https://hydra.nixos.org/build/233242976 at 2023-09-02
   - reaction-logic # failure in job https://hydra.nixos.org/build/233216789 at 2023-09-02
@@ -4922,6 +4954,7 @@ broken-packages:
   - reflex-dom-retractable # failure in job https://hydra.nixos.org/build/233198362 at 2023-09-02
   - reflex-dom-svg # failure in job https://hydra.nixos.org/build/233193544 at 2023-09-02
   - reflex-external-ref # failure in job https://hydra.nixos.org/build/233215834 at 2023-09-02
+  - reflex-gi-gtk # failure in job https://hydra.nixos.org/build/253683412 at 2024-03-31
   - reflex-gloss # failure in job https://hydra.nixos.org/build/234457448 at 2023-09-13
   - reflex-jsx # failure in job https://hydra.nixos.org/build/233207137 at 2023-09-02
   - reflex-orphans # failure in job https://hydra.nixos.org/build/233249128 at 2023-09-02
@@ -5019,6 +5052,7 @@ broken-packages:
   - rewrite-inspector # failure in job https://hydra.nixos.org/build/233243472 at 2023-09-02
   - rfc # failure in job https://hydra.nixos.org/build/233241988 at 2023-09-02
   - rfc-prelude # failure in job https://hydra.nixos.org/build/233227572 at 2023-09-02
+  - r-glpk-phonetic-languages-ukrainian-durations # failure in job https://hydra.nixos.org/build/253703155 at 2024-03-31
   - rhbzquery # failure in job https://hydra.nixos.org/build/233259706 at 2023-09-02
   - rhine # failure in job https://hydra.nixos.org/build/233245503 at 2023-09-02
   - riak # failure in job https://hydra.nixos.org/build/233192622 at 2023-09-02
@@ -5267,8 +5301,10 @@ broken-packages:
   - servant-static-th # failure in job https://hydra.nixos.org/build/233191735 at 2023-09-02
   - servant-streaming # failure in job https://hydra.nixos.org/build/233215168 at 2023-09-02
   - servant-streamly # failure in job https://hydra.nixos.org/build/233231404 at 2023-09-02
+  - servant-to-elm # failure in job https://hydra.nixos.org/build/253681347 at 2024-03-31
   - servant-tracing # failure in job https://hydra.nixos.org/build/233229308 at 2023-09-02
   - servant-typed-error # failure in job https://hydra.nixos.org/build/252727241 at 2024-03-16
+  - servant-typescript # failure in job https://hydra.nixos.org/build/253932573 at 2024-03-31
   - servant-util # failure in job https://hydra.nixos.org/build/252729690 at 2024-03-16
   - servant-wasm # failure in job https://hydra.nixos.org/build/233191644 at 2023-09-02
   - servant-xml-conduit # failure in job https://hydra.nixos.org/build/243828707 at 2024-01-01
@@ -5444,6 +5480,7 @@ broken-packages:
   - smawk # failure in job https://hydra.nixos.org/build/233258699 at 2023-09-02
   - sme # failure in job https://hydra.nixos.org/build/233208306 at 2023-09-02
   - smerdyakov # failure in job https://hydra.nixos.org/build/233238735 at 2023-09-02
+  - smh # failure in job https://hydra.nixos.org/build/253695707 at 2024-03-31
   - smiles # failure in job https://hydra.nixos.org/build/233197831 at 2023-09-02
   - SmithNormalForm # failure in job https://hydra.nixos.org/build/233253620 at 2023-09-02
   - smoothie # failure in job https://hydra.nixos.org/build/233250042 at 2023-09-02
@@ -5532,7 +5569,6 @@ broken-packages:
   - special-keys # failure in job https://hydra.nixos.org/build/233191988 at 2023-09-02
   - spectacle # failure in job https://hydra.nixos.org/build/233207488 at 2023-09-02
   - speculation # failure in job https://hydra.nixos.org/build/233211559 at 2023-09-02
-  - specup # failure in job https://hydra.nixos.org/build/252712918 at 2024-03-16
   - sphinxesc # failure in job https://hydra.nixos.org/build/233194825 at 2023-09-02
   - sphinx # failure in job https://hydra.nixos.org/build/233247449 at 2023-09-02
   - Spintax # failure in job https://hydra.nixos.org/build/233224001 at 2023-09-02
@@ -5827,13 +5863,13 @@ broken-packages:
   - tart # failure in job https://hydra.nixos.org/build/252723842 at 2024-03-16
   - taskell # depends on old version of brick
   - TaskMonad # failure in job https://hydra.nixos.org/build/233219257 at 2023-09-02
-  - tasty-autocollect # failure in job https://hydra.nixos.org/build/233256957 at 2023-09-02
   - tasty-auto # failure in job https://hydra.nixos.org/build/233220008 at 2023-09-02
   - tasty-checklist # failure in job https://hydra.nixos.org/build/252710481 at 2024-03-16
   - tasty-fail-fast # failure in job https://hydra.nixos.org/build/233200040 at 2023-09-02
   - tasty-grading-system # failure in job https://hydra.nixos.org/build/236673021 at 2023-10-04
   - tasty-hedgehog-coverage # failure in job https://hydra.nixos.org/build/233231332 at 2023-09-02
   - tasty-mgolden # failure in job https://hydra.nixos.org/build/233248196 at 2023-09-02
+  - tasty-process # failure in job https://hydra.nixos.org/build/253680638 at 2024-03-31
   - tasty-stats # failure in job https://hydra.nixos.org/build/233228752 at 2023-09-02
   - tasty-test-reporter # failure in job https://hydra.nixos.org/build/233208181 at 2023-09-02
   - tasty-test-vector # failure in job https://hydra.nixos.org/build/233231957 at 2023-09-02
@@ -6036,6 +6072,7 @@ broken-packages:
   - tokyocabinet-haskell # failure in job https://hydra.nixos.org/build/233193492 at 2023-09-02
   - tokyotyrant-haskell # failure in job https://hydra.nixos.org/build/233256228 at 2023-09-02
   - toml # failure in job https://hydra.nixos.org/build/233223844 at 2023-09-02
+  - toml-test-drivers # failure in job https://hydra.nixos.org/build/253701482 at 2024-03-31
   - tonalude # failure in job https://hydra.nixos.org/build/233204874 at 2023-09-02
   - tonaparser # failure in job https://hydra.nixos.org/build/233224261 at 2023-09-02
   - toodles # failure in job https://hydra.nixos.org/build/233245612 at 2023-09-02
@@ -6153,7 +6190,6 @@ broken-packages:
   - typed-time # failure in job https://hydra.nixos.org/build/233246930 at 2023-09-02
   - typed-wire # failure in job https://hydra.nixos.org/build/233237626 at 2023-09-02
   - type-eq # failure in job https://hydra.nixos.org/build/233214388 at 2023-09-02
-  - type-errors # failure in job https://hydra.nixos.org/build/252734319 at 2024-03-16
   - type-errors-pretty # failure in job https://hydra.nixos.org/build/233238808 at 2023-09-02
   - typehash # failure in job https://hydra.nixos.org/build/233207184 at 2023-09-02
   - type-indexed-queues # failure in job https://hydra.nixos.org/build/233197833 at 2023-09-02
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index 384136f22a9e3..51eb135398b4c 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -28,10 +28,6 @@ default-package-overrides:
   - gi-gdkx11 < 4
   # 2021-11-09: ghc-bignum is bundled starting with 9.0.1; only 1.0 builds with GHCs prior to 9.2.1
   - ghc-bignum == 1.0
-  # 2024-02-22: Needed for haskell-language-server-2.6.0.0
-  - lsp < 2.4.0.0
-  # 2024-02-22: Needed for hls-fourmolu-plugin-2.6.0.0 and others
-  - lsp-test < 0.17.0.0
 
 extra-packages:
   - Cabal-syntax == 3.6.*               # Dummy package that ensures packages depending on Cabal-syntax can work for Cabal < 3.8
@@ -102,6 +98,7 @@ extra-packages:
   - text == 2.0.2                       # 2023-09-14: Needed for elm (which is currently on ghc-8.10)
   - th-abstraction < 0.6                # 2023-09-11: needed for aeson-2.2.0.0
   - vty == 5.35.1                       # 2022-07-08: needed for glirc-2.39.0.1
+  - warp < 3.3.31                       # 2024-03-20: for twain, which requires http2 3.0.3
   - weeder == 2.2.*                     # 2022-02-21: preserve for GHC 8.10.7
   - weeder == 2.3.*                     # 2022-05-31: preserve for GHC 9.0.2
   - weeder == 2.4.*                     # 2023-02-02: preserve for GHC 9.2.*
@@ -111,6 +108,7 @@ extra-packages:
   - shake-cabal < 0.2.2.3               # 2023-07-01: last version to support Cabal 3.6.*
   - algebraic-graphs < 0.7              # 2023-08-14: Needed for building weeder < 2.6.0
   - fuzzyset == 0.2.4                   # 2023-12-20: Needed for building postgrest > 10
+  - ShellCheck == 0.9.0                 # 2024-03-21: pinned by haskell-ci
 
 package-maintainers:
   abbradar:
@@ -291,7 +289,9 @@ package-maintainers:
     - weeder
     - witch
   ncfavier:
+    - irc-client
     - lambdabot
+    - shake
   nomeata:
     - cabal-plan-bounds
     - candid
@@ -354,6 +354,10 @@ package-maintainers:
     - mpi-hs-store
     - mpi-hs-cereal
     - mpi-hs-binary
+    - cpython
+    - massiv
+    - massiv-io
+    - massiv-test
   shlok:
     - streamly-archive
     - streamly-lmdb
@@ -418,12 +422,19 @@ package-maintainers:
     - irc-client
     - chatter
     - envy
+  t4ccer:
+    - aeson-better-errors
+    - cheapskate
+    - containers-unicode-symbols
+    - numerals-base
+    - pattern-arrows
   tbidne:
     - rest-rewrite
   terlar:
     - nix-diff
   turion:
     - Agda
+    - cabal-gild
     - dunai
     - essence-of-live-coding
     - essence-of-live-coding-gloss
@@ -644,6 +655,7 @@ unsupported-platforms:
   piyo:                                         [ platforms.darwin ]
   PortMidi-simple:                              [ platforms.darwin ]
   PortMidi:                                     [ platforms.darwin ]
+  portmidi-utility:                             [ platforms.darwin ]
   posix-api:                                    [ platforms.darwin ]
   Raincat:                                      [ platforms.darwin ]
   reactive-balsa:                               [ platforms.darwin ] # depends on alsa-core
@@ -691,6 +703,7 @@ supported-platforms:
   btrfs:                                        [ platforms.linux ] # depends on linux
   bytepatch:                                    [ platforms.x86 ] # due to blake3
   cpuid:                                        [ platforms.x86 ] # needs to be i386 compatible (IA-32)
+  cpython:                                      [ platforms.x86 ] # c2hs errors on glibc headers
   crc32c:                                       [ platforms.x86 ] # uses x86 intrinsics
   d3d11binding:                                 [ platforms.windows ]
   DirectSound:                                  [ platforms.windows ]
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index a7a122028dd72..19a1f753c222f 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1,4 +1,4 @@
-# Stackage LTS 22.8
+# Stackage LTS 22.13
 # This file is auto-generated by
 # maintainers/scripts/haskell/update-stackage.sh
 default-package-overrides:
@@ -30,7 +30,7 @@ default-package-overrides:
   - aeson-pretty ==0.8.10
   - aeson-qq ==0.8.4
   - aeson-schemas ==1.4.2.1
-  - aeson-typescript ==0.6.2.0
+  - aeson-typescript ==0.6.3.0
   - aeson-unqualified-ast ==1.0.0.3
   - aeson-value-parser ==0.19.7.2
   - aeson-warning-parser ==0.1.1
@@ -347,7 +347,7 @@ default-package-overrides:
   - annotated-exception ==0.2.0.5
   - annotated-wl-pprint ==0.7.0
   - ansi-terminal ==1.0.2
-  - ansi-terminal-game ==1.9.2.0
+  - ansi-terminal-game ==1.9.3.0
   - ansi-terminal-types ==0.11.5
   - ansi-wl-pprint ==1.0.2
   - ANum ==0.2.0.2
@@ -394,7 +394,7 @@ default-package-overrides:
   - atom-basic ==0.2.5
   - atom-conduit ==0.9.0.1
   - atomic-counter ==0.1.2.1
-  - atomic-primops ==0.8.4
+  - atomic-primops ==0.8.5
   - atomic-write ==0.2.0.7
   - attoparsec ==0.14.4
   - attoparsec-aeson ==2.1.0.0
@@ -402,7 +402,7 @@ default-package-overrides:
   - attoparsec-binary ==0.2
   - attoparsec-data ==1.0.5.4
   - attoparsec-expr ==0.1.1.2
-  - attoparsec-framer ==0.1.0.1
+  - attoparsec-framer ==0.1.0.2
   - attoparsec-iso8601 ==1.1.0.1
   - attoparsec-path ==0.0.0.1
   - attoparsec-run ==0.0.2.0
@@ -453,11 +453,11 @@ default-package-overrides:
   - bcp47-orphans ==0.1.0.6
   - bcrypt ==0.0.11
   - beam-core ==0.10.1.0
-  - bech32 ==1.1.4
-  - bech32-th ==1.1.1
+  - bech32 ==1.1.5
+  - bech32-th ==1.1.5
   - benchpress ==0.2.2.23
   - bencode ==0.6.1.1
-  - benri-hspec ==0.1.0.1
+  - benri-hspec ==0.1.0.2
   - between ==0.11.0.0
   - bibtex ==0.1.0.7
   - bifunctor-classes-compat ==0.1
@@ -498,8 +498,8 @@ default-package-overrides:
   - blas-hs ==0.1.1.0
   - blaze-bootstrap ==0.1.0.1
   - blaze-builder ==0.4.2.3
-  - blaze-colonnade ==1.2.2.1
-  - blaze-html ==0.9.1.2
+  - blaze-colonnade ==1.2.3.0
+  - blaze-html ==0.9.2.0
   - blaze-markup ==0.8.3.0
   - blaze-svg ==0.3.7
   - blaze-textual ==0.2.3.1
@@ -507,7 +507,7 @@ default-package-overrides:
   - bloomfilter ==2.0.1.2
   - bm ==0.2.0.0
   - bmp ==1.2.6.3
-  - bnb-staking-csvs ==0.2.1.0
+  - bnb-staking-csvs ==0.2.2.0
   - BNFC ==2.9.5
   - BNFC-meta ==0.6.1
   - board-games ==0.4
@@ -526,7 +526,7 @@ default-package-overrides:
   - boundingboxes ==0.2.3
   - box ==0.9.3.1
   - boxes ==0.1.5
-  - breakpoint ==0.1.3.0
+  - breakpoint ==0.1.3.1
   - brick ==2.1.1
   - broadcast-chan ==0.2.1.2
   - brotli ==0.0.0.1
@@ -547,16 +547,16 @@ default-package-overrides:
   - bv ==0.5
   - bv-little ==1.3.2
   - byteable ==0.1.1
-  - bytebuild ==0.3.15.0
+  - bytebuild ==0.3.16.2
   - byte-count-reader ==0.10.1.11
   - bytedump ==1.0
   - bytehash ==0.1.1.0
-  - byte-order ==0.1.3.0
+  - byte-order ==0.1.3.1
   - byteorder ==1.0.4
   - bytes ==0.17.3
   - byteset ==0.1.1.1
-  - byteslice ==0.2.13.0
-  - bytesmith ==0.3.11.0
+  - byteslice ==0.2.13.2
+  - bytesmith ==0.3.11.1
   - bytestring-builder ==0.10.8.2.0
   - bytestring-conversion ==0.3.2
   - bytestring-lexing ==0.5.0.11
@@ -572,7 +572,7 @@ default-package-overrides:
   - cabal2spec ==2.7.0
   - cabal-appimage ==0.4.0.2
   - cabal-clean ==0.2.20230609
-  - cabal-debian ==5.2.2
+  - cabal-debian ==5.2.3
   - cabal-doctest ==1.0.9
   - cabal-file ==0.1.1
   - cabal-install-solver ==3.10.2.1
@@ -623,14 +623,14 @@ default-package-overrides:
   - Chart-cairo ==1.9.4.1
   - Chart-diagrams ==1.9.5.1
   - chart-svg ==0.5.2.0
-  - ChasingBottoms ==1.3.1.12
+  - ChasingBottoms ==1.3.1.13
   - check-email ==1.0.2
   - checkers ==0.6.0
   - checksum ==0.0.0.1
   - chimera ==0.3.4.0
   - choice ==0.2.3
   - chronologique ==0.3.1.3
-  - chronos ==1.1.5.1
+  - chronos ==1.1.6.1
   - chronos-bench ==0.2.0.2
   - chunked-data ==0.3.1
   - cipher-aes ==0.2.11
@@ -656,12 +656,12 @@ default-package-overrides:
   - cmark-lucid ==0.1.0.0
   - cmdargs ==0.10.22
   - codec-beam ==0.2.0
-  - code-conjure ==0.5.8
+  - code-conjure ==0.5.14
   - code-page ==0.2.1
   - coinor-clp ==0.0.0.2
   - cointracking-imports ==0.1.0.2
   - collect-errors ==0.1.5.0
-  - co-log ==0.6.0.2
+  - co-log ==0.6.1.0
   - co-log-concurrent ==0.5.1.0
   - co-log-core ==0.3.2.1
   - co-log-polysemy ==0.0.1.4
@@ -679,9 +679,9 @@ default-package-overrides:
   - comfort-fftw ==0.0.0.1
   - comfort-glpk ==0.1
   - comfort-graph ==0.0.4
-  - commonmark ==0.2.4.1
-  - commonmark-extensions ==0.2.5.1
-  - commonmark-pandoc ==0.2.2
+  - commonmark ==0.2.5.1
+  - commonmark-extensions ==0.2.5.3
+  - commonmark-pandoc ==0.2.2.1
   - commutative ==0.0.2
   - commutative-semigroups ==0.1.0.2
   - comonad ==5.0.8
@@ -723,7 +723,7 @@ default-package-overrides:
   - configuration-tools ==0.7.0
   - configurator ==0.3.0.0
   - configurator-export ==0.1.0.1
-  - configurator-pg ==0.2.9
+  - configurator-pg ==0.2.10
   - constraints ==0.14
   - constraints-extras ==0.4.0.0
   - constraint-tuples ==0.1.2
@@ -732,7 +732,7 @@ default-package-overrides:
   - context-http-client ==0.2.0.2
   - context-resource ==0.2.0.2
   - context-wai-middleware ==0.2.0.2
-  - contiguous ==0.6.4.0
+  - contiguous ==0.6.4.2
   - contravariant ==1.5.5
   - contravariant-extras ==0.3.5.4
   - control-bool ==0.2.1
@@ -772,7 +772,7 @@ default-package-overrides:
   - cryptohash-sha512 ==0.11.102.0
   - crypton ==0.34
   - crypton-conduit ==0.2.3
-  - crypton-connection ==0.3.1
+  - crypton-connection ==0.3.2
   - cryptonite ==0.30
   - cryptonite-conduit ==0.2.2
   - cryptonite-openssl ==0.7
@@ -884,7 +884,7 @@ default-package-overrides:
   - diagrams-core ==1.5.1.1
   - diagrams-gtk ==1.4
   - diagrams-html5 ==1.4.2
-  - diagrams-lib ==1.4.6
+  - diagrams-lib ==1.4.6.1
   - diagrams-postscript ==1.5.1.1
   - diagrams-rasterific ==1.4.2.3
   - diagrams-solve ==0.1.3
@@ -895,7 +895,7 @@ default-package-overrides:
   - di-df1 ==1.2.1
   - Diff ==0.4.1
   - diff-loc ==0.1.0.0
-  - digest ==0.0.2.0
+  - digest ==0.0.2.1
   - digits ==0.3.1
   - di-handle ==1.0.1
   - dimensional ==1.5
@@ -941,9 +941,7 @@ default-package-overrides:
   - dotenv ==0.11.0.2
   - dotgen ==0.4.3
   - dotnet-timespan ==0.0.1.0
-  - double-conversion ==2.0.4.2
-  - download ==0.3.2.7
-  - download-curl ==0.1.4
+  - double-conversion ==2.0.5.0
   - DPutils ==0.1.1.0
   - drawille ==0.1.3.0
   - drifter ==0.3.0
@@ -989,7 +987,7 @@ default-package-overrides:
   - elynx-tools ==0.7.2.2
   - elynx-tree ==0.7.2.2
   - emacs-module ==0.2.1
-  - email-validate ==2.3.2.19
+  - email-validate ==2.3.2.20
   - emojis ==0.1.3
   - enclosed-exceptions ==1.0.3
   - ENIG ==0.0.1.0
@@ -1015,8 +1013,8 @@ default-package-overrides:
   - errors ==2.3.0
   - errors-ext ==0.4.2
   - ersatz ==0.5
-  - esqueleto ==3.5.11.1
-  - event-list ==0.1.2.1
+  - esqueleto ==3.5.11.2
+  - event-list ==0.1.3
   - every ==0.0.1
   - evm-opcodes ==0.1.2
   - exact-combinatorics ==0.2.0.11
@@ -1035,7 +1033,7 @@ default-package-overrides:
   - explainable-predicates ==0.1.2.4
   - explicit-exception ==0.2
   - exp-pairs ==0.2.1.0
-  - express ==1.0.14
+  - express ==1.0.16
   - extended-reals ==0.2.4.0
   - extensible ==0.9
   - extensible-effects ==5.0.0.1
@@ -1064,7 +1062,6 @@ default-package-overrides:
   - feature-flags ==0.1.0.1
   - fedora-dists ==2.1.1
   - fedora-haskell-tools ==1.1
-  - feed ==1.3.2.1
   - FenwickTree ==0.1.2.1
   - fft ==0.1.8.7
   - fftw-ffi ==0.1
@@ -1073,6 +1070,7 @@ default-package-overrides:
   - fields-json ==0.4.0.0
   - file-embed ==0.0.16.0
   - file-embed-lzma ==0.0.1
+  - file-io ==0.1.1
   - filelock ==0.1.1.7
   - filemanip ==0.3.6.3
   - file-modules ==0.1.2.4
@@ -1098,7 +1096,7 @@ default-package-overrides:
   - flac-picture ==0.1.3
   - flags-applicative ==0.1.0.3
   - flat ==0.6
-  - flatparse ==0.5.0.1
+  - flatparse ==0.5.0.2
   - flay ==0.4
   - flexible-defaults ==0.0.3
   - FloatingHex ==0.5
@@ -1112,11 +1110,11 @@ default-package-overrides:
   - focuslist ==0.1.1.0
   - foldable1-classes-compat ==0.1
   - fold-debounce ==0.2.0.11
-  - foldl ==1.4.15
+  - foldl ==1.4.16
   - folds ==0.7.8
   - FontyFruity ==0.5.3.5
   - force-layout ==0.4.0.6
-  - foreign-store ==0.2
+  - foreign-store ==0.2.1
   - ForestStructures ==0.0.1.1
   - forkable-monad ==0.2.0.3
   - forma ==1.2.0
@@ -1255,14 +1253,13 @@ default-package-overrides:
   - gio ==0.13.10.0
   - gi-pango ==1.0.29
   - gi-soup ==2.4.28
-  - git-annex ==10.20231129
   - githash ==0.1.7.0
   - github ==0.29
   - github-release ==2.0.0.10
   - github-rest ==1.1.4
   - github-types ==0.2.1
   - github-webhooks ==0.17.0
-  - git-lfs ==1.2.1
+  - git-lfs ==1.2.2
   - gitlib ==3.1.3
   - git-mediate ==1.0.9
   - gitrev ==1.3.1
@@ -1283,7 +1280,7 @@ default-package-overrides:
   - glpk-headers ==0.5.1
   - GLURaw ==2.0.0.5
   - GLUT ==2.7.0.16
-  - gmail-simple ==0.1.0.5
+  - gmail-simple ==0.1.0.6
   - gnuplot ==0.5.7
   - goldplate ==0.2.1.1
   - google-isbn ==1.0.3
@@ -1314,7 +1311,6 @@ default-package-overrides:
   - haha ==0.3.1.1
   - hakyll ==4.16.2.0
   - hakyllbars ==1.0.1.0
-  - hakyll-convert ==0.3.0.4
   - hal ==1.0.1
   - half ==0.3.1
   - hall-symbols ==0.1.0.6
@@ -1333,7 +1329,7 @@ default-package-overrides:
   - hashing ==0.1.1.0
   - hashmap ==1.3.3
   - hashtables ==1.3.1
-  - haskell-gi ==0.26.7
+  - haskell-gi ==0.26.8
   - haskell-gi-base ==0.26.4
   - haskell-gi-overloading ==1.0
   - haskell-lexer ==1.1.1
@@ -1344,9 +1340,9 @@ default-package-overrides:
   - haskell-src-exts-util ==0.2.5
   - haskell-src-meta ==0.8.13
   - haskintex ==0.8.0.2
-  - haskoin-core ==1.0.2
+  - haskoin-core ==1.0.4
   - haskoin-node ==1.0.1
-  - haskoin-store-data ==1.2.2
+  - haskoin-store-data ==1.2.5
   - hasktags ==0.73.0
   - hasql ==1.6.4.1
   - hasql-dynamic-statements ==0.3.1.4
@@ -1356,7 +1352,7 @@ default-package-overrides:
   - hasql-migration ==0.3.0
   - hasql-notifications ==0.2.0.6
   - hasql-optparse-applicative ==0.7.1.3
-  - hasql-pool ==0.10.0.1
+  - hasql-pool ==0.10.1
   - hasql-th ==0.4.0.19
   - hasql-transaction ==1.0.1.4
   - has-transformers ==0.1.0.4
@@ -1392,7 +1388,7 @@ default-package-overrides:
   - hexpat ==0.20.13
   - hex-text ==0.1.0.9
   - hformat ==0.3.3.1
-  - hfsevents ==0.1.6
+  - hfsevents ==0.1.7
   - hgal ==2.0.0.3
   - hidapi ==0.1.8
   - hi-file-parser ==0.1.6.0
@@ -1426,7 +1422,6 @@ default-package-overrides:
   - hmpfr ==0.4.5
   - hnix-store-core ==0.7.0.0
   - hoauth2 ==2.10.0
-  - hOpenPGP ==2.9.8
   - hopenssl ==2.2.5
   - hopfli ==0.2.2.1
   - horizontal-rule ==0.6.0.0
@@ -1452,7 +1447,7 @@ default-package-overrides:
   - hscolour ==1.25
   - hsdns ==1.8
   - hse-cpp ==0.2
-  - hsemail ==2.2.1
+  - hsemail ==2.2.2
   - HSet ==0.0.2
   - hset ==2.2.0
   - hsexif ==0.6.1.10
@@ -1536,7 +1531,7 @@ default-package-overrides:
   - http-directory ==0.1.10
   - http-download ==0.2.1.0
   - httpd-shed ==0.4.1.1
-  - http-io-streams ==0.1.6.4
+  - http-io-streams ==0.1.7.0
   - http-link-header ==1.2.1
   - http-media ==0.8.1.1
   - http-query ==0.1.3
@@ -1644,7 +1639,7 @@ default-package-overrides:
   - io-storage ==0.3
   - io-streams ==1.5.2.2
   - io-streams-haproxy ==1.0.1.0
-  - ip ==1.7.7
+  - ip ==1.7.8
   - ip6addr ==1.0.4
   - iproute ==1.7.12
   - IPv6Addr ==2.0.6
@@ -1696,12 +1691,12 @@ default-package-overrides:
   - kazura-queue ==0.1.0.4
   - kdt ==0.2.5
   - keep-alive ==0.2.1.0
-  - keter ==2.1.3
+  - keter ==2.1.5
   - keycode ==0.2.2
-  - keyed-vals ==0.2.3.0
-  - keyed-vals-hspec-tests ==0.2.3.0
-  - keyed-vals-mem ==0.2.3.0
-  - keyed-vals-redis ==0.2.3.0
+  - keyed-vals ==0.2.3.1
+  - keyed-vals-hspec-tests ==0.2.3.1
+  - keyed-vals-mem ==0.2.3.1
+  - keyed-vals-redis ==0.2.3.1
   - keys ==3.12.3
   - ki ==1.0.1.1
   - kind-apply ==0.4.0.0
@@ -1882,7 +1877,7 @@ default-package-overrides:
   - mfsolve ==0.3.2.2
   - microaeson ==0.1.0.1
   - microlens ==0.4.13.1
-  - microlens-aeson ==2.5.1
+  - microlens-aeson ==2.5.2
   - microlens-contra ==0.1.0.3
   - microlens-ghc ==0.4.14.2
   - microlens-mtl ==0.2.0.3
@@ -1948,18 +1943,18 @@ default-package-overrides:
   - MonadPrompt ==1.0.0.5
   - MonadRandom ==0.6
   - monad-resumption ==0.1.4.0
-  - monad-schedule ==0.1.2.1
+  - monad-schedule ==0.1.2.2
   - monad-st ==0.2.4.1
   - monads-tf ==0.3.0.1
   - monad-time ==0.4.0.0
-  - mongoDB ==2.7.1.2
+  - mongoDB ==2.7.1.4
   - monoidal-containers ==0.6.4.0
   - monoidal-functors ==0.2.3.0
   - monoid-extras ==0.6.2
   - monoid-subclasses ==1.2.4.1
   - monoid-transformer ==0.0.4
   - monomer ==1.6.0.1
-  - mono-traversable ==1.0.15.3
+  - mono-traversable ==1.0.17.0
   - mono-traversable-instances ==0.1.1.0
   - mono-traversable-keys ==0.3.0
   - more-containers ==0.2.2.2
@@ -1995,9 +1990,9 @@ default-package-overrides:
   - mx-state-codes ==1.0.0.0
   - myers-diff ==0.3.0.0
   - mysql ==0.2.1
-  - mysql-haskell ==1.1.3
+  - mysql-haskell ==1.1.4
   - mysql-haskell-nem ==0.1.0.0
-  - mysql-json-table ==0.1.2.0
+  - mysql-json-table ==0.1.3.0
   - mysql-simple ==0.4.9
   - n2o ==0.11.1
   - n2o-nitro ==0.11.2
@@ -2022,7 +2017,6 @@ default-package-overrides:
   - net-mqtt-lens ==0.1.1.0
   - netpbm ==1.0.4
   - netrc ==0.2.0.0
-  - nettle ==0.3.0
   - netwire ==5.0.3
   - netwire-input ==0.0.7
   - network ==3.1.4.0
@@ -2085,7 +2079,7 @@ default-package-overrides:
   - ofx ==0.4.4.0
   - old-locale ==1.0.0.7
   - old-time ==1.1.0.4
-  - om-elm ==2.0.0.5
+  - om-elm ==2.0.0.6
   - once ==0.4
   - one-liner ==2.1
   - one-liner-instances ==0.1.3.0
@@ -2093,7 +2087,7 @@ default-package-overrides:
   - Only ==0.1
   - oo-prototypes ==0.1.0.0
   - oops ==0.2.0.1
-  - opaleye ==0.10.2.0
+  - opaleye ==0.10.2.1
   - OpenAL ==1.7.0.5
   - openapi3 ==3.2.4
   - open-browser ==0.2.1.0
@@ -2127,6 +2121,7 @@ default-package-overrides:
   - OrderedBits ==0.0.2.0
   - ordered-containers ==0.2.3
   - ormolu ==0.7.2.0
+  - os-string ==2.0.2
   - overhang ==1.0.0
   - packcheck ==0.6.0
   - pager ==0.1.1.0
@@ -2138,19 +2133,19 @@ default-package-overrides:
   - pandoc-cli ==3.1.11.1
   - pandoc-dhall-decoder ==0.1.0.1
   - pandoc-lua-engine ==0.2.1.2
-  - pandoc-lua-marshal ==0.2.4
+  - pandoc-lua-marshal ==0.2.5
   - pandoc-plot ==1.8.0
-  - pandoc-server ==0.1.0.4
+  - pandoc-server ==0.1.0.5
   - pandoc-throw ==0.1.0.0
   - pandoc-types ==1.23.1
   - pango ==0.13.10.0
-  - pantry ==0.9.3.1
+  - pantry ==0.9.3.2
   - parallel ==3.2.2.0
   - parallel-io ==0.3.5
   - parameterized ==0.5.0.0
   - park-bench ==0.1.1.0
   - parseargs ==0.2.0.9
-  - parsec-class ==1.0.0.0
+  - parsec-class ==1.0.1.0
   - parsec-numbers ==0.1.0
   - parsec-numeric ==0.1.0.0
   - ParsecTools ==0.0.2.0
@@ -2173,7 +2168,7 @@ default-package-overrides:
   - path-io ==1.8.1
   - path-like ==0.2.0.2
   - path-pieces ==0.2.1
-  - pathtype ==0.8.1.2
+  - pathtype ==0.8.1.3
   - path-utils ==0.1.1.0
   - pathwalk ==0.3.1.2
   - patrol ==1.0.0.7
@@ -2197,7 +2192,7 @@ default-package-overrides:
   - perfect-hash-generator ==1.0.0
   - persistable-record ==0.6.0.6
   - persistable-types-HDBC-pg ==0.0.3.5
-  - persistent ==2.14.6.0
+  - persistent ==2.14.6.1
   - persistent-discover ==0.1.0.7
   - persistent-iproute ==0.2.5
   - persistent-lens ==1.0.0
@@ -2265,7 +2260,7 @@ default-package-overrides:
   - postgresql-binary ==0.13.1.3
   - postgresql-libpq ==0.10.0.0
   - postgresql-libpq-notify ==0.2.0.0
-  - postgresql-migration ==0.2.1.7
+  - postgresql-migration ==0.2.1.8
   - postgresql-query ==3.10.0
   - postgresql-schema ==0.1.14
   - postgresql-simple ==0.7.0.0
@@ -2297,9 +2292,9 @@ default-package-overrides:
   - primecount ==0.1.0.1
   - primes ==0.2.1.0
   - primitive ==0.8.0.0
-  - primitive-addr ==0.1.0.2
+  - primitive-addr ==0.1.0.3
   - primitive-extras ==0.10.1.10
-  - primitive-offset ==0.2.0.0
+  - primitive-offset ==0.2.0.1
   - primitive-serial ==0.1
   - primitive-unaligned ==0.1.1.2
   - primitive-unlifted ==2.1.0.0
@@ -2325,7 +2320,7 @@ default-package-overrides:
   - proto-lens-arbitrary ==0.1.2.12
   - proto-lens-optparse ==0.1.1.11
   - proto-lens-runtime ==0.7.0.5
-  - protolude ==0.3.3
+  - protolude ==0.3.4
   - proxied ==0.3.1
   - psql-helpers ==0.1.0.0
   - PSQueue ==1.2.0
@@ -2374,7 +2369,7 @@ default-package-overrides:
   - rampart ==2.0.0.7
   - ramus ==0.1.2
   - rando ==0.0.0.4
-  - random ==1.2.1.1
+  - random ==1.2.1.2
   - random-bytestring ==0.1.4
   - random-fu ==0.3.0.1
   - random-shuffle ==0.0.4
@@ -2418,7 +2413,7 @@ default-package-overrides:
   - recv ==0.1.0
   - redact ==0.5.0.0
   - reddit-scrape ==0.0.1
-  - redis-glob ==0.1.0.7
+  - redis-glob ==0.1.0.8
   - redis-resp ==1.0.0
   - reducers ==3.12.4
   - refact ==0.3.0.2
@@ -2458,7 +2453,7 @@ default-package-overrides:
   - resolv ==0.2.0.2
   - resource-pool ==0.4.0.0
   - resourcet ==1.3.0
-  - rest-rewrite ==0.4.2
+  - rest-rewrite ==0.4.3
   - result ==0.2.6.0
   - retry ==0.9.3.1
   - rex ==0.6.2
@@ -2471,7 +2466,7 @@ default-package-overrides:
   - rio-orphans ==0.1.2.0
   - rio-prettyprint ==0.1.8.0
   - rng-utils ==0.3.1
-  - roc-id ==0.2.0.0
+  - roc-id ==0.2.0.1
   - rocksdb-haskell ==1.0.1
   - rocksdb-haskell-jprupp ==2.1.6
   - rocksdb-query ==0.4.2
@@ -2481,7 +2476,7 @@ default-package-overrides:
   - rosezipper ==0.2
   - rot13 ==0.2.0.1
   - row-types ==1.0.1.2
-  - rpmbuild-order ==0.4.10
+  - rpmbuild-order ==0.4.11
   - rpm-nvr ==0.1.2
   - rp-tree ==0.7.1
   - rrb-vector ==0.2.1.0
@@ -2490,7 +2485,7 @@ default-package-overrides:
   - rss-conduit ==0.6.0.1
   - run-haskell-module ==0.0.2
   - runmemo ==1.0.0.1
-  - run-st ==0.1.3.2
+  - run-st ==0.1.3.3
   - rvar ==0.3.0.2
   - rzk ==0.7.3
   - s3-signer ==0.5.0.0
@@ -2554,7 +2549,7 @@ default-package-overrides:
   - seqalign ==0.2.0.4
   - seqid ==0.6.3
   - seqid-streams ==0.7.2
-  - sequence-formats ==1.8.0.0
+  - sequence-formats ==1.8.0.1
   - sequenceTools ==1.5.3.1
   - serialise ==0.2.6.1
   - servant ==0.20.1
@@ -2593,7 +2588,7 @@ default-package-overrides:
   - servant-swagger-ui-core ==0.3.5
   - servant-swagger-ui-redoc ==0.3.4.1.22.3
   - servant-websockets ==2.0.0
-  - servant-xml ==1.0.2
+  - servant-xml ==1.0.3
   - serversession ==1.0.3
   - serversession-backend-redis ==1.0.5
   - serversession-frontend-wai ==1.0.1
@@ -2659,7 +2654,7 @@ default-package-overrides:
   - skylighting ==0.14.1
   - skylighting-core ==0.14.1
   - skylighting-format-ansi ==0.1
-  - skylighting-format-blaze-html ==0.1.1.1
+  - skylighting-format-blaze-html ==0.1.1.2
   - skylighting-format-context ==0.1.0.2
   - skylighting-format-latex ==0.1
   - slave-thread ==1.1.0.3
@@ -2674,7 +2669,7 @@ default-package-overrides:
   - snowflake ==0.1.1.1
   - socket ==0.8.3.0
   - socks ==0.6.1
-  - solana-staking-csvs ==0.1.2.0
+  - solana-staking-csvs ==0.1.3.0
   - some ==1.0.6
   - some-dict-of ==0.1.0.2
   - sop-core ==0.5.0.2
@@ -2684,10 +2679,9 @@ default-package-overrides:
   - sourcemap ==0.1.7
   - sox ==0.2.3.2
   - soxlib ==0.0.3.2
-  - spacecookie ==1.0.0.2
   - SpatialMath ==0.2.7.1
   - special-values ==0.1.0.0
-  - speculate ==0.4.14
+  - speculate ==0.4.20
   - speedy-slice ==0.3.2
   - splice ==0.6.1.1
   - split ==0.2.5
@@ -2737,7 +2731,7 @@ default-package-overrides:
   - storable-tuple ==0.1
   - storablevector ==0.2.13.2
   - store ==0.7.18
-  - store-core ==0.4.4.6
+  - store-core ==0.4.4.7
   - store-streaming ==0.2.0.5
   - stratosphere ==0.60.0
   - Stream ==0.4.7.2
@@ -2764,7 +2758,7 @@ default-package-overrides:
   - string-conversions ==0.4.0.1
   - string-interpolate ==0.3.3.0
   - stringprep ==1.0.0
-  - string-qq ==0.0.5
+  - string-qq ==0.0.6
   - string-random ==0.1.4.3
   - stringsearch ==0.3.6.6
   - string-transform ==1.1.1
@@ -2937,7 +2931,7 @@ default-package-overrides:
   - threads ==0.5.1.8
   - threads-extras ==0.1.0.3
   - thread-supervisor ==0.2.0.0
-  - threepenny-gui ==0.9.4.0
+  - threepenny-gui ==0.9.4.1
   - th-reify-compat ==0.0.1.5
   - th-reify-many ==0.1.10
   - th-strict-compat ==0.1.0.1
@@ -2983,7 +2977,7 @@ default-package-overrides:
   - tophat ==1.0.7.0
   - topograph ==1.0.0.2
   - torrent ==10000.1.3
-  - torsor ==0.1
+  - torsor ==0.1.0.1
   - tostring ==0.2.1.1
   - tracing ==0.0.7.4
   - transaction ==0.1.1.4
@@ -2995,7 +2989,7 @@ default-package-overrides:
   - tree-fun ==0.8.1.0
   - tree-view ==0.5.1
   - trie-simple ==0.4.2
-  - trifecta ==2.1.3
+  - trifecta ==2.1.4
   - trimdent ==0.1.0.0
   - trivial-constraint ==0.7.0.0
   - tsv2csv ==0.1.0.2
@@ -3032,10 +3026,10 @@ default-package-overrides:
   - type-set ==0.1.0.0
   - type-spec ==0.4.0.0
   - typography-geometry ==1.0.1.0
-  - typst ==0.5
+  - typst ==0.5.0.1
   - typst-symbols ==0.1.5
   - tz ==0.1.3.6
-  - tzdata ==0.2.20231222.0
+  - tzdata ==0.2.20240201.0
   - tztime ==0.1.1.0
   - ua-parser ==0.7.7.0
   - uglymemo ==0.1.0.1
@@ -3071,9 +3065,9 @@ default-package-overrides:
   - universe-reverse-instances ==1.1.1
   - universe-some ==1.2.1
   - universum ==1.8.2
-  - unix-bytestring ==0.4.0
+  - unix-bytestring ==0.4.0.1
   - unix-compat ==0.7.1
-  - unix-time ==0.4.11
+  - unix-time ==0.4.12
   - unjson ==0.15.4
   - unliftio ==0.2.25.0
   - unliftio-core ==0.2.1.0
@@ -3092,7 +3086,7 @@ default-package-overrides:
   - users-test ==0.5.0.1
   - utf8-light ==0.4.4.0
   - utf8-string ==1.0.2
-  - utility-ht ==0.0.17
+  - utility-ht ==0.0.17.1
   - uuid ==1.3.15
   - uuid-types ==1.0.5.1
   - valida ==1.1.0
@@ -3136,7 +3130,7 @@ default-package-overrides:
   - vector-stream ==0.1.0.1
   - vector-th-unbox ==0.2.2
   - verbosity ==0.4.0.0
-  - verset ==0.0.1.8
+  - verset ==0.0.1.9
   - versions ==6.0.5
   - vformat ==0.14.1.0
   - vformat-time ==0.1.0.0
@@ -3151,7 +3145,7 @@ default-package-overrides:
   - vty-crossplatform ==0.4.0.0
   - vty-unix ==0.2.0.0
   - wai ==3.2.4
-  - wai-app-static ==3.1.8
+  - wai-app-static ==3.1.9
   - wai-cli ==0.2.3
   - wai-conduit ==3.0.0.4
   - wai-control ==0.2.0.0
@@ -3159,7 +3153,7 @@ default-package-overrides:
   - wai-enforce-https ==1.0.0.0
   - wai-eventsource ==3.0.0
   - wai-extra ==3.1.14
-  - wai-feature-flags ==0.1.0.7
+  - wai-feature-flags ==0.1.0.8
   - wai-handler-launch ==3.0.3.1
   - wai-logger ==2.4.0
   - wai-middleware-bearer ==1.0.3
@@ -3183,7 +3177,7 @@ default-package-overrides:
   - wai-websockets ==3.0.1.2
   - wakame ==0.1.0.0
   - warp ==3.3.31
-  - warp-tls ==3.4.3
+  - warp-tls ==3.4.4
   - wave ==0.2.1
   - wcwidth ==0.0.2
   - webdriver ==0.12.0.0
@@ -3217,7 +3211,7 @@ default-package-overrides:
   - world-peace ==1.0.2.0
   - wrap ==0.0.0
   - wraxml ==0.5
-  - wreq ==0.5.4.2
+  - wreq ==0.5.4.3
   - wreq-stringless ==0.5.9.1
   - writer-cps-transformers ==0.5.6.1
   - ws ==0.0.6
@@ -3257,14 +3251,14 @@ default-package-overrides:
   - xxhash-ffi ==0.2.0.0
   - yaml ==0.11.11.2
   - yaml-unscrambler ==0.1.0.19
-  - Yampa ==0.14.6
+  - Yampa ==0.14.7
   - yarn-lock ==0.6.5
   - yeshql-core ==4.2.0.0
   - yesod ==1.6.2.1
   - yesod-auth ==1.6.11.2
   - yesod-auth-basic ==0.1.0.3
   - yesod-auth-hashdb ==1.7.1.7
-  - yesod-auth-oauth2 ==0.7.1.3
+  - yesod-auth-oauth2 ==0.7.2.0
   - yesod-core ==1.6.25.1
   - yesod-eventsource ==1.6.0.1
   - yesod-fb ==0.6.1
@@ -3297,7 +3291,7 @@ default-package-overrides:
   - zigzag ==0.0.1.0
   - zim-parser ==0.2.1.0
   - zip ==2.0.0
-  - zip-archive ==0.4.3
+  - zip-archive ==0.4.3.1
   - zippers ==0.3.2
   - zip-stream ==0.2.2.0
   - zlib ==0.6.3.0
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index d315bce3bf6b3..f1167559605cb 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -68,7 +68,6 @@ dont-distribute-packages:
  - Chart-fltkhs
  - ClustalParser
  - Coadjute
- - Color
  - Combinatorrent
  - ComonadSheet
  - Condor
@@ -136,7 +135,6 @@ dont-distribute-packages:
  - GPipe-TextureLoad
  - GeBoP
  - GenI
- - GenSmsPdu
  - Genbank
  - Gene-CluEDO
  - GenussFold
@@ -213,7 +211,6 @@ dont-distribute-packages:
  - Haschoo
  - Hashell
  - HaskRel
- - HaskellNet-SSL
  - Hate
  - Hawk
  - Hayoo
@@ -593,8 +590,6 @@ dont-distribute-packages:
  - aws-kinesis-client
  - aws-kinesis-reshard
  - aws-lambda
- - aws-lambda-haskell-runtime
- - aws-lambda-haskell-runtime-wai
  - aws-mfa-credentials
  - aws-sdk
  - aws-sdk-xml-unordered
@@ -719,10 +714,9 @@ dont-distribute-packages:
  - boots-cloud
  - boots-web
  - borel
+ - botan-low
  - both
  - bound-gen
- - bower-json
- - bower-json_1_0_0_1
  - breakout
  - bricks
  - bricks-internal-test
@@ -764,7 +758,6 @@ dont-distribute-packages:
  - cakyrespa
  - cal3d-examples
  - cal3d-opengl
- - calamity-commands
  - calc
  - calculator
  - caldims
@@ -829,7 +822,6 @@ dont-distribute-packages:
  - chassis
  - chatty
  - cheapskate-highlight
- - cheapskate-lucid
  - cheapskate-terminal
  - check-pvp
  - chevalier-common
@@ -881,7 +873,6 @@ dont-distribute-packages:
  - clckwrks-theme-bootstrap
  - clckwrks-theme-clckwrks
  - clckwrks-theme-geo-bootstrap
- - clean-home
  - cleff-plugin
  - cless
  - cleveland
@@ -906,12 +897,12 @@ dont-distribute-packages:
  - cmv
  - cnc-spec-compiler
  - co-feldspar
- - co-log-polysemy
  - cobot-io
  - codec
  - codec-libevent
  - codec-rpm
  - codemonitor
+ - codet-plugin
  - coformat
  - cognimeta-utils
  - coinbase-exchange
@@ -1021,7 +1012,7 @@ dont-distribute-packages:
  - cqrs-test
  - cqrs-testkit
  - crackNum
- - crackNum_3_6
+ - crackNum_3_10
  - craft
  - craftwerk-cairo
  - craftwerk-gtk
@@ -1106,7 +1097,6 @@ dont-distribute-packages:
  - ddc-tools
  - ddc-war
  - ddci-core
- - debian-binary
  - debug
  - decidable
  - decimal-arithmetic
@@ -1146,7 +1136,6 @@ dont-distribute-packages:
  - dfinity-radix-tree
  - dhall-lex
  - dhall-secret
- - di-polysemy
  - dia-functions
  - diagrams-reflex
  - diagrams-wx
@@ -1156,7 +1145,6 @@ dont-distribute-packages:
  - differential
  - digestive-foundation-lucid
  - digestive-functors-hsp
- - digraph
  - dimensional-tf
  - dimensions
  - dingo-core
@@ -1290,6 +1278,7 @@ dont-distribute-packages:
  - errors-ext
  - ersatz-toysat
  - esotericbot
+ - esqueleto-postgis
  - esqueleto-streaming
  - essence-of-live-coding-PortMidi
  - essence-of-live-coding-gloss
@@ -1488,10 +1477,6 @@ dont-distribute-packages:
  - funion
  - funnyprint
  - funsat
- - fused-effects-lens
- - fused-effects-optics
- - fused-effects-random
- - fused-effects-readline
  - fused-effects-squeal
  - fwgl-glfw
  - fwgl-javascript
@@ -1577,7 +1562,6 @@ dont-distribute-packages:
  - gloss-accelerate
  - gloss-devil
  - gloss-raster-accelerate
- - gloss-raster-massiv
  - gloss-sodium
  - glpk-hs
  - gltf-loader
@@ -1992,6 +1976,7 @@ dont-distribute-packages:
  - haskoin-bitcoind
  - haskoin-crypto
  - haskoin-node
+ - haskoin-node_1_1_0
  - haskoin-protocol
  - haskoin-script
  - haskoon
@@ -2086,7 +2071,6 @@ dont-distribute-packages:
  - hesh
  - hesql
  - heterolist
- - hevm
  - hevolisa
  - hevolisa-dph
  - hexpat-conduit
@@ -2113,7 +2097,6 @@ dont-distribute-packages:
  - hinduce-classifier
  - hinduce-classifier-decisiontree
  - hinduce-examples
- - hinit
  - hinvaders
  - hinze-streams
  - hipbot
@@ -2135,7 +2118,14 @@ dont-distribute-packages:
  - hledger-api
  - hlrdb
  - hls
+ - hls-call-hierarchy-plugin
  - hls-exactprint-utils
+ - hls-gadt-plugin
+ - hls-refactor-plugin
+ - hls-rename-plugin
+ - hls-retrie-plugin
+ - hls-semantic-tokens-plugin
+ - hls-splice-plugin
  - hmark
  - hmatrix-sundials
  - hmeap
@@ -2199,7 +2189,6 @@ dont-distribute-packages:
  - hs-sdl-term-emulator
  - hs2ats
  - hs2dot
- - hsautogui
  - hsbackup
  - hsbencher-codespeed
  - hsbencher-fusion
@@ -2321,7 +2310,6 @@ dont-distribute-packages:
  - ideas-statistics
  - identicon-style-squares
  - idna
- - idris
  - ifscs
  - ige-mac-integration
  - igrf
@@ -2343,8 +2331,6 @@ dont-distribute-packages:
  - improve
  - inch
  - incipit
- - incipit-core
- - incipit-core_0_6_0_0
  - incremental-computing
  - incremental-maps
  - increments
@@ -2359,7 +2345,6 @@ dont-distribute-packages:
  - inferno-vc
  - infinity
  - inline-java
- - inliterate
  - inspector-wrecker
  - instant-aeson
  - instant-bytes
@@ -2676,6 +2661,7 @@ dont-distribute-packages:
  - lol-typing
  - loli
  - longshot
+ - looksee-trip
  - loop-effin
  - lorentz
  - lostcities
@@ -2703,7 +2689,6 @@ dont-distribute-packages:
  - magicbane
  - mahoro
  - maid
- - mail-pool
  - mailgun
  - majordomo
  - majority
@@ -2738,10 +2723,7 @@ dont-distribute-packages:
  - marvin
  - marxup
  - masakazu-bot
- - massiv
- - massiv-io
  - massiv-persist
- - massiv-test
  - matchers
  - math-programming-glpk
  - math-programming-tests
@@ -2778,7 +2760,6 @@ dont-distribute-packages:
  - minilight
  - minilight-lua
  - minimung
- - minio-hs
  - minioperational
  - minirotate
  - mismi-kernel
@@ -2813,7 +2794,6 @@ dont-distribute-packages:
  - monad-metrics-extensible
  - monad-state
  - monad-stlike-stm
- - monadic-bang
  - monadiccp-gecode
  - monarch
  - monetdb-mapi
@@ -2911,7 +2891,6 @@ dont-distribute-packages:
  - mysql-simple-typed
  - mywatch
  - mywork
- - n-m
  - n2o-web
  - nakadi-client
  - named-servant-client
@@ -3050,8 +3029,6 @@ dont-distribute-packages:
  - outsort
  - overeasy
  - overload
- - pa-field-parser
- - pa-json
  - package-o-tron
  - padKONTROL
  - pairing
@@ -3111,11 +3088,8 @@ dont-distribute-packages:
  - persistable-record
  - persistable-types-HDBC-pg
  - persistent-audit
- - persistent-event-source
- - persistent-eventsource
  - persistent-hssqlppp
  - persistent-map
- - persistent-mtl
  - persistent-mysql-haskell
  - persistent-mysql-pure
  - persistent-protobuf
@@ -3177,16 +3151,13 @@ dont-distribute-packages:
  - polh-lexicon
  - poly-rec
  - polydata
- - polysemy
  - polysemy-RandomFu
  - polysemy-account
  - polysemy-account-api
- - polysemy-check
  - polysemy-chronos
  - polysemy-conc
  - polysemy-db
  - polysemy-extra
- - polysemy-fs
  - polysemy-fskvstore
  - polysemy-hasql
  - polysemy-hasql-test
@@ -3198,17 +3169,13 @@ dont-distribute-packages:
  - polysemy-methodology
  - polysemy-methodology-co-log
  - polysemy-methodology-composite
- - polysemy-mocks
  - polysemy-path
- - polysemy-plugin
  - polysemy-resume
  - polysemy-scoped-fs
  - polysemy-time
  - polysemy-uncontrolled
  - polysemy-video
  - polysemy-vinyl
- - polysemy-webserver
- - polysemy-zoo
  - polytypeable-utils
  - pomodoro
  - pontarius-mediaserver
@@ -3270,7 +3237,6 @@ dont-distribute-packages:
  - prolude
  - prometheus-proc
  - propane
- - propellor
  - proplang
  - prosidyc
  - proto-lens-descriptors
@@ -3290,7 +3256,6 @@ dont-distribute-packages:
  - pure-cdb
  - pure-priority-queue-tests
  - purenix
- - purescript
  - purescript-iso
  - purescript-tsd-gen
  - pursuit-client
@@ -3474,7 +3439,6 @@ dont-distribute-packages:
  - rest-types
  - rest-wai
  - restful-snap
- - restless-git
  - restricted-workers
  - rethinkdb-model
  - rethinkdb-wereHamster
@@ -3584,7 +3548,6 @@ dont-distribute-packages:
  - scalpel-search
  - scan-metadata
  - scan-vector-machine
- - scheduler
  - scheduling
  - schematic
  - scholdoc
@@ -3675,7 +3638,6 @@ dont-distribute-packages:
  - servant-streaming-docs
  - servant-streaming-server
  - servant-swagger-tags
- - servant-to-elm
  - servant-util-beam-pg
  - servant-waargonaut
  - servant-zeppelin-client
@@ -3748,7 +3710,6 @@ dont-distribute-packages:
  - smtlib2-pipe
  - smtlib2-quickcheck
  - smtlib2-timing
- - smtp-mail
  - smtp2mta
  - snap-auth-cli
  - snap-elm
@@ -3929,6 +3890,7 @@ dont-distribute-packages:
  - syntaxnet-haskell
  - synthesizer-llvm
  - sys-process
+ - syslog
  - systemd-api
  - systemstats
  - t3-client
@@ -3963,8 +3925,6 @@ dont-distribute-packages:
  - tbox
  - tccli
  - tdd-util
- - tdlib
- - tdlib-types
  - techlab
  - telegram-bot
  - telegram-raw-api
@@ -3984,6 +3944,7 @@ dont-distribute-packages:
  - th-alpha
  - th-context
  - th-instances
+ - th-letrec
  - th-typegraph
  - theoremquest-client
  - thimk
@@ -4162,6 +4123,8 @@ dont-distribute-packages:
  - util-exception
  - util-primitive-control
  - util-universe
+ - utxorpc-client
+ - utxorpc-server
  - uu-cco-examples
  - uu-cco-hut-parsing
  - uu-cco-uu-parsinglib
@@ -4321,7 +4284,6 @@ dont-distribute-packages:
  - wyvern
  - xcffib
  - xdcc
- - xdg-basedir-compliant
  - xhb-atom-cache
  - xhb-ewmh
  - xml-catalog
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 9897a6f2be0cf..062b1767a7e48 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -102,84 +102,6 @@ self: super: builtins.intersectAttrs super {
   # Tests access homeless-shelter.
   hie-bios = dontCheck super.hie-bios;
 
-  # PLUGINS WITH ENABLED TESTS
-  # haskell-language-server plugins all use the same test harness so we give them what they want in this loop.
-  # Every hls plugin should either be in the test disabled list below, or up here in the list fixing it’s tests.
-  inherit (pkgs.lib.mapAttrs
-      (_: overrideCabal (drv: {
-        testToolDepends = (drv.testToolDepends or [ ]) ++ [ pkgs.git ];
-        preCheck = ''
-          export HOME=$TMPDIR/home
-        '' + (drv.preCheck or "");
-      }))
-      super)
-    hls-brittany-plugin
-    hls-floskell-plugin
-    hls-fourmolu-plugin
-    hls-overloaded-record-dot-plugin
-  ;
-
-  # PLUGINS WITH DISABLED TESTS
-  # 2023-04-01: TODO: We should reenable all these tests to figure if they are still broken.
-  inherit (pkgs.lib.mapAttrs (_: dontCheck) super)
-    # Tests require ghcide-test-utils which is broken
-    hls-semantic-tokens-plugin
-
-    # Tests have file permissions expections that don’t work with the nix store.
-    hls-gadt-plugin
-
-    # https://github.com/haskell/haskell-language-server/pull/3431
-    hls-cabal-plugin
-    hls-cabal-fmt-plugin
-    hls-code-range-plugin
-    hls-explicit-record-fields-plugin
-
-    # Flaky tests
-    hls-explicit-fixity-plugin
-    hls-hlint-plugin
-    hls-pragmas-plugin
-    hls-class-plugin
-    hls-rename-plugin
-    hls-alternate-number-format-plugin
-    hls-qualify-imported-names-plugin
-    hls-haddock-comments-plugin
-    hls-tactics-plugin
-    hls-call-hierarchy-plugin
-    hls-selection-range-plugin
-    hls-ormolu-plugin
-
-    # 2021-05-08: Tests fail: https://github.com/haskell/haskell-language-server/issues/1809
-    hls-eval-plugin
-
-    # 2021-06-20: Tests fail: https://github.com/haskell/haskell-language-server/issues/1949
-    hls-refine-imports-plugin
-
-    # 2021-11-20: https://github.com/haskell/haskell-language-server/pull/2373
-    hls-explicit-imports-plugin
-
-    # 2021-11-20: https://github.com/haskell/haskell-language-server/pull/2374
-    hls-module-name-plugin
-
-    # 2022-09-19: https://github.com/haskell/haskell-language-server/issues/3200
-    hls-refactor-plugin
-
-    # 2021-09-14: Tests are flaky.
-    hls-splice-plugin
-
-    # 2021-09-18: https://github.com/haskell/haskell-language-server/issues/2205
-    hls-stylish-haskell-plugin
-
-    # Necesssary .txt files are not included in sdist.
-    # https://github.com/haskell/haskell-language-server/pull/2887
-    hls-change-type-signature-plugin
-
-    # 2023-04-03: https://github.com/haskell/haskell-language-server/issues/3549
-    hls-retrie-plugin
-
-    # 2024-01-25: Golden files are missing
-    hls-stan-plugin
-  ;
-
   ###########################################
   ### END HASKELL-LANGUAGE-SERVER SECTION ###
   ###########################################
@@ -305,7 +227,13 @@ self: super: builtins.intersectAttrs super {
   ghc-debug-brick  = enableSeparateBinOutput super.ghc-debug-brick;
   nixfmt  = enableSeparateBinOutput super.nixfmt;
   calligraphy = enableSeparateBinOutput super.calligraphy;
-  niv = enableSeparateBinOutput (self.generateOptparseApplicativeCompletions [ "niv" ] super.niv);
+  niv = overrideCabal (drv: {
+      buildTools = (drv.buildTools or []) ++ [ pkgs.buildPackages.makeWrapper ];
+      postInstall = ''
+        wrapProgram ''${!outputBin}/bin/niv --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.nix ]}
+      '';
+    })
+    (enableSeparateBinOutput (self.generateOptparseApplicativeCompletions [ "niv" ] super.niv));
   ghcid = enableSeparateBinOutput super.ghcid;
   ormolu = self.generateOptparseApplicativeCompletions [ "ormolu" ] (enableSeparateBinOutput super.ormolu);
   hnix = self.generateOptparseApplicativeCompletions [ "hnix" ] super.hnix;
@@ -426,6 +354,7 @@ self: super: builtins.intersectAttrs super {
 
   # The curl executable is required for withApplication tests.
   warp = addTestToolDepend pkgs.curl super.warp;
+  warp_3_3_30 = addTestToolDepend pkgs.curl super.warp_3_3_30;
 
   # Test suite requires running a database server. Testing is done upstream.
   hasql = dontCheck super.hasql;
@@ -1217,9 +1146,11 @@ self: super: builtins.intersectAttrs super {
     {
       fourmolu = fourmoluTestFix super.fourmolu;
       fourmolu_0_14_1_0 = fourmoluTestFix super.fourmolu_0_14_1_0;
+      fourmolu_0_15_0_0 = fourmoluTestFix super.fourmolu_0_15_0_0;
     })
     fourmolu
     fourmolu_0_14_1_0
+    fourmolu_0_15_0_0
     ;
 
   # Test suite needs to execute 'disco' binary
@@ -1352,8 +1283,6 @@ self: super: builtins.intersectAttrs super {
     __onlyPropagateKnownPkgConfigModules = true;
     }) super)
       gi-javascriptcore
-      webkit2gtk3-javascriptcore
-      gi-webkit2
       gi-webkit2webextension
       gi-gtk_4_0_8
       gi-gdk_4_0_7
@@ -1361,6 +1290,16 @@ self: super: builtins.intersectAttrs super {
       gi-adwaita
       ;
 
+    webkit2gtk3-javascriptcore = lib.pipe super.webkit2gtk3-javascriptcore [
+      (addBuildDepend pkgs.xorg.libXtst)
+      (overrideCabal { __onlyPropagateKnownPkgConfigModules = true; })
+    ];
+
+    gi-webkit2 = lib.pipe super.gi-webkit2 [
+      (addBuildDepend pkgs.xorg.libXtst)
+      (overrideCabal { __onlyPropagateKnownPkgConfigModules = true; })
+    ];
+
   # Makes the mpi-hs package respect the choice of mpi implementation in Nixpkgs.
   # Also adds required test dependencies for checks to pass
   mpi-hs =
@@ -1388,4 +1327,8 @@ self: super: builtins.intersectAttrs super {
     libraryPkgconfigDepends = drv.librarySystemDepends;
     librarySystemDepends = [];
   }) super.postgresql-libpq;
+
+  # Test failure is related to a GHC implementation detail of primitives and doesn't
+  # cause actual problems in dependent packages, see https://github.com/lehins/pvar/issues/4
+  pvar = dontCheck super.pvar;
 }
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 03301c25a7da1..db12ebd8c773b 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -822,10 +822,8 @@ self: {
      }:
      mkDerivation {
        pname = "Agda";
-       version = "2.6.4.1";
-       sha256 = "106hrg4kpqslddl054jsd9xn2i3159psc60mfnj1xj2h7jdql913";
-       revision = "2";
-       editedCabalFile = "156l2w391jsff6q9xg2zgk6q3aanbcvqkzvmmk2r5f4vkkd1bjgk";
+       version = "2.6.4.3";
+       sha256 = "18h3vwj182sp6pkh4274x0b3qg3cn3v0571jicabqhvxqmpckvbl";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -1174,8 +1172,8 @@ self: {
      }:
      mkDerivation {
        pname = "AsyncRattus";
-       version = "0.2";
-       sha256 = "08ags0nyhxfya4f29f8ksjylaf1b595k4n606xy927q5kx9f0bqj";
+       version = "0.2.0.1";
+       sha256 = "0ay2j22x0awmlqvskwzslv637jqac5byf0pkmy4ymfmgkhpay9sn";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base containers ghc ghc-boot hashtables simple-affine-space
@@ -3270,26 +3268,6 @@ self: {
      }:
      mkDerivation {
        pname = "ChasingBottoms";
-       version = "1.3.1.12";
-       sha256 = "1vy9yq07p95qiap1pcp2bbbn1mqvp3spyrswpdz0qfcn06656650";
-       revision = "3";
-       editedCabalFile = "0qkmazdz559fkn06ghmykwirl4inq3221c7y0gkacq33ax4080hp";
-       libraryHaskellDepends = [
-         base containers mtl QuickCheck random syb
-       ];
-       testHaskellDepends = [
-         array base containers mtl QuickCheck random syb
-       ];
-       description = "For testing partial and infinite values";
-       license = lib.licenses.mit;
-     }) {};
-
-  "ChasingBottoms_1_3_1_13" = callPackage
-    ({ mkDerivation, array, base, containers, mtl, QuickCheck, random
-     , syb
-     }:
-     mkDerivation {
-       pname = "ChasingBottoms";
        version = "1.3.1.13";
        sha256 = "1kpzvx7dwzsw4jj4r4sk0vdhj0kcsfflkbq3acvp2wyvlq343as6";
        libraryHaskellDepends = [
@@ -3300,7 +3278,6 @@ self: {
        ];
        description = "For testing partial and infinite values";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "CheatSheet" = callPackage
@@ -3531,7 +3508,6 @@ self: {
        benchmarkHaskellDepends = [ base colour criterion deepseq random ];
        description = "Color spaces and conversions between them";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Combinatorrent" = callPackage
@@ -6000,10 +5976,8 @@ self: {
     ({ mkDerivation, base, containers, deepseq, mtl, transformers }:
      mkDerivation {
        pname = "FULE";
-       version = "0.3.0";
-       sha256 = "1ir8kq8mndvbm99jm9wdd967b3424i4cpj5m56qd1052xi47q8vl";
-       revision = "1";
-       editedCabalFile = "17klcqdfrszks3ld4vbjxm5q88y0x33q783qvry9gyych6qdj89r";
+       version = "0.3.1";
+       sha256 = "0h2dcnkxnwsczjlp6bwa38lzwdwkihgj2xmj2f46dz91npfjk9xg";
        libraryHaskellDepends = [
          base containers deepseq mtl transformers
        ];
@@ -6358,8 +6332,8 @@ self: {
      }:
      mkDerivation {
        pname = "FiniteCategories";
-       version = "0.6.3.0";
-       sha256 = "0kwfv6hvxi4mk4jxbpa7laxjfxfjxgxvbpfpc5alv43n7rijhvw3";
+       version = "0.6.4.0";
+       sha256 = "10j6bipj0z86q87fnfd9iq2s43n2dixhfzh8y3yv18hs5jf4cgi0";
        libraryHaskellDepends = [
          base containers directory filepath random text WeakSets
        ];
@@ -7461,18 +7435,21 @@ self: {
      }) {};
 
   "GenSmsPdu" = callPackage
-    ({ mkDerivation, base, haskell98, QuickCheck, random }:
+    ({ mkDerivation, base, QuickCheck, random }:
      mkDerivation {
        pname = "GenSmsPdu";
-       version = "0.1";
-       sha256 = "1vs1m78lp87mccqs3i80zpl121yb063vqxx6a4sqzkfxzhvjvcbz";
-       isLibrary = false;
+       version = "0.2.0.0";
+       sha256 = "078wnsvprignabz4hy14byrsyn2yvznzzmf2k49j5gj9vdj8nd10";
+       isLibrary = true;
        isExecutable = true;
-       executableHaskellDepends = [ base haskell98 QuickCheck random ];
+       libraryHaskellDepends = [ base QuickCheck random ];
+       executableHaskellDepends = [ base QuickCheck random ];
+       testHaskellDepends = [ base QuickCheck random ];
        description = "Automatic SMS message generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       mainProgram = "gensmspdu";
+       mainProgram = "GenSmsPdu";
+       broken = true;
      }) {};
 
   "Genbank" = callPackage
@@ -9378,6 +9355,32 @@ self: {
        mainProgram = "HPDF-Demo";
      }) {};
 
+  "HPDF_1_7" = callPackage
+    ({ mkDerivation, array, base, base64-bytestring, binary, bytestring
+     , containers, errors, file-embed, filepath, HTF, hyphenation, mtl
+     , network-uri, parsec, random, text, vector, zlib
+     }:
+     mkDerivation {
+       pname = "HPDF";
+       version = "1.7";
+       sha256 = "0f5p36i6y20g9mqmsc3gja9jswffi0ydfmdmm4swrahl24h319jr";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base base64-bytestring binary bytestring containers errors
+         file-embed filepath hyphenation mtl network-uri parsec random text
+         vector zlib
+       ];
+       executableHaskellDepends = [
+         array base filepath network-uri random text vector
+       ];
+       testHaskellDepends = [ base HTF ];
+       description = "Generation of PDF documents";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "HPDF-Demo";
+     }) {};
+
   "HPath" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, filepath
      , haskell-src-exts, mtl, parsec, utf8-string
@@ -9424,11 +9427,11 @@ self: {
     ({ mkDerivation, base, bcm2835, bytestring }:
      mkDerivation {
        pname = "HPi";
-       version = "0.9.0";
-       sha256 = "1cwapxr6amsrcnlqdmc4klb97wv3xcqb5ms4ag4wa7bvz6rx3rx3";
+       version = "0.10.0";
+       sha256 = "1b3lwa1j2w9vwqxpccyg4mcy338q4byyqpysxd2ciljq3wcf5nkw";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ bcm2835 ];
-       description = "GPIO, I2C and SPI functions for the Raspberry Pi";
+       description = "GPIO, I2C, SPI, and PWM functions for the Raspberry Pi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -9715,8 +9718,6 @@ self: {
        ];
        description = "Library to mix shell scripting with Haskell programs";
        license = "LGPL";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HSHHelpers" = callPackage
@@ -10293,8 +10294,8 @@ self: {
        pname = "HaXml";
        version = "1.25.13";
        sha256 = "0wxkp9bnbnjrjrzsmpm6nknzn0ijiiajd5kms81kgyfypm4m91ax";
-       revision = "1";
-       editedCabalFile = "0rj3d04yw276hwbw09x2ydm5pmkfmm917cc540bwi9x108ksbr1g";
+       revision = "2";
+       editedCabalFile = "1y1qf3224gls6f27pp8w9cpyisdr24pan8ccfh1zffy9m2bk80lj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -10730,7 +10731,6 @@ self: {
        ];
        description = "Helpers to connect to SSL/TLS mail servers with HaskellNet";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "HaskellTorrent" = callPackage
@@ -11813,8 +11813,8 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6DB";
-       version = "0.3.3";
-       sha256 = "1zgkn998cm2h1fxkydvzb8lxsshlgimz9xa91w7vdpq67gf7rx90";
+       version = "0.3.3.1";
+       sha256 = "0nccfhm8a30ckl5lkaah0nhyikwry12d832wcknzl14jpj6r116d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -12319,6 +12319,18 @@ self: {
        mainProgram = "jupyter-extract";
      }) {};
 
+  "JuicyCairo" = callPackage
+    ({ mkDerivation, base, cairo-image, JuicyPixels, primitive }:
+     mkDerivation {
+       pname = "JuicyCairo";
+       version = "0.1.0.0";
+       sha256 = "06vw57wf73cwrcg7ycbqhgiz7zpb58pvzvgr2widdv75d9iq4nkk";
+       libraryHaskellDepends = [ base cairo-image JuicyPixels primitive ];
+       testHaskellDepends = [ base cairo-image JuicyPixels primitive ];
+       description = "To use images of JuicyPixels from Cairo";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "JuicyPixels" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, deepseq, mtl
      , primitive, transformers, vector, zlib
@@ -14275,8 +14287,8 @@ self: {
        pname = "MissingH";
        version = "1.6.0.1";
        sha256 = "0f5d7ws2vqm1vpwjab9cp691jn5j3dxycfn4w5p1rb4aim504aa9";
-       revision = "1";
-       editedCabalFile = "08zq00a2anzs6i7ml8dsbah45skgb95nljqn86ixa2gqya6ki253";
+       revision = "2";
+       editedCabalFile = "1qvdaa5im36x6j7z060n084q62gp35sp7sa6cgcbdjva5bqgi2iy";
        libraryHaskellDepends = [
          array base containers directory filepath hslogger mtl network
          network-bsd old-locale old-time parsec process regex-compat time
@@ -15303,8 +15315,8 @@ self: {
      }:
      mkDerivation {
        pname = "Network-NineP";
-       version = "0.4.7.3";
-       sha256 = "1ddmg5644af3aq53lclwyifir9x56by61w43ipb4lj1p40hki0j1";
+       version = "0.4.7.4";
+       sha256 = "1w1k90nsn0ansvq1s4n8dl0ysgq127myk37n940nk3glq70kdlsr";
        libraryHaskellDepends = [
          async base binary bytestring containers convertible exceptions
          hslogger monad-loops monad-peel mstate mtl network network-bsd
@@ -19221,7 +19233,7 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ShellCheck" = callPackage
+  "ShellCheck_0_9_0" = callPackage
     ({ mkDerivation, aeson, array, base, bytestring, containers
      , deepseq, Diff, directory, fgl, filepath, mtl, parsec, process
      , QuickCheck, regex-tdfa, transformers
@@ -19248,6 +19260,36 @@ self: {
        ];
        description = "Shell script analysis tool";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "shellcheck";
+       maintainers = [ lib.maintainers.zowoq ];
+     }) {};
+
+  "ShellCheck" = callPackage
+    ({ mkDerivation, aeson, array, base, bytestring, containers
+     , deepseq, Diff, directory, fgl, filepath, mtl, parsec, process
+     , QuickCheck, regex-tdfa, transformers
+     }:
+     mkDerivation {
+       pname = "ShellCheck";
+       version = "0.10.0";
+       sha256 = "08bdjcdl457xz2vh8y2w29bcwh1k7sfzyvszln3498vm5m1xn22d";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson array base bytestring containers deepseq Diff directory fgl
+         filepath mtl parsec process QuickCheck regex-tdfa transformers
+       ];
+       executableHaskellDepends = [
+         aeson array base bytestring containers deepseq Diff directory fgl
+         filepath mtl parsec QuickCheck regex-tdfa transformers
+       ];
+       testHaskellDepends = [
+         aeson array base bytestring containers deepseq Diff directory fgl
+         filepath mtl parsec QuickCheck regex-tdfa transformers
+       ];
+       description = "Shell script analysis tool";
+       license = lib.licenses.gpl3Only;
        mainProgram = "shellcheck";
        maintainers = [ lib.maintainers.zowoq ];
      }) {};
@@ -20994,6 +21036,8 @@ self: {
        pname = "TeX-my-math";
        version = "0.203.0.0";
        sha256 = "03c8bn7m5a9rjsna55g1qrfwnn195kgz4dm30czrb6blpd0giyhy";
+       revision = "1";
+       editedCabalFile = "0wgn295n59599fk2p0ssmc37mfnziylfv5xdb1i7wn69rn7f87da";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -22378,6 +22422,24 @@ self: {
        broken = true;
      }) {};
 
+  "WidgetRattus" = callPackage
+    ({ mkDerivation, base, Cabal, containers, ghc, ghc-boot, hashtables
+     , simple-affine-space, template-haskell, text, transformers
+     }:
+     mkDerivation {
+       pname = "WidgetRattus";
+       version = "0.2";
+       sha256 = "0i54i5krl10ivmv9rm3aqi02zkqcwjid71iwdm2pjld6z2ls2z4y";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         base containers ghc ghc-boot hashtables simple-affine-space
+         template-haskell transformers
+       ];
+       testHaskellDepends = [ base containers text ];
+       description = "An asynchronous modal FRP language";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "WikimediaParser" = callPackage
     ({ mkDerivation, base, parsec }:
      mkDerivation {
@@ -22741,6 +22803,7 @@ self: {
        ];
        description = "A binding to the X11 graphics library";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.slotThe ];
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXScrnSaver; 
          inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXinerama; 
          inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXrender;};
@@ -22812,6 +22875,7 @@ self: {
        libraryPkgconfigDepends = [ libXft ];
        description = "Bindings to the Xft and some Xrender parts";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.slotThe ];
      }) {inherit (pkgs.xorg) libXft;};
 
   "X11-xshape" = callPackage
@@ -23107,24 +23171,6 @@ self: {
      }:
      mkDerivation {
        pname = "Yampa";
-       version = "0.14.6";
-       sha256 = "1qinizrhqqwx5wws1iqyxxj77b1mv7svj61sfs851sxlbnp32pll";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base deepseq random simple-affine-space
-       ];
-       benchmarkHaskellDepends = [ base criterion filepath time ];
-       description = "Elegant Functional Reactive Programming Language for Hybrid Systems";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "Yampa_0_14_7" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, filepath, random
-     , simple-affine-space, time
-     }:
-     mkDerivation {
-       pname = "Yampa";
        version = "0.14.7";
        sha256 = "0y9aagh532xdp2qq5xfk8qzf326pjs5x3lvrfby2d2qbbh724nav";
        isLibrary = true;
@@ -23135,7 +23181,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion filepath time ];
        description = "Elegant Functional Reactive Programming Language for Hybrid Systems";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Yampa-core" = callPackage
@@ -25282,6 +25327,8 @@ self: {
        pname = "acts";
        version = "0.3.1.1";
        sha256 = "1szr7afyk6hwx7hipwwsvhv7y57if4fydsblphvf8fmwg299ya4l";
+       revision = "2";
+       editedCabalFile = "14lahysxlz4ahrpl2h9p8gxa6fl8vccj6qfagr5dkg2a1hrv567c";
        libraryHaskellDepends = [
          base deepseq finitary finite-typelits groups
        ];
@@ -25382,8 +25429,8 @@ self: {
      }:
      mkDerivation {
        pname = "adblock2privoxy";
-       version = "2.2.0";
-       sha256 = "0r7cr20bnasw0wmxpjl1v35qva9lijxmd99xdj55092fkqkxfbwr";
+       version = "2.3.0";
+       sha256 = "0aaz9kxvsyiwn0infzf9qlvq7wlrsamg4brr11332aljg8phnsmx";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -25930,8 +25977,7 @@ self: {
        ];
        description = "Better error messages when decoding JSON values";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = [ lib.maintainers.t4ccer ];
      }) {};
 
   "aeson-bson" = callPackage
@@ -26837,30 +26883,6 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-typescript";
-       version = "0.6.2.0";
-       sha256 = "14lya37640qrsz792xcpm21r7pixfxs72kq19165zjwcg4vv2v4n";
-       libraryHaskellDepends = [
-         aeson base bytestring containers mtl string-interpolate
-         template-haskell text th-abstraction transformers
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers directory filepath hspec mtl
-         process string-interpolate template-haskell temporary text
-         th-abstraction transformers unordered-containers
-       ];
-       description = "Generate TypeScript definition files from your ADTs";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "aeson-typescript_0_6_3_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, hspec, mtl, process, string-interpolate
-     , template-haskell, temporary, text, th-abstraction, transformers
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "aeson-typescript";
        version = "0.6.3.0";
        sha256 = "1bmhjl10adms07l2fg7qpjr3qsqdbwdfmj5psh6vi5s13w0sjxz9";
        libraryHaskellDepends = [
@@ -26875,7 +26897,6 @@ self: {
        ];
        description = "Generate TypeScript definition files from your ADTs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aeson-unqualified-ast" = callPackage
@@ -27859,13 +27880,13 @@ self: {
        mainProgram = "alex";
      }) {};
 
-  "alex_3_5_0_0" = callPackage
+  "alex_3_5_1_0" = callPackage
     ({ mkDerivation, array, base, containers, directory, happy, process
      }:
      mkDerivation {
        pname = "alex";
-       version = "3.5.0.0";
-       sha256 = "1vczh12dagp1w27j78dr3bc6xa3bp05rmdw3h1pxs75wnhirzvfa";
+       version = "3.5.1.0";
+       sha256 = "01rax51p8p91a5jv5i56fny4lzmwgvjlxh767gh9x5gbz23gwbn9";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -36050,33 +36071,6 @@ self: {
      }:
      mkDerivation {
        pname = "ansi-terminal-game";
-       version = "1.9.2.0";
-       sha256 = "16j4da1q6vhdy90byadm4bkai4h59qxpdi00skffn3krk5wdv3hk";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         ansi-terminal array base bytestring cereal clock colour containers
-         exceptions file-embed linebreak mintty mtl QuickCheck random split
-         terminal-size timers-tick unidecode
-       ];
-       testHaskellDepends = [
-         ansi-terminal array base bytestring cereal clock colour containers
-         exceptions file-embed hspec linebreak mintty mtl QuickCheck random
-         split terminal-size timers-tick unidecode
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "cross-platform library for terminal games";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "ansi-terminal-game_1_9_3_0" = callPackage
-    ({ mkDerivation, ansi-terminal, array, base, bytestring, cereal
-     , clock, colour, containers, exceptions, file-embed, hspec
-     , hspec-discover, linebreak, mintty, mtl, QuickCheck, random, split
-     , terminal-size, timers-tick, unidecode
-     }:
-     mkDerivation {
-       pname = "ansi-terminal-game";
        version = "1.9.3.0";
        sha256 = "1yy7hzdcawdmwl8wqzabbamzjdg260xbwryj0hdjn7b0n6qlqymk";
        isLibrary = true;
@@ -36094,7 +36088,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "cross-platform library for terminal games";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ansi-terminal-types" = callPackage
@@ -36837,6 +36830,8 @@ self: {
        pname = "apecs-effectful";
        version = "0.1.0.0";
        sha256 = "1bd7ga74m07ck49z22jkjiyjxng0cv1dkrv560195fv436wwfzdi";
+       revision = "1";
+       editedCabalFile = "1myzk3y9yynrrgbq57zcj7v8qnq7jzgz1n9s2c4j944w91d6v87m";
        libraryHaskellDepends = [ apecs base effectful-core vector ];
        description = "Adaptation of the apecs library for the effectful ecosystem";
        license = lib.licenses.bsd3;
@@ -38606,8 +38601,8 @@ self: {
      }:
      mkDerivation {
        pname = "arduino-copilot";
-       version = "1.7.7";
-       sha256 = "13ixjxzfq3f25an3z7ahrav9nr84f93wb95pwjykybm2vjnn3dkv";
+       version = "1.7.8";
+       sha256 = "0gb7w8sp75z9b3avlpy2cli60rxfyxkdppaf1pmlhsgnlf2fjjz6";
        libraryHaskellDepends = [
          base containers copilot copilot-c99 copilot-language directory
          filepath mtl optparse-applicative sketch-frp-copilot temporary
@@ -41008,8 +41003,8 @@ self: {
     ({ mkDerivation, base, ghc-prim, primitive }:
      mkDerivation {
        pname = "atomic-primops";
-       version = "0.8.4";
-       sha256 = "0gidqyk913vhcz3q4vnpadx3vkkrwb66rqhsxvdba8g2p5z63a12";
+       version = "0.8.5";
+       sha256 = "07wbza3xrgxbbdajgayyvbdki69v12rz2z3yfiy0gf5dqfa5g98w";
        libraryHaskellDepends = [ base ghc-prim primitive ];
        description = "A safe approach to CAS and other atomic ops in Haskell";
        license = lib.licenses.bsd3;
@@ -41119,8 +41114,8 @@ self: {
      }:
      mkDerivation {
        pname = "atp-haskell";
-       version = "1.14";
-       sha256 = "1l04xjzspi63q0h3y4xqiagr0ahajjj8x7wjw5p5y9vrxrfxj2rm";
+       version = "1.14.2";
+       sha256 = "1gwcs0iafg5q2n14nrksd152p3a84wisp451q73h3pph9ldrq2h3";
        libraryHaskellDepends = [
          applicative-extras base containers extra HUnit mtl parsec pretty
          template-haskell time
@@ -41577,8 +41572,8 @@ self: {
      }:
      mkDerivation {
        pname = "attoparsec-framer";
-       version = "0.1.0.1";
-       sha256 = "1mj67jbdmc6svjrhhq5q0vcqp64p2bllb0py8qq0fin5bdnk4445";
+       version = "0.1.0.2";
+       sha256 = "1vyfm42xvlr86jjjswb7w2xg3rl49nmbm2f644s1chgbxg5121i7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -43278,22 +43273,21 @@ self: {
   "aws-lambda-haskell-runtime" = callPackage
     ({ mkDerivation, aeson, base, bytestring, case-insensitive
      , exceptions, hashable, hspec, http-client, http-types, mtl, path
-     , path-io, safe-exceptions-checked, template-haskell, text
+     , path-io, safe-exceptions, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime";
-       version = "4.1.2";
-       sha256 = "1c5m9mmkcrgz5hd1swinfcrblkmc4yg142kzlfxfcxnyray3digm";
+       version = "4.3.2";
+       sha256 = "0j8jn6lzsca7iv7xhrzk1306yyn74hx1ryi7nf8lzb1ji1rggy02";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive exceptions hashable
-         http-client http-types mtl path path-io safe-exceptions-checked
+         http-client http-types mtl path path-io safe-exceptions
          template-haskell text unordered-containers
        ];
        testHaskellDepends = [ base hspec ];
        description = "Haskell runtime for AWS Lambda";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aws-lambda-haskell-runtime-wai" = callPackage
@@ -43317,7 +43311,6 @@ self: {
        ];
        description = "Run wai applications on AWS Lambda";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aws-lambda-runtime" = callPackage
@@ -44519,6 +44512,22 @@ self: {
        broken = true;
      }) {};
 
+  "bank-holiday-germany" = callPackage
+    ({ mkDerivation, base, doctest, hedgehog, hspec, hspec-hedgehog
+     , time
+     }:
+     mkDerivation {
+       pname = "bank-holiday-germany";
+       version = "1.0.0.1";
+       sha256 = "0pxsfk51pqxgd74l46k0sfagkxjmkm4lv1zj37k8kq8a6i01m4rd";
+       libraryHaskellDepends = [ base time ];
+       testHaskellDepends = [
+         base doctest hedgehog hspec hspec-hedgehog time
+       ];
+       description = "German bank holidays and public holidays";
+       license = lib.licenses.mit;
+     }) {};
+
   "bank-holiday-usa" = callPackage
     ({ mkDerivation, base, hspec, HUnit, QuickCheck, time }:
      mkDerivation {
@@ -44784,12 +44793,12 @@ self: {
        broken = true;
      }) {};
 
-  "base_4_19_0_0" = callPackage
+  "base_4_19_1_0" = callPackage
     ({ mkDerivation, ghc-bignum, ghc-prim, rts }:
      mkDerivation {
        pname = "base";
-       version = "4.19.0.0";
-       sha256 = "03cipapd0b522zsh65a65q4nvrq8f6himh7sdag49fpr2hnw4vr6";
+       version = "4.19.1.0";
+       sha256 = "0f1ynq04cmvyn26krin835q0zygiy541a6fdcqazwdg2sx5pi3ls";
        libraryHaskellDepends = [ ghc-bignum ghc-prim rts ];
        description = "Basic libraries";
        license = lib.licenses.bsd3;
@@ -46458,8 +46467,8 @@ self: {
      }:
      mkDerivation {
        pname = "bearriver";
-       version = "0.14.6";
-       sha256 = "01jkfp1z3dk744qbyhjpvsjiikfmfvf34dqzz2hdiisfvpxwmmqy";
+       version = "0.14.7";
+       sha256 = "1yxjqsy24af1i36haax1bqizmwgimqkgygwimqrcmbazmrjdcfj2";
        libraryHaskellDepends = [
          base deepseq dunai MonadRandom mtl simple-affine-space transformers
        ];
@@ -46491,10 +46500,8 @@ self: {
      }:
      mkDerivation {
        pname = "bech32";
-       version = "1.1.4";
-       sha256 = "0f4s2dc5dh5gq1hqcdlbvddk93h117nji9nca0sfqzbx04n3sma8";
-       revision = "1";
-       editedCabalFile = "1w86km0kq03vzp7j58sva1a9xlspbkh2zycl3c8r34jjpbqxzyw9";
+       version = "1.1.5";
+       sha256 = "0hcckmb09svpyk5wrb05vl144ap1dml17khb1bsr5jyp01yjdr7x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46522,8 +46529,8 @@ self: {
      }:
      mkDerivation {
        pname = "bech32-th";
-       version = "1.1.1";
-       sha256 = "0548an9v6y14qalb1agl5bskcmpb9865lxyap162xzgskd9s4iik";
+       version = "1.1.5";
+       sha256 = "15k2ak8nkxanzcgl8wbsyan9aph5ci0f51zrzhyrrk1hnk70yj6w";
        libraryHaskellDepends = [ base bech32 template-haskell text ];
        testHaskellDepends = [ base bech32 hspec template-haskell ];
        testToolDepends = [ hspec-discover ];
@@ -46850,12 +46857,13 @@ self: {
      }) {};
 
   "benri-hspec" = callPackage
-    ({ mkDerivation, base, hspec }:
+    ({ mkDerivation, base, doctest, hspec }:
      mkDerivation {
        pname = "benri-hspec";
-       version = "0.1.0.1";
-       sha256 = "11x7dsp6hmz1an1nm8076lgdvgd8r67hl54p81jprpi8m0lh6mqa";
+       version = "0.1.0.2";
+       sha256 = "10c4ivnszsk8nnd8l5dvqx61lw1d23l9d99gk50wz9y3yx514ciy";
        libraryHaskellDepends = [ base hspec ];
+       testHaskellDepends = [ base doctest hspec ];
        description = "Simplify tests where Either or Maybe types are returned from monadic code";
        license = lib.licenses.bsd3;
      }) {};
@@ -47130,17 +47138,18 @@ self: {
   "bhoogle" = callPackage
     ({ mkDerivation, base, brick, bytestring, containers, directory
      , filepath, hoogle, lens, process, protolude, text, time
-     , typed-process, vector, vty
+     , typed-process, vector, vty, vty-crossplatform
      }:
      mkDerivation {
        pname = "bhoogle";
-       version = "0.1.4.2";
-       sha256 = "1i0d8250y817sgkd54dcvwng3biyz93rwsj03lg596nllsi2gcr4";
+       version = "0.1.4.3";
+       sha256 = "1qsvzsfn7cysz4p62pwba207h2q9khii1vbwgsgn01qwvhc0vm15";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          base brick bytestring containers directory filepath hoogle lens
          process protolude text time typed-process vector vty
+         vty-crossplatform
        ];
        description = "Simple terminal GUI for local hoogle";
        license = "(BSD-3-Clause OR Apache-2.0)";
@@ -50449,6 +50458,8 @@ self: {
        pname = "bitvec";
        version = "1.1.5.0";
        sha256 = "1ifyz0lsmgqz8yjyx4887m1wnm7ar389k6gkvcnk9mg1bgp7rll3";
+       revision = "1";
+       editedCabalFile = "14dkxk8hnj9d2d52sgfwv303mdnw3b4xirac1y9qm7hsnxvgsgnb";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-bignum primitive vector
        ];
@@ -50761,8 +50772,8 @@ self: {
        pname = "blank-canvas";
        version = "0.7.4";
        sha256 = "1qm0ms3jk8m5zv81lh3pn5n04afyq7bpn9lc137ddmm9blnkzndi";
-       revision = "1";
-       editedCabalFile = "0rpafc1zmq73dilwqdhqxk74xg3fxzq8jk0i8xgbfwg388gdlf23";
+       revision = "2";
+       editedCabalFile = "1ksinbzz47750ka0cfam41v3pfqyw2dvzj8xypq6q317zjliicab";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat-batteries base64-bytestring bytestring
@@ -50975,19 +50986,14 @@ self: {
      }) {};
 
   "blaze-colonnade" = callPackage
-    ({ mkDerivation, base, blaze-html, blaze-markup, colonnade, doctest
-     , profunctors, text
-     }:
+    ({ mkDerivation, base, blaze-html, blaze-markup, colonnade, text }:
      mkDerivation {
        pname = "blaze-colonnade";
-       version = "1.2.2.1";
-       sha256 = "1wh0q72qv2s6a42i13lqb94i0b5bgmqwqw7d5xy89dc76j0ncd2d";
-       revision = "3";
-       editedCabalFile = "0ps0w3w5h8yzws5biip7yqn097zr2jc4gcih5w7v54cvi3vgpdjc";
+       version = "1.2.3.0";
+       sha256 = "066897334qg4z3gycjikpz37fwgkif9kg0m185h2rhzp9jrbnmz6";
        libraryHaskellDepends = [
-         base blaze-html blaze-markup colonnade profunctors text
+         base blaze-html blaze-markup colonnade text
        ];
-       testHaskellDepends = [ base colonnade doctest ];
        description = "blaze-html backend for colonnade";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -51016,10 +51022,8 @@ self: {
      }:
      mkDerivation {
        pname = "blaze-html";
-       version = "0.9.1.2";
-       sha256 = "0k1r1hddjgqighazcazxrx6xfhvy2gm8il8l82ainv3cai13yl30";
-       revision = "4";
-       editedCabalFile = "0l645sbq8igqgvqnjdq89kys0vv8zf8l0x895w9742rj50wash1f";
+       version = "0.9.2.0";
+       sha256 = "13v0l776b4dmzh9p6ssi8xllqcrydnbypbgwdbbs6i3nkzrjwm35";
        libraryHaskellDepends = [
          base blaze-builder blaze-markup bytestring text
        ];
@@ -51382,8 +51386,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-api";
-       version = "0.9.0.0";
-       sha256 = "14p910nrzcypw66jsqgjmzj206vqghpca88qvid2vahqabbwnwrd";
+       version = "0.10.0.0";
+       sha256 = "1l7sj5b4f8byvmz9090wl6rq6fdhx2y8xiqnwcxmn3z487858w6w";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default-class deriving-aeson
          lens safe-money servant servant-docs servant-multipart-api
@@ -51749,6 +51753,33 @@ self: {
        broken = true;
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
 
+  "bluefin" = callPackage
+    ({ mkDerivation, bluefin-internal }:
+     mkDerivation {
+       pname = "bluefin";
+       version = "0.0.1.0";
+       sha256 = "0q0i6slarwp6d1ndmyajh3qya7xrslr1z8pds2vxsmz46zsdl3am";
+       libraryHaskellDepends = [ bluefin-internal ];
+       description = "The Bluefin effect system";
+       license = lib.licenses.mit;
+     }) {};
+
+  "bluefin-internal" = callPackage
+    ({ mkDerivation, base, monad-control, transformers
+     , transformers-base, unliftio-core
+     }:
+     mkDerivation {
+       pname = "bluefin-internal";
+       version = "0.0.1.0";
+       sha256 = "017b9wbxd2m1jc6m0lgfy1j8mmm6n3xgps3ri0z0jxni738qfb4n";
+       libraryHaskellDepends = [
+         base monad-control transformers transformers-base unliftio-core
+       ];
+       testHaskellDepends = [ base ];
+       description = "The Bluefin effect system, internals";
+       license = lib.licenses.mit;
+     }) {};
+
   "bluemix-sdk" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-client, http-types
      , text, vector
@@ -51885,32 +51916,6 @@ self: {
 
   "bnb-staking-csvs" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, cmdargs
-     , cointracking-imports, hedgehog, req, scientific, tasty
-     , tasty-hedgehog, tasty-hunit, text, time
-     }:
-     mkDerivation {
-       pname = "bnb-staking-csvs";
-       version = "0.2.1.0";
-       sha256 = "1cvkfj1x0z7bv67ihzf3h8k4r4fpvdfjhiair32k08k52lz2q6h7";
-       revision = "1";
-       editedCabalFile = "1idi68azdq7frjdzc99zzvrmhj5q1lv94hf8a4024ginili7siys";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring cassava cmdargs cointracking-imports req
-         scientific text time
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base hedgehog tasty tasty-hedgehog tasty-hunit
-       ];
-       description = "Generate CSV Exports of Your BNB Staking Rewards";
-       license = lib.licenses.bsd3;
-       mainProgram = "bnb-staking-csvs";
-     }) {};
-
-  "bnb-staking-csvs_0_2_2_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cassava, cmdargs
      , cointracking-imports, containers, hedgehog, req, scientific
      , tasty, tasty-hedgehog, tasty-hunit, text, time
      }:
@@ -51930,7 +51935,6 @@ self: {
        ];
        description = "Generate CSV Exports of Your BNB Staking Rewards";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "bnb-staking-csvs";
      }) {};
 
@@ -52564,6 +52568,29 @@ self: {
        mainProgram = "boomwhacker";
      }) {};
 
+  "boomwhacker_0_0_2" = callPackage
+    ({ mkDerivation, array, base, containers, event-list, filepath
+     , HPDF, midi, non-empty, non-negative, optparse-applicative
+     , shell-utility, time, transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "boomwhacker";
+       version = "0.0.2";
+       sha256 = "0q5cq5j7dy1qm5jqpcl1imwiqqm0h21yvqwnvabsjnfrvfvryqg2";
+       isLibrary = false;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       executableHaskellDepends = [
+         array base containers event-list filepath HPDF midi non-empty
+         non-negative optparse-applicative shell-utility time transformers
+         utility-ht
+       ];
+       description = "Convert MIDI file to play-along boomwhacker animation";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "boomwhacker";
+     }) {};
+
   "boop" = callPackage
     ({ mkDerivation, base, mtl, text }:
      mkDerivation {
@@ -52818,6 +52845,42 @@ self: {
        broken = true;
      }) {};
 
+  "botan-bindings" = callPackage
+    ({ mkDerivation, base, botan, bytestring }:
+     mkDerivation {
+       pname = "botan-bindings";
+       version = "0.0.1.0";
+       sha256 = "0svb55s3y93lj1nk1574dpvinzw1fcy306gl6dcxxszxfm9ndng9";
+       libraryHaskellDepends = [ base bytestring ];
+       libraryPkgconfigDepends = [ botan ];
+       description = "Raw Botan bindings";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {botan = null;};
+
+  "botan-low" = callPackage
+    ({ mkDerivation, base, botan-bindings, bytestring, crypton, deepseq
+     , hspec, QuickCheck, tasty-bench, text
+     }:
+     mkDerivation {
+       pname = "botan-low";
+       version = "0.0.1.0";
+       sha256 = "0bm4dilvy1hdpf9flx7686djp0bjs2v7zi9iq937a6f20vqqwzvd";
+       libraryHaskellDepends = [
+         base botan-bindings bytestring deepseq text
+       ];
+       testHaskellDepends = [
+         base botan-bindings bytestring hspec QuickCheck
+       ];
+       benchmarkHaskellDepends = [
+         base botan-bindings bytestring crypton tasty-bench
+       ];
+       description = "Low-level Botan bindings";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "both" = callPackage
     ({ mkDerivation, base, semigroups, zero }:
      mkDerivation {
@@ -53044,7 +53107,6 @@ self: {
        ];
        description = "Read bower.json from Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bowntz" = callPackage
@@ -53327,8 +53389,8 @@ self: {
        pname = "break";
        version = "1.0.2";
        sha256 = "0wpj29a8lpimb0mjif4f6jmx6q9pkpkn5xplmkbjzkqgxi0bp23n";
-       revision = "2";
-       editedCabalFile = "0kl7xs0w7q0i4zjdbi68w62sjxvpvzrz3x4k4swxrqqgr3sic0gp";
+       revision = "3";
+       editedCabalFile = "034q1k51xqhyycr5plmmr5jg24ylw6qx5m4bcx2v2b2s9858kqn9";
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Break from a loop";
        license = lib.licenses.bsd3;
@@ -53357,8 +53419,8 @@ self: {
      }:
      mkDerivation {
        pname = "breakpoint";
-       version = "0.1.3.0";
-       sha256 = "0dx2b9gk1hpkr5vv8w2jbai83ynz714ygg7kc4wipvw5f1hy6c85";
+       version = "0.1.3.1";
+       sha256 = "1ayf9mwlcawdlr5pm86zca6zwvi7gcrz3vxpmjflz0vlkzsi9nfc";
        libraryHaskellDepends = [
          ansi-terminal base containers deepseq ghc haskeline mtl
          pretty-simple template-haskell text transformers
@@ -53550,8 +53612,8 @@ self: {
     ({ mkDerivation, base, brick, containers, microlens, vector }:
      mkDerivation {
        pname = "brick-list-skip";
-       version = "0.1.1.11";
-       sha256 = "10xay8r334lzlzyfdq7prd2dxx82cb9sriwi82r5awfzf9ybac8n";
+       version = "0.1.1.12";
+       sha256 = "0jvkxp4hvb4jspy0s9i5xkyzkr6ncxiwpsf27vr38v7w5d20zkwh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base brick containers microlens vector ];
@@ -53605,8 +53667,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick-tabular-list";
-       version = "2.2.0.9";
-       sha256 = "16y2qw6xcfm2ayn376ayc48qd3wn3pbwqwb5r79ab3400dpcbj0x";
+       version = "2.2.0.10";
+       sha256 = "03fqa71c3nm66gjpyvk49bkfaakxanmniaf10x00i0gk14k047r7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -55430,22 +55492,6 @@ self: {
     ({ mkDerivation, base, primitive, primitive-unaligned, wide-word }:
      mkDerivation {
        pname = "byte-order";
-       version = "0.1.3.0";
-       sha256 = "0lr5ijhc165qhviabklnl0zpbk5400wb1fqd1xn7x0ga1vvclxhl";
-       revision = "2";
-       editedCabalFile = "136zdv7hfxp4vyd5ckc9rmadg8szjr7vrwxyjq6jlhapgh3afcqh";
-       libraryHaskellDepends = [
-         base primitive primitive-unaligned wide-word
-       ];
-       testHaskellDepends = [ base primitive wide-word ];
-       description = "Portable big-endian and little-endian conversions";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "byte-order_0_1_3_1" = callPackage
-    ({ mkDerivation, base, primitive, primitive-unaligned, wide-word }:
-     mkDerivation {
-       pname = "byte-order";
        version = "0.1.3.1";
        sha256 = "0yhz0rh3a3yq0c3ypjr3aj674qfjpcyngqy56rpijsqsim3ym67b";
        libraryHaskellDepends = [
@@ -55454,7 +55500,6 @@ self: {
        testHaskellDepends = [ base primitive wide-word ];
        description = "Portable big-endian and little-endian conversions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "byteable" = callPackage
@@ -55485,36 +55530,6 @@ self: {
   "bytebuild" = callPackage
     ({ mkDerivation, base, byteslice, bytestring, gauge
      , haskell-src-meta, integer-logarithms, natural-arithmetic
-     , primitive, primitive-offset, primitive-unlifted, QuickCheck
-     , quickcheck-classes, quickcheck-instances, run-st, tasty
-     , tasty-hunit, tasty-quickcheck, template-haskell, text, text-short
-     , vector, wide-word, zigzag
-     }:
-     mkDerivation {
-       pname = "bytebuild";
-       version = "0.3.15.0";
-       sha256 = "1hdypq9jmsgg8ccvh9giz2ccazlrmnvjrbm773v206h0mbchi5ig";
-       libraryHaskellDepends = [
-         base byteslice bytestring haskell-src-meta integer-logarithms
-         natural-arithmetic primitive primitive-offset run-st
-         template-haskell text text-short wide-word zigzag
-       ];
-       testHaskellDepends = [
-         base byteslice bytestring natural-arithmetic primitive
-         primitive-unlifted QuickCheck quickcheck-classes
-         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
-         text-short vector wide-word
-       ];
-       benchmarkHaskellDepends = [
-         base byteslice gauge natural-arithmetic primitive text-short
-       ];
-       description = "Build byte arrays";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "bytebuild_0_3_16_2" = callPackage
-    ({ mkDerivation, base, byteslice, bytestring, gauge
-     , haskell-src-meta, integer-logarithms, natural-arithmetic
      , primitive, primitive-offset, QuickCheck, quickcheck-instances
      , run-st, tasty, tasty-hunit, tasty-quickcheck, template-haskell
      , text, text-short, wide-word, zigzag
@@ -55538,7 +55553,6 @@ self: {
        ];
        description = "Build byte arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bytedump" = callPackage
@@ -55581,20 +55595,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "bytehash_0_1_1_1" = callPackage
-    ({ mkDerivation, base, byte-order, byteslice, bytesmith, bytestring
-     , containers, entropy, gauge, hedgehog, primitive
-     , primitive-unlifted, split, tasty, tasty-hedgehog, tasty-hunit
-     , transformers, unordered-containers
+  "bytehash_0_1_1_2" = callPackage
+    ({ mkDerivation, base, byteslice, bytestring, containers, entropy
+     , gauge, hedgehog, primitive, primitive-unlifted, split, tasty
+     , tasty-hedgehog, tasty-hunit, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "bytehash";
-       version = "0.1.1.1";
-       sha256 = "1b43d89b10fa9wx1z19vv1wsslvs25cqn7v2s2514fdghsqq89j9";
-       revision = "1";
-       editedCabalFile = "0hd1qz4i4kjbvpk800wnifjnq6l78qjf36gy9m24w8l6pvp9ap4r";
+       version = "0.1.1.2";
+       sha256 = "1vj08viavj5finkwq6hmljhf31q80akfiqxxiw7q4awpcgbgbwdc";
        libraryHaskellDepends = [
-         base byte-order byteslice bytestring containers entropy primitive
+         base byteslice bytestring containers entropy primitive
          primitive-unlifted transformers
        ];
        testHaskellDepends = [
@@ -55602,7 +55613,7 @@ self: {
          tasty-hunit
        ];
        benchmarkHaskellDepends = [
-         base byteslice bytesmith bytestring entropy gauge primitive
+         base byteslice bytestring entropy gauge primitive
          primitive-unlifted split unordered-containers
        ];
        description = "Universal hashing of bytes";
@@ -55748,29 +55759,6 @@ self: {
      }:
      mkDerivation {
        pname = "byteslice";
-       version = "0.2.13.0";
-       sha256 = "1jp61krqfk5nqqbk2a4h8pz15hdm2kd8bvmpa29vvhx96qdp19cx";
-       libraryHaskellDepends = [
-         base bytestring natural-arithmetic primitive primitive-addr
-         primitive-unlifted run-st text text-short tuples vector
-       ];
-       testHaskellDepends = [
-         base bytestring primitive quickcheck-classes tasty tasty-hunit
-         tasty-quickcheck text transformers
-       ];
-       benchmarkHaskellDepends = [ base gauge primitive ];
-       description = "Slicing managed and unmanaged memory";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "byteslice_0_2_13_2" = callPackage
-    ({ mkDerivation, base, bytestring, gauge, natural-arithmetic
-     , primitive, primitive-addr, primitive-unlifted, quickcheck-classes
-     , run-st, tasty, tasty-hunit, tasty-quickcheck, text, text-short
-     , transformers, tuples, vector
-     }:
-     mkDerivation {
-       pname = "byteslice";
        version = "0.2.13.2";
        sha256 = "1z1zjhhnsrnr2qbldl6kk756cy5mim1pv02zy3p1vb9ahq7v7iv7";
        libraryHaskellDepends = [
@@ -55784,44 +55772,44 @@ self: {
        benchmarkHaskellDepends = [ base gauge ];
        description = "Slicing managed and unmanaged memory";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bytesmith" = callPackage
     ({ mkDerivation, base, byte-order, byteslice, bytestring
-     , contiguous, gauge, natural-arithmetic, primitive, run-st, tasty
+     , contiguous, gauge, natural-arithmetic, primitive, tasty
      , tasty-hunit, tasty-quickcheck, text-short, wide-word
      }:
      mkDerivation {
        pname = "bytesmith";
-       version = "0.3.11.0";
-       sha256 = "0c9sgpdrcxsfqgk23sqsni36q12pqx33c1qdw74jh56bgnvx2svz";
+       version = "0.3.11.1";
+       sha256 = "1vl14ndc9ys5480g0zsrsrdg0r84r2if9wrvjsyx0vxlj4phg3vp";
        libraryHaskellDepends = [
          base byteslice bytestring contiguous natural-arithmetic primitive
-         run-st text-short wide-word
+         text-short wide-word
        ];
        testHaskellDepends = [
          base byte-order byteslice primitive tasty tasty-hunit
          tasty-quickcheck text-short wide-word
        ];
-       benchmarkHaskellDepends = [
-         base byteslice bytestring gauge primitive
-       ];
+       benchmarkHaskellDepends = [ base gauge primitive ];
        description = "Nonresumable byte parser";
        license = lib.licenses.bsd3;
      }) {};
 
-  "bytestring_0_12_0_2" = callPackage
-    ({ mkDerivation, base, deepseq, ghc-prim, QuickCheck, random, tasty
-     , tasty-bench, tasty-quickcheck, template-haskell, transformers
+  "bytestring_0_12_1_0" = callPackage
+    ({ mkDerivation, base, deepseq, ghc-prim, QuickCheck, random, syb
+     , tasty, tasty-bench, tasty-quickcheck, template-haskell
+     , transformers
      }:
      mkDerivation {
        pname = "bytestring";
-       version = "0.12.0.2";
-       sha256 = "0gmsgnpkmgy7a2rjjrfs3r0n3fvr92dm5c8sc6ymc9h6r3xyagx9";
+       version = "0.12.1.0";
+       sha256 = "136c0v2brc4a1fpbqplpqxj4kzd5r78lgm5qvdnwv9blxykbihzb";
+       revision = "1";
+       editedCabalFile = "1f846kw3jal10x6r3xnzd97mwzjzr6g510r907j46w8ijwf9xrwq";
        libraryHaskellDepends = [ base deepseq ghc-prim template-haskell ];
        testHaskellDepends = [
-         base deepseq ghc-prim QuickCheck tasty tasty-quickcheck
+         base deepseq ghc-prim QuickCheck syb tasty tasty-quickcheck
          template-haskell transformers
        ];
        benchmarkHaskellDepends = [ base deepseq random tasty-bench ];
@@ -56393,6 +56381,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bz2_1_0_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, bzip2-clib, bzlib, c2hs, cpphs
+     , criterion, deepseq, directory, filepath, tasty, tasty-golden
+     , tasty-hunit, temporary
+     }:
+     mkDerivation {
+       pname = "bz2";
+       version = "1.0.1.1";
+       sha256 = "1pa7qswh3sl9d0pbil14c8w8dvqs4va97ich2fck0gw25y4dwphn";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base bytestring bzip2-clib ];
+       libraryToolDepends = [ c2hs ];
+       testHaskellDepends = [
+         base bytestring deepseq directory filepath tasty tasty-golden
+         tasty-hunit
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring bzlib criterion filepath temporary
+       ];
+       benchmarkToolDepends = [ cpphs ];
+       description = "Bindings to libbz2";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bzip-signature" = callPackage
     ({ mkDerivation, base, bytestring, composition-prelude, lens }:
      mkDerivation {
@@ -56406,6 +56419,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bzip2-clib" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "bzip2-clib";
+       version = "1.0.8";
+       sha256 = "0iax0fq5y24lcjkjsk66khry9s6v9hhd3zfrwg8mvgs07waq2m59";
+       doHaddock = false;
+       description = "bzip2 C sources";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "bzlib" = callPackage
     ({ mkDerivation, base, bytestring, bzip2 }:
      mkDerivation {
@@ -56420,6 +56444,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) bzip2;};
 
+  "bzlib_0_5_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, bzip2, QuickCheck, tasty
+     , tasty-hunit, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "bzlib";
+       version = "0.5.2.0";
+       sha256 = "0dlrlzrixgy239kpmn451hffqvvikaydhhsl1vvxpnic0yrvi73i";
+       libraryHaskellDepends = [ base bytestring ];
+       librarySystemDepends = [ bzip2 ];
+       testHaskellDepends = [
+         base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "Compression and decompression in the bzip2 format";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) bzip2;};
+
   "bzlib-conduit" = callPackage
     ({ mkDerivation, base, bindings-DSL, bytestring, bzip2, conduit
      , data-default-class, hspec, mtl, random, resourcet
@@ -56446,6 +56488,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) bzip2;};
 
+  "bzlib-conduit_0_3_0_3" = callPackage
+    ({ mkDerivation, base, bindings-DSL, bytestring, bzip2, conduit
+     , data-default-class, hspec, mtl, random, resourcet
+     }:
+     mkDerivation {
+       pname = "bzlib-conduit";
+       version = "0.3.0.3";
+       sha256 = "0v7dvdwh9f7sic7b2m6lzz1brpa7r1k8ab7pml20fqq6vkmfm5l1";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bindings-DSL bytestring conduit data-default-class mtl
+         resourcet
+       ];
+       librarySystemDepends = [ bzip2 ];
+       testHaskellDepends = [
+         base bindings-DSL bytestring conduit data-default-class hspec mtl
+         random resourcet
+       ];
+       benchmarkHaskellDepends = [
+         base bindings-DSL bytestring conduit data-default-class mtl
+         resourcet
+       ];
+       description = "Streaming compression/decompression via conduits";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) bzip2;};
+
   "bzlib-conduit-jappie" = callPackage
     ({ mkDerivation, base, bindings-DSL, bytestring, bzip2, conduit
      , data-default-class, hspec, mtl, random, resourcet
@@ -57030,35 +57099,6 @@ self: {
     ({ mkDerivation, ansi-wl-pprint, base, bifunctors, Cabal
      , containers, data-default, debian, deepseq, Diff, directory
      , exceptions, filepath, hsemail, HUnit, lens, mtl, network-uri
-     , newtype-generics, optparse-applicative, parsec, pretty, process
-     , pureMD5, regex-tdfa, syb, text, unix, unliftio, utf8-string
-     }:
-     mkDerivation {
-       pname = "cabal-debian";
-       version = "5.2.2";
-       sha256 = "1xafkjh4g60gcgrcl1l8xyla3firjxkaaks44plq1z9gnnwlfb90";
-       revision = "1";
-       editedCabalFile = "10saybpzsp3vwlbb3dv9glnmz8g9i79k3n3l2klmwmnggi8s35ca";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         ansi-wl-pprint base bifunctors Cabal containers data-default debian
-         deepseq Diff directory exceptions filepath hsemail HUnit lens mtl
-         network-uri newtype-generics optparse-applicative parsec pretty
-         process pureMD5 regex-tdfa syb text unix unliftio utf8-string
-       ];
-       executableHaskellDepends = [ base Cabal debian lens mtl pretty ];
-       description = "Create a Debianization for a Cabal package";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "cabal-debian";
-       broken = true;
-     }) {};
-
-  "cabal-debian_5_2_3" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, bifunctors, Cabal
-     , containers, data-default, debian, deepseq, Diff, directory
-     , exceptions, filepath, hsemail, HUnit, lens, mtl, network-uri
      , optparse-applicative, parsec, pretty, process, pureMD5
      , regex-tdfa, syb, text, unix, unliftio, utf8-string
      }:
@@ -57294,8 +57334,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-fmt";
-       version = "0.1.10";
-       sha256 = "16h90yjchld3fqxwgm2qc7a9jnrrvadn3vrsbgcx8vjrccb7dg5m";
+       version = "0.1.11";
+       sha256 = "0ncgicdvajw83h1542vrw574ih3bx3j4pxk5fzjlxhhy2rfzwdvm";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -57351,29 +57391,27 @@ self: {
 
   "cabal-gild" = callPackage
     ({ mkDerivation, base, bytestring, Cabal-syntax, containers
-     , directory, exceptions, filepath, mtl, parsec, pretty, QuickCheck
-     , tasty, tasty-hunit, tasty-quickcheck
+     , directory, exceptions, filepath, hspec, parsec, pretty, text
+     , transformers
      }:
      mkDerivation {
        pname = "cabal-gild";
-       version = "0.2.1.1";
-       sha256 = "1qrcbipn9c6rwqywhr19blk4dlr1skl92kkqasy6v1qgsm43i03l";
+       version = "1.3.0.1";
+       sha256 = "18sa7c3rniczb218lzi9iizfi1czllp9hy4ai1djz4hvqvbmlh9r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring Cabal-syntax containers directory exceptions
-         filepath mtl parsec pretty
+         filepath parsec pretty text transformers
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         base bytestring Cabal-syntax containers filepath QuickCheck tasty
-         tasty-hunit tasty-quickcheck
+         base bytestring containers exceptions filepath hspec transformers
        ];
-       description = "Format .cabal files";
-       license = "GPL-3.0-or-later AND BSD-3-Clause";
-       hydraPlatforms = lib.platforms.none;
+       description = "Formats package descriptions";
+       license = lib.licenses.mit;
        mainProgram = "cabal-gild";
-       broken = true;
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "cabal-graphdeps" = callPackage
@@ -57429,26 +57467,26 @@ self: {
      }) {};
 
   "cabal-hoogle" = callPackage
-    ({ mkDerivation, base, Cabal, containers, directory, extra
-     , filepath, hoogle, optparse-applicative, regex-tdfa, silently
-     , string-interpolate, tasty, tasty-discover, tasty-hunit, text
-     , transformers, typed-process
+    ({ mkDerivation, base, Cabal, cabal-install, Cabal-syntax
+     , co-log-core, containers, directory, extra, filepath, hoogle, lens
+     , optparse-applicative, regex-tdfa, silently, string-interpolate
+     , tasty, tasty-discover, tasty-hunit, text, time, transformers
+     , typed-process
      }:
      mkDerivation {
        pname = "cabal-hoogle";
-       version = "0.1.0.0";
-       sha256 = "0k37r2wismimnj10cclvs1aikzz1c90d40l19hkrk0a47k274yi1";
-       revision = "3";
-       editedCabalFile = "18ra82v3pqws7n3dn4wxs0bsdhlksnimx9vcfri49xx4s9j59a0d";
+       version = "3.10.0.0";
+       sha256 = "0plvb2xg112brxq3ribwhpq8wfmdr43bn8yfcazvy86d6h2bgyyn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base Cabal containers directory extra filepath optparse-applicative
-         regex-tdfa string-interpolate text transformers typed-process
+         base Cabal cabal-install Cabal-syntax co-log-core containers
+         directory extra filepath hoogle lens optparse-applicative
+         regex-tdfa string-interpolate text time transformers typed-process
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base silently tasty tasty-hunit ];
-       testToolDepends = [ hoogle tasty-discover ];
+       testToolDepends = [ tasty-discover ];
        description = "generate hoogle database for cabal project and dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -57497,6 +57535,8 @@ self: {
        pname = "cabal-install";
        version = "3.10.2.1";
        sha256 = "0i42ky2p12cnrsx9fljfbcgdri3xbpzgj0xg4prdfh1dyz2j0dnm";
+       revision = "1";
+       editedCabalFile = "0aqwymsgsa02m71zi98wsn771l8fixhpn6akicvnygplzqdg065i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -57604,8 +57644,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-install-parsers";
-       version = "0.6.1";
-       sha256 = "05nbv660wiab9d5lv80a2ibf1fl7k5vsw6bg1vfkx79pz6ifjh7c";
+       version = "0.6.1.1";
+       sha256 = "1w4kbc7435qbkflb8rkmfgyqw3fynyfqgvy4mxay1r1zfknqvq0b";
        libraryHaskellDepends = [
          aeson base base16-bytestring binary binary-instances bytestring
          Cabal-syntax containers cryptohash-sha256 deepseq directory
@@ -58464,10 +58504,8 @@ self: {
     ({ mkDerivation, base, exceptions, stm, time, transformers }:
      mkDerivation {
        pname = "cached-io";
-       version = "1.2.0.0";
-       sha256 = "066ccn6vgrf5s8blqk2wdmm5lkk8rjf4p43ng1i5nhd16z71kc1a";
-       revision = "1";
-       editedCabalFile = "0yqw087ml8cy9dsn9fl2r6lqrch6cbxy2wxkpsg5kiv4gvacb5zp";
+       version = "1.3.0.0";
+       sha256 = "0bxb59brgfv1rgarsc1cix1g1043zl263j5a0rhpzvd80wj6msi2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base exceptions stm time transformers ];
@@ -58564,8 +58602,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix";
-       version = "1.7";
-       sha256 = "1shjam831qqyd6fvf7idi3z480ay103dc08dpclard4rp4hvfw2z";
+       version = "1.7.2";
+       sha256 = "0fcdg55p6z7wi0q4pn3gs9xc9byhfnpzcxf1g784j4fl3321fy9z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -58609,8 +58647,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix-api";
-       version = "1.7";
-       sha256 = "1xv784bylzlzs345y3xx02bf2d0yp3q0fh92rk59q4wg4z8zb733";
+       version = "1.7.2";
+       sha256 = "1xb5w9hqf0qgwf1b3w3v43civd95m9gqjplrm9wkhjhscqgz3drz";
        libraryHaskellDepends = [
          aeson async base bytestring conduit cryptonite deriving-aeson
          exceptions http-media jose memory nix-narinfo protolude resourcet
@@ -58978,7 +59016,6 @@ self: {
        ];
        description = "A library for declaring, parsing, and invoking text-input based commands";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "calc" = callPackage
@@ -59309,29 +59346,40 @@ self: {
      }) {};
 
   "canadian-income-tax" = callPackage
-    ({ mkDerivation, base, bytestring, ca-province-codes, containers
-     , directory, filepath, forms-data-format, monoid-subclasses
-     , optparse-applicative, rank2classes, tar, template-haskell, text
-     , time, transformers
+    ({ mkDerivation, base, bifunctors, bitwise-enum, bytestring
+     , ca-province-codes, containers, deep-transformations, directory
+     , filepath, forms-data-format, hedgehog, http-types
+     , monoid-subclasses, optparse-applicative, rank2classes, scotty
+     , tar, tasty, tasty-golden, tasty-hedgehog, template-haskell, text
+     , time, typed-process, unix, wai-extra, wai-middleware-static
+     , zip-archive
      }:
      mkDerivation {
        pname = "canadian-income-tax";
-       version = "2022.2.1";
-       sha256 = "0h8ivn9cwhfxbhk9jazx1vlbr80l6fx9bawvgh34wj07y3xflrqp";
+       version = "2023.0";
+       sha256 = "0gys5qy3dihqqqpdvdpxjip7rh5p9h8xkf8fs4y7lbmjrfr5kbsq";
        isLibrary = true;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base ca-province-codes containers forms-data-format
-         monoid-subclasses rank2classes template-haskell text time
+         base bifunctors bitwise-enum bytestring ca-province-codes
+         containers deep-transformations forms-data-format monoid-subclasses
+         rank2classes template-haskell text time typed-process
        ];
        executableHaskellDepends = [
-         base bytestring directory filepath forms-data-format
-         optparse-applicative rank2classes tar text transformers
+         base bytestring ca-province-codes containers directory filepath
+         forms-data-format http-types monoid-subclasses optparse-applicative
+         rank2classes scotty tar text time unix wai-extra
+         wai-middleware-static zip-archive
+       ];
+       testHaskellDepends = [
+         base bytestring ca-province-codes containers deep-transformations
+         directory filepath forms-data-format hedgehog monoid-subclasses
+         rank2classes tasty tasty-golden tasty-hedgehog text time
        ];
        description = "Canadian income tax calculation";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       mainProgram = "complete-canadian-taxes";
      }) {};
 
   "candid" = callPackage
@@ -60739,14 +60787,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "cassava-megaparsec_2_1_0" = callPackage
+  "cassava-megaparsec_2_1_1" = callPackage
     ({ mkDerivation, base, bytestring, cassava, hspec, hspec-megaparsec
      , megaparsec, unordered-containers, vector
      }:
      mkDerivation {
        pname = "cassava-megaparsec";
-       version = "2.1.0";
-       sha256 = "02nw6rxb8yvn09qrbl7msdjl7vk759vyzz8dighgi2b94vzwdanv";
+       version = "2.1.1";
+       sha256 = "11p7cdxmb3s21g3cmzs8gj5ydfml4yzm55xzq92v2pb76wrrcca6";
        libraryHaskellDepends = [
          base bytestring cassava megaparsec unordered-containers vector
        ];
@@ -62866,9 +62914,8 @@ self: {
        executableHaskellDepends = [ base blaze-html bytestring text ];
        description = "Experimental markdown processor";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "cheapskate";
-       broken = true;
+       maintainers = [ lib.maintainers.t4ccer ];
      }) {};
 
   "cheapskate-highlight" = callPackage
@@ -62900,7 +62947,6 @@ self: {
        libraryHaskellDepends = [ base blaze-html cheapskate lucid ];
        description = "Use cheapskate with Lucid";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cheapskate-terminal" = callPackage
@@ -63684,62 +63730,29 @@ self: {
   "chronos" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytebuild, byteslice
      , bytesmith, bytestring, criterion, deepseq, hashable, HUnit
-     , natural-arithmetic, old-locale, primitive, QuickCheck, semigroups
+     , natural-arithmetic, old-locale, primitive, QuickCheck
      , test-framework, test-framework-hunit, test-framework-quickcheck2
      , text, text-short, thyme, time, torsor, vector
      }:
      mkDerivation {
        pname = "chronos";
-       version = "1.1.5.1";
-       sha256 = "0nld5xfqgihqf2lichd5ym60knwsfp40l4mn8qg6pxvydgwdcsw8";
-       revision = "1";
-       editedCabalFile = "13iikpg8m61b56q8h74dhql01yb8jmc52c9chr8kkr7q6knzyw1f";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytebuild byteslice bytesmith bytestring
-         deepseq hashable natural-arithmetic primitive semigroups text
-         text-short torsor vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base bytestring deepseq HUnit QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2 text
-         torsor
-       ];
-       benchmarkHaskellDepends = [
-         attoparsec base bytestring criterion deepseq old-locale QuickCheck
-         text text-short thyme time vector
-       ];
-       description = "A high-performance time library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "chronos_1_1_6_0" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytebuild, byteslice
-     , bytesmith, bytestring, criterion, deepseq, hashable, HUnit
-     , natural-arithmetic, old-locale, primitive, QuickCheck, semigroups
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , text, text-short, thyme, time, torsor, vector
-     }:
-     mkDerivation {
-       pname = "chronos";
-       version = "1.1.6.0";
-       sha256 = "1pd97xlkgyv8q9ig80qh6kdsmxpnlccs1rrnkpj5mwvfffdsf61s";
+       version = "1.1.6.1";
+       sha256 = "0na2gv174g4b6g2x4sd0g6gyij7mxidbsdfcw038acs7a94yb61r";
        libraryHaskellDepends = [
          aeson attoparsec base bytebuild byteslice bytesmith bytestring
-         deepseq hashable natural-arithmetic primitive semigroups text
-         text-short torsor vector
+         deepseq hashable natural-arithmetic primitive text text-short
+         torsor vector
        ];
        testHaskellDepends = [
-         aeson attoparsec base bytestring deepseq HUnit QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2 text
-         torsor
+         aeson attoparsec base bytestring HUnit QuickCheck test-framework
+         test-framework-hunit test-framework-quickcheck2 text torsor
        ];
        benchmarkHaskellDepends = [
          attoparsec base bytestring criterion deepseq old-locale QuickCheck
-         text text-short thyme time vector
+         text text-short thyme time
        ];
        description = "A high-performance time library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "chronos-bench" = callPackage
@@ -63769,8 +63782,8 @@ self: {
        pname = "chs-cabal";
        version = "0.1.1.1";
        sha256 = "0fvf26394rpn9g4f3rp13bq8rrhzs9d95k7nbcpayzml2j9rsv3l";
-       revision = "1";
-       editedCabalFile = "13c4sc83kl6wvx39b1i09mjgsnn4l7ffcynnhsnn9v5y3nzw3j78";
+       revision = "2";
+       editedCabalFile = "1vv61klw11fhnn5ki0z2x0k6d7vvj622bjj05mdlx8sdjqijlbgd";
        libraryHaskellDepends = [ base Cabal chs-deps ];
        description = "Cabal with c2hs dependencies";
        license = lib.licenses.bsd3;
@@ -64017,8 +64030,8 @@ self: {
      }:
      mkDerivation {
        pname = "cimple";
-       version = "0.0.20";
-       sha256 = "0p3z5ipg9j8qlajxc4rq0jnnc1qawlh0dpd0n9bjhn801d9x2qai";
+       version = "0.0.21";
+       sha256 = "1ffqbnsbcza7bfgbbsilyhvifyg3g9j5wpkgmawlw76c5rkk3a7c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -65689,7 +65702,6 @@ self: {
        ];
        description = "Keep your home dir clean by finding old conf files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "clean-home";
      }) {};
 
@@ -67290,8 +67302,8 @@ self: {
      }:
      mkDerivation {
        pname = "co-log";
-       version = "0.6.0.2";
-       sha256 = "1mnwxga6rj7lwp5zqqfqs7d6gi1q4a3ay5gcg3fakh4ci8lfzl47";
+       version = "0.6.1.0";
+       sha256 = "0nfgwb7v5ka59mqcp7d5jbfas6x8rp7xw29aq6h7c66dn1xls5ym";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -67357,7 +67369,6 @@ self: {
        executableHaskellDepends = [ base co-log-core polysemy ];
        description = "Composable Contravariant Comonadic Logging Library";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "play-colog-poly";
      }) {};
 
@@ -67526,8 +67537,8 @@ self: {
      }:
      mkDerivation {
        pname = "code-conjure";
-       version = "0.5.8";
-       sha256 = "00gc0fi6aavga32f1mzsr77sb7c9p3gchimz6mrj6fns0bm04ngc";
+       version = "0.5.14";
+       sha256 = "0n03vhrd1l6lanp8967y3k1wgiaz5bwzw3p1zjg7k2ys91kn69yv";
        libraryHaskellDepends = [
          base express leancheck speculate template-haskell
        ];
@@ -67536,23 +67547,6 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "code-conjure_0_5_10" = callPackage
-    ({ mkDerivation, base, express, leancheck, speculate
-     , template-haskell
-     }:
-     mkDerivation {
-       pname = "code-conjure";
-       version = "0.5.10";
-       sha256 = "0313b06lmymfhn76nra8msrhxqrvw7hzxsibdsb2vndf9pvah2cf";
-       libraryHaskellDepends = [
-         base express leancheck speculate template-haskell
-       ];
-       testHaskellDepends = [ base express leancheck speculate ];
-       description = "synthesize Haskell functions out of partial definitions";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "code-page" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -67754,6 +67748,46 @@ self: {
        broken = true;
      }) {};
 
+  "codet" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , syb, tasty, tasty-golden, template-haskell, text, time
+     , transformers
+     }:
+     mkDerivation {
+       pname = "codet";
+       version = "0.1";
+       sha256 = "1npz5wfm9wk9pq4rpq9d8cwxawx75awbai1k5k62w620an0mq6xj";
+       libraryHaskellDepends = [
+         base bytestring containers template-haskell text time
+       ];
+       testHaskellDepends = [
+         base directory filepath syb tasty tasty-golden template-haskell
+         transformers
+       ];
+       description = "CodeT";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "codet-plugin" = callPackage
+    ({ mkDerivation, base, codet, directory, filepath, ghc, syb, tasty
+     , tasty-golden, template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "codet-plugin";
+       version = "0.1";
+       sha256 = "1npmn69l8n3ni2nd83czq6vvh2j94ik56k9vmprb381mf00zbw5k";
+       libraryHaskellDepends = [ base codet ghc ];
+       testHaskellDepends = [
+         base codet directory filepath syb tasty tasty-golden
+         template-haskell transformers
+       ];
+       description = "GHC type-checker plugin for solving LiftT instances from codet";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "codeworld-api" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, blank-canvas
      , bytestring, cereal, cereal-text, containers, deepseq
@@ -69214,8 +69248,8 @@ self: {
      }:
      mkDerivation {
        pname = "commonmark";
-       version = "0.2.4.1";
-       sha256 = "11h4vjxr0zlqp59ap0146byc2ixkmkn77rf05dw3j122g8a1akz1";
+       version = "0.2.5.1";
+       sha256 = "0j6534by7k7qy5bz89zwh718n4v1rb5b9593mslip1my0z7jkmnd";
        libraryHaskellDepends = [
          base bytestring containers parsec text transformers unicode-data
          unicode-transforms
@@ -69229,15 +69263,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "commonmark_0_2_5" = callPackage
+  "commonmark_0_2_6" = callPackage
     ({ mkDerivation, base, bytestring, containers, parsec, tasty
      , tasty-bench, tasty-hunit, tasty-quickcheck, text, transformers
      , unicode-data, unicode-transforms
      }:
      mkDerivation {
        pname = "commonmark";
-       version = "0.2.5";
-       sha256 = "1gznvwpcaklglz6hzcpz58x502is6y0axq8cicnbv9410vhzw24a";
+       version = "0.2.6";
+       sha256 = "0k0wkvlqbcv7iml9pa56pic4z417qydck22r4kbw51zixkj6rrp7";
        libraryHaskellDepends = [
          base bytestring containers parsec text transformers unicode-data
          unicode-transforms
@@ -69280,8 +69314,29 @@ self: {
      }:
      mkDerivation {
        pname = "commonmark-extensions";
-       version = "0.2.5.1";
-       sha256 = "070ziwjdgmi36h5asvss0shkay0fbpmfs210i3dq587i0v45d6zp";
+       version = "0.2.5.3";
+       sha256 = "1xsd2v0d87xq4w76smbsixkjavg8ykrkmisjm4xiklbpc3l9nb54";
+       libraryHaskellDepends = [
+         base commonmark containers emojis filepath network-uri parsec text
+         transformers
+       ];
+       testHaskellDepends = [
+         base commonmark parsec tasty tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [ base commonmark tasty-bench text ];
+       description = "Pure Haskell commonmark parser";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "commonmark-extensions_0_2_5_4" = callPackage
+    ({ mkDerivation, base, commonmark, containers, emojis, filepath
+     , network-uri, parsec, tasty, tasty-bench, tasty-hunit, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "commonmark-extensions";
+       version = "0.2.5.4";
+       sha256 = "0249j6yn4y6w2n81ph2ydpqqkbx8y7zba96j50a26jx9l62f1yim";
        libraryHaskellDepends = [
          base commonmark containers emojis filepath network-uri parsec text
          transformers
@@ -69292,6 +69347,7 @@ self: {
        benchmarkHaskellDepends = [ base commonmark tasty-bench text ];
        description = "Pure Haskell commonmark parser";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "commonmark-pandoc" = callPackage
@@ -69300,8 +69356,8 @@ self: {
      }:
      mkDerivation {
        pname = "commonmark-pandoc";
-       version = "0.2.2";
-       sha256 = "12xw0mwwh87zw4m8g10z4xk1c1nhlaqkp8q2vdvsv2r5xdfvvd30";
+       version = "0.2.2.1";
+       sha256 = "1kbs165li9fcizzivlb9ajsh9livc7vq8s903g5n829fpwayp431";
        libraryHaskellDepends = [
          base commonmark commonmark-extensions pandoc-types text
        ];
@@ -71474,31 +71530,31 @@ self: {
     ({ mkDerivation, async, base, bytestring, bzlib-conduit, conduit
      , conduit-combinators, conduit-extra, conduit-zstd, containers
      , criterion, deepseq, directory, exceptions, fingertree, HUnit
-     , lzma-conduit, monad-control, mtl, QuickCheck, resourcet, stm
-     , stm-conduit, streaming-commons, tasty, tasty-hunit
-     , tasty-quickcheck, tasty-th, transformers, unliftio-core, vector
+     , lzma, monad-control, mtl, QuickCheck, resourcet, stm, stm-conduit
+     , streaming-commons, tasty, tasty-hunit, tasty-quickcheck, tasty-th
+     , transformers, unliftio-core, vector
      }:
      mkDerivation {
        pname = "conduit-algorithms";
-       version = "0.0.13.0";
-       sha256 = "1i5jq66xylcnk3yhv2m6lhyqfdrwr94w8v67jzwlvja15jv7mj9v";
+       version = "0.0.14.0";
+       sha256 = "1gjw7a1q6spvds53j5bvcxz906s8p3jn3phiq52bf42pfzf7yw4k";
        libraryHaskellDepends = [
          async base bytestring bzlib-conduit conduit conduit-combinators
          conduit-extra conduit-zstd containers deepseq exceptions fingertree
-         lzma-conduit monad-control mtl resourcet stm stm-conduit
-         streaming-commons transformers unliftio-core vector
+         lzma monad-control mtl resourcet stm stm-conduit streaming-commons
+         transformers unliftio-core vector
        ];
        testHaskellDepends = [
          async base bytestring bzlib-conduit conduit conduit-combinators
          conduit-extra conduit-zstd containers deepseq directory exceptions
-         fingertree HUnit lzma-conduit monad-control mtl QuickCheck
-         resourcet stm stm-conduit streaming-commons tasty tasty-hunit
-         tasty-quickcheck tasty-th transformers unliftio-core vector
+         fingertree HUnit lzma monad-control mtl QuickCheck resourcet stm
+         stm-conduit streaming-commons tasty tasty-hunit tasty-quickcheck
+         tasty-th transformers unliftio-core vector
        ];
        benchmarkHaskellDepends = [
          async base bytestring bzlib-conduit conduit conduit-combinators
          conduit-extra conduit-zstd containers criterion deepseq exceptions
-         fingertree lzma-conduit monad-control mtl resourcet stm stm-conduit
+         fingertree lzma monad-control mtl resourcet stm stm-conduit
          streaming-commons transformers unliftio-core vector
        ];
        description = "Conduit-based algorithms";
@@ -72560,20 +72616,19 @@ self: {
      }) {};
 
   "configurator-pg" = callPackage
-    ({ mkDerivation, base, bytestring, containers, filepath, HUnit
-     , megaparsec, protolude, scientific, test-framework
-     , test-framework-hunit, text
+    ({ mkDerivation, base, containers, filepath, HUnit, megaparsec
+     , protolude, scientific, test-framework, test-framework-hunit, text
      }:
      mkDerivation {
        pname = "configurator-pg";
-       version = "0.2.9";
-       sha256 = "137kp7720k8xwxdgpyjd5lrrlmg7p03jb5p60rszy34pfr3zv8v9";
+       version = "0.2.10";
+       sha256 = "12a67pz6d2vpsa5qdaxm8lwl3jjg8f0idd5r3bjnqw22ji39cysj";
        libraryHaskellDepends = [
          base containers megaparsec protolude scientific text
        ];
        testHaskellDepends = [
-         base bytestring filepath HUnit protolude test-framework
-         test-framework-hunit text
+         base filepath HUnit protolude test-framework test-framework-hunit
+         text
        ];
        description = "Reduced parser for configurator-ng config files";
        license = lib.licenses.bsd3;
@@ -73415,6 +73470,7 @@ self: {
        libraryHaskellDepends = [ base base-unicode-symbols containers ];
        description = "Unicode alternatives for common functions and operators";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.t4ccer ];
      }) {};
 
   "containers-verified" = callPackage
@@ -73470,6 +73526,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "context_0_2_1_0" = callPackage
+    ({ mkDerivation, async, base, containers, exceptions, ghc-prim
+     , hspec, hspec-discover
+     }:
+     mkDerivation {
+       pname = "context";
+       version = "0.2.1.0";
+       sha256 = "1z10rhy9l2rssvh65bdb4bg4qfsgxa5mkjyhx86l8dksp8kd6cjm";
+       libraryHaskellDepends = [ base containers exceptions ];
+       testHaskellDepends = [ async base ghc-prim hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Thread-indexed, nested contexts";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "context-free-art" = callPackage
     ({ mkDerivation, base, bifunctors, blaze-markup, blaze-svg
      , directory, HUnit, random, text, text-show
@@ -73526,6 +73598,8 @@ self: {
        pname = "context-http-client";
        version = "0.2.0.2";
        sha256 = "06mr9r9c5vb1y6y532pwpb6dmp2nm0bzzpcjdqwj4h8lncd4pn12";
+       revision = "1";
+       editedCabalFile = "14bh4vg8sj4xm1w4p2dza86qgsb4wk8inmqlp4iwm1slpbzf7y7q";
        libraryHaskellDepends = [ base context http-client ];
        testHaskellDepends = [
          async base bytestring case-insensitive context hspec http-client
@@ -73544,6 +73618,8 @@ self: {
        pname = "context-resource";
        version = "0.2.0.2";
        sha256 = "0rmzl16hxp9vqc4y2j3f3wf73l0xdvi50ff82c4swg12hb0ln5bl";
+       revision = "1";
+       editedCabalFile = "0zmbkhmqqsi9wcip400va1zj007hs54hn8b78n1ampg1xdd8w82s";
        libraryHaskellDepends = [ base context exceptions ];
        testHaskellDepends = [ async base context hspec ];
        testToolDepends = [ hspec-discover ];
@@ -73574,6 +73650,8 @@ self: {
        pname = "context-wai-middleware";
        version = "0.2.0.2";
        sha256 = "0sb18dqg6586fcz3vdhaya9b2vpyj7llnn6nmxzpq7m4qap6j74f";
+       revision = "1";
+       editedCabalFile = "02pdv45v4wwnj8njmwq2g6p4dm18fikrgv0jk6zqmjnqljxwdlmp";
        libraryHaskellDepends = [ base context wai ];
        testHaskellDepends = [
          async base bytestring case-insensitive context hspec http-client
@@ -73591,29 +73669,6 @@ self: {
      }:
      mkDerivation {
        pname = "contiguous";
-       version = "0.6.4.0";
-       sha256 = "06s0rx95h2hczs0bp9sqxjmsp84gfzsi6acf088f9p97hw4cvqz9";
-       libraryHaskellDepends = [
-         base deepseq primitive primitive-unlifted run-st
-       ];
-       testHaskellDepends = [
-         base primitive QuickCheck quickcheck-classes quickcheck-instances
-         vector
-       ];
-       benchmarkHaskellDepends = [
-         base primitive random random-shuffle weigh
-       ];
-       description = "Unified interface for primitive arrays";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "contiguous_0_6_4_2" = callPackage
-    ({ mkDerivation, base, deepseq, primitive, primitive-unlifted
-     , QuickCheck, quickcheck-classes, quickcheck-instances, random
-     , random-shuffle, run-st, vector, weigh
-     }:
-     mkDerivation {
-       pname = "contiguous";
        version = "0.6.4.2";
        sha256 = "0ay0hrdi2gj3b2z81cswmcaphkyy57w532svyc5mm3mncd0ddsm8";
        libraryHaskellDepends = [
@@ -73626,7 +73681,6 @@ self: {
        benchmarkHaskellDepends = [ base random random-shuffle weigh ];
        description = "Unified interface for primitive arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "contiguous-checked" = callPackage
@@ -74322,6 +74376,27 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "cookie_0_5_0" = callPackage
+    ({ mkDerivation, base, bytestring, data-default-class, deepseq
+     , HUnit, QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
+     , time
+     }:
+     mkDerivation {
+       pname = "cookie";
+       version = "0.5.0";
+       sha256 = "178slrr0lpz3kim86i3a2g9qxccmxpcvgldp9f2cvyzqj1qgwl8f";
+       libraryHaskellDepends = [
+         base bytestring data-default-class deepseq text time
+       ];
+       testHaskellDepends = [
+         base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
+         text time
+       ];
+       description = "HTTP cookie parsing and rendering";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cookie-tray" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, cookie
      , hspec, time
@@ -74389,8 +74464,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot";
-       version = "3.18.1";
-       sha256 = "1k5fxpa8ww31ggbdkc3j4qjk9mc1jr1i53f71q2wrdiwwlw7km49";
+       version = "3.19";
+       sha256 = "0xk31la8rkar6kigb0naydi120gibsq75qgi138xhr8nw8ckafci";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74403,6 +74478,29 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "copilot-bluespec" = callPackage
+    ({ mkDerivation, base, copilot-core, directory, filepath, HUnit
+     , language-bluespec, pretty, process, QuickCheck, random
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , unix
+     }:
+     mkDerivation {
+       pname = "copilot-bluespec";
+       version = "3.19";
+       sha256 = "0zdiiaivby2dxmq81hvxz4drsasbgm2hizr26kr4zara50xifii7";
+       libraryHaskellDepends = [
+         base copilot-core directory filepath language-bluespec pretty
+       ];
+       testHaskellDepends = [
+         base copilot-core directory HUnit pretty process QuickCheck random
+         test-framework test-framework-hunit test-framework-quickcheck2 unix
+       ];
+       description = "A compiler for Copilot targeting FPGAs";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "copilot-c99" = callPackage
     ({ mkDerivation, base, copilot-core, directory, filepath, HUnit
      , language-c99, language-c99-simple, mtl, pretty, process
@@ -74411,8 +74509,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-c99";
-       version = "3.18.1";
-       sha256 = "074zyyq37r2d7bxxywpzji56pg642visasjmq3qdfkw6chgckcjb";
+       version = "3.19";
+       sha256 = "1k7ahd0wc5g30xw2aj17wqmias7dnlpq7lwix6y1gjlmly6qk23d";
        libraryHaskellDepends = [
          base copilot-core directory filepath language-c99
          language-c99-simple mtl pretty
@@ -74450,8 +74548,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-core";
-       version = "3.18.1";
-       sha256 = "03h8c3kxshbxpli0j2xi6sz4dq0c8vgi0ql5kk89812y993xbsvl";
+       version = "3.19";
+       sha256 = "1iczns7vz2fdx0x8g0ipkzpq8pfwc5866rd2v4rj8hi61z19rzwj";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base HUnit QuickCheck test-framework test-framework-hunit
@@ -74485,8 +74583,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-interpreter";
-       version = "3.18.1";
-       sha256 = "0mfj78w2rby6h48cv18ql5xg24xsjzghigy7gii1d158rfm4clhg";
+       version = "3.19";
+       sha256 = "0fqcybvdfnzhnf3lifzzhc1pl8y63pf518hpp9i3gms4a6742hqq";
        libraryHaskellDepends = [ base copilot-core pretty ];
        testHaskellDepends = [
          base copilot-core copilot-prettyprinter pretty QuickCheck
@@ -74504,8 +74602,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-language";
-       version = "3.18.1";
-       sha256 = "1kkkyl939ryiddn93ar5vnmc1blg6q6c79fns5jp7216sp7bz332";
+       version = "3.19";
+       sha256 = "1xjdzbs6m7rkggl4wnziq54wz8vc98d4y3zaalh2mynvnf8crjy7";
        libraryHaskellDepends = [
          array base containers copilot-core copilot-interpreter
          copilot-theorem data-reify mtl
@@ -74526,8 +74624,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-libraries";
-       version = "3.18.1";
-       sha256 = "1h8vcxhmxws2mrk25h59wf2nijxhk2ckq2rlg8hzbr0z1qbb8ps3";
+       version = "3.19";
+       sha256 = "06qxwxh17bfnp4mmak29894ynmhcvwj665pqkfs4wrzby2kc6rnm";
        libraryHaskellDepends = [
          base containers copilot-language mtl parsec
        ];
@@ -74544,8 +74642,8 @@ self: {
     ({ mkDerivation, base, copilot-core, pretty }:
      mkDerivation {
        pname = "copilot-prettyprinter";
-       version = "3.18.1";
-       sha256 = "0z3jrk58jii5l34bwnr9x5j38bkia0lz3bj1q0qs2kln05kwbw2k";
+       version = "3.19";
+       sha256 = "1mznr0g2fnxgy1igjc3vhgg8wjazvfvwkycq5ymcq9fwf6np6v54";
        libraryHaskellDepends = [ base copilot-core pretty ];
        description = "A prettyprinter of Copilot Specifications";
        license = lib.licenses.bsd3;
@@ -74576,8 +74674,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-theorem";
-       version = "3.18.1";
-       sha256 = "14s4409p72sgm6q291x3lf4xmklirak26dxcp837cvidvdfkqabr";
+       version = "3.19";
+       sha256 = "1iwigl5q5b5mjdqchb3p62cak2gfbii673ildxndrrgwss5ldga8";
        libraryHaskellDepends = [
          base bimap bv-sized containers copilot-core copilot-prettyprinter
          data-default directory libBF mtl panic parameterized-utils parsec
@@ -74604,8 +74702,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-verifier";
-       version = "0.1";
-       sha256 = "1vyws26bqfdfbp3yynx6qrdm1r7snilci6wynhqzaa41fn9h0s75";
+       version = "3.19";
+       sha256 = "1n0xwfv7wibn8xbhkh05ylxh2jv20sk05415lknm3rrgzhns0p14";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -75622,8 +75720,8 @@ self: {
     ({ mkDerivation, base, bytestring, c2hs, python3, text }:
      mkDerivation {
        pname = "cpython";
-       version = "3.5.1";
-       sha256 = "13vb65vgd9jncys1phgm3d9jmn3nq5k4ln2my34gc8vqpp7qxyh1";
+       version = "3.8.0";
+       sha256 = "18amy26wy01j4gwh5dq1361vzx6p01p7cr46p5zp2x9372klraqb";
        libraryHaskellDepends = [ base bytestring text ];
        libraryPkgconfigDepends = [ python3 ];
        libraryToolDepends = [ c2hs ];
@@ -75631,8 +75729,8 @@ self: {
        testPkgconfigDepends = [ python3 ];
        description = "Bindings for libpython";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = lib.platforms.x86;
+       maintainers = [ lib.maintainers.sheepforce ];
      }) {inherit (pkgs) python3;};
 
   "cql" = callPackage
@@ -75929,14 +76027,14 @@ self: {
        mainProgram = "crackNum";
      }) {};
 
-  "crackNum_3_6" = callPackage
+  "crackNum_3_10" = callPackage
     ({ mkDerivation, base, directory, filepath, libBF, process, sbv
      , tasty, tasty-golden
      }:
      mkDerivation {
        pname = "crackNum";
-       version = "3.6";
-       sha256 = "1rnjqc4jphxsh6ax1qhlw6hg4za6wkp28a9r4s5cj7dwva585f2g";
+       version = "3.10";
+       sha256 = "00zkd6rv84axzvfbkaz4cfpv2vnmlyrmyya30a0rnxh8gad0ix5g";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -76142,6 +76240,26 @@ self: {
        broken = true;
      }) {};
 
+  "crc32c_0_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, hspec, hspec-core
+     , QuickCheck
+     }:
+     mkDerivation {
+       pname = "crc32c";
+       version = "0.2.0";
+       sha256 = "00k8mrlzhxmc8v0vz98ykq3p475896bnkfawb19xw7kjb6i3ygz0";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         base bytestring hspec hspec-core QuickCheck
+       ];
+       benchmarkHaskellDepends = [ base bytestring criterion ];
+       description = "crc32c";
+       license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "crdt" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, Diff
      , hashable, mtl, network-info, safe, stm, time, vector
@@ -76167,8 +76285,8 @@ self: {
      }:
      mkDerivation {
        pname = "crdt-event-fold";
-       version = "1.8.0.2";
-       sha256 = "15w9az68fsg0d19xhl9ayafrqcf9pbjaj2hg06803733lp905gac";
+       version = "1.8.1.0";
+       sha256 = "1lalg8gi8rcpgzangqbf9j51fpgdsq3k5j6wqbd45nbyyym5zmjj";
        libraryHaskellDepends = [
          aeson base binary containers data-default-class data-dword
          exceptions monad-logger mtl transformers
@@ -77697,24 +77815,6 @@ self: {
      }:
      mkDerivation {
        pname = "crypton-connection";
-       version = "0.3.1";
-       sha256 = "1k0xv14yzikxlyix8qzqbjwjgfw99v1ngg4dnxfrfpsjysa3c1q3";
-       libraryHaskellDepends = [
-         base basement bytestring containers crypton-x509 crypton-x509-store
-         crypton-x509-system crypton-x509-validation data-default-class
-         network socks tls
-       ];
-       description = "Simple and easy network connections API";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "crypton-connection_0_3_2" = callPackage
-    ({ mkDerivation, base, basement, bytestring, containers
-     , crypton-x509, crypton-x509-store, crypton-x509-system
-     , crypton-x509-validation, data-default-class, network, socks, tls
-     }:
-     mkDerivation {
-       pname = "crypton-connection";
        version = "0.3.2";
        sha256 = "07lrkv6lwphsyp4797yp8ywnndzd270bk58r8gwyby0hr4xy52r0";
        libraryHaskellDepends = [
@@ -77724,7 +77824,6 @@ self: {
        ];
        description = "Simple and easy network connections API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "crypton-x509" = callPackage
@@ -78028,10 +78127,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-catalog";
-       version = "0.7.6";
-       sha256 = "0gida0g314hl8nyn5ybbv57yjf10mhjmsdmhk5vgblvhnc95ks36";
-       revision = "1";
-       editedCabalFile = "0jjpnm5v161d0g36kd9jqqasfzq2g2qaqn95pyb87bkrsrhrqnac";
+       version = "0.7.6.1";
+       sha256 = "02lyv19fq80msfsi77bgvwyh13nnvna9jgwwjz4482n8ynpm2h4i";
        libraryHaskellDepends = [
          base csound-expression csound-sampler sharc-timbre transformers
        ];
@@ -78043,48 +78140,50 @@ self: {
     ({ mkDerivation, base, csound-expression }:
      mkDerivation {
        pname = "csound-controllers";
-       version = "0.1.1.0";
-       sha256 = "1p2fa00djwyrv7fdrngawmk3r41q6a4mlsqgdm4qajmivbj0sg9m";
+       version = "0.1.1.1";
+       sha256 = "0hxdjw7qhjfq72pj43f22bjjxgm7ncji7iq2078gmlb7ww1xk58p";
        libraryHaskellDepends = [ base csound-expression ];
        testHaskellDepends = [ base csound-expression ];
+       description = "MIDI controllers";
        license = lib.licenses.bsd3;
      }) {};
 
   "csound-expression" = callPackage
     ({ mkDerivation, base, Boolean, colour, containers
      , csound-expression-dynamic, csound-expression-opcodes
-     , csound-expression-typed, data-default, process, temporal-media
-     , transformers
+     , csound-expression-typed, data-default, directory, filepath, gauge
+     , process, temporal-media, text, transformers
      }:
      mkDerivation {
        pname = "csound-expression";
-       version = "5.4.3";
-       sha256 = "00hd0sb1787cx7yppg2f3zkd3y8d75fsmf460qnsxc77m4qw5388";
-       revision = "1";
-       editedCabalFile = "0fd6ln4kgf3cvj396l5w4zzl5zfkaf6ylqhly86lajr72mypf1nr";
+       version = "5.4.3.1";
+       sha256 = "1xcln5787bgiqp49xgf964jyhsgs0myjd669jbih1ihgpdk2032z";
        libraryHaskellDepends = [
          base Boolean colour containers csound-expression-dynamic
          csound-expression-opcodes csound-expression-typed data-default
-         process temporal-media transformers
+         directory filepath process temporal-media text transformers
        ];
+       benchmarkHaskellDepends = [ base gauge ];
        description = "library to make electronic music";
        license = lib.licenses.bsd3;
      }) {};
 
   "csound-expression-dynamic" = callPackage
-    ({ mkDerivation, array, base, Boolean, containers, data-default
-     , data-fix, data-fix-cse, deriving-compat, hashable, transformers
-     , wl-pprint
+    ({ mkDerivation, array, base, base64-bytestring, Boolean
+     , bytestring, cereal, cereal-text, containers, cryptohash-sha256
+     , data-default, data-fix, data-fix-cse, deriving-compat, dlist
+     , pretty-show, safe, text, transformers, unordered-containers
+     , vector, wl-pprint-text
      }:
      mkDerivation {
        pname = "csound-expression-dynamic";
-       version = "0.3.9";
-       sha256 = "0cj1g7x06y9b8dky6k2dixv8gxxrcdjvlr8big5fld34w8k39cn6";
-       revision = "2";
-       editedCabalFile = "061j05spmhh9nsk77f75bqnh75l0w3xhyv1897rkfpp9gz9k5rrv";
+       version = "0.3.9.1";
+       sha256 = "1xz7cdwk7ck13ja70znlp8qs6f0vpsq5azmhv1kjdbmq4wkpq66g";
        libraryHaskellDepends = [
-         array base Boolean containers data-default data-fix data-fix-cse
-         deriving-compat hashable transformers wl-pprint
+         array base base64-bytestring Boolean bytestring cereal cereal-text
+         containers cryptohash-sha256 data-default data-fix data-fix-cse
+         deriving-compat dlist pretty-show safe text transformers
+         unordered-containers vector wl-pprint-text
        ];
        description = "dynamic core for csound-expression library";
        license = lib.licenses.bsd3;
@@ -78096,10 +78195,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression-opcodes";
-       version = "0.0.5.1";
-       sha256 = "0h1a9yklsqbykhdinmk8znm7kfg0jd1k394cx2lirpdxn136kbcm";
-       revision = "1";
-       editedCabalFile = "1jia50zyv8kp0x66igy3bzmhgdgw87cc75gjsw2q1lmd7l82pxky";
+       version = "0.0.5.3";
+       sha256 = "0psq8vyvv8mp9f506kv54j0gyfkjmzp9spmxjkjqjnzwlmya0nh6";
        libraryHaskellDepends = [
          base csound-expression-dynamic csound-expression-typed transformers
        ];
@@ -78108,36 +78205,34 @@ self: {
      }) {};
 
   "csound-expression-typed" = callPackage
-    ({ mkDerivation, base, Boolean, colour, containers
+    ({ mkDerivation, base, Boolean, bytestring, colour, containers
      , csound-expression-dynamic, data-default, deepseq, directory
-     , filepath, ghc-prim, hashable, NumInstances, temporal-media
-     , transformers, wl-pprint
+     , filepath, ghc-prim, hashable, NumInstances, temporal-media, text
+     , transformers, wl-pprint-text
      }:
      mkDerivation {
        pname = "csound-expression-typed";
-       version = "0.2.7";
-       sha256 = "1mh1mfyi2vx8ykyc1ca8vpbi545fkp7f0ss5nw6dkykl6zm7pj6d";
-       revision = "1";
-       editedCabalFile = "05vfq1cjznkpaxsficvdccn47z5qa69ykx1ff43zyri5bab3zqzq";
+       version = "0.2.7.1";
+       sha256 = "0fzlvs6an5q1lxycwifjhp3ydimky61kki1vb030vpmbhd15nczn";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base Boolean colour containers csound-expression-dynamic
+         base Boolean bytestring colour containers csound-expression-dynamic
          data-default deepseq directory filepath ghc-prim hashable
-         NumInstances temporal-media transformers wl-pprint
+         NumInstances temporal-media text transformers wl-pprint-text
        ];
        description = "typed core for the library csound-expression";
        license = lib.licenses.bsd3;
      }) {};
 
   "csound-sampler" = callPackage
-    ({ mkDerivation, base, csound-expression, transformers }:
+    ({ mkDerivation, base, csound-expression, text, transformers }:
      mkDerivation {
        pname = "csound-sampler";
-       version = "0.0.10.1";
-       sha256 = "1c2g83a0n4y1fvq3amj9m2hygg9rbpl5x8zsicb52qjm7vjing2i";
-       revision = "1";
-       editedCabalFile = "09x2bb3ar7c1av0n7988405i3canmk8jxb8a59jn2zdrm0fh7jlz";
-       libraryHaskellDepends = [ base csound-expression transformers ];
+       version = "0.0.10.2";
+       sha256 = "1xkv1q67fv5iggn63fz79rwz8m9i3jda26yfrdzh5l88f8lp6vb2";
+       libraryHaskellDepends = [
+         base csound-expression text transformers
+       ];
        description = "A musical sampler based on Csound";
        license = lib.licenses.bsd3;
      }) {};
@@ -79848,17 +79943,18 @@ self: {
      , filepath, FindBin, hashable, haskeline, html, http-conduit
      , http-types, HUnit, leancheck, memory, mmap, monad-control, mtl
      , network, network-uri, old-time, parsec, process, QuickCheck
-     , regex-applicative, regex-base, regex-tdfa, stm, system-fileio
-     , system-filepath, tar, temporary, terminfo, test-framework
+     , quickcheck-instances, regex-applicative, regex-base, regex-tdfa
+     , stm, strict-identity, system-fileio, system-filepath, tar
+     , temporary, terminal-size, terminfo, test-framework
      , test-framework-hunit, test-framework-leancheck
-     , test-framework-quickcheck2, text, time, transformers
+     , test-framework-quickcheck2, text, time, tls, transformers
      , transformers-base, unix, unix-compat, utf8-string, vector
      , zip-archive, zlib
      }:
      mkDerivation {
        pname = "darcs";
-       version = "2.16.5";
-       sha256 = "0ar4markr71l9hzrbgcz4q37cf2rf3936i6qi8p827p36v96qg6n";
+       version = "2.18.1";
+       sha256 = "10f9yy8rkn1vnkyn9kpxs7hvb99lwa8l6skgph95x51zrmiymm62";
        configureFlags = [ "-fforce-char8-encoding" "-flibrary" ];
        isLibrary = true;
        isExecutable = true;
@@ -79866,20 +79962,20 @@ self: {
        libraryHaskellDepends = [
          array async attoparsec base base16-bytestring binary bytestring
          conduit constraints containers cryptonite data-ordlist directory
-         fgl filepath hashable haskeline html http-conduit http-types memory
-         mmap mtl network network-uri old-time parsec process
-         regex-applicative regex-base regex-tdfa stm tar temporary terminfo
-         text time transformers unix unix-compat utf8-string vector
-         zip-archive zlib
+         exceptions fgl filepath hashable haskeline html http-conduit
+         http-types memory mmap mtl network network-uri old-time parsec
+         process regex-applicative regex-base regex-tdfa stm strict-identity
+         tar temporary terminal-size terminfo text time tls transformers
+         unix unix-compat utf8-string vector zip-archive zlib
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
          array async base bytestring cmdargs constraints containers
          directory exceptions filepath FindBin HUnit leancheck monad-control
-         mtl process QuickCheck system-fileio system-filepath test-framework
-         test-framework-hunit test-framework-leancheck
-         test-framework-quickcheck2 text time transformers transformers-base
-         unix-compat vector zip-archive
+         mtl process QuickCheck quickcheck-instances system-fileio
+         system-filepath test-framework test-framework-hunit
+         test-framework-leancheck test-framework-quickcheck2 text time
+         transformers transformers-base unix-compat vector zip-archive
        ];
        doCheck = false;
        postInstall = ''
@@ -79888,9 +79984,7 @@ self: {
        '';
        description = "a distributed, interactive, smart revision control system";
        license = lib.licenses.gpl2Plus;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "darcs";
-       broken = true;
      }) {};
 
   "darcs-benchmark" = callPackage
@@ -80366,8 +80460,8 @@ self: {
        pname = "data-array-byte";
        version = "0.1.0.1";
        sha256 = "002n0af7q08q3fmgsc5b47s1clirxy0lrqglwxzhabg0nfhfrdhv";
-       revision = "2";
-       editedCabalFile = "0g0xvsrinssn2a6z9sdaa2px5ra3rvr2lm5zixlpaq845f5y52dd";
+       revision = "3";
+       editedCabalFile = "136rjhg0m49d2l8z7kp46hc8q7bkipvkwnn40nv8kqkpvrgrg8d4";
        libraryHaskellDepends = [ base deepseq template-haskell ];
        testHaskellDepends = [
          base quickcheck-classes-base tasty tasty-quickcheck
@@ -83576,7 +83670,6 @@ self: {
        libraryHaskellDepends = [ base directory filepath HSH ];
        description = "Utilities to work with debian binary packages";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "debian-build" = callPackage
@@ -83598,6 +83691,31 @@ self: {
        mainProgram = "odebuild";
      }) {};
 
+  "debruijn" = callPackage
+    ({ mkDerivation, base, deepseq, fin, skew-list, some, transformers
+     }:
+     mkDerivation {
+       pname = "debruijn";
+       version = "0.1";
+       sha256 = "1bpy918flzmhwiwmz5ivjgqn2i3hidzcgc31w8d2br88p0clixv4";
+       libraryHaskellDepends = [
+         base deepseq fin skew-list some transformers
+       ];
+       description = "de Bruijn indices and levels";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "debruijn-safe" = callPackage
+    ({ mkDerivation, base, deepseq, fin, some }:
+     mkDerivation {
+       pname = "debruijn-safe";
+       version = "0.1";
+       sha256 = "17db3640y31isalrw4hpf9z7wyjysb7gyig8d2mg1b6ycr9dy223";
+       libraryHaskellDepends = [ base deepseq fin some ];
+       description = "de Bruijn indices and levels";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "debug" = callPackage
     ({ mkDerivation, aeson, base, bytestring, clock, containers
      , deepseq, directory, extra, filepath, ghc-prim, hashable, Hoed
@@ -83813,8 +83931,8 @@ self: {
      }:
      mkDerivation {
        pname = "decidable";
-       version = "0.3.1.0";
-       sha256 = "1l7ichqcpqxdv9xagiy2q3aab0zy38piihwqa0klkbd7wh5cmvid";
+       version = "0.3.1.1";
+       sha256 = "13cn4m5bjd2pf8m8qcm4na16ha0sc63wbkgms2qh5x4mj926yfq8";
        libraryHaskellDepends = [
          base functor-products microlens singletons singletons-base vinyl
        ];
@@ -83844,8 +83962,8 @@ self: {
        pname = "decimal-literals";
        version = "0.1.0.1";
        sha256 = "0lbpnc4c266fbqjzzrnig648zzsqfaphlxqwyly9xd15qggzasb0";
-       revision = "2";
-       editedCabalFile = "0wrjxapnv7i20krg601jzqik3pns6s7kr3c2x99n4lqi43b1a2v9";
+       revision = "3";
+       editedCabalFile = "1650vnqwjsqg2mghsvghiyzg5qqbz36vibkq8614adhyjpcd3w07";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Preprocessing decimal literals more or less as they are (instead of via fractions)";
@@ -86719,7 +86837,6 @@ self: {
        ];
        description = "DI logger wrapped for Polysemy";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dia-base" = callPackage
@@ -86876,8 +86993,8 @@ self: {
        pname = "diagrams-cairo";
        version = "1.4.2.1";
        sha256 = "0fqma8m4xrqha079aqqynk23y252x47xfzvb0gss4bvgdmwa0lzc";
-       revision = "1";
-       editedCabalFile = "11a0y68w0gnp7vfbqzh4wnmi514axx6zpcih5byrbanx4w5b0qhh";
+       revision = "2";
+       editedCabalFile = "0fyy1iqfwzk1b4vvqnfh31gd8g8qjry7cc9g2nhg505rbafflcn5";
        libraryHaskellDepends = [
          array base bytestring cairo colour containers data-default-class
          diagrams-core diagrams-lib filepath hashable JuicyPixels lens mtl
@@ -87113,10 +87230,8 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-lib";
-       version = "1.4.6";
-       sha256 = "1a0wl8lspwkby5x45j1wa1xq27bs67x5vwj8jzavym56a3f2pjcb";
-       revision = "4";
-       editedCabalFile = "1n6v9w2713da1ihfl47hikql033wcx9kjmzry8ykg581qzwb3rag";
+       version = "1.4.6.1";
+       sha256 = "13f64di88dz8vx4pfh5lxnp1k1vz5077pbakifiw9p72wmi4kbsv";
        libraryHaskellDepends = [
          active adjunctions array base bytestring cereal colour containers
          data-default-class diagrams-core diagrams-solve directory
@@ -87135,26 +87250,30 @@ self: {
      }) {};
 
   "diagrams-pandoc" = callPackage
-    ({ mkDerivation, base, diagrams-builder, diagrams-cairo
+    ({ mkDerivation, base, bytestring, diagrams-builder, diagrams-cairo
      , diagrams-core, diagrams-lib, diagrams-svg, directory, filepath
-     , hashable, linear, optparse-applicative, pandoc-types, svg-builder
-     , text
+     , hashable, linear, optparse-applicative, pandoc, pandoc-types
+     , svg-builder, SVGFonts, tasty, tasty-golden, text
      }:
      mkDerivation {
        pname = "diagrams-pandoc";
-       version = "0.3.1.1";
-       sha256 = "0j8xkb3s3g8n53nyz7x5950zwk85zdrplingl8yrc8gvghlmvfvv";
+       version = "0.4";
+       sha256 = "164f0k1jk8p604h31wypy2z2jy5x0gfbkbmmrd64c9jp7j71iyc4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base diagrams-builder diagrams-cairo diagrams-core diagrams-lib
-         diagrams-svg directory filepath hashable linear pandoc-types
+         diagrams-svg directory filepath hashable linear pandoc pandoc-types
          svg-builder text
        ];
        executableHaskellDepends = [
          base diagrams-builder diagrams-cairo diagrams-lib directory
          filepath linear optparse-applicative pandoc-types text
        ];
+       testHaskellDepends = [
+         base bytestring directory filepath pandoc pandoc-types SVGFonts
+         tasty tasty-golden text
+       ];
        description = "A Pandoc filter to express diagrams inline using the Haskell EDSL _Diagrams_";
        license = lib.licenses.bsd3;
        mainProgram = "diagrams-pandoc";
@@ -87822,25 +87941,12 @@ self: {
     ({ mkDerivation, base, bytestring, zlib }:
      mkDerivation {
        pname = "digest";
-       version = "0.0.2.0";
-       sha256 = "0ha4f0jckngqy558shd08yp99wj87c5wazp5zr5y6as608zb7wx8";
-       libraryHaskellDepends = [ base bytestring ];
-       libraryPkgconfigDepends = [ zlib ];
-       description = "CRC32 and Adler32 hashes for bytestrings";
-       license = lib.licenses.bsd2;
-     }) {inherit (pkgs) zlib;};
-
-  "digest_0_0_2_1" = callPackage
-    ({ mkDerivation, base, bytestring, zlib }:
-     mkDerivation {
-       pname = "digest";
        version = "0.0.2.1";
        sha256 = "163418p50bqdxn8ajzj6x3455xbch9jq1w6psbkdz5qzw017py6b";
        libraryHaskellDepends = [ base bytestring ];
        libraryPkgconfigDepends = [ zlib ];
        description = "CRC32 and Adler32 hashes for bytestrings";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) zlib;};
 
   "digest-pure" = callPackage
@@ -88138,7 +88244,6 @@ self: {
        testHaskellDepends = [ base fgl hashable massiv QuickCheck ];
        description = "Directed Graphs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dihaa" = callPackage
@@ -89142,8 +89247,8 @@ self: {
        pname = "discrimination";
        version = "0.5";
        sha256 = "1qq7fs1dsfqgf4969gksqcp3swcx0wbzdh66a89fv78k6y94g0pc";
-       revision = "2";
-       editedCabalFile = "14zhk0ygk2cmq2pk6limj3jiaa1pfdy7n2qc9nb3gxfg7yj4qvp2";
+       revision = "3";
+       editedCabalFile = "1i3mkza18y2dxj03zn9419rh7jgpkg1kq97blhjrcw5174p9p3c6";
        libraryHaskellDepends = [
          array base containers contravariant deepseq ghc-bignum ghc-prim
          hashable primitive promises transformers
@@ -90210,6 +90315,35 @@ self: {
        broken = true;
      }) {};
 
+  "djot" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, doclayout
+     , filepath, mtl, tasty, tasty-bench, tasty-hunit, tasty-quickcheck
+     , text
+     }:
+     mkDerivation {
+       pname = "djot";
+       version = "0.1.1.2";
+       sha256 = "0cb15vaxgkgvz0wnb2hhslbgmvffppq5d5gh2s6qli2i8z8l4pvr";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers doclayout mtl text
+       ];
+       executableHaskellDepends = [
+         base bytestring containers doclayout text
+       ];
+       testHaskellDepends = [
+         base bytestring directory doclayout filepath tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring directory doclayout filepath tasty-bench
+       ];
+       description = "Parser and renderer for djot light markup syntax";
+       license = lib.licenses.mit;
+       mainProgram = "djoths";
+     }) {};
+
   "dl-fedora" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, directory, extra
      , filepath, http-client, http-client-tls, http-directory
@@ -90978,10 +91112,8 @@ self: {
      }:
      mkDerivation {
        pname = "docopt";
-       version = "0.7.0.7";
-       sha256 = "0q3f9j7yqyb97z08h2k6p6bax87g6ab96ng4cpj1xf5k91726ic1";
-       revision = "1";
-       editedCabalFile = "15lha2pf1yhj6ka57mdg414582cl0h140qc42ddz6cvj9a62bd66";
+       version = "0.7.0.8";
+       sha256 = "0pcixlpa5cwf531aa5nmwvp50gagm2khwl1xsy8hi4jn7ksnk1y8";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base containers parsec template-haskell
@@ -92028,28 +92160,6 @@ self: {
      }:
      mkDerivation {
        pname = "double-conversion";
-       version = "2.0.4.2";
-       sha256 = "0r7c1801gzdm5x1flmpx8ajxygbc9dl7sgdj0xn3bpm71wgvrf4s";
-       revision = "2";
-       editedCabalFile = "1mpnx4m2pg5crfz9k8wamh5mgsha0np3ynnllrmglmwh54gvfjj3";
-       libraryHaskellDepends = [
-         base bytestring ghc-prim system-cxx-std-lib text
-       ];
-       testHaskellDepends = [
-         base bytestring HUnit test-framework test-framework-hunit
-         test-framework-quickcheck2 text
-       ];
-       description = "Fast conversion between single and double precision floating point and text";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "double-conversion_2_0_5_0" = callPackage
-    ({ mkDerivation, base, bytestring, ghc-prim, HUnit
-     , system-cxx-std-lib, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, text
-     }:
-     mkDerivation {
-       pname = "double-conversion";
        version = "2.0.5.0";
        sha256 = "1fj358zamb5zr1h481wf02c2aijqk3imk7flhpzps9bvwjv9kilq";
        libraryHaskellDepends = [
@@ -92061,7 +92171,6 @@ self: {
        ];
        description = "Fast conversion between single and double precision floating point and text";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "double-extra" = callPackage
@@ -92091,6 +92200,20 @@ self: {
        license = "GPL";
      }) {};
 
+  "double-x-encoding" = callPackage
+    ({ mkDerivation, base, Cabal-syntax, text }:
+     mkDerivation {
+       pname = "double-x-encoding";
+       version = "1.1.1";
+       sha256 = "1y9grxp9xbjx4ldx6idmzy275wkr2jgajf6dki96janiwcjwmnym";
+       libraryHaskellDepends = [ base Cabal-syntax text ];
+       testHaskellDepends = [ base Cabal-syntax text ];
+       description = "Encoding scheme to encode any Unicode string with only [0-9a-zA-Z_]";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "doublezip" = callPackage
     ({ mkDerivation, base, foldable-ix }:
      mkDerivation {
@@ -93358,6 +93481,8 @@ self: {
        pname = "dumb-cas";
        version = "0.2.1.1";
        sha256 = "0rqh1sy500gbgqr69z220yb8g7gp117z0iw1kly9zxqhrzn3sv9f";
+       revision = "1";
+       editedCabalFile = "031hcc34r20gpvsicllwcvvzirx2bm5nsdabp75a0m05rj3wzmvv";
        libraryHaskellDepends = [
          base containers decimal-literals hashable template-haskell
          unordered-containers
@@ -93415,8 +93540,8 @@ self: {
      }:
      mkDerivation {
        pname = "dunai";
-       version = "0.12.1";
-       sha256 = "0j4862aq688cb54yz2di2vs5s3w1xnla21pjdqz9j6n2505vh9ih";
+       version = "0.12.2";
+       sha256 = "07qij8dmfawdhzd3aldg2kwy0rrma2yybiwd3w989kfih4mf6mbp";
        libraryHaskellDepends = [
          base MonadRandom simple-affine-space transformers transformers-base
        ];
@@ -93449,8 +93574,8 @@ self: {
     ({ mkDerivation, base, dunai, normaldistribution, QuickCheck }:
      mkDerivation {
        pname = "dunai-test";
-       version = "0.12.1";
-       sha256 = "1jaxdc672z3ng6w8bqxj1991yp4ianpj4w2gg2qf4j9vildm947z";
+       version = "0.12.2";
+       sha256 = "093p31bcbpwn4bsz1id946d5mxk2an2akxm2xvpls9vydvm255zw";
        libraryHaskellDepends = [
          base dunai normaldistribution QuickCheck
        ];
@@ -97267,8 +97392,8 @@ self: {
      }:
      mkDerivation {
        pname = "email-validate";
-       version = "2.3.2.19";
-       sha256 = "0q535zm58798jz1avz2mnip5rj742l9rqc7isqmbfb1zkfaaqr68";
+       version = "2.3.2.20";
+       sha256 = "0k92hb8nn35ggp1lnqzp1s57znmhnabml217f41zdv8y1khfh3fc";
        libraryHaskellDepends = [
          attoparsec base bytestring template-haskell
        ];
@@ -98444,28 +98569,29 @@ self: {
 
   "eo-phi-normalizer" = callPackage
     ({ mkDerivation, aeson, alex, array, base, BNFC, Cabal, directory
-     , filepath, happy, hspec, hspec-discover, mtl, optparse-generic
-     , process, string-interpolate, yaml
+     , filepath, generic-lens, happy, hspec, hspec-discover, lens, mtl
+     , optparse-generic, process, string-interpolate, yaml
      }:
      mkDerivation {
        pname = "eo-phi-normalizer";
-       version = "0.1.0";
-       sha256 = "1cc2zp6245bck2diqrcs7wqvzh1c604m68z442daljf2437iwb0w";
+       version = "0.2.0";
+       sha256 = "1xm0hv28zf9c2izvljky2lc60m4yv74lz0mz6mqrf5rr9rql18s5";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal process ];
        libraryHaskellDepends = [
-         aeson array base directory filepath mtl string-interpolate yaml
+         aeson array base directory filepath generic-lens lens mtl
+         string-interpolate yaml
        ];
        libraryToolDepends = [ alex BNFC happy ];
        executableHaskellDepends = [
-         aeson array base directory filepath mtl optparse-generic
-         string-interpolate yaml
+         aeson array base directory filepath generic-lens lens mtl
+         optparse-generic string-interpolate yaml
        ];
        executableToolDepends = [ alex BNFC happy ];
        testHaskellDepends = [
-         aeson array base directory filepath hspec hspec-discover mtl
-         string-interpolate yaml
+         aeson array base directory filepath generic-lens hspec
+         hspec-discover lens mtl string-interpolate yaml
        ];
        testToolDepends = [ alex BNFC happy hspec-discover ];
        description = "Command line normalizer of 𝜑-calculus expressions";
@@ -98836,28 +98962,28 @@ self: {
      }) {};
 
   "erebos" = callPackage
-    ({ mkDerivation, async, base, binary, bytestring, c2hs, cereal
-     , clock, containers, cryptonite, deepseq, directory, filepath
-     , hashable, hashtables, haskeline, hinotify, iproute, libpjproject
-     , memory, mime, mtl, network, stm, tagged, text, time, transformers
-     , unix, uuid, zlib
+    ({ mkDerivation, async, base, binary, bytestring, c2hs, clock
+     , containers, cryptonite, deepseq, directory, filepath, hashable
+     , hashtables, haskeline, hinotify, iproute, libpjproject, memory
+     , mtl, network, process, stm, template-haskell, text, time
+     , transformers, unix, uuid, zlib
      }:
      mkDerivation {
        pname = "erebos";
-       version = "0.1.0";
-       sha256 = "0w8gafi12zchpkp6r83d0ylf4wq2fz14l97ziffsi7862901niif";
+       version = "0.1.2";
+       sha256 = "13sxi7h08i81krg7x3pkgijirczh4y78vz3qajcyv0fqq42i6qs0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base binary bytestring cereal clock containers cryptonite
-         deepseq directory filepath hashable hashtables hinotify iproute
-         memory mime mtl network stm tagged text time unix uuid zlib
+         async base binary bytestring clock containers cryptonite deepseq
+         directory filepath hashable hashtables hinotify iproute memory mtl
+         network stm text time unix uuid zlib
        ];
        libraryPkgconfigDepends = [ libpjproject ];
        libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [
-         base bytestring cryptonite haskeline mtl network text time
-         transformers
+         base bytestring cryptonite directory haskeline mtl network process
+         template-haskell text time transformers
        ];
        description = "Decentralized messaging and synchronization";
        license = lib.licenses.bsd3;
@@ -99505,34 +99631,6 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.5.11.1";
-       sha256 = "144anqiar5pq9ss403sspnicjlad4icnf986fy4zfzqd70r6na0k";
-       libraryHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         monad-logger persistent resourcet tagged template-haskell text time
-         transformers unliftio unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         exceptions hspec hspec-core monad-logger mtl mysql mysql-simple
-         persistent persistent-mysql persistent-postgresql persistent-sqlite
-         postgresql-simple QuickCheck resourcet tagged template-haskell text
-         time transformers unliftio unordered-containers
-       ];
-       description = "Type-safe EDSL for SQL queries on persistent backends";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "esqueleto_3_5_11_2" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
-     , conduit, containers, exceptions, hspec, hspec-core, monad-logger
-     , mtl, mysql, mysql-simple, persistent, persistent-mysql
-     , persistent-postgresql, persistent-sqlite, postgresql-simple
-     , QuickCheck, resourcet, tagged, template-haskell, text, time
-     , transformers, unliftio, unordered-containers
-     }:
-     mkDerivation {
-       pname = "esqueleto";
        version = "3.5.11.2";
        sha256 = "0k78rsf98nzbc4ycf3jgari358g661v3rgg6sxm6dch0q70dhaj5";
        libraryHaskellDepends = [
@@ -99549,7 +99647,6 @@ self: {
        ];
        description = "Type-safe EDSL for SQL queries on persistent backends";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "esqueleto-compat" = callPackage
@@ -99587,6 +99684,28 @@ self: {
        broken = true;
      }) {};
 
+  "esqueleto-postgis" = callPackage
+    ({ mkDerivation, base, containers, esqueleto, geojson, hedgehog
+     , monad-logger, persistent, persistent-postgresql, resourcet, tasty
+     , tasty-hunit, tasty-quickcheck, text, wkt-geom
+     }:
+     mkDerivation {
+       pname = "esqueleto-postgis";
+       version = "1.0.1";
+       sha256 = "0s87xwqbh0b4xl956g7zgf58ga92cfnnbijqyw0rd007y4rf0v7m";
+       libraryHaskellDepends = [
+         base containers esqueleto geojson persistent text wkt-geom
+       ];
+       testHaskellDepends = [
+         base containers esqueleto geojson hedgehog monad-logger persistent
+         persistent-postgresql resourcet tasty tasty-hunit tasty-quickcheck
+         text wkt-geom
+       ];
+       description = "postgis bindings for esqueleto";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "esqueleto-streaming" = callPackage
     ({ mkDerivation, base, conduit, esqueleto, persistent-postgresql
      , persistent-postgresql-streaming, resourcet, transformers
@@ -99605,18 +99724,16 @@ self: {
      }) {};
 
   "esqueleto-textsearch" = callPackage
-    ({ mkDerivation, base, data-default, esqueleto, hspec, HUnit
-     , monad-control, monad-logger, parsec, persistent
-     , persistent-postgresql, persistent-template, QuickCheck, resourcet
-     , text, transformers
+    ({ mkDerivation, base, esqueleto, hspec, HUnit, monad-control
+     , monad-logger, parsec, persistent, persistent-postgresql
+     , persistent-template, QuickCheck, resourcet, text, transformers
      }:
      mkDerivation {
        pname = "esqueleto-textsearch";
-       version = "1.0.0.3";
-       sha256 = "1jyyc691pydxhd1xp9bc9jdva09ak2280p40q7cmb9j2bj9bnpfk";
+       version = "1.3.1";
+       sha256 = "0z8fw59hr42hclkgy3f44m6lhbchnqdg8b91hhmn8z25g532d857";
        libraryHaskellDepends = [
-         base data-default esqueleto parsec persistent persistent-postgresql
-         text
+         base esqueleto parsec persistent persistent-postgresql text
        ];
        testHaskellDepends = [
          base esqueleto hspec HUnit monad-control monad-logger persistent
@@ -100435,8 +100552,8 @@ self: {
      }:
      mkDerivation {
        pname = "event-list";
-       version = "0.1.2.1";
-       sha256 = "0wkrzflrkaa7qg4lwzgfm0dhmghgiqph4hnpnd4smpv98sz3bcq0";
+       version = "0.1.3";
+       sha256 = "0bnz3qrkwr2spp1fvg2m3bscvd0h3xyfag0r77ydcn84033bk424";
        libraryHaskellDepends = [
          base non-negative QuickCheck semigroups transformers utility-ht
        ];
@@ -102277,19 +102394,6 @@ self: {
     ({ mkDerivation, base, leancheck, template-haskell }:
      mkDerivation {
        pname = "express";
-       version = "1.0.14";
-       sha256 = "0ys5ahams2j6q41gz4wxh97pwjdqv8c1i3hd7ygz8xkz8j794g4y";
-       libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base leancheck ];
-       benchmarkHaskellDepends = [ base leancheck ];
-       description = "Dynamically-typed expressions involving function application and variables";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "express_1_0_16" = callPackage
-    ({ mkDerivation, base, leancheck, template-haskell }:
-     mkDerivation {
-       pname = "express";
        version = "1.0.16";
        sha256 = "0xw8z95f0q19x4h4iy8pzbsskd0f9b290g6784bmrrmm95xz6cs2";
        libraryHaskellDepends = [ base template-haskell ];
@@ -102297,7 +102401,6 @@ self: {
        benchmarkHaskellDepends = [ base leancheck ];
        description = "Dynamically-typed expressions involving function application and variables";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "expression-parser" = callPackage
@@ -102709,8 +102812,8 @@ self: {
      }:
      mkDerivation {
        pname = "extism";
-       version = "1.0.0.1";
-       sha256 = "0zq08pqhr22kmwaiy56nbf1h84xm38bq491n60pd116sag21pf1n";
+       version = "1.2.0.3";
+       sha256 = "12kaar2jhhxg7pkq5hll7w2iqrahp4d8qw76qypzhqnhzv4s9zmc";
        libraryHaskellDepends = [
          base binary bytestring extism-manifest json uuid
        ];
@@ -102726,8 +102829,8 @@ self: {
     ({ mkDerivation, base, base64-bytestring, bytestring, json }:
      mkDerivation {
        pname = "extism-manifest";
-       version = "1.0.0.1";
-       sha256 = "03rk2rc6wlrlnxz2mx3vb4a1i50hsshd2pz4rm0q2m54vv8rpg00";
+       version = "1.2.0.3";
+       sha256 = "07ypncyml5p1p0yy3x45s8gj5vz8z0xjzpcy2q8mdxpk5qgaa6z1";
        libraryHaskellDepends = [ base base64-bytestring bytestring json ];
        description = "Extism manifest bindings";
        license = lib.licenses.bsd3;
@@ -104646,18 +104749,19 @@ self: {
      }) {};
 
   "fedora-composes" = callPackage
-    ({ mkDerivation, base, bytestring, extra, http-conduit
-     , http-directory, simple-cmd, simple-cmd-args, text, time
+    ({ mkDerivation, ansi-terminal, base, bytestring, extra
+     , http-conduit, http-directory, simple-cmd, simple-cmd-args
+     , simple-prompt, text, time
      }:
      mkDerivation {
        pname = "fedora-composes";
-       version = "0.1";
-       sha256 = "0vnkl4ikkl15gnmhrap7r0dlk80s9y8a4gdgbf7ilk7j6plw51b5";
+       version = "0.2";
+       sha256 = "1q8k41gsrf77dwv4a1kbvh0l949ashph8n08fv0n3b8xys4nl59x";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base bytestring extra http-conduit http-directory simple-cmd-args
-         text time
+         ansi-terminal base bytestring extra http-conduit http-directory
+         simple-cmd-args simple-prompt text time
        ];
        testHaskellDepends = [ base simple-cmd ];
        description = "Query Fedora composes";
@@ -104747,19 +104851,18 @@ self: {
   "fedora-repoquery" = callPackage
     ({ mkDerivation, base, bodhi, bytestring, cached-json-file
      , directory, extra, filepath, http-client, http-directory
-     , optparse-applicative, regex-compat, simple-cmd, simple-cmd-args
-     , text, time
+     , regex-compat, simple-cmd, simple-cmd-args, text, time
      }:
      mkDerivation {
        pname = "fedora-repoquery";
-       version = "0.3.1";
-       sha256 = "0sdn2j25gf9k55w5rkzqi66jnmj74zajlal9vc06cx3xhw14rmsl";
+       version = "0.3.2";
+       sha256 = "16qlplbxw3ipxgahvkn40i9mbpsmaprnjf42xmww6hiyp5iliwrv";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          base bodhi bytestring cached-json-file directory extra filepath
-         http-client http-directory optparse-applicative regex-compat
-         simple-cmd simple-cmd-args text time
+         http-client http-directory regex-compat simple-cmd simple-cmd-args
+         text time
        ];
        testHaskellDepends = [ base simple-cmd ];
        description = "Fedora repoquery tool";
@@ -104794,8 +104897,8 @@ self: {
        pname = "feed";
        version = "1.3.2.1";
        sha256 = "0marh7qmggq1z5339nid3gil7k786d3yk79b0rwfkxxaxmr41xd8";
-       revision = "3";
-       editedCabalFile = "0ry8qlbbwmh1hi9v21mvq23yh0iv7g0n2fwdqvd4n8npd676jrc9";
+       revision = "4";
+       editedCabalFile = "1ihkckkn5xpk4mmgbxp0c3ik2rgzx3r60vzxmzgmw83a77ghjgmy";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base base-compat bytestring old-locale old-time safe text time
@@ -106696,8 +106799,8 @@ self: {
        pname = "finite-typelits";
        version = "0.1.6.0";
        sha256 = "0f047dywlxiz3pl3rq6maym9wpwjwl4zjqfwlwnj0yiv7dmlaiih";
-       revision = "1";
-       editedCabalFile = "0v7m5hhkkj4wyfas6a9a59sxx05rvfmhnd2qwp0wryd40f52xwmr";
+       revision = "2";
+       editedCabalFile = "18zzhzhp5kfa808zd8h3y1fy4fn4hqab49340jzv8rpzd0x5w19s";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "A type inhabited by finitely many values, indexed by type-level naturals";
@@ -107797,8 +107900,8 @@ self: {
      }:
      mkDerivation {
        pname = "flatparse";
-       version = "0.5.0.1";
-       sha256 = "08km6zw6p3xhqcbmfgksc6rgws08zj828cnn21zqq3kriq47amvc";
+       version = "0.5.0.2";
+       sha256 = "06c31xqaq0v8hys7knxxsxmj0py3h0fwkp4kq9dwr88sk65v8ash";
        libraryHaskellDepends = [
          base bytestring containers integer-gmp template-haskell utf8-string
        ];
@@ -107815,15 +107918,15 @@ self: {
        maintainers = [ lib.maintainers.raehik ];
      }) {};
 
-  "flatparse_0_5_0_2" = callPackage
+  "flatparse_0_5_1_0" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers, gauge
      , hspec, HUnit, integer-gmp, megaparsec, parsec, primitive
      , QuickCheck, quickcheck-instances, template-haskell, utf8-string
      }:
      mkDerivation {
        pname = "flatparse";
-       version = "0.5.0.2";
-       sha256 = "06c31xqaq0v8hys7knxxsxmj0py3h0fwkp4kq9dwr88sk65v8ash";
+       version = "0.5.1.0";
+       sha256 = "1hczq8x2qmvhxvdn6yb1dcq18ahm917dq0vjvhni6d5d9sa6r2fb";
        libraryHaskellDepends = [
          base bytestring containers integer-gmp template-haskell utf8-string
        ];
@@ -108995,10 +109098,8 @@ self: {
      }:
      mkDerivation {
        pname = "foldl";
-       version = "1.4.15";
-       sha256 = "1bn00vv60kfwqcn1xv4yi5k2dm8kdksai034wv3cp20p2h2z3clw";
-       revision = "1";
-       editedCabalFile = "1qgydj1q78bxx59ad62jw19iikr8nkq74rzr9mfpk3vpiw0v7lk5";
+       version = "1.4.16";
+       sha256 = "18bbhz0bjxb30ni9m9nm4aj8klakkd2fbjaymg8j3f0kdki3isj9";
        libraryHaskellDepends = [
          base bytestring comonad containers contravariant hashable primitive
          profunctors random semigroupoids text transformers
@@ -109478,8 +109579,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "foreign-store";
-       version = "0.2";
-       sha256 = "1p436dn6l5zjzizcsj0hn10s2n907gr7c8y89i4sm3h69lhqlw86";
+       version = "0.2.1";
+       sha256 = "0ghs17wx32jwzk1fd1480cmnfakgdb3yc9v4yvzdxcipjc95abgj";
        libraryHaskellDepends = [ base ];
        description = "Store a stable pointer in a foreign context to be retrieved later";
        license = lib.licenses.bsd3;
@@ -109800,8 +109901,8 @@ self: {
      }:
      mkDerivation {
        pname = "forms-data-format";
-       version = "0.2.0.1";
-       sha256 = "0w5zqriaqhga9jfnr9n634aa715dv1zmnq5bv7cf67v6bck0laxy";
+       version = "0.2.1";
+       sha256 = "0l0v6m1ixpq7bmafnnn66gjjfwv28lvr20jsh35yfjifznw2vgbn";
        libraryHaskellDepends = [
          base bytestring grammatical-parsers monoid-subclasses parsers
          rank2classes text
@@ -110205,7 +110306,7 @@ self: {
        mainProgram = "fourmolu";
      }) {};
 
-  "fourmolu_0_14_1_0" = callPackage
+  "fourmolu_0_15_0_0" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, base, binary
      , bytestring, Cabal-syntax, containers, deepseq, Diff, directory
      , file-embed, filepath, ghc-lib-parser, hspec, hspec-discover
@@ -110215,10 +110316,8 @@ self: {
      }:
      mkDerivation {
        pname = "fourmolu";
-       version = "0.14.1.0";
-       sha256 = "1wqrs5fl72br5mlkf1dyna0946kxscjfgb4956mksr2fgcdqmdxl";
-       revision = "1";
-       editedCabalFile = "0rpfsfhz9a5bjh6hn38jnl3k46blb5cqih9zpqgcdzfq6nfz2k46";
+       version = "0.15.0.0";
+       sha256 = "11xy0k5zkhd0dz7ify0m466l90j8sblm9rzzwkc0nn0d8pxyizfq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -110248,8 +110347,8 @@ self: {
      }:
      mkDerivation {
        pname = "fp-ieee";
-       version = "0.1.0.3";
-       sha256 = "1g7wmrf5r09ab3n4rjcariljwsq56q10z9yqdlp04lziv054iggg";
+       version = "0.1.0.4";
+       sha256 = "1zba050nwsf2iidxklibndja5kmszc5k7jmimchszrnc821d0cqg";
        libraryHaskellDepends = [ base ghc-bignum integer-logarithms ];
        testHaskellDepends = [
          base doctest hspec hspec-core integer-logarithms QuickCheck random
@@ -110618,48 +110717,49 @@ self: {
      }) {};
 
   "freckle-app" = callPackage
-    ({ mkDerivation, aeson, annotated-exception
-     , aws-xray-client-persistent, aws-xray-client-wai, base, bcp47
-     , Blammo, bugsnag, bytestring, case-insensitive, cassava, conduit
-     , conduit-extra, containers, cookie, datadog, doctest, dotenv
-     , ekg-core, envparse, errors, exceptions, extra, filepath, Glob
-     , hashable, hs-opentelemetry-api
-     , hs-opentelemetry-instrumentation-persistent
+    ({ mkDerivation, aeson, annotated-exception, autodocodec
+     , autodocodec-openapi3, aws-xray-client-persistent
+     , aws-xray-client-wai, base, bcp47, Blammo, bugsnag, bytestring
+     , case-insensitive, cassava, conduit, conduit-extra, containers
+     , cookie, datadog, directory, doctest, dotenv, ekg-core, envparse
+     , errors, exceptions, extra, filepath, Glob, hashable
+     , hs-opentelemetry-api, hs-opentelemetry-instrumentation-persistent
      , hs-opentelemetry-instrumentation-wai
      , hs-opentelemetry-propagator-datadog, hs-opentelemetry-sdk, hspec
      , hspec-core, hspec-expectations-lifted, hspec-junit-formatter
      , http-client, http-conduit, http-link-header, http-types
      , hw-kafka-client, immortal, lens, lens-aeson, memcache
      , monad-control, monad-logger-aeson, monad-validate, MonadRandom
-     , mtl, network-uri, nonempty-containers, path-pieces, persistent
-     , persistent-postgresql, postgresql-simple, primitive, pureMD5
-     , QuickCheck, resource-pool, resourcet, retry, safe, scientist
-     , semigroupoids, serialise, template-haskell, text, time
+     , mtl, network-uri, nonempty-containers, openapi3, path-pieces
+     , persistent, persistent-postgresql, postgresql-simple, primitive
+     , pureMD5, QuickCheck, resource-pool, resourcet, retry, safe
+     , scientist, semigroupoids, serialise, template-haskell, text, time
      , transformers, transformers-base, typed-process, unliftio
      , unliftio-core, unordered-containers, vector, wai, wai-extra, yaml
      , yesod-core, yesod-test
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.12.0.1";
-       sha256 = "0yb90xwv5hl21bm2dra38a19wd5w6pxlq6gr78wv5rqf0v0bj47k";
-       libraryHaskellDepends = [
-         aeson annotated-exception aws-xray-client-persistent
-         aws-xray-client-wai base bcp47 Blammo bugsnag bytestring
-         case-insensitive cassava conduit conduit-extra containers cookie
-         datadog doctest dotenv ekg-core envparse errors exceptions extra
-         filepath Glob hashable hs-opentelemetry-api
-         hs-opentelemetry-instrumentation-persistent
+       version = "1.15.0.1";
+       sha256 = "0lgbliiikg25a0sggfj9rdd13pvda5304pkh5cddhqc8ypkr2936";
+       libraryHaskellDepends = [
+         aeson annotated-exception autodocodec autodocodec-openapi3
+         aws-xray-client-persistent aws-xray-client-wai base bcp47 Blammo
+         bugsnag bytestring case-insensitive cassava conduit conduit-extra
+         containers cookie datadog directory doctest dotenv ekg-core
+         envparse errors exceptions extra filepath Glob hashable
+         hs-opentelemetry-api hs-opentelemetry-instrumentation-persistent
          hs-opentelemetry-instrumentation-wai
          hs-opentelemetry-propagator-datadog hs-opentelemetry-sdk hspec
          hspec-core hspec-expectations-lifted hspec-junit-formatter
          http-client http-conduit http-link-header http-types
          hw-kafka-client immortal lens memcache monad-control
          monad-logger-aeson monad-validate MonadRandom mtl network-uri
-         nonempty-containers path-pieces persistent persistent-postgresql
-         postgresql-simple primitive pureMD5 resource-pool resourcet retry
-         safe scientist semigroupoids serialise template-haskell text time
-         transformers transformers-base typed-process unliftio unliftio-core
+         nonempty-containers openapi3 path-pieces persistent
+         persistent-postgresql postgresql-simple primitive pureMD5
+         QuickCheck resource-pool resourcet retry safe scientist
+         semigroupoids serialise template-haskell text time transformers
+         transformers-base typed-process unliftio unliftio-core
          unordered-containers vector wai wai-extra yaml yesod-core
          yesod-test
        ];
@@ -112659,8 +112759,10 @@ self: {
      }:
      mkDerivation {
        pname = "functor-products";
-       version = "0.1.2.0";
-       sha256 = "0d3izxxrw8xdadwwgg0ybsml5n10xy2hs8c85vp7dsf1z0cvvhgm";
+       version = "0.1.2.1";
+       sha256 = "0zyh311ayqdnjjs0j939b8968jajjry4igxi27xsgpgdya3qmk7d";
+       revision = "1";
+       editedCabalFile = "12rnvjxf68d1nxfc1sw4vmzgq6yd0079s95c4k2rxkqibx9cm0xg";
        libraryHaskellDepends = [
          base microlens singletons singletons-base text vinyl
        ];
@@ -112887,8 +112989,6 @@ self: {
        benchmarkHaskellDepends = [ base tasty-bench transformers ];
        description = "A fast, flexible, fused effect system";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fused-effects-exceptions" = callPackage
@@ -112920,7 +113020,6 @@ self: {
        testHaskellDepends = [ base fused-effects hspec microlens ];
        description = "Monadic lens combinators for fused-effects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-mwc-random" = callPackage
@@ -112954,7 +113053,6 @@ self: {
        libraryHaskellDepends = [ base fused-effects optics-core ];
        description = "Bridge between the optics and fused-effects ecosystems";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-random" = callPackage
@@ -112966,7 +113064,6 @@ self: {
        libraryHaskellDepends = [ base fused-effects random transformers ];
        description = "Random number generation for fused-effects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-readline" = callPackage
@@ -112986,7 +113083,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "A readline-like effect and carrier for fused-effects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-resumable" = callPackage
@@ -113100,8 +113196,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.25.13";
-       sha256 = "03hx8lq30bwdgbg52lcb4xd8lclcc8yj49cnzcjxx9p21sji3gfl";
+       version = "0.25.14";
+       sha256 = "10aw0ms4l7ddzdhq2x2q0s7sw4hzpmlam811nrvb92q968bvhmnx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -113156,8 +113252,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark-manifest";
-       version = "1.3.0.0";
-       sha256 = "0m6zlk1d9mg0rv7l9fj5702h81yvqrndcbgx6q6gwdbf13q9d2bp";
+       version = "1.4.0.0";
+       sha256 = "1fqg631x8kkijg3zd6amzjqw99k2942ddj9y138w9awqaa5mc9n6";
        libraryHaskellDepends = [ aeson base bytestring containers text ];
        testHaskellDepends = [
          base QuickCheck quickcheck-instances tasty tasty-hunit
@@ -113450,6 +113546,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "fuzzyset_0_3_2" = callPackage
+    ({ mkDerivation, base, hspec, ieee754, mtl, text, text-metrics
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "fuzzyset";
+       version = "0.3.2";
+       sha256 = "137z8r3i6x2z0nb9yi33ly83c2k1b0b9snm6dqmis4b15z1m4kdq";
+       libraryHaskellDepends = [
+         base mtl text text-metrics transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base hspec ieee754 mtl text text-metrics transformers
+         unordered-containers vector
+       ];
+       description = "Fuzzy set data structure for approximate string matching";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fuzzytime" = callPackage
     ({ mkDerivation, base, cmdargs, directory, old-time, process }:
      mkDerivation {
@@ -117113,7 +117229,7 @@ self: {
        mainProgram = "gh-pocket-knife";
      }) {};
 
-  "ghc_9_8_1" = callPackage
+  "ghc_9_8_2" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, Cabal
      , containers, deepseq, deriveConstants, directory, exceptions
      , filepath, genprimopcode, ghc-boot, ghc-heap, ghci, happy, hpc
@@ -117122,8 +117238,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc";
-       version = "9.8.1";
-       sha256 = "15863rp4lcpz2h7f0ncix7n53b5yxk5ndp0g8hk4z1b1y2dwm0w3";
+       version = "9.8.2";
+       sha256 = "1q396jkd3j8g7kc2vbkfhrpv1wqa8h1ahfh7jvbgycxmn0vzfh9h";
        setupHaskellDepends = [
          base Cabal containers directory filepath process
        ];
@@ -117814,6 +117930,8 @@ self: {
        pname = "ghc-heap";
        version = "9.8.1";
        sha256 = "1z0gghf7ki2sz60ikgdw3d42djphl5lf27z8mfnzcvxp3p6ajxmz";
+       revision = "1";
+       editedCabalFile = "0n7ba0gwaxpsknb5kxpis7ji9172xvim63di83gl63avp0sjdwd5";
        libraryHaskellDepends = [ base containers ghc-prim rts ];
        description = "Functions for walking GHC's heap";
        license = lib.licenses.bsd3;
@@ -117986,7 +118104,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib_9_8_1_20231121" = callPackage
+  "ghc-lib_9_8_2_20240223" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-lib-parser
      , ghc-prim, happy, hpc, parsec, pretty, process, rts
@@ -117994,10 +118112,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "9.8.1.20231121";
-       sha256 = "1ccnlj8cgk0laqh9zzdzsxg7j1mycfmfzlynqiqk76afypmsvaf4";
-       revision = "1";
-       editedCabalFile = "09wmv9ndkr239myvxqbns0qw6qrx3m1rgqikbqsbgwb2cfd3a96r";
+       version = "9.8.2.20240223";
+       sha256 = "12lmk3ipd1pyiwzmnb0zgbw86yy7mhsy530dnackwidg3ww07nia";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -118051,15 +118167,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser_9_8_1_20231121" = callPackage
+  "ghc-lib-parser_9_8_2_20240223" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-prim, happy, parsec
      , pretty, process, time, transformers, unix
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "9.8.1.20231121";
-       sha256 = "1vbsgvnk9rj3vf1dscwq19kkb8pkm1dzy8687fgmypnj7aipa7sp";
+       version = "9.8.2.20240223";
+       sha256 = "05k5grbh3s0ywm8y6cp9hqfj4bbq0nh1bx1ysgfv88df5hgg47r9";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -118111,14 +118227,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser-ex_9_8_0_0" = callPackage
+  "ghc-lib-parser-ex_9_8_0_2" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, extra
      , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "9.8.0.0";
-       sha256 = "1xchnw1x27k3v02h0mpvm0m78jkhb1kvybjgrky7a3wfn3irv1nj";
+       version = "9.8.0.2";
+       sha256 = "1s4ibjdzrflb2r88srmdnslj09h78xqwdn6djcnirmnka7qrf09v";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -119195,8 +119311,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "2.6.0.0";
-       sha256 = "1x99dlcfjvlc45nlgydmlm2hdf7a4mrdg9cyxdb8b4k29rjas9a5";
+       version = "2.7.0.0";
+       sha256 = "0k4pqpbz32xi2qqp47g04wx76yahqpzzg4q1nmshl6xm4nggag49";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -119206,12 +119322,12 @@ self: {
          dlist enummapset exceptions extra filepath fingertree focus ghc
          ghc-boot ghc-boot-th ghc-check ghc-paths ghc-trace-events Glob
          haddock-library hashable hie-bios hie-compat hiedb hls-graph
-         hls-plugin-api implicit-hie lens list-t lsp lsp-types mtl
+         hls-plugin-api implicit-hie lens list-t lsp lsp-test lsp-types mtl
          opentelemetry optparse-applicative parallel prettyprinter
          prettyprinter-ansi-terminal random regex-tdfa row-types
          safe-exceptions sorted-list sqlite-simple stm stm-containers syb
-         text text-rope time transformers unix unliftio unliftio-core
-         unordered-containers vector
+         tasty-hunit text text-rope time transformers unix unliftio
+         unliftio-core unordered-containers vector
        ];
        executableHaskellDepends = [
          base data-default extra gitrev hls-plugin-api lsp lsp-types
@@ -119219,13 +119335,14 @@ self: {
        ];
        testHaskellDepends = [
          aeson async base containers data-default directory enummapset extra
-         filepath fuzzy ghc hls-plugin-api lens list-t lsp lsp-test
-         lsp-types monoid-subclasses mtl network-uri QuickCheck random
-         regex-tdfa row-types shake sqlite-simple stm stm-containers tasty
+         filepath fuzzy hls-plugin-api lens list-t lsp lsp-test lsp-types
+         monoid-subclasses mtl network-uri QuickCheck random regex-tdfa
+         row-types shake sqlite-simple stm stm-containers tasty
          tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
          text text-rope unordered-containers
        ];
        testToolDepends = [ implicit-hie ];
+       doHaddock = false;
        description = "The core of an IDE";
        license = lib.licenses.asl20;
      }) {};
@@ -119233,22 +119350,21 @@ self: {
   "ghcide-bench" = callPackage
     ({ mkDerivation, aeson, async, base, binary, bytestring, containers
      , data-default, deepseq, directory, extra, filepath, ghcide
-     , ghcide-test-utils, hashable, hls-graph, hls-plugin-api
-     , implicit-hie, lens, lsp-test, lsp-types, optparse-applicative
-     , parser-combinators, process, row-types, safe-exceptions, shake
-     , tasty, tasty-hunit, tasty-rerun, text
+     , hashable, hls-graph, hls-plugin-api, implicit-hie, lens, lsp-test
+     , lsp-types, optparse-applicative, parser-combinators, process
+     , row-types, safe-exceptions, shake, tasty, tasty-hunit
+     , tasty-rerun, text
      }:
      mkDerivation {
        pname = "ghcide-bench";
-       version = "2.6.0.0";
-       sha256 = "1j0fqfahdylw85akmpis01x5s3i187kzin58kziw79nlmm47kz6c";
+       version = "2.7.0.0";
+       sha256 = "1028d8hglqx3yxcf8idsjaf47m4f3ms6qzhqs3g8l6fcb5l3vlnj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base binary bytestring deepseq directory extra filepath
-         ghcide ghcide-test-utils hashable lens lsp-test lsp-types
-         optparse-applicative parser-combinators process row-types
-         safe-exceptions shake text
+         ghcide hashable lens lsp-test lsp-types optparse-applicative
+         parser-combinators process row-types safe-exceptions shake text
        ];
        executableHaskellDepends = [
          aeson base bytestring containers data-default directory extra
@@ -119279,6 +119395,8 @@ self: {
        ];
        description = "Test utils for ghcide";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ghcitui" = callPackage
@@ -119599,47 +119717,48 @@ self: {
 
   "ghcup" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, async, base
-     , base16-bytestring, binary, bytestring, bz2, Cabal
+     , base16-bytestring, binary, brick, bytestring, bz2, Cabal
      , cabal-install-parsers, cabal-plan, case-insensitive, casing
      , containers, cryptohash-sha256, deepseq, directory
-     , disk-free-space, exceptions, filepath, generic-arbitrary
-     , haskus-utils-types, haskus-utils-variant, hspec, hspec-discover
-     , hspec-golden-aeson, libarchive, lzma-static, megaparsec, mtl
-     , optics, optparse-applicative, os-release, pretty, pretty-terminal
-     , process, QuickCheck, quickcheck-arbitrary-adt, regex-posix
-     , resourcet, retry, safe, safe-exceptions, split, streamly
-     , strict-base, tagsoup, tasty, tasty-hunit, template-haskell
-     , temporary, terminal-size, text, time, transformers, unix
-     , unix-bytestring, unliftio-core, unordered-containers
-     , uri-bytestring, utf8-string, vector, versions, word8
-     , yaml-streamly, zlib
+     , disk-free-space, exceptions, file-uri, filepath
+     , generic-arbitrary, haskus-utils-types, haskus-utils-variant
+     , hspec, hspec-discover, hspec-golden-aeson, libarchive
+     , lzma-static, megaparsec, mtl, optics, optparse-applicative
+     , os-release, pretty, pretty-terminal, process, QuickCheck
+     , quickcheck-arbitrary-adt, regex-posix, resourcet, retry, safe
+     , safe-exceptions, split, streamly, strict-base, tagsoup, tasty
+     , tasty-hunit, template-haskell, temporary, terminal-size, text
+     , time, transformers, unix, unix-bytestring, unliftio-core
+     , unordered-containers, uri-bytestring, utf8-string, vector
+     , versions, vty, word8, yaml-streamly, zlib
      }:
      mkDerivation {
        pname = "ghcup";
-       version = "0.1.20.0";
-       sha256 = "1xh1wm7ggj7wl3mys2ivqwn39ds6cjgbsdw64ld12jdmkrdr22qs";
+       version = "0.1.22.0";
+       sha256 = "073vcv2kchldfkyfr1bxc8sqd86b7knnm7sl94rjqrz6gs7rvqx7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty async base base16-bytestring binary bytestring
          bz2 Cabal cabal-install-parsers cabal-plan case-insensitive casing
          containers cryptohash-sha256 deepseq directory disk-free-space
-         exceptions filepath haskus-utils-types haskus-utils-variant
-         libarchive lzma-static megaparsec mtl optics optparse-applicative
-         os-release pretty pretty-terminal process regex-posix resourcet
-         retry safe safe-exceptions split streamly strict-base tagsoup
-         template-haskell temporary terminal-size text time transformers
-         unix unix-bytestring unliftio-core unordered-containers
-         uri-bytestring utf8-string vector versions word8 yaml-streamly zlib
-       ];
-       executableHaskellDepends = [
-         aeson aeson-pretty async base bytestring cabal-install-parsers
-         cabal-plan containers deepseq directory filepath haskus-utils-types
-         haskus-utils-variant libarchive megaparsec mtl optparse-applicative
-         pretty pretty-terminal process resourcet safe safe-exceptions
-         tagsoup template-haskell temporary text time unix
-         unordered-containers uri-bytestring utf8-string vector versions
-         yaml-streamly
+         exceptions file-uri filepath haskus-utils-types
+         haskus-utils-variant libarchive lzma-static megaparsec mtl optics
+         optparse-applicative os-release pretty pretty-terminal process
+         regex-posix resourcet retry safe safe-exceptions split streamly
+         strict-base tagsoup template-haskell temporary terminal-size text
+         time transformers unix unix-bytestring unliftio-core
+         unordered-containers uri-bytestring utf8-string vector versions vty
+         word8 yaml-streamly zlib
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty async base brick bytestring
+         cabal-install-parsers cabal-plan containers deepseq directory
+         filepath haskus-utils-types haskus-utils-variant libarchive
+         megaparsec mtl optics optparse-applicative pretty pretty-terminal
+         process resourcet safe safe-exceptions tagsoup template-haskell
+         temporary text time transformers unix unordered-containers
+         uri-bytestring utf8-string vector versions vty yaml-streamly
        ];
        testHaskellDepends = [
          base bytestring containers directory filepath generic-arbitrary
@@ -119769,6 +119888,29 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) atk;};
 
+  "gi-ayatana-appindicator3" = callPackage
+    ({ mkDerivation, ayatana-appindicator3, base, bytestring, Cabal
+     , containers, gi-gdk, gi-gobject, gi-gtk, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ayatana-appindicator3";
+       version = "0.1.0";
+       sha256 = "0ds1d21r2fhc92iznc02gnm6xfgj6hx63iz04bvvpbld6s6xislr";
+       setupHaskellDepends = [
+         base Cabal gi-gdk gi-gobject gi-gtk haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gdk gi-gobject gi-gtk haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ ayatana-appindicator3 ];
+       description = "libayatana-appindicator3 bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {ayatana-appindicator3 = null;};
+
   "gi-cairo" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -120134,6 +120276,8 @@ self: {
        description = "libgit2-glib bindings";
        license = lib.licenses.lgpl21Only;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libgit2-glib;};
 
   "gi-gio" = callPackage
@@ -120310,6 +120454,29 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs.gst_all_1) gstreamer;};
 
+  "gi-gstapp" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gi-gst, gi-gstbase, gstreamer-app, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gstapp";
+       version = "1.0.28";
+       sha256 = "1vm95fih31bn4d86rfqnp39xdiq0n4gwzc0j9dv71cdkz6fzswmb";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-gst gi-gstbase
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gstreamer-app ];
+       description = "GStreamerApp bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {gstreamer-app = null;};
+
   "gi-gstaudio" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, gi-gst, gi-gstbase, gst-plugins-base, haskell-gi
@@ -121107,6 +121274,8 @@ self: {
        description = "WebKit2-WebExtension bindings";
        license = lib.licenses.lgpl21Only;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-webkitwebprocessextension" = callPackage
@@ -121494,8 +121663,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "10.20231129";
-       sha256 = "0syf5asgzggdd042zyacyazzq04q9g3jirrvjwcnll6kg4g0jp78";
+       version = "10.20240227";
+       sha256 = "07py6xfss8jpw5yhvj203g4yd7qqx600j20hz0kqk80dpn7i3nqq";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -121546,83 +121715,6 @@ self: {
          inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
          inherit (pkgs) which;};
 
-  "git-annex_10_20240129" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, async, attoparsec, aws, base
-     , blaze-builder, bloomfilter, bup, byteable, bytestring, Cabal
-     , case-insensitive, clientsession, concurrent-output, conduit
-     , containers, crypto-api, crypton, curl, data-default, DAV, dbus
-     , deepseq, directory, disk-free-space, dlist, edit-distance
-     , exceptions, fdo-notify, feed, filepath, filepath-bytestring, free
-     , git, git-lfs, gnupg, hinotify, http-client
-     , http-client-restricted, http-client-tls, http-conduit, http-types
-     , IfElse, lsof, magic, memory, microlens, monad-control
-     , monad-logger, mountpoints, mtl, network, network-bsd
-     , network-info, network-multicast, network-uri, old-locale, openssh
-     , optparse-applicative, path-pieces, perl, persistent
-     , persistent-sqlite, persistent-template, process, QuickCheck
-     , random, regex-tdfa, resourcet, rsync, SafeSemaphore, sandi
-     , securemem, shakespeare, socks, split, stm, stm-chans, tagsoup
-     , tasty, tasty-hunit, tasty-quickcheck, tasty-rerun
-     , template-haskell, text, time, torrent, transformers, unix
-     , unix-compat, unliftio-core, unordered-containers, utf8-string
-     , uuid, vector, wai, wai-extra, warp, warp-tls, wget, which, yesod
-     , yesod-core, yesod-form, yesod-static
-     }:
-     mkDerivation {
-       pname = "git-annex";
-       version = "10.20240129";
-       sha256 = "0fc3rxakqps0qa4q0jns3h3mp9x9c28hsw1l4qk7jrkl4xpvmrg0";
-       configureFlags = [
-         "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
-         "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
-         "-fwebapp" "-fwebdav"
-       ];
-       isLibrary = false;
-       isExecutable = true;
-       setupHaskellDepends = [
-         async base bytestring Cabal directory exceptions filepath
-         filepath-bytestring process split time utf8-string
-       ];
-       executableHaskellDepends = [
-         aeson ansi-terminal async attoparsec aws base blaze-builder
-         bloomfilter byteable bytestring case-insensitive clientsession
-         concurrent-output conduit containers crypto-api crypton
-         data-default DAV dbus deepseq directory disk-free-space dlist
-         edit-distance exceptions fdo-notify feed filepath
-         filepath-bytestring free git-lfs hinotify http-client
-         http-client-restricted http-client-tls http-conduit http-types
-         IfElse magic memory microlens monad-control monad-logger
-         mountpoints mtl network network-bsd network-info network-multicast
-         network-uri old-locale optparse-applicative path-pieces persistent
-         persistent-sqlite persistent-template process QuickCheck random
-         regex-tdfa resourcet SafeSemaphore sandi securemem shakespeare
-         socks split stm stm-chans tagsoup tasty tasty-hunit
-         tasty-quickcheck tasty-rerun template-haskell text time torrent
-         transformers unix unix-compat unliftio-core unordered-containers
-         utf8-string uuid vector wai wai-extra warp warp-tls yesod
-         yesod-core yesod-form yesod-static
-       ];
-       executableSystemDepends = [
-         bup curl git gnupg lsof openssh perl rsync wget which
-       ];
-       preConfigure = "export HOME=$TEMPDIR; patchShebangs .";
-       postBuild = ''
-         ln -sf dist/build/git-annex/git-annex git-annex
-         ln -sf git-annex git-annex-shell
-       '';
-       installPhase = "make PREFIX=$out BUILDER=: install install-completions";
-       checkPhase = ''PATH+=":$PWD" git-annex test'';
-       enableSharedExecutables = false;
-       description = "manage files with git, without checking their contents into git";
-       license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "git-annex";
-       maintainers = [ lib.maintainers.peti lib.maintainers.roosemberth ];
-     }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
-         inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
-         inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
-         inherit (pkgs) which;};
-
   "git-brunch" = callPackage
     ({ mkDerivation, base, brick, extra, hspec, microlens
      , microlens-mtl, mtl, optparse-applicative, process, text, vector
@@ -121840,22 +121932,6 @@ self: {
      }:
      mkDerivation {
        pname = "git-lfs";
-       version = "1.2.1";
-       sha256 = "0bbgkyfaz6psxqha68w3s1pgp1kc58p47zi5qvh877hhmdn25l9q";
-       libraryHaskellDepends = [
-         aeson base bytestring case-insensitive containers http-client
-         http-types network-uri text
-       ];
-       description = "git-lfs protocol";
-       license = lib.licenses.agpl3Only;
-     }) {};
-
-  "git-lfs_1_2_2" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, case-insensitive
-     , containers, http-client, http-types, network-uri, text
-     }:
-     mkDerivation {
-       pname = "git-lfs";
        version = "1.2.2";
        sha256 = "0k4flxhr3b8ripskn97bf33gass62ix2ijj31wc70xaq4glg3f5m";
        libraryHaskellDepends = [
@@ -121864,7 +121940,6 @@ self: {
        ];
        description = "git-lfs protocol";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "git-mediate" = callPackage
@@ -122263,8 +122338,8 @@ self: {
        pname = "github-rest";
        version = "1.1.4";
        sha256 = "156mqc9748ypinwm8xb46b40ysqpgyb5p2jaiyc34jpxd74g3148";
-       revision = "2";
-       editedCabalFile = "0jvdqpcb4mkmndx3jhvq58m48ayax8n0sz7gsqpkiwpwy7gy816q";
+       revision = "3";
+       editedCabalFile = "02wmwq9kgsi6mxq2g7kv6jlls469sa7bk2jqjibbs3x4i54j7jdg";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types jwt
          mtl scientific text time transformers unliftio unliftio-core
@@ -122506,17 +122581,17 @@ self: {
 
   "gitlab-haskell" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring
-     , connection, http-client, http-conduit, http-types, mtl, tasty
-     , tasty-hunit, temporary, text, time, transformers, tree-diff, unix
-     , unordered-containers, vector
+     , crypton-connection, http-client, http-conduit, http-types, mtl
+     , tasty, tasty-hunit, temporary, text, time, transformers
+     , tree-diff, unix, unordered-containers, vector
      }:
      mkDerivation {
        pname = "gitlab-haskell";
-       version = "1.0.0.4";
-       sha256 = "06v1hjc4q2i4fvvia6zi9ky1x3vyyvsvanxm2li691swgvcwkrn5";
+       version = "1.0.0.5";
+       sha256 = "0ghvf4pv1qzjyrqp94a11vgjflfhkbpyw3rnv0i8fiirilr5bxpw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base bytestring connection http-client http-conduit
+         aeson base bytestring crypton-connection http-client http-conduit
          http-types mtl temporary text time transformers unix
        ];
        testHaskellDepends = [
@@ -123587,6 +123662,7 @@ self: {
        description = "Massiv-based alternative for gloss-raster";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "gloss-rendering" = callPackage
@@ -123903,24 +123979,6 @@ self: {
      }:
      mkDerivation {
        pname = "gmail-simple";
-       version = "0.1.0.5";
-       sha256 = "10h39d9hkqf4plgr5dh6lwsy2fdk62ciwn41dsn61pvvq01qpsyz";
-       libraryHaskellDepends = [
-         aeson base base64 blaze-html bytestring containers cryptonite
-         http-api-data http-conduit http-media jwt text time
-         unordered-containers
-       ];
-       description = "Simple library for Google Mail (GMail)";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "gmail-simple_0_1_0_6" = callPackage
-    ({ mkDerivation, aeson, base, base64, blaze-html, bytestring
-     , containers, cryptonite, http-api-data, http-conduit, http-media
-     , jwt, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "gmail-simple";
        version = "0.1.0.6";
        sha256 = "055kw57i0bspa6x0bx62ar1bqww6d46m15xzvg7f5phhfcx7py96";
        libraryHaskellDepends = [
@@ -123930,7 +123988,6 @@ self: {
        ];
        description = "Simple library for Google Mail (GMail)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "gmap" = callPackage
@@ -129072,6 +129129,8 @@ self: {
        pname = "grisette";
        version = "0.4.1.0";
        sha256 = "00nkg8mz0mi5d0zvjxn7jj149nvjpzcflpqv2f4p8kbis95iccm8";
+       revision = "2";
+       editedCabalFile = "0jkilmbz5drg1vrzc6zy6d6axw4fcq7bgqwsrdf6c917pmciip6q";
        libraryHaskellDepends = [
          array async base bytestring deepseq generic-deriving hashable
          hashtables intern loch-th mtl parallel prettyprinter QuickCheck sbv
@@ -129484,6 +129543,8 @@ self: {
        pname = "groups-generic";
        version = "0.3.1.0";
        sha256 = "1v9mw478x6kfv38m13kypfmz9w8vn3xkvff3gy9g7x29aq5bvjfy";
+       revision = "1";
+       editedCabalFile = "1fsniqwyinpj9fmavdy915pl9f39bcyqbppk3iilml02yjrg73kg";
        libraryHaskellDepends = [ base groups ];
        description = "Generically derive Group instances";
        license = lib.licenses.bsd3;
@@ -130426,31 +130487,36 @@ self: {
      }) {};
 
   "guardian" = callPackage
-    ({ mkDerivation, aeson, algebraic-graphs, array, base, bytestring
-     , Cabal, cabal-install, Cabal-syntax, containers, dlist
-     , generic-lens, githash, hashable, indexed-traversable
-     , indexed-traversable-instances, microlens, optparse-applicative
-     , path, path-io, rio, selective, semigroups, stack, tasty
-     , tasty-discover, tasty-hunit, template-haskell, text, transformers
+    ({ mkDerivation, aeson, algebraic-graphs, base, bytestring
+     , bytestring-trie, Cabal, cabal-install, Cabal-syntax
+     , case-insensitive, containers, dlist, generic-lens, githash
+     , hashable, indexed-traversable, indexed-traversable-instances
+     , language-dot, optparse-applicative, parsec, path, path-io
+     , regex-applicative-text, rio, semigroups, stack, tasty
+     , tasty-discover, tasty-expected-failure, tasty-hunit
+     , template-haskell, text, transformers, typed-process
      , unordered-containers, validation-selective, vector, yaml
      }:
      mkDerivation {
        pname = "guardian";
-       version = "0.4.0.0";
-       sha256 = "190b7jds9kngcmx6aqlkygv3rkgbn4kqwbkh0mr0fjvzyy16mg7k";
+       version = "0.5.0.0";
+       sha256 = "01vj7xb974dxglvhh8l3g0vs6ink9vr7d4kw0cglvd2za9nxxv00";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson algebraic-graphs array base Cabal cabal-install Cabal-syntax
-         containers dlist generic-lens githash hashable indexed-traversable
-         indexed-traversable-instances microlens optparse-applicative path
-         path-io rio selective semigroups stack template-haskell text
-         transformers unordered-containers validation-selective vector yaml
+         aeson algebraic-graphs base bytestring-trie Cabal cabal-install
+         Cabal-syntax case-insensitive containers dlist generic-lens githash
+         hashable indexed-traversable indexed-traversable-instances
+         language-dot optparse-applicative parsec path path-io
+         regex-applicative-text rio semigroups stack template-haskell text
+         transformers typed-process unordered-containers
+         validation-selective vector yaml
        ];
-       executableHaskellDepends = [ base text ];
+       executableHaskellDepends = [ base ];
        testHaskellDepends = [
          algebraic-graphs base bytestring containers path path-io rio tasty
-         tasty-hunit text unordered-containers validation-selective
+         tasty-expected-failure tasty-hunit text unordered-containers
+         validation-selective
        ];
        testToolDepends = [ tasty-discover ];
        description = "The border guardian for your package dependencies";
@@ -130639,16 +130705,19 @@ self: {
      }) {};
 
   "h-raylib" = callPackage
-    ({ mkDerivation, base, c, containers, exceptions, lens, libGL
-     , libX11, libXcursor, libXext, libXi, libXinerama, libXrandr
+    ({ mkDerivation, base, bytestring, c, containers, exceptions, lens
+     , libGL, libX11, libXcursor, libXext, libXi, libXinerama, libXrandr
+     , template-haskell, text
      }:
      mkDerivation {
        pname = "h-raylib";
-       version = "5.1.0.1";
-       sha256 = "16bly59z7r9j30hqf806aaicbk3cbnzz5aar1b0ag6f8z3afs0fv";
+       version = "5.1.1.0";
+       sha256 = "1jbdrgdvzap5i67509qdmy669cijf94wa5a96cnc2626yvjirycc";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base containers exceptions lens ];
+       libraryHaskellDepends = [
+         base bytestring containers exceptions lens template-haskell text
+       ];
        librarySystemDepends = [
          c libGL libX11 libXcursor libXext libXi libXinerama libXrandr
        ];
@@ -132200,8 +132269,8 @@ self: {
      }:
      mkDerivation {
        pname = "hackport";
-       version = "0.8.5.0";
-       sha256 = "1ynvvpc867vmxnbb909fszfdxf848vhh3avv98sgki4diqd77873";
+       version = "0.8.5.1";
+       sha256 = "0kbrpj38jkrgvha2xp3q4vdf9dnxzmmc3zhjrnqkibl17xg4cz43";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -133231,8 +133300,8 @@ self: {
        pname = "hakyll-convert";
        version = "0.3.0.4";
        sha256 = "09fqr05mvs0qs53psq97kn1s4axinwn1vr5d6af4sqj3zc5k6k39";
-       revision = "6";
-       editedCabalFile = "0v80ysaz1x78sgzpbzn9v1r406afkw2702ips4gclrr42a2llzsw";
+       revision = "7";
+       editedCabalFile = "0wlrihvpjfl3krncavzgl6znb8lsarp2684r48vhy6wrjx4g1h5n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136930,8 +136999,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-ci";
-       version = "0.16.6";
-       sha256 = "150s3lp49rpg9x3wcqhlcb70afgvxfnfyjwhiwmypqd02xxb29dk";
+       version = "0.18.1";
+       sha256 = "1xym399ixhzb7q05dlq3jrb1jg2s6p9z2aqx8nj7qnz9ainysxbj";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137317,8 +137386,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-gi";
-       version = "0.26.7";
-       sha256 = "1h19cli06ava1z3w1y7d7cvcjdw5hhwqa9yh102rrnpxq6rblrm9";
+       version = "0.26.8";
+       sha256 = "15ibhysm9q94jrbxgby4kpmm1wh1yx2f1y0wcqfz958jqza77733";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          ansi-terminal attoparsec base bytestring Cabal containers directory
@@ -137484,68 +137553,58 @@ self: {
      }) {};
 
   "haskell-language-server" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, async, base
-     , base16-bytestring, binary, bytestring, containers
-     , cryptohash-sha1, data-default, deepseq, directory, extra
-     , filepath, ghc, ghc-boot-th, ghc-paths, ghcide, ghcide-test-utils
-     , githash, gitrev, hashable, hie-bios, hiedb
-     , hls-alternate-number-format-plugin, hls-cabal-fmt-plugin
-     , hls-cabal-plugin, hls-call-hierarchy-plugin
-     , hls-change-type-signature-plugin, hls-class-plugin
-     , hls-code-range-plugin, hls-eval-plugin
-     , hls-explicit-fixity-plugin, hls-explicit-imports-plugin
-     , hls-explicit-record-fields-plugin, hls-floskell-plugin
-     , hls-fourmolu-plugin, hls-gadt-plugin, hls-graph, hls-hlint-plugin
-     , hls-module-name-plugin, hls-ormolu-plugin
-     , hls-overloaded-record-dot-plugin, hls-plugin-api
-     , hls-pragmas-plugin, hls-qualify-imported-names-plugin
-     , hls-refactor-plugin, hls-rename-plugin, hls-retrie-plugin
-     , hls-semantic-tokens-plugin, hls-splice-plugin, hls-stan-plugin
-     , hls-stylish-haskell-plugin, hls-test-utils, lens, lens-aeson, lsp
-     , lsp-test, lsp-types, mtl, optparse-applicative, optparse-simple
-     , prettyprinter, process, regex-tdfa, row-types, safe-exceptions
-     , sqlite-simple, stm, temporary, text, transformers, unix
-     , unliftio-core, unordered-containers
+    ({ mkDerivation, aeson, aeson-pretty, apply-refact, array, base
+     , bytestring, Cabal-syntax, containers, data-default, deepseq, Diff
+     , directory, dlist, extra, filepath, floskell, foldl, fourmolu
+     , fuzzy, ghc, ghc-boot, ghc-boot-th, ghc-exactprint, ghc-lib-parser
+     , ghc-lib-parser-ex, ghcide, githash, hashable, hie-bios
+     , hie-compat, hiedb, hlint, hls-graph, hls-plugin-api
+     , hls-test-utils, lens, lsp, lsp-test, lsp-types, megaparsec, mod
+     , mtl, optparse-applicative, optparse-simple, ormolu
+     , parser-combinators, prettyprinter, process, process-extras
+     , refact, regex-applicative, regex-tdfa, retrie, row-types
+     , safe-exceptions, semigroupoids, shake, sqlite-simple, stan, stm
+     , stm-containers, stylish-haskell, syb, tasty
+     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
+     , template-haskell, temporary, text, text-rope, time, transformers
+     , trial, unix, unliftio, unliftio-core, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "haskell-language-server";
-       version = "2.6.0.0";
-       sha256 = "0j0fm0fa1pyaflkd4gvxlkfbina81bw784hqs0r8wvv187bvhm9n";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson-pretty async base base16-bytestring bytestring containers
-         cryptohash-sha1 data-default directory extra filepath ghc ghcide
-         githash hie-bios hiedb hls-alternate-number-format-plugin
-         hls-cabal-fmt-plugin hls-cabal-plugin hls-call-hierarchy-plugin
-         hls-change-type-signature-plugin hls-class-plugin
-         hls-code-range-plugin hls-eval-plugin hls-explicit-fixity-plugin
-         hls-explicit-imports-plugin hls-explicit-record-fields-plugin
-         hls-floskell-plugin hls-fourmolu-plugin hls-gadt-plugin hls-graph
-         hls-hlint-plugin hls-module-name-plugin hls-ormolu-plugin
-         hls-overloaded-record-dot-plugin hls-plugin-api hls-pragmas-plugin
-         hls-qualify-imported-names-plugin hls-refactor-plugin
-         hls-rename-plugin hls-retrie-plugin hls-semantic-tokens-plugin
-         hls-splice-plugin hls-stan-plugin hls-stylish-haskell-plugin lsp
-         optparse-applicative optparse-simple prettyprinter process
-         safe-exceptions sqlite-simple text unordered-containers
-       ];
-       executableHaskellDepends = [
-         aeson async base base16-bytestring binary bytestring containers
-         cryptohash-sha1 data-default deepseq directory extra filepath ghc
-         ghc-boot-th ghc-paths ghcide gitrev hashable hie-bios hiedb
-         hls-graph hls-plugin-api lens lsp lsp-types mtl
-         optparse-applicative optparse-simple prettyprinter process
-         regex-tdfa safe-exceptions sqlite-simple stm temporary text
-         transformers unix unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default deepseq directory
-         extra filepath ghcide ghcide-test-utils hashable hls-plugin-api
-         hls-refactor-plugin hls-test-utils lens lens-aeson lsp-test
-         lsp-types prettyprinter process row-types text unordered-containers
-       ];
-       testToolDepends = [ ghcide ];
+       version = "2.7.0.0";
+       sha256 = "04ai12wb4b9s202zi2vwwxr4ncdzf9k1z044n8jprn7yxfqpz9cm";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty apply-refact array base bytestring Cabal-syntax
+         containers data-default deepseq Diff directory dlist extra filepath
+         floskell foldl fourmolu fuzzy ghc ghc-boot ghc-boot-th
+         ghc-exactprint ghc-lib-parser ghc-lib-parser-ex ghcide githash
+         hashable hie-bios hie-compat hiedb hlint hls-graph hls-plugin-api
+         lens lsp lsp-types megaparsec mod mtl optparse-applicative
+         optparse-simple ormolu parser-combinators prettyprinter process
+         process-extras refact regex-applicative regex-tdfa retrie
+         safe-exceptions semigroupoids sqlite-simple stan stm stm-containers
+         stylish-haskell syb template-haskell temporary text text-rope time
+         transformers trial unliftio unliftio-core unordered-containers
+         vector
+       ];
+       executableHaskellDepends = [
+         base containers data-default directory extra filepath ghcide
+         hie-bios hls-plugin-api lsp lsp-types prettyprinter text
+         transformers unix unliftio-core
+       ];
+       testHaskellDepends = [
+         aeson base bytestring Cabal-syntax containers data-default deepseq
+         directory extra filepath ghcide hashable hls-plugin-api
+         hls-test-utils lens lsp lsp-test lsp-types ormolu
+         parser-combinators process regex-tdfa row-types shake tasty
+         tasty-expected-failure tasty-hunit tasty-quickcheck text text-rope
+         transformers unordered-containers vector
+       ];
+       testToolDepends = [ fourmolu ghcide ormolu ];
+       doHaddock = false;
        description = "LSP server for GHC";
        license = lib.licenses.asl20;
        maintainers = [ lib.maintainers.maralorn ];
@@ -138335,8 +138394,6 @@ self: {
        ];
        description = "Generate Elm types and JSON encoders and decoders from Haskell types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-token-utils" = callPackage
@@ -139642,36 +139699,36 @@ self: {
 
   "haskoin-core" = callPackage
     ({ mkDerivation, aeson, array, base, base16, base64, binary, bytes
-     , bytestring, cereal, conduit, containers, cryptonite, deepseq
-     , entropy, hashable, hspec, hspec-discover, HUnit, lens, lens-aeson
-     , memory, mtl, murmur3, network, QuickCheck, safe, scientific
-     , secp256k1-haskell, split, string-conversions, text, time
-     , transformers, unordered-containers, vector
+     , bytestring, cereal, conduit, containers, cryptonite, data-default
+     , deepseq, entropy, hashable, hspec, hspec-discover, HUnit, lens
+     , lens-aeson, memory, mtl, murmur3, network, QuickCheck, safe
+     , scientific, secp256k1-haskell, split, string-conversions, text
+     , time, transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "1.0.2";
-       sha256 = "1abcidb3d18yb4h1p889xi2ffad0swbl0akvshlyvq6jm9gzqavy";
+       version = "1.0.4";
+       sha256 = "1m6wm5qyq25fgjjy9bw67ahh0rmrlysgsj2mx11ijmsxqzf67n6r";
        libraryHaskellDepends = [
          aeson array base base16 binary bytes bytestring cereal conduit
-         containers cryptonite deepseq entropy hashable hspec memory mtl
-         murmur3 network QuickCheck safe scientific secp256k1-haskell split
-         string-conversions text time transformers unordered-containers
-         vector
+         containers cryptonite data-default deepseq entropy hashable hspec
+         memory mtl murmur3 network QuickCheck safe scientific
+         secp256k1-haskell split string-conversions text time transformers
+         unordered-containers vector
        ];
        testHaskellDepends = [
          aeson array base base16 base64 binary bytes bytestring cereal
-         conduit containers cryptonite deepseq entropy hashable hspec HUnit
-         lens lens-aeson memory mtl murmur3 network QuickCheck safe
-         scientific secp256k1-haskell split string-conversions text time
-         transformers unordered-containers vector
+         conduit containers cryptonite data-default deepseq entropy hashable
+         hspec HUnit lens lens-aeson memory mtl murmur3 network QuickCheck
+         safe scientific secp256k1-haskell split string-conversions text
+         time transformers unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
        description = "Bitcoin & Bitcoin Cash library for Haskell";
        license = lib.licenses.mit;
      }) {};
 
-  "haskoin-core_1_0_4" = callPackage
+  "haskoin-core_1_1_0" = callPackage
     ({ mkDerivation, aeson, array, base, base16, base64, binary, bytes
      , bytestring, cereal, conduit, containers, cryptonite, data-default
      , deepseq, entropy, hashable, hspec, hspec-discover, HUnit, lens
@@ -139681,8 +139738,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "1.0.4";
-       sha256 = "1m6wm5qyq25fgjjy9bw67ahh0rmrlysgsj2mx11ijmsxqzf67n6r";
+       version = "1.1.0";
+       sha256 = "09ic5fcs1j0snbwgcvsn4bkr9d9a6sn537ll93nd5rim6nkbx09n";
        libraryHaskellDepends = [
          aeson array base base16 binary bytes bytestring cereal conduit
          containers cryptonite data-default deepseq entropy hashable hspec
@@ -139758,6 +139815,38 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "haskoin-node_1_1_0" = callPackage
+    ({ mkDerivation, base, base64, bytestring, cereal, conduit
+     , conduit-extra, containers, data-default, hashable, haskoin-core
+     , hspec, hspec-discover, HUnit, monad-logger, mtl, network, nqe
+     , random, resourcet, rocksdb-haskell-jprupp, rocksdb-query, safe
+     , string-conversions, text, time, transformers, unliftio
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "haskoin-node";
+       version = "1.1.0";
+       sha256 = "14sar39d3kjwv41mfwcywk9yv9vw4qx0x41dxfad9r565lhw59y2";
+       libraryHaskellDepends = [
+         base bytestring cereal conduit conduit-extra containers
+         data-default hashable haskoin-core monad-logger mtl network nqe
+         random resourcet rocksdb-haskell-jprupp rocksdb-query
+         string-conversions text time transformers unliftio
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         base base64 bytestring cereal conduit conduit-extra containers
+         data-default hashable haskoin-core hspec HUnit monad-logger mtl
+         network nqe random resourcet rocksdb-haskell-jprupp rocksdb-query
+         safe string-conversions text time transformers unliftio
+         unordered-containers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "P2P library for Bitcoin and Bitcoin Cash";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "haskoin-protocol" = callPackage
     ({ mkDerivation, base, binary, bytestring, haskoin-crypto
      , haskoin-util, HUnit, QuickCheck, test-framework
@@ -139819,8 +139908,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "1.2.5";
-       sha256 = "0ngd6v5f839ic0vhnxk5355r521324j67s735iyf69sw89fp2g5n";
+       version = "1.3.0";
+       sha256 = "0dijl0an25174ia9pirl1i73ynv124cyz05ly8lyw77bzcb95l45";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -139867,8 +139956,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "1.2.2";
-       sha256 = "0zqyj4dq0j2f0bn4qwvrar1b6jvcaqni296lhigpwy0h0jv8080f";
+       version = "1.2.5";
+       sha256 = "1nmbxnhrkz6z6fp5b07x3qmdnzb6m17z2n6nlh4hh549d3hd8slm";
        libraryHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core http-client http-types lens mtl
@@ -139886,7 +139975,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "haskoin-store-data_1_2_5" = callPackage
+  "haskoin-store-data_1_3_0" = callPackage
     ({ mkDerivation, aeson, base, binary, bytes, bytestring, cereal
      , containers, data-default, deepseq, hashable, haskoin-core, hspec
      , hspec-discover, http-client, http-types, lens, mtl, network
@@ -139895,8 +139984,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "1.2.5";
-       sha256 = "1nmbxnhrkz6z6fp5b07x3qmdnzb6m17z2n6nlh4hh549d3hd8slm";
+       version = "1.3.0";
+       sha256 = "1bnkl58r96vf9fhxby5p15icp8g2yjv4jgds8s07sqv281f7vcmk";
        libraryHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core http-client http-types lens mtl
@@ -140840,23 +140929,19 @@ self: {
      }) {};
 
   "hasql-cursor-query" = callPackage
-    ({ mkDerivation, base, base-prelude, bytestring, contravariant
-     , foldl, hasql, hasql-cursor-transaction, hasql-transaction
-     , profunctors, QuickCheck, quickcheck-instances, rebase, tasty
-     , tasty-hunit, tasty-quickcheck
+    ({ mkDerivation, base-prelude, bytestring, contravariant, foldl
+     , hasql, hasql-cursor-transaction, hasql-transaction, profunctors
+     , rebase, tasty, tasty-hunit
      }:
      mkDerivation {
        pname = "hasql-cursor-query";
-       version = "0.4.4.3";
-       sha256 = "1f4qa5gfqllw3k5qxmlp247vby3g9gy8pb2mhhfrslhr2xynzxp1";
+       version = "0.4.5";
+       sha256 = "1l88cprmmljbkji1c8zrw04nvhyh9gr34dm6gzva1mxwqsqwhib9";
        libraryHaskellDepends = [
-         base base-prelude bytestring contravariant foldl hasql
+         base-prelude bytestring contravariant foldl hasql
          hasql-cursor-transaction hasql-transaction profunctors
        ];
-       testHaskellDepends = [
-         foldl hasql QuickCheck quickcheck-instances rebase tasty
-         tasty-hunit tasty-quickcheck
-       ];
+       testHaskellDepends = [ foldl hasql rebase tasty tasty-hunit ];
        description = "A declarative abstraction over PostgreSQL Cursor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -140869,8 +140954,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-cursor-transaction";
-       version = "0.6.4";
-       sha256 = "00g365n4ai1bl8d7yipach1ivxs9apvzdfb9zcv59hnyhdn28wgr";
+       version = "0.6.5";
+       sha256 = "0h77ymjqs424g9vkwfg44z10pc5x15621i99pj5vml94imfkamhy";
        libraryHaskellDepends = [
          base base-prelude bytestring bytestring-tree-builder contravariant
          contravariant-extras hasql hasql-transaction transformers
@@ -141056,6 +141141,27 @@ self: {
        mainProgram = "hasql-notifications";
      }) {};
 
+  "hasql-notifications_0_2_1_0" = callPackage
+    ({ mkDerivation, base, bytestring, hasql, hasql-pool, hspec
+     , postgresql-libpq, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "hasql-notifications";
+       version = "0.2.1.0";
+       sha256 = "0f415g6y13sndyn66ssj0hfrqm6l5p1r48v2lix0cvi1gkrv9wm2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring hasql hasql-pool postgresql-libpq text
+       ];
+       executableHaskellDepends = [ base hasql ];
+       testHaskellDepends = [ base bytestring hasql hspec QuickCheck ];
+       description = "LISTEN/NOTIFY support for Hasql";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hasql-notifications";
+     }) {};
+
   "hasql-optparse-applicative" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-time, base, hasql
      , hasql-pool, optparse-applicative
@@ -141072,6 +141178,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hasql-optparse-applicative_0_8" = callPackage
+    ({ mkDerivation, attoparsec, attoparsec-time, base, bytestring
+     , hasql, hasql-pool, optparse-applicative, time
+     }:
+     mkDerivation {
+       pname = "hasql-optparse-applicative";
+       version = "0.8";
+       sha256 = "1fpw4rzj4z305wjnwzg9kiln3x4qcxxks47p9gb32zzyd93c7r9a";
+       libraryHaskellDepends = [
+         attoparsec attoparsec-time base bytestring hasql hasql-pool
+         optparse-applicative time
+       ];
+       description = "\"optparse-applicative\" parsers for \"hasql\"";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hasql-pipes" = callPackage
     ({ mkDerivation, base, bytestring-tree-builder, hasql, pipes
      , pipes-safe, protolude
@@ -141093,14 +141216,31 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-pool";
-       version = "0.10.0.1";
-       sha256 = "03sdmna7hjspskza8gld4iys4pdzj968fzl8q7qs9a3wjqcnbqwy";
+       version = "0.10.1";
+       sha256 = "00njihx8hyajd29yjsxldq117plg31986hf9rjpn5492cis5b8sd";
        libraryHaskellDepends = [ base hasql stm time ];
        testHaskellDepends = [ async hasql hspec random rerebase ];
        description = "Pool of connections for Hasql";
        license = lib.licenses.mit;
      }) {};
 
+  "hasql-pool_1_0_1" = callPackage
+    ({ mkDerivation, async, base, bytestring, hasql, hspec, random
+     , rerebase, stm, text, time, uuid
+     }:
+     mkDerivation {
+       pname = "hasql-pool";
+       version = "1.0.1";
+       sha256 = "1z14fdpw1vjr07xz9mjv04i4implk71l61b1p3b1kl34zgvllg1y";
+       libraryHaskellDepends = [
+         base bytestring hasql stm text time uuid
+       ];
+       testHaskellDepends = [ async hasql hspec random rerebase ];
+       description = "Pool of connections for Hasql";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hasql-postgres" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base-prelude, bytestring
      , criterion-plus, deepseq, directory, doctest, either, filepath
@@ -141365,6 +141505,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hasql-transaction_1_1_0_1" = callPackage
+    ({ mkDerivation, async, base, bytestring, bytestring-tree-builder
+     , contravariant, contravariant-extras, hasql, mtl, rerebase
+     , transformers
+     }:
+     mkDerivation {
+       pname = "hasql-transaction";
+       version = "1.1.0.1";
+       sha256 = "1b59lrr046hs7g01n5lq9g0si2cfc2zhz5r92g31b4c3cr8va3hv";
+       libraryHaskellDepends = [
+         base bytestring bytestring-tree-builder contravariant
+         contravariant-extras hasql mtl transformers
+       ];
+       testHaskellDepends = [ async contravariant-extras hasql rerebase ];
+       description = "Composable abstraction over retryable transactions for Hasql";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hasql-transaction-io" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-tree-builder
      , exceptions, hasql, mtl, resourcet, safe-exceptions, transformers
@@ -142134,8 +142293,8 @@ self: {
     ({ mkDerivation, base, blake3, bytestring, mmap }:
      mkDerivation {
        pname = "hb3sum";
-       version = "0.0.0.1";
-       sha256 = "0z41vkzjwxfqdfh26q5qrvzivjfvkk1wq7lcg511b35mi4f10znw";
+       version = "0.0.0.2";
+       sha256 = "0hlwfblglh0y1b8hmpqc6yjc9hi8kxbp8n0021yabaq2fsnblpdy";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base blake3 bytestring mmap ];
@@ -143710,8 +143869,8 @@ self: {
        pname = "hedgehog";
        version = "1.4";
        sha256 = "1sz685n2ljriqwfpfy57adbsc6gyrd4x7jmy628803rfalqznjpm";
-       revision = "3";
-       editedCabalFile = "18jig0zi5cj3hlx4pxmf0g9hbn531c8b828agw45n9gn0dzaz5ci";
+       revision = "4";
+       editedCabalFile = "0c0wvp1ax1zjk9p45hmblf0pabl83ddy6vl5nh6xi53cx8l6rxm0";
        libraryHaskellDepends = [
          ansi-terminal async barbies base bytestring concurrent-output
          containers deepseq directory erf exceptions lifted-async mmorph
@@ -143798,8 +143957,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-extras";
-       version = "0.6.0.2";
-       sha256 = "04jsywjx9sji11rpn9vp0k689d7r84g288khwmngvkdfnf0vyjka";
+       version = "0.6.1.0";
+       sha256 = "1j0b78l1dbffwgmkjlxcycccgl62gglc0cmmbdmgaxr75hmdcm2d";
        libraryHaskellDepends = [
          aeson aeson-pretty async base bytestring deepseq Diff directory
          exceptions filepath hedgehog http-conduit lifted-async lifted-base
@@ -145486,6 +145645,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hetero-zip" = callPackage
+    ({ mkDerivation, base, infinite-list }:
+     mkDerivation {
+       pname = "hetero-zip";
+       version = "0.1.0.0";
+       sha256 = "0m2lsl4hmjixls3v2jsz7hf8hkziy2f8xznbkh7qfkrnqfbr730d";
+       libraryHaskellDepends = [ base infinite-list ];
+       description = "Zip lists with Traversables";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "heterocephalus" = callPackage
     ({ mkDerivation, base, blaze-html, blaze-markup, containers, dlist
      , doctest, Glob, mtl, parsec, shakespeare, template-haskell
@@ -145599,36 +145769,37 @@ self: {
   "hevm" = callPackage
     ({ mkDerivation, abstract-par, aeson, aeson-optics, array, async
      , base, base16, binary, brick, bytestring, cereal, containers
-     , cryptonite, data-dword, Decimal, deepseq, directory, filemanip
-     , filepath, filepattern, free, githash, gmp, haskeline, here, HUnit
-     , libff, megaparsec, memory, monad-par, mtl, multiset, operational
-     , optics-core, optics-extra, optics-th, optparse-generic
-     , pretty-hex, process, QuickCheck, quickcheck-instances
-     , quickcheck-text, regex, regex-tdfa, restless-git, rosezipper
-     , scientific, secp256k1, smt2-parser, spawn, spool, stm
-     , system-cxx-std-lib, tasty, tasty-bench, tasty-expected-failure
-     , tasty-hunit, tasty-quickcheck, temporary, text, time
-     , transformers, tree-view, unordered-containers, vector, vty, witch
-     , witherable, word-wrap, wreq
+     , cryptonite, data-dword, Decimal, deepseq, directory, exceptions
+     , filemanip, filepath, filepattern, free, githash, gmp, haskeline
+     , here, HUnit, libff, megaparsec, memory, MissingH, monad-par, mtl
+     , multiset, operational, optics-core, optics-extra, optics-th
+     , optparse-generic, pretty-hex, process, QuickCheck
+     , quickcheck-instances, quickcheck-text, regex, regex-tdfa
+     , restless-git, rosezipper, scientific, secp256k1, smt2-parser
+     , spawn, spool, stm, system-cxx-std-lib, tasty, tasty-bench
+     , tasty-expected-failure, tasty-hunit, tasty-quickcheck, temporary
+     , text, time, transformers, tree-view, unliftio-core
+     , unordered-containers, vector, vty, witch, witherable, word-wrap
+     , wreq
      }:
      mkDerivation {
        pname = "hevm";
-       version = "0.52.0";
-       sha256 = "1l534d084fybklkc69j8c2bmpmsfi5q01rjhq7y4c6699igb72py";
+       version = "0.53.0";
+       sha256 = "1kc4sjr4bzp4crfsn65dg9dd4myn1fz1dl54vi391cspxacsm0c2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          abstract-par aeson aeson-optics array async base base16 binary
          brick bytestring cereal containers cryptonite data-dword Decimal
-         deepseq directory filemanip filepath filepattern free haskeline
-         here HUnit megaparsec memory monad-par mtl multiset operational
-         optics-core optics-extra optics-th optparse-generic pretty-hex
-         process QuickCheck quickcheck-instances quickcheck-text regex
-         regex-tdfa restless-git rosezipper scientific smt2-parser spawn
-         spool stm system-cxx-std-lib tasty tasty-bench
+         deepseq directory exceptions filemanip filepath filepattern free
+         haskeline here HUnit megaparsec memory MissingH monad-par mtl
+         multiset operational optics-core optics-extra optics-th
+         optparse-generic pretty-hex process QuickCheck quickcheck-instances
+         quickcheck-text regex regex-tdfa restless-git rosezipper scientific
+         smt2-parser spawn spool stm system-cxx-std-lib tasty tasty-bench
          tasty-expected-failure tasty-hunit tasty-quickcheck temporary text
-         time transformers tree-view unordered-containers vector vty witch
-         witherable word-wrap wreq
+         time transformers tree-view unliftio-core unordered-containers
+         vector vty witch witherable word-wrap wreq
        ];
        librarySystemDepends = [ gmp libff secp256k1 ];
        executableHaskellDepends = [
@@ -145636,19 +145807,19 @@ self: {
          cryptonite data-dword deepseq directory filepath free githash
          memory mtl operational optics-core optparse-generic process
          QuickCheck quickcheck-text regex-tdfa spawn stm temporary text
-         unordered-containers vector vty witch
+         unliftio-core unordered-containers vector vty witch
        ];
        testHaskellDepends = [
          aeson array base base16 binary bytestring containers data-dword
-         directory filemanip filepath here HUnit mtl operational optics-core
-         optics-extra process QuickCheck quickcheck-instances regex
-         regex-tdfa smt2-parser spawn stm tasty tasty-bench
-         tasty-expected-failure tasty-hunit tasty-quickcheck temporary text
-         time vector witch witherable
+         directory exceptions filemanip filepath here HUnit MissingH mtl
+         operational optics-core optics-extra process QuickCheck
+         quickcheck-instances regex regex-tdfa smt2-parser spawn stm tasty
+         tasty-bench tasty-expected-failure tasty-hunit tasty-quickcheck
+         temporary text time unliftio-core vector witch witherable
        ];
        benchmarkHaskellDepends = [
          base bytestring containers filemanip filepath here mtl tasty
-         tasty-bench text
+         tasty-bench text unliftio-core
        ];
        doHaddock = false;
        description = "Symbolic EVM Evaluator";
@@ -145656,6 +145827,7 @@ self: {
        hydraPlatforms = lib.platforms.none;
        mainProgram = "hevm";
        maintainers = [ lib.maintainers.arturcygan ];
+       broken = true;
      }) {inherit (pkgs) gmp; inherit (pkgs) libff; 
          inherit (pkgs) secp256k1;};
 
@@ -145826,8 +145998,8 @@ self: {
        pname = "hexpat";
        version = "0.20.13";
        sha256 = "1l9zfp69r3xaxi2znjwpcrx7xckcqvaahv2c0qgkqq61a7ka1qa6";
-       revision = "1";
-       editedCabalFile = "1w60afh2iqpfs0pqlp1lrpfkq4kaxvqsar8x4sb87w0pvzsxz5a0";
+       revision = "2";
+       editedCabalFile = "1c3v93rmddyvsjpnc7lyhjhv4rki7rl6s3x2rm449vhc4i8ykhcg";
        libraryHaskellDepends = [
          base bytestring containers deepseq List text transformers
          utf8-string
@@ -146330,8 +146502,8 @@ self: {
      }:
      mkDerivation {
        pname = "hfsevents";
-       version = "0.1.6";
-       sha256 = "019zbnvfd866ch49gax0c1c93zv92142saim1hrgypz5lprz7hvl";
+       version = "0.1.7";
+       sha256 = "15xzg1wf3cf2jpz3wqifkhc9mh0hv4iby8qi4qpi3mbb0zz482p9";
        libraryHaskellDepends = [ base bytestring cereal mtl text ];
        librarySystemDepends = [ Cocoa ];
        libraryToolDepends = [ CoreServices ];
@@ -147212,8 +147384,8 @@ self: {
      }:
      mkDerivation {
        pname = "hiedb";
-       version = "0.5.0.1";
-       sha256 = "17a9yg0zdfnz480i5aprxmsryz88n8nr8566x6x8p5x1hclizd0m";
+       version = "0.6.0.0";
+       sha256 = "1yz04cy981c1gpwcp758hhy1nlmavb9yciyp0mwcjamcazpqx562";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -147223,7 +147395,7 @@ self: {
        ];
        executableHaskellDepends = [ base ghc-paths ];
        testHaskellDepends = [
-         base directory filepath ghc ghc-paths hspec process temporary
+         base directory filepath ghc-paths hspec process temporary
        ];
        description = "Generates a references DB from .hie files";
        license = lib.licenses.bsd3;
@@ -147987,7 +148159,6 @@ self: {
        ];
        description = "Generic project initialization tool";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hi";
        maintainers = [ lib.maintainers.poscat ];
      }) {};
@@ -149537,6 +149708,8 @@ self: {
        pname = "hledger-web";
        version = "1.32.3";
        sha256 = "0pvxkhl09hfmm2xi6d76xnwzydl89l6imlv85dgqz2hibk4vw5jh";
+       revision = "1";
+       editedCabalFile = "0b7w8f2gq1fga75i5pwycfpvdl0938pbdq6vv4ffj64zl4rrkvmr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -149942,6 +150115,8 @@ self: {
        ];
        description = "Provide Alternate Number Formats plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-brittany-plugin" = callPackage
@@ -149972,6 +150147,8 @@ self: {
        testHaskellDepends = [ base directory filepath hls-test-utils ];
        description = "Integration with the cabal-fmt code formatter";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-cabal-plugin" = callPackage
@@ -149998,6 +150175,8 @@ self: {
        ];
        description = "Cabal integration plugin with Haskell Language Server";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-call-hierarchy-plugin" = callPackage
@@ -150019,6 +150198,7 @@ self: {
        ];
        description = "Call hierarchy plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-change-type-signature-plugin" = callPackage
@@ -150039,6 +150219,8 @@ self: {
        ];
        description = "Change a declarations type signature with a Code Action";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-class-plugin" = callPackage
@@ -150061,6 +150243,8 @@ self: {
        ];
        description = "Class/instance management plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-code-range-plugin" = callPackage
@@ -150084,6 +150268,8 @@ self: {
        ];
        description = "HLS Plugin to support smart selection range and Folding range";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-eval-plugin" = callPackage
@@ -150112,6 +150298,8 @@ self: {
        ];
        description = "Eval plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-exactprint-utils" = callPackage
@@ -150148,6 +150336,8 @@ self: {
        testHaskellDepends = [ base filepath hls-test-utils text ];
        description = "Show fixity explicitly while hovering";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-explicit-imports-plugin" = callPackage
@@ -150169,6 +150359,8 @@ self: {
        ];
        description = "Explicit imports plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-explicit-record-fields-plugin" = callPackage
@@ -150190,6 +150382,8 @@ self: {
        ];
        description = "Explicit record fields plugin for Haskell Language Server";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-floskell-plugin" = callPackage
@@ -150206,6 +150400,8 @@ self: {
        testHaskellDepends = [ base filepath hls-test-utils ];
        description = "Integration with the Floskell code formatter";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-fourmolu-plugin" = callPackage
@@ -150228,6 +150424,8 @@ self: {
        testToolDepends = [ fourmolu ];
        description = "Integration with the Fourmolu code formatter";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-gadt-plugin" = callPackage
@@ -150250,19 +150448,20 @@ self: {
        ];
        description = "Convert to GADT syntax plugin";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-graph" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, containers
      , deepseq, directory, exceptions, extra, filepath, focus, hashable
      , hspec, hspec-discover, js-dgtable, js-flot, js-jquery, list-t
-     , stm, stm-containers, tasty, tasty-hspec, tasty-hunit, tasty-rerun
-     , text, time, transformers, unliftio, unordered-containers
+     , stm, stm-containers, tasty, tasty-hspec, tasty-rerun, text, time
+     , transformers, unliftio, unordered-containers
      }:
      mkDerivation {
        pname = "hls-graph";
-       version = "2.6.0.0";
-       sha256 = "0rlljbaa20randbl4vmjh5y88fb0ajvb7c9qzwa1d3pk9whxaxkw";
+       version = "2.7.0.0";
+       sha256 = "0xrcmzz4545rzm3a3clm6flhy653ba56s5cdsd2x31spkir10hg7";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson async base bytestring containers deepseq directory exceptions
@@ -150271,8 +150470,7 @@ self: {
          unordered-containers
        ];
        testHaskellDepends = [
-         base containers directory extra filepath hspec stm stm-containers
-         tasty tasty-hspec tasty-hunit tasty-rerun text unordered-containers
+         base extra hspec stm stm-containers tasty tasty-hspec tasty-rerun
        ];
        testToolDepends = [ hspec-discover ];
        description = "Haskell Language Server internal graph API";
@@ -150316,6 +150514,8 @@ self: {
        ];
        description = "Hlint integration plugin with Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-module-name-plugin" = callPackage
@@ -150334,6 +150534,8 @@ self: {
        testHaskellDepends = [ base filepath hls-test-utils ];
        description = "Module name plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-ormolu-plugin" = callPackage
@@ -150356,6 +150558,8 @@ self: {
        testToolDepends = [ ormolu ];
        description = "Integration with the Ormolu code formatter";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-overloaded-record-dot-plugin" = callPackage
@@ -150378,6 +150582,8 @@ self: {
        ];
        description = "Overloaded record dot plugin for Haskell Language Server";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-plugin-api" = callPackage
@@ -150392,8 +150598,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-plugin-api";
-       version = "2.6.0.0";
-       sha256 = "10i46ylhfzzw8hm9d6v27086781iql114z4j1dpp237lxdw7wkf4";
+       version = "2.7.0.0";
+       sha256 = "0akvd9bg6i6v7xsidalg4nm4pqs5z6mbjbklacdcznifwyvcsf1v";
        libraryHaskellDepends = [
          aeson base co-log-core containers data-default dependent-map
          dependent-sum Diff dlist extra filepath ghc hashable hls-graph
@@ -150430,6 +150636,8 @@ self: {
        ];
        description = "Pragmas plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-qualify-imported-names-plugin" = callPackage
@@ -150448,6 +150656,8 @@ self: {
        testHaskellDepends = [ base filepath hls-test-utils text ];
        description = "A Haskell Language Server plugin that qualifies imported names";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-refactor-plugin" = callPackage
@@ -150478,6 +150688,7 @@ self: {
        ];
        description = "Exactprint refactorings for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-refine-imports-plugin" = callPackage
@@ -150522,6 +150733,7 @@ self: {
        ];
        description = "Rename plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-retrie-plugin" = callPackage
@@ -150546,6 +150758,7 @@ self: {
        ];
        description = "Retrie integration plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-selection-range-plugin" = callPackage
@@ -150597,6 +150810,7 @@ self: {
        ];
        description = "Call hierarchy plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-splice-plugin" = callPackage
@@ -150620,6 +150834,7 @@ self: {
        ];
        description = "HLS Plugin to expand TemplateHaskell Splices and QuasiQuotes";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-stan-plugin" = callPackage
@@ -150643,6 +150858,8 @@ self: {
        ];
        description = "Stan integration plugin with Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-stylish-haskell-plugin" = callPackage
@@ -150661,6 +150878,8 @@ self: {
        testHaskellDepends = [ base filepath hls-test-utils ];
        description = "Integration with the Stylish Haskell code formatter";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls-tactics-plugin" = callPackage
@@ -150676,22 +150895,21 @@ self: {
      }) {};
 
   "hls-test-utils" = callPackage
-    ({ mkDerivation, aeson, async, base, blaze-markup, bytestring
-     , containers, data-default, directory, extra, filepath, ghcide
-     , hls-graph, hls-plugin-api, lens, lsp, lsp-test, lsp-types
-     , row-types, tasty, tasty-expected-failure, tasty-golden
-     , tasty-hunit, tasty-rerun, temporary, text, unordered-containers
+    ({ mkDerivation, aeson, async, base, bytestring, containers
+     , data-default, directory, extra, filepath, ghcide, hls-plugin-api
+     , lens, lsp-test, lsp-types, row-types, tasty
+     , tasty-expected-failure, tasty-golden, tasty-hunit, tasty-rerun
+     , temporary, text
      }:
      mkDerivation {
        pname = "hls-test-utils";
-       version = "2.6.0.0";
-       sha256 = "0n02ar6rbrkljni3x6dnj6cglsjsrdqq952l2va0ssygbvis0iwr";
+       version = "2.7.0.0";
+       sha256 = "1gmhfg8357hka2mnb3rpzv941nfqlwf5nk29gqhh1vmschsc95h8";
        libraryHaskellDepends = [
-         aeson async base blaze-markup bytestring containers data-default
-         directory extra filepath ghcide hls-graph hls-plugin-api lens lsp
-         lsp-test lsp-types row-types tasty tasty-expected-failure
-         tasty-golden tasty-hunit tasty-rerun temporary text
-         unordered-containers
+         aeson async base bytestring containers data-default directory extra
+         filepath ghcide hls-plugin-api lens lsp-test lsp-types row-types
+         tasty tasty-expected-failure tasty-golden tasty-hunit tasty-rerun
+         temporary text
        ];
        description = "Utilities used in the tests of Haskell Language Server";
        license = lib.licenses.asl20;
@@ -151756,20 +151974,20 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hoauth2_2_12_0" = callPackage
+  "hoauth2_2_13_1" = callPackage
     ({ mkDerivation, aeson, base, base64, binary, bytestring
-     , containers, cryptonite, data-default, exceptions, hspec
+     , containers, crypton, data-default, exceptions, hspec
      , hspec-discover, http-conduit, http-types, memory, microlens, text
      , transformers, uri-bytestring, uri-bytestring-aeson
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "2.12.0";
-       sha256 = "10v89bnwfzpp23r4skww2h2gi62lhzgyvig4icc5ayx7pdbn5m82";
+       version = "2.13.1";
+       sha256 = "0m6bn52j2425km0h6mx8zbmc3rbwdj0ar08jy9m96v5hwzdfch4i";
        libraryHaskellDepends = [
-         aeson base base64 binary bytestring containers cryptonite
-         data-default exceptions http-conduit http-types memory microlens
-         text transformers uri-bytestring uri-bytestring-aeson
+         aeson base base64 binary bytestring containers crypton data-default
+         exceptions http-conduit http-types memory microlens text
+         transformers uri-bytestring uri-bytestring-aeson
        ];
        testHaskellDepends = [ aeson base hspec uri-bytestring ];
        testToolDepends = [ hspec-discover ];
@@ -151786,8 +152004,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-demo";
-       version = "1.10.0";
-       sha256 = "0wf5jmb2smnrz7vxnxc0966zf03dw45jcvc55wrxmrfhbiiq1a6m";
+       version = "1.11.0";
+       sha256 = "12vxm1kfdbhvsagmqslr4wph9ji49gcakkvcqdx84d5y6ywd05wh";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -151804,17 +152022,17 @@ self: {
      }) {};
 
   "hoauth2-providers" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, cryptonite
+    ({ mkDerivation, aeson, base, bytestring, containers, crypton
      , hoauth2, HsOpenSSL, hspec, hspec-discover, http-conduit
      , http-types, jose-jwt, mtl, text, time, transformers
      , uri-bytestring, uri-bytestring-aeson
      }:
      mkDerivation {
        pname = "hoauth2-providers";
-       version = "0.6.0";
-       sha256 = "19qn6099jpzk14axzs7w3bg99in8y79gv03k527z50l7c4w7920c";
+       version = "0.7.1";
+       sha256 = "0222kkbnw4fpzyr0f3pls19bnlgs89yal3ffw85x6qdrg2lqk006";
        libraryHaskellDepends = [
-         aeson base bytestring containers cryptonite hoauth2 HsOpenSSL
+         aeson base bytestring containers crypton hoauth2 HsOpenSSL
          http-conduit http-types jose-jwt mtl text time transformers
          uri-bytestring uri-bytestring-aeson
        ];
@@ -151833,8 +152051,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-providers-tutorial";
-       version = "0.6.0";
-       sha256 = "050yvl12c568ichznkplv56hyq63adifn0vs6j9ajfllfpfxz1dz";
+       version = "0.7.0";
+       sha256 = "02gdx3ry1f61czc37r84z1qz25ybvgm6p88li03iyl87ihajymw4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151855,8 +152073,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-tutorial";
-       version = "0.6.0";
-       sha256 = "1sw8n8v9m9yhjn6pm7sws18dwjn10k4l13jds1j2qrv7mkyhcnpw";
+       version = "0.7.0";
+       sha256 = "1jv87hlz22jvyq5z2ax3jc4g3if0ap1j8g4hxxc62skx1d7jp99x";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -153488,39 +153706,40 @@ self: {
      }) {};
 
   "hotel-california" = callPackage
-    ({ mkDerivation, base, bytestring, hs-opentelemetry-api
-     , hs-opentelemetry-exporter-otlp, hs-opentelemetry-propagator-w3c
-     , hs-opentelemetry-sdk, hs-opentelemetry-utils-exceptions
+    ({ mkDerivation, base, bytestring, directory, filepath
+     , hs-opentelemetry-api, hs-opentelemetry-exporter-otlp
+     , hs-opentelemetry-propagator-w3c, hs-opentelemetry-sdk
+     , hs-opentelemetry-utils-exceptions
      , hs-opentelemetry-vendor-honeycomb, http-types
      , optparse-applicative, posix-escape, text, time, typed-process
      , unliftio, unordered-containers
      }:
      mkDerivation {
        pname = "hotel-california";
-       version = "0.0.4.0";
-       sha256 = "169i39gmm6dlf7yq3jvx87fba2i179brhvnmpg7pqdnnclgjjklh";
+       version = "0.0.5.0";
+       sha256 = "1b5qf7xg2pg4pi9x052bffglzlg2xgyyvsi3hmfhpwg45vlm6xm6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring hs-opentelemetry-api hs-opentelemetry-exporter-otlp
-         hs-opentelemetry-propagator-w3c hs-opentelemetry-sdk
-         hs-opentelemetry-utils-exceptions hs-opentelemetry-vendor-honeycomb
-         http-types optparse-applicative posix-escape text time
-         typed-process unliftio unordered-containers
+         base bytestring directory filepath hs-opentelemetry-api
+         hs-opentelemetry-exporter-otlp hs-opentelemetry-propagator-w3c
+         hs-opentelemetry-sdk hs-opentelemetry-utils-exceptions
+         hs-opentelemetry-vendor-honeycomb http-types optparse-applicative
+         posix-escape text time typed-process unliftio unordered-containers
        ];
        executableHaskellDepends = [
-         base bytestring hs-opentelemetry-api hs-opentelemetry-exporter-otlp
-         hs-opentelemetry-propagator-w3c hs-opentelemetry-sdk
-         hs-opentelemetry-utils-exceptions hs-opentelemetry-vendor-honeycomb
-         http-types optparse-applicative posix-escape text time
-         typed-process unliftio unordered-containers
+         base bytestring directory filepath hs-opentelemetry-api
+         hs-opentelemetry-exporter-otlp hs-opentelemetry-propagator-w3c
+         hs-opentelemetry-sdk hs-opentelemetry-utils-exceptions
+         hs-opentelemetry-vendor-honeycomb http-types optparse-applicative
+         posix-escape text time typed-process unliftio unordered-containers
        ];
        testHaskellDepends = [
-         base bytestring hs-opentelemetry-api hs-opentelemetry-exporter-otlp
-         hs-opentelemetry-propagator-w3c hs-opentelemetry-sdk
-         hs-opentelemetry-utils-exceptions hs-opentelemetry-vendor-honeycomb
-         http-types optparse-applicative posix-escape text time
-         typed-process unliftio unordered-containers
+         base bytestring directory filepath hs-opentelemetry-api
+         hs-opentelemetry-exporter-otlp hs-opentelemetry-propagator-w3c
+         hs-opentelemetry-sdk hs-opentelemetry-utils-exceptions
+         hs-opentelemetry-vendor-honeycomb http-types optparse-applicative
+         posix-escape text time typed-process unliftio unordered-containers
        ];
        license = lib.licenses.bsd3;
        mainProgram = "hotel";
@@ -155570,6 +155789,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hs-opentelemetry-instrumentation-auto" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, ghc
+     , hs-opentelemetry-api, hs-opentelemetry-exporter-in-memory
+     , hs-opentelemetry-sdk, parsec, tasty, tasty-hunit, text, time
+     , toml-parser, unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-instrumentation-auto";
+       version = "0.1.0.0";
+       sha256 = "1kp5fslrpaxyfj365hg1h4p6mbr8785pql6hwp507iydkawjlamc";
+       revision = "2";
+       editedCabalFile = "0shc5psmgdw0sskz21ars13ph3ylq3cyd3a54ji4v0mzihlw3rh0";
+       libraryHaskellDepends = [
+         base bytestring containers directory ghc hs-opentelemetry-api
+         parsec text time toml-parser unliftio
+       ];
+       testHaskellDepends = [
+         base hs-opentelemetry-api hs-opentelemetry-exporter-in-memory
+         hs-opentelemetry-sdk tasty tasty-hunit text unliftio
+         unordered-containers
+       ];
+       description = "Plugin for instrumenting an application";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hs-opentelemetry-instrumentation-cloudflare" = callPackage
     ({ mkDerivation, base, case-insensitive, hs-opentelemetry-api
      , hs-opentelemetry-instrumentation-conduit
@@ -156606,6 +156852,7 @@ self: {
        description = "Haskell bindings for PyAutoGUI, a library for automating user interaction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hsay" = callPackage
@@ -156772,8 +157019,8 @@ self: {
        pname = "hsc2hs";
        version = "0.68.10";
        sha256 = "0xpgbi6pssnizazz54583c50cz4axq3h78g03q4sfb7yi3bk8kkg";
-       revision = "1";
-       editedCabalFile = "0bgym1x99i2jn7b8kx9lz28gc3lsd7kag8rmizd42lcs2wmcm328";
+       revision = "2";
+       editedCabalFile = "099303623kck9pv6x0q2dzvwb3w39v5dazn3wryafcnwc1n8prv0";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -157346,44 +157593,35 @@ self: {
     ({ mkDerivation, aeson, aeson-qq, attoparsec, base, bytestring
      , case-insensitive, email-validate, hashable, hedgehog, hspec
      , hspec-discover, hspec-expectations, hspec-wai, http-api-data
-     , http-media, http-types, hw-hspec-hedgehog, list-t, microlens
-     , mmorph, mtl, network-uri, retry, scientific, servant
-     , servant-client, servant-client-core, servant-server, stm
+     , http-media, http-types, hw-hspec-hedgehog, indexed-traversable
+     , list-t, microlens, mmorph, mtl, network-uri, retry, scientific
+     , servant, servant-client, servant-client-core, servant-server, stm
      , stm-containers, string-conversions, template-haskell, text, time
-     , unordered-containers, uuid, wai, wai-extra, warp
+     , uuid, wai, wai-extra, warp
      }:
      mkDerivation {
        pname = "hscim";
-       version = "0.3.6";
-       sha256 = "1zd18l4afknhkjqizwhjzyrdh03p5940kvwz5jdrap1bnpszgv3p";
+       version = "0.4.0.2";
+       sha256 = "1plcbwhl1xl7rgn91q2n3829mvk33gqzsjf3y0bhlkyyd1rmz2fx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-qq attoparsec base bytestring case-insensitive
-         email-validate hashable hedgehog hspec hspec-expectations hspec-wai
-         http-api-data http-media http-types hw-hspec-hedgehog list-t
-         microlens mmorph mtl network-uri retry scientific servant
-         servant-client servant-client-core servant-server stm
-         stm-containers string-conversions template-haskell text time
-         unordered-containers uuid wai wai-extra warp
+         email-validate hashable hspec hspec-expectations hspec-wai
+         http-api-data http-media http-types list-t microlens mmorph mtl
+         network-uri retry scientific servant servant-client
+         servant-client-core servant-server stm stm-containers
+         string-conversions template-haskell text time uuid wai wai-extra
+         warp
        ];
        executableHaskellDepends = [
-         aeson aeson-qq attoparsec base bytestring case-insensitive
-         email-validate hashable hedgehog hspec hspec-expectations hspec-wai
-         http-api-data http-media http-types hw-hspec-hedgehog list-t
-         microlens mmorph mtl network-uri retry scientific servant
-         servant-client servant-client-core servant-server stm
-         stm-containers string-conversions template-haskell text time
-         unordered-containers uuid wai wai-extra warp
+         base email-validate network-uri stm stm-containers time warp
        ];
        testHaskellDepends = [
-         aeson aeson-qq attoparsec base bytestring case-insensitive
-         email-validate hashable hedgehog hspec hspec-expectations hspec-wai
-         http-api-data http-media http-types hw-hspec-hedgehog list-t
-         microlens mmorph mtl network-uri retry scientific servant
-         servant-client servant-client-core servant-server stm
-         stm-containers string-conversions template-haskell text time
-         unordered-containers uuid wai wai-extra warp
+         aeson attoparsec base bytestring email-validate hedgehog hspec
+         hspec-expectations hspec-wai http-types hw-hspec-hedgehog
+         indexed-traversable microlens network-uri servant servant-server
+         stm-containers text wai wai-extra
        ];
        testToolDepends = [ hspec-discover ];
        description = "hscim json schema and server implementation";
@@ -157664,19 +157902,6 @@ self: {
     ({ mkDerivation, base, hspec, parsec, time, time-compat }:
      mkDerivation {
        pname = "hsemail";
-       version = "2.2.1";
-       sha256 = "108xjspr7apx248gvv7w1hh2pqnb7qg699a8l8f8z64cv6s9ksmm";
-       libraryHaskellDepends = [ base parsec time time-compat ];
-       testHaskellDepends = [ base hspec parsec time ];
-       description = "Parsec parsers for the Internet Message format (e-mail)";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.peti ];
-     }) {};
-
-  "hsemail_2_2_2" = callPackage
-    ({ mkDerivation, base, hspec, parsec, time, time-compat }:
-     mkDerivation {
-       pname = "hsemail";
        version = "2.2.2";
        sha256 = "0wp6nicpjrlwgrqglpww3ny728i5ac68kdnj1d6vf62qhh223wg1";
        isLibrary = true;
@@ -157685,7 +157910,6 @@ self: {
        testHaskellDepends = [ base hspec parsec time ];
        description = "Parsec parsers for the Internet Message format (e-mail)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.peti ];
      }) {};
 
@@ -159991,8 +160215,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspray";
-       version = "0.1.3.0";
-       sha256 = "167kg2qcjr9r1yqiq9cjz20bvwwj1z2msdjp7n6mfc2q9266294l";
+       version = "0.2.0.0";
+       sha256 = "15mqv8mzic5jlm440s9srfrc91776mcq3jsjxdgpz6mj9xrfiww5";
        libraryHaskellDepends = [
          base containers hashable numeric-prelude text unordered-containers
        ];
@@ -160321,14 +160545,15 @@ self: {
      }) {};
 
   "hsrelp" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, network, utf8-string
+    ({ mkDerivation, attoparsec, base, bytestring, network, network-bsd
+     , utf8-string
      }:
      mkDerivation {
        pname = "hsrelp";
-       version = "0.1.0.1";
-       sha256 = "1ccikl34ncdk8vvn8vdvsw3sf4wk9wrv9ayrjz4vf03iad8ajxc1";
+       version = "0.1.1.1";
+       sha256 = "1148m5jjfmcm21j5shwmv1x5zqypyz1vidpczx9k6fi0akany2k5";
        libraryHaskellDepends = [
-         attoparsec base bytestring network utf8-string
+         attoparsec base bytestring network network-bsd utf8-string
        ];
        description = "RELP (Reliable Event Logging Protocol) server implementation";
        license = lib.licenses.bsd3;
@@ -161284,6 +161509,7 @@ self: {
        description = "Utility functions for working with html-parse";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.slotThe ];
      }) {};
 
   "html-presentation-text" = callPackage
@@ -161681,6 +161907,17 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "http-api-data-ip" = callPackage
+    ({ mkDerivation, attoparsec, base, http-api-data, ip, text }:
+     mkDerivation {
+       pname = "http-api-data-ip";
+       version = "0.1.0.0";
+       sha256 = "1jd1ri2ij989vc3h1v88hpchs4ba4qr16iz2q6jbg3nrzzfkyzbm";
+       libraryHaskellDepends = [ attoparsec base http-api-data ip text ];
+       description = "Code for using the ip package with http-api-data";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "http-api-data-qq" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, http-api-data
      , http-client, tasty, tasty-hunit, tasty-quickcheck
@@ -162095,8 +162332,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-conduit-downloader";
-       version = "1.1.4";
-       sha256 = "1p6g04ysmd7v5fwsg78q4cqdaix88pv8nhc05r49dsqk9nbnn4y2";
+       version = "1.1.5";
+       sha256 = "188wv7hcnlldvkfjf3kb5gm3r74vpm2vr0r1sb24p9akbn1mjfg6";
        libraryHaskellDepends = [
          base bytestring data-default HsOpenSSL http-client
          http-client-openssl http-types network network-uri text time zlib
@@ -162232,19 +162469,18 @@ self: {
      }) {};
 
   "http-exchange" = callPackage
-    ({ mkDerivation, base, byteslice, bytesmith, bytestring
-     , http-interchange, primitive, tasty, tasty-hunit, text
+    ({ mkDerivation, base, byteslice, bytesmith, http-interchange
+     , tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "http-exchange";
-       version = "0.2.0.0";
-       sha256 = "0sn0ard8sbp8lkgn5xyxyyahh3ii34nq1rggq5b2wyvlkvp07lys";
+       version = "0.2.0.1";
+       sha256 = "05b5y3hgj73bfc9fwz99x1r1q3giqnxv9rpsq7qrabmhnga6xpwx";
        libraryHaskellDepends = [
-         base byteslice bytesmith http-interchange primitive text
+         base byteslice bytesmith http-interchange text
        ];
        testHaskellDepends = [
-         base byteslice bytestring http-interchange primitive tasty
-         tasty-hunit
+         base byteslice http-interchange tasty tasty-hunit
        ];
        doHaddock = false;
        description = "Perform HTTP Requests";
@@ -162322,37 +162558,6 @@ self: {
      }:
      mkDerivation {
        pname = "http-io-streams";
-       version = "0.1.6.4";
-       sha256 = "134jzsgv53nagbpv3p6pyhi4mdmkmhvfmwh1v6j87rm7jkah1m6k";
-       libraryHaskellDepends = [
-         attoparsec base base64-bytestring binary blaze-builder
-         brotli-streams bytestring case-insensitive containers
-         cryptohash-sha1 directory HsOpenSSL io-streams mtl network
-         network-uri openssl-streams text transformers xor
-       ];
-       testHaskellDepends = [
-         aeson aeson-pretty attoparsec attoparsec-aeson base
-         base64-bytestring blaze-builder bytestring case-insensitive
-         containers directory HsOpenSSL hspec hspec-expectations HUnit
-         io-streams lifted-base mtl network network-uri openssl-streams snap
-         snap-core snap-server system-filepath text transformers
-         unordered-containers
-       ];
-       description = "HTTP and WebSocket client based on io-streams";
-       license = "BSD-3-Clause AND GPL-2.0-or-later";
-     }) {};
-
-  "http-io-streams_0_1_7_0" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, attoparsec, attoparsec-aeson
-     , base, base64-bytestring, binary, blaze-builder, brotli-streams
-     , bytestring, case-insensitive, containers, cryptohash-sha1
-     , directory, HsOpenSSL, hspec, hspec-expectations, HUnit
-     , io-streams, lifted-base, mtl, network, network-uri
-     , openssl-streams, snap, snap-core, snap-server, system-filepath
-     , text, transformers, unordered-containers, xor
-     }:
-     mkDerivation {
-       pname = "http-io-streams";
        version = "0.1.7.0";
        sha256 = "14jn78jby18h0jnmpx523nq3wnpr4l65mn746rzmq6z49p513wmg";
        libraryHaskellDepends = [
@@ -162371,7 +162576,6 @@ self: {
        ];
        description = "HTTP and WebSocket client based on io-streams";
        license = "BSD-3-Clause AND GPL-2.0-or-later";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http-kinder" = callPackage
@@ -162951,7 +163155,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "http2_5_1_1" = callPackage
+  "http2_5_1_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, async, base
      , base16-bytestring, bytestring, case-insensitive, containers
      , crypton, directory, filepath, gauge, Glob, hspec, hspec-discover
@@ -162961,8 +163165,8 @@ self: {
      }:
      mkDerivation {
        pname = "http2";
-       version = "5.1.1";
-       sha256 = "16afjhl13irl6lf0pxsjpcfsvjr3kbsmzs4l536q4j70wqkjkw2q";
+       version = "5.1.2";
+       sha256 = "0gp8z7hldfvfwn20aq8lpcxjgzd733g949ypnv14k8x5ncb1kvcx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163108,8 +163312,8 @@ self: {
      }:
      mkDerivation {
        pname = "http2-tls";
-       version = "0.2.4";
-       sha256 = "0bw3hcmdkgvr7xwg8zaxn1sw9v9n619f3176j3wrlvv0ycwv7r9f";
+       version = "0.2.5";
+       sha256 = "1gc0shjlacgvsxmhjsfzjqnr871lhqb9yn3lhab720gqkc5lqjcs";
        libraryHaskellDepends = [
          base bytestring crypton-x509-store crypton-x509-validation
          data-default-class http2 network network-control network-run recv
@@ -163162,6 +163366,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "httpd-shed_0_4_1_2" = callPackage
+    ({ mkDerivation, base, network, network-bsd, network-uri }:
+     mkDerivation {
+       pname = "httpd-shed";
+       version = "0.4.1.2";
+       sha256 = "0ls6aim2glhmn8ncskvgkjbh3cyq3a6r7a5623ciir57nwd5g85k";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base network network-bsd network-uri ];
+       description = "A simple web-server with an interact style API";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "https-everywhere-rules" = callPackage
     ({ mkDerivation, attoparsec, base, errors, functor-infix, hspec
      , http-client, https-everywhere-rules-raw, lens, network, pipes
@@ -167505,7 +167723,6 @@ self: {
        ];
        description = "Functional Programming Language with Dependent Types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gmp;};
 
   "ieee" = callPackage
@@ -169105,7 +169322,6 @@ self: {
        libraryHaskellDepends = [ base incipit-base polysemy ];
        description = "A Prelude for Polysemy";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "incipit-core_0_6_0_0" = callPackage
@@ -169997,6 +170213,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "influxdb_1_9_3_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
+     , bytestring, Cabal, cabal-doctest, clock, containers, doctest
+     , foldl, http-client, http-types, lens, network, optional-args
+     , raw-strings-qq, scientific, tagged, tasty, tasty-hunit
+     , template-haskell, text, time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "influxdb";
+       version = "1.9.3.1";
+       sha256 = "1ywjwiggs00hb83bakdi6liwvra6rb24gw3i4x0anh9iq6l02l68";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson attoparsec attoparsec-aeson base bytestring clock containers
+         foldl http-client http-types lens network optional-args scientific
+         tagged text time unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base containers doctest lens raw-strings-qq tasty tasty-hunit
+         template-haskell time vector
+       ];
+       description = "InfluxDB client library for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "informative" = callPackage
     ({ mkDerivation, base, containers, csv, highlighting-kate
      , http-conduit, monad-logger, pandoc, persistent
@@ -170382,7 +170626,6 @@ self: {
        testHaskellDepends = [ base text ];
        description = "Interactive literate programming";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "inlitpp";
      }) {};
 
@@ -171069,6 +171312,34 @@ self: {
        mainProgram = "intel-powermon";
      }) {};
 
+  "intelli-monad" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring
+     , bytestring, containers, haskeline, http-client, http-client-tls
+     , JuicyPixels, megaparsec, openai-servant-gen, persistent
+     , persistent-sqlite, process, servant, servant-client, sixel, text
+     , time, transformers, vector
+     }:
+     mkDerivation {
+       pname = "intelli-monad";
+       version = "0.1.0.0";
+       sha256 = "1jhh0dr3q4fn8pfkn9j7spdhivk48nf3liin7r5lvjf42s28bx7d";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base64-bytestring bytestring containers
+         haskeline http-client http-client-tls JuicyPixels megaparsec
+         openai-servant-gen persistent persistent-sqlite process servant
+         servant-client sixel text time transformers vector
+       ];
+       executableHaskellDepends = [
+         aeson base openai-servant-gen persistent-sqlite process text
+         transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "Type level prompt with openai";
+       license = lib.licenses.mit;
+     }) {};
+
   "intensional-datatys" = callPackage
     ({ mkDerivation, aeson, base, containers, directory, extra
      , filepath, ghc, hashable, haskeline, mtl, unordered-containers
@@ -172004,13 +172275,15 @@ self: {
      }) {};
 
   "io-classes" = callPackage
-    ({ mkDerivation, array, async, base, bytestring, mtl, stm, time }:
+    ({ mkDerivation, array, async, base, bytestring, mtl, primitive
+     , stm, time
+     }:
      mkDerivation {
        pname = "io-classes";
-       version = "1.4.0.0";
-       sha256 = "1vqwq9hjkbhx0ld7r4226r1gf6v0c4wi9g6nrzqbyzla89yvmvfj";
+       version = "1.4.1.0";
+       sha256 = "059krkisax9g51s0qb03sb139r3ivxl2l02599ybkpzq9rc7mkgl";
        libraryHaskellDepends = [
-         array async base bytestring mtl stm time
+         array async base bytestring mtl primitive stm time
        ];
        description = "Type classes for concurrency with STM, ST and timing";
        license = lib.licenses.asl20;
@@ -172020,8 +172293,8 @@ self: {
     ({ mkDerivation, array, base, io-classes, mtl, si-timers }:
      mkDerivation {
        pname = "io-classes-mtl";
-       version = "0.1.0.3";
-       sha256 = "1pkszdsvhnm9nh8dq7k2c5l5n3isqqccr254r96sp8x1bs8gmkv8";
+       version = "0.1.1.0";
+       sha256 = "1g7pzlf5iiv2rvkj4jiwfcc63f2zg4bic1xlwa4n67dqi7fmh80l";
        libraryHaskellDepends = [ array base io-classes mtl si-timers ];
        description = "Experimental MTL instances for io-classes";
        license = lib.licenses.asl20;
@@ -172096,16 +172369,17 @@ self: {
 
   "io-sim" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
-     , exceptions, io-classes, nothunks, psqueues, QuickCheck, quiet
-     , si-timers, strict-stm, tasty, tasty-hunit, tasty-quickcheck, time
+     , exceptions, io-classes, nothunks, primitive, psqueues, QuickCheck
+     , quiet, si-timers, strict-stm, tasty, tasty-hunit
+     , tasty-quickcheck, time
      }:
      mkDerivation {
        pname = "io-sim";
-       version = "1.4.0.0";
-       sha256 = "1fydgw7g3l7kj1zvypc9x6scvlnmdg0sl59x5y6qsdd7d2ldycx5";
+       version = "1.4.1.0";
+       sha256 = "03izkywq5s82hpy70hana6nlaj9frk072531ahfvja913879aw43";
        libraryHaskellDepends = [
-         base containers deepseq exceptions io-classes nothunks psqueues
-         QuickCheck quiet si-timers strict-stm time
+         base containers deepseq exceptions io-classes nothunks primitive
+         psqueues QuickCheck quiet si-timers strict-stm time
        ];
        testHaskellDepends = [
          array base containers io-classes QuickCheck si-timers strict-stm
@@ -172314,10 +172588,8 @@ self: {
      }:
      mkDerivation {
        pname = "ip";
-       version = "1.7.7";
-       sha256 = "0yhhmy51s2sbm1qlbx2z9h6bizswi2ck15fxxl76vc3dzbd7gj27";
-       revision = "1";
-       editedCabalFile = "17b89zp1qvfk9vyhh7hv5c4n276ciqpap2s2rxd1c11ykb010c0y";
+       version = "1.7.8";
+       sha256 = "19g5y2kyrgwv9zwa9jx1smmb6yz8fvh7x2dkixn2i0xpq79x85zy";
        libraryHaskellDepends = [
          aeson attoparsec base bytebuild byteslice bytesmith bytestring
          deepseq hashable natural-arithmetic primitive text text-short
@@ -172732,7 +173004,9 @@ self: {
        ];
        description = "An IRC client library";
        license = lib.licenses.mit;
-       maintainers = [ lib.maintainers.sternenseemann ];
+       maintainers = [
+         lib.maintainers.ncfavier lib.maintainers.sternenseemann
+       ];
      }) {};
 
   "irc-colors" = callPackage
@@ -174270,15 +174544,15 @@ self: {
      }:
      mkDerivation {
        pname = "jacinda";
-       version = "2.0.1.0";
-       sha256 = "0ydpaj6mjdmprshfqa9p9gwlkn4v02zm97pq3g5lhbi6jlfx6f3w";
+       version = "2.0.2.0";
+       sha256 = "0kinsb3cnz1s49fi2snaa9vink05hxcpjqzyx0ll948qfcb3gwkr";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base bytestring containers directory filepath microlens
-         microlens-mtl mtl prettyprinter recursion regex-rure split text
-         transformers vector
+         array base bytestring containers deepseq directory filepath
+         microlens microlens-mtl mtl prettyprinter recursion regex-rure
+         split text transformers vector
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base optparse-applicative text ];
@@ -174835,14 +175109,14 @@ self: {
 
   "javelin" = callPackage
     ({ mkDerivation, base, containers, criterion, csv, deepseq
-     , directory, foldl, hedgehog, HUnit, ieee754, indexed-traversable
-     , mono-traversable, random, statistics, tasty, tasty-hedgehog
-     , tasty-hspec, tasty-hunit, vector, vector-algorithms
+     , directory, foldl, hedgehog, HUnit, indexed-traversable
+     , mono-traversable, random, tasty, tasty-hedgehog, tasty-hspec
+     , tasty-hunit, vector, vector-algorithms
      }:
      mkDerivation {
        pname = "javelin";
-       version = "0.1.0.0";
-       sha256 = "0y9x0sh942id7nj01f51kaz6bk3d3lqlwngchmgv7jlkndxg8i2y";
+       version = "0.1.2.0";
+       sha256 = "12xzs05dkkbn93yh1f5l7m64j3rifcz9qnd5nqqd62cj6nic10xl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -174851,8 +175125,8 @@ self: {
        ];
        executableHaskellDepends = [ base csv ];
        testHaskellDepends = [
-         base containers foldl hedgehog HUnit ieee754 statistics tasty
-         tasty-hedgehog tasty-hspec tasty-hunit vector
+         base containers foldl hedgehog HUnit tasty tasty-hedgehog
+         tasty-hspec tasty-hunit vector
        ];
        benchmarkHaskellDepends = [
          base containers criterion deepseq directory foldl mono-traversable
@@ -174863,6 +175137,29 @@ self: {
        mainProgram = "bench-report";
      }) {};
 
+  "javelin-io" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, containers, filepath
+     , javelin, tasty, tasty-hedgehog, tasty-hunit, temporary
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "javelin-io";
+       version = "0.1.1.0";
+       sha256 = "1p69r6snk03s3bvhg54ddjjr6fwwnshgjrgyj2b78xhf77pck56m";
+       revision = "1";
+       editedCabalFile = "0p0c5wy31w42l1lyjvvrjrpalbmnvrb6qaalg1rk4rxill5pfcjr";
+       libraryHaskellDepends = [
+         base bytestring cassava containers javelin unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         base cassava filepath javelin tasty tasty-hedgehog tasty-hunit
+         temporary vector
+       ];
+       description = "IO operations for the `javelin` package";
+       license = lib.licenses.mit;
+     }) {};
+
   "jbi" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, Cabal, directory
      , filepath, monad-parallel, optparse-applicative, process, tagged
@@ -175624,6 +175921,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "jose-jwt_0_10_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, cereal
+     , containers, criterion, crypton, hspec, HUnit, memory, mtl
+     , QuickCheck, text, time, transformers, transformers-compat
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "jose-jwt";
+       version = "0.10.0";
+       sha256 = "0ljbinc4fffpakw48pl9dhkn6q9kllivwcwrryj23gvhxfbsyk78";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring cereal containers crypton memory
+         mtl text time transformers transformers-compat unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring crypton hspec HUnit memory mtl QuickCheck
+         text unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [ base bytestring criterion crypton ];
+       description = "JSON Object Signing and Encryption Library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "jot" = callPackage
     ({ mkDerivation, base, data-default, dhall, docopt, extra, filepath
      , process, time, turtle, yaml
@@ -176532,7 +176854,7 @@ self: {
        broken = true;
      }) {};
 
-  "json-rpc_1_1_0" = callPackage
+  "json-rpc_1_1_1" = callPackage
     ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
      , bytestring, conduit, conduit-extra, deepseq, hashable, hspec
      , monad-logger, mtl, QuickCheck, stm-conduit, text, time, unliftio
@@ -176540,8 +176862,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-rpc";
-       version = "1.1.0";
-       sha256 = "00859265k6k53zzk5ivfr3k8xzf6ckiicssafb6n3jabjyb9zv5a";
+       version = "1.1.1";
+       sha256 = "0m382rfyswqgzpdk2qzp71r1mhaj8frf9ii9xabai0zwpxxxprm7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -176692,17 +177014,18 @@ self: {
 
   "json-spec" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hspec
-     , scientific, text, time, vector
+     , om-show, scientific, text, time, vector
      }:
      mkDerivation {
        pname = "json-spec";
-       version = "0.2.2.0";
-       sha256 = "0hw8kdypxf2yp2nnzv9alnn5pw0g382lvp7bdzdfw6v8iap2m8vs";
+       version = "0.3.0.0";
+       sha256 = "16q6jdv42ayh2j8xvmcc2h7jvi1xgxiyp1ccii2c08a1wv2a262f";
        libraryHaskellDepends = [
          aeson base containers scientific text time vector
        ];
        testHaskellDepends = [
-         aeson base bytestring containers hspec scientific text time vector
+         aeson base bytestring containers hspec om-show scientific text time
+         vector
        ];
        description = "Type-level JSON specification";
        license = lib.licenses.mit;
@@ -176717,15 +177040,14 @@ self: {
      }:
      mkDerivation {
        pname = "json-spec-elm";
-       version = "0.3.0.4";
-       sha256 = "0fpqvl7cs5wg27ifzis7gmmvrp6n8b252g2vi9yaf8s05qxq93w1";
+       version = "0.4.0.0";
+       sha256 = "0kybrnri951ql6vlrv09hzi63gc6yb27a62p62243y2pj131hbjy";
        libraryHaskellDepends = [
-         base bound containers elm-syntax json-spec mtl prettyprinter text
-         unordered-containers
+         base bound containers elm-syntax json-spec mtl text
        ];
        testHaskellDepends = [
-         base bound containers directory elm-syntax hspec json-spec mtl
-         prettyprinter process text unordered-containers
+         base containers directory elm-syntax hspec json-spec prettyprinter
+         process text unordered-containers
        ];
        description = "Elm code generate for `json-spec`";
        license = lib.licenses.mit;
@@ -176740,16 +177062,16 @@ self: {
      }:
      mkDerivation {
        pname = "json-spec-elm-servant";
-       version = "0.3.2.1";
-       sha256 = "12dj4b933mq6rjqffnzmxf9y244mjl5wk8dkadnln2m2krfy8nyj";
+       version = "0.4.0.0";
+       sha256 = "1lg9wm3b148i8rdkv5ypd0wm6vvjkcvxw1cy7m7wfbm5vdjns0qm";
        libraryHaskellDepends = [
          base bound containers elm-syntax http-types json-spec json-spec-elm
          mtl servant text
        ];
        testHaskellDepends = [
-         aeson base binary bound bytestring containers cookie directory
-         elm-syntax hspec http-types json-spec json-spec-elm mtl
-         prettyprinter process servant text time unordered-containers uuid
+         aeson base binary bytestring containers cookie directory elm-syntax
+         hspec json-spec prettyprinter process servant text time
+         unordered-containers uuid
        ];
        description = "Generated elm code for servant APIs";
        license = lib.licenses.mit;
@@ -176757,19 +177079,19 @@ self: {
      }) {};
 
   "json-spec-openapi" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, hspec
-     , insert-ordered-containers, json-spec, lens, openapi3, text, time
+    ({ mkDerivation, aeson, base, hspec, insert-ordered-containers
+     , json-spec, lens, openapi3, text, time
      }:
      mkDerivation {
        pname = "json-spec-openapi";
-       version = "0.2.1.0";
-       sha256 = "0kyqph45rxyz96ydjc8ap34xj70r05jnqq33m2saf7xk52wbw8b7";
+       version = "0.3.0.0";
+       sha256 = "1wpf1lzpljczcxq0ml6yikh2xiysd1c5nl9zbscy3bsdcw1vwbgf";
        libraryHaskellDepends = [
          aeson base insert-ordered-containers json-spec lens openapi3 text
        ];
        testHaskellDepends = [
-         aeson base bytestring hspec insert-ordered-containers json-spec
-         lens openapi3 text time
+         aeson base hspec insert-ordered-containers json-spec lens openapi3
+         text time
        ];
        description = "json-spec-openapi";
        license = lib.licenses.mit;
@@ -177271,8 +177593,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsonrpc-conduit";
-       version = "0.4.0";
-       sha256 = "1qd8ngscgbakcnms1kf02m950255gavka1n2wvg0xjm7i60fkkwg";
+       version = "0.4.1";
+       sha256 = "13jdx32fr6vjwi9cbw5gkp17glhha4vbfak58h70m9rfcyca0cmk";
        libraryHaskellDepends = [
          aeson attoparsec attoparsec-aeson base bytestring conduit
          conduit-extra mtl text transformers unordered-containers
@@ -177587,8 +177909,8 @@ self: {
      }:
      mkDerivation {
        pname = "jukebox";
-       version = "0.5.4";
-       sha256 = "10lmx9xwikk4sbc3ffpzqff9qxpphgp2q8w2rdm2iskaa7qi3skn";
+       version = "0.5.5";
+       sha256 = "1rv21hdgjmmd6mynv8prfdcn48by3zch9qz6clmkjijvph0zg0nl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -178171,8 +178493,8 @@ self: {
        pname = "kansas-comet";
        version = "0.4.2";
        sha256 = "01g30ck1nhj8qwz475mvwvmd8nc1yqxl5qi84c957gp116kig2v7";
-       revision = "1";
-       editedCabalFile = "15gbk5yiqvrimb9x16bxqwk1qsksl9ydvzpxqg154212qabid7v5";
+       revision = "2";
+       editedCabalFile = "1qila4mpczr0wrg4wn7pi65s7243w1flpdmj6v80684r33knspzc";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers data-default-class scotty stm text time
@@ -178405,6 +178727,31 @@ self: {
        broken = true;
      }) {};
 
+  "katip-effectful" = callPackage
+    ({ mkDerivation, base, containers, effectful-core, effectful-plugin
+     , katip, QuickCheck, quickcheck-instances, tasty, tasty-discover
+     , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
+     , text, time, unix
+     }:
+     mkDerivation {
+       pname = "katip-effectful";
+       version = "0.0.1";
+       sha256 = "1v4fb98q0n5ly81gz2cblzd3v8ghj5a1ppbax2la0lvhnhyzbnc0";
+       revision = "1";
+       editedCabalFile = "0cndnlrhnnshi29lh4xnqmmyixc8svdvz4r21dk06r8z2r90xl07";
+       libraryHaskellDepends = [
+         base effectful-core effectful-plugin katip template-haskell text
+       ];
+       testHaskellDepends = [
+         base containers effectful-core effectful-plugin katip QuickCheck
+         quickcheck-instances tasty tasty-golden tasty-hunit
+         tasty-quickcheck template-haskell text time unix
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Katip integration for Effectful";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "katip-elasticsearch" = callPackage
     ({ mkDerivation, aeson, async, base, bloodhound, bytestring
      , containers, criterion, deepseq, exceptions, http-client
@@ -179562,8 +179909,8 @@ self: {
      }:
      mkDerivation {
        pname = "keter";
-       version = "2.1.3";
-       sha256 = "1iq2768rvd7mlxjhfjxl59ak1k12dbf5ywms7nyc5ygfj8j5g90s";
+       version = "2.1.5";
+       sha256 = "0p1s974x7qrvdlk8jfwmld0rlnf0gc2lakds1spcf0560b5flkgd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -179741,8 +180088,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals";
-       version = "0.2.3.0";
-       sha256 = "1slrqqcvwnsq8jxik1i015ha6gj47shv58lb6yy0ywik07m7xjd7";
+       version = "0.2.3.1";
+       sha256 = "0rmgrnkhqyp6vhff03dkj0w0h5yy5j1bmjlnpdrfpj8gqwps1ib1";
        libraryHaskellDepends = [
          aeson base bytestring containers http-api-data redis-glob text
        ];
@@ -179756,8 +180103,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals-hspec-tests";
-       version = "0.2.3.0";
-       sha256 = "1bi0lqh0c9bhdpgn5071jd90chsf1sq7cx5iigj324087al45a08";
+       version = "0.2.3.1";
+       sha256 = "1pxdcwxlbbhpg8kwb2hjffv6nb71dbw94frq582xm5xnc6mjpgmv";
        libraryHaskellDepends = [
          aeson base benri-hspec bytestring containers hspec http-api-data
          keyed-vals text
@@ -179772,8 +180119,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals-mem";
-       version = "0.2.3.0";
-       sha256 = "1kd9f1s07sb7a8isl1zdw2xyrbrzjcbxbwsk16y2n4yp6rknbl28";
+       version = "0.2.3.1";
+       sha256 = "1m5mhpn8brw43r9vm6x7rfhw3s1ihm31rnnddzmx0w4n4f5jaij5";
        libraryHaskellDepends = [
          base bytestring containers keyed-vals text unliftio unliftio-core
        ];
@@ -179789,8 +180136,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals-redis";
-       version = "0.2.3.0";
-       sha256 = "0lsvqmdxz9snglnnws1511amq0cp6m7rlfb54mshwbn2i59i87kd";
+       version = "0.2.3.1";
+       sha256 = "1cn1xx218hwdbmbygfnwbnrjklz3apgbm2gcmd0ckpib0d5zlx1m";
        libraryHaskellDepends = [
          base bytestring containers hedis keyed-vals read-env-var text
          unliftio unliftio-core
@@ -181115,8 +181462,8 @@ self: {
      }:
      mkDerivation {
        pname = "kvitable";
-       version = "1.0.2.1";
-       sha256 = "1zn8kx3jaxk249b2wy5zg6i1lqzahh7xh6997v3qzc7fmanbzzrl";
+       version = "1.0.3.0";
+       sha256 = "0fn81cjxm3ia790nds9kjh7zkrckab6jgdylnbak7szj1yz3zvc2";
        libraryHaskellDepends = [
          base containers lucid microlens prettyprinter text
        ];
@@ -184381,8 +184728,8 @@ self: {
      }:
      mkDerivation {
        pname = "launchdarkly-server-sdk";
-       version = "4.0.3";
-       sha256 = "00b9l5qr5ik5w7mqwb3ajm7w6l30l1y76nh3n01jkymy4q2mk44y";
+       version = "4.0.4";
+       sha256 = "1z1lfl6gpa189m39ixwac47lxvhnd505avh36bnna69012gqzfwq";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring clock containers
          cryptohash exceptions extra generic-lens hashtables http-client
@@ -185085,15 +185432,15 @@ self: {
 
   "ldap-scim-bridge" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
-     , email-validate, hscim, http-client, http-client-tls, http-types
-     , ldap-client, network, relude, servant, servant-client
-     , servant-client-core, string-conversions, text, tinylog
-     , unordered-containers, yaml
+     , email-validate, hscim, hspec, http-client, http-client-tls
+     , http-types, ldap-client, network, QuickCheck, relude, servant
+     , servant-client, servant-client-core, string-conversions, text
+     , tinylog, unordered-containers, yaml
      }:
      mkDerivation {
        pname = "ldap-scim-bridge";
-       version = "0.8";
-       sha256 = "04klp9n61q63bvpcn7i12q35dfm6r3mivjpw8708pxqq1mkd2qf2";
+       version = "0.9";
+       sha256 = "13jndxxzrqc101q4bb7z2fig5cjjm8805b3335ni1hmx1imc16hp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -185108,6 +185455,10 @@ self: {
          servant servant-client servant-client-core string-conversions text
          tinylog unordered-containers yaml
        ];
+       testHaskellDepends = [
+         base bytestring email-validate hscim hspec ldap-client QuickCheck
+         string-conversions text yaml
+       ];
        description = "See README for synopsis";
        license = lib.licenses.agpl3Plus;
        hydraPlatforms = lib.platforms.none;
@@ -186148,16 +186499,16 @@ self: {
      }) {};
 
   "lens-toml-parser" = callPackage
-    ({ mkDerivation, base, containers, dwergaz, hlint, lens-family
-     , profunctors, time, toml-parser
+    ({ mkDerivation, base, containers, dwergaz, lens-family
+     , profunctors, text, time, toml-parser
      }:
      mkDerivation {
        pname = "lens-toml-parser";
-       version = "0.2.0.0";
-       sha256 = "09fihza44jksq1lqx6ks68aqi1z0ks0338f8qz1zlzmnnfp32gfw";
-       libraryHaskellDepends = [ base profunctors time toml-parser ];
+       version = "0.3.0.0";
+       sha256 = "1dl9rxs0njcsv6rfg4bmipxbvdr6240x5dsr8857c54cjffwp574";
+       libraryHaskellDepends = [ base profunctors text time toml-parser ];
        testHaskellDepends = [
-         base containers dwergaz hlint lens-family toml-parser
+         base containers dwergaz lens-family text toml-parser
        ];
        description = "Lenses for toml-parser";
        license = lib.licenses.isc;
@@ -186213,12 +186564,17 @@ self: {
      }) {};
 
   "lens-witherable" = callPackage
-    ({ mkDerivation, base, witherable }:
+    ({ mkDerivation, base, containers, hashable, transformers
+     , unordered-containers, witherable
+     }:
      mkDerivation {
        pname = "lens-witherable";
-       version = "0.1.0.2";
-       sha256 = "0n00njfd9zcfgrkwajm1h1mvzgblykzn89whca2xwwqspf7f57kd";
-       libraryHaskellDepends = [ base witherable ];
+       version = "0.2.0.2";
+       sha256 = "02m9kjj34jq3l9fkm58iz2p6z20n1jkc29j20rd24hn7cwkh0jm3";
+       libraryHaskellDepends = [
+         base containers hashable transformers unordered-containers
+         witherable
+       ];
        description = "lens-compatible tools for working with witherable";
        license = lib.licenses.mit;
      }) {};
@@ -187550,19 +187906,22 @@ self: {
      }) {};
 
   "libsecp256k1" = callPackage
-    ({ mkDerivation, base, bytestring, entropy, hedgehog, hspec, HUnit
-     , memory, secp256k1, transformers
+    ({ mkDerivation, base, bytestring, deepseq, either, entropy
+     , hashable, hedgehog, hspec, HUnit, memory, monad-par, secp256k1
+     , transformers
      }:
      mkDerivation {
        pname = "libsecp256k1";
-       version = "0.1.0";
-       sha256 = "0b66h6rfsv1dfdmyqmmkdpg4aj08g2aajgwzn04h1wb4sgn11rxl";
+       version = "0.1.4";
+       sha256 = "14y8r7f70jga8c3f2iwi8jfgbj0fd85nwz40qv8fm094yhw08hd3";
        libraryHaskellDepends = [
-         base bytestring entropy hedgehog memory transformers
+         base bytestring deepseq entropy hashable hedgehog memory
+         transformers
        ];
        libraryPkgconfigDepends = [ secp256k1 ];
        testHaskellDepends = [
-         base bytestring entropy hedgehog hspec HUnit memory transformers
+         base bytestring deepseq either entropy hashable hedgehog hspec
+         HUnit memory monad-par transformers
        ];
        description = "Bindings for secp256k1";
        license = lib.licenses.mit;
@@ -187687,6 +188046,8 @@ self: {
        pname = "libsystemd-journal";
        version = "1.4.5.1";
        sha256 = "1d2pm38nq8bk55lva1y1p5789qdkcmmc1z376lnjs4f0jgb6pnhn";
+       revision = "1";
+       editedCabalFile = "0daj8yrxp9zph3jgyxp10gj0pi0yba58jv7iy67j6zi23hbzm6ar";
        libraryHaskellDepends = [
          base bytestring hashable hsyslog pipes pipes-safe semigroups text
          transformers uniplate unix-bytestring unordered-containers uuid
@@ -187757,6 +188118,8 @@ self: {
        description = "FFI bindings to libvirt virtualization API (http://libvirt.org)";
        license = lib.licenses.bsd3;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libvirt;};
 
   "libvorbis" = callPackage
@@ -187868,22 +188231,49 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "libyaml_0_1_4" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, libyaml-clib, resourcet
+     }:
+     mkDerivation {
+       pname = "libyaml";
+       version = "0.1.4";
+       sha256 = "04zslsxp7fblxr9hq3512czgb9h81n27sdd4h2sy9d7bn74pwafn";
+       libraryHaskellDepends = [
+         base bytestring conduit libyaml-clib resourcet
+       ];
+       description = "Low-level, streaming YAML interface";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "libyaml-clib" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "libyaml-clib";
+       version = "0.2.5";
+       sha256 = "0jaif8y10ql8rmkfhm6nwfk65q8rnpk58a6j5cf4gksz9v2nnlh4";
+       doHaddock = false;
+       description = "libyaml clibs";
+       license = lib.licenses.mit;
+     }) {};
+
   "libyaml-streamly" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, safe-exceptions
-     , streamly
+    ({ mkDerivation, base, bytestring, deepseq, libyaml
+     , safe-exceptions, streamly
      }:
      mkDerivation {
        pname = "libyaml-streamly";
-       version = "0.2.2";
-       sha256 = "1dzsmcgsszkh5n7hpzxy1i4c2mrzp19ncddagklwcpll85aqp3an";
+       version = "0.2.2.1";
+       sha256 = "01dq36mwp7kpkn05hs7dhn9lxnjy9gp2p39ync01d73x7a1ic548";
        libraryHaskellDepends = [
          base bytestring deepseq safe-exceptions streamly
        ];
+       libraryPkgconfigDepends = [ libyaml ];
        description = "Low-level, streaming YAML interface via streamly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {};
+     }) {inherit (pkgs) libyaml;};
 
   "libzfs" = callPackage
     ({ mkDerivation, base, mtl, nvpair, transformers, zfs }:
@@ -189772,8 +190162,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquid-parallel";
-       version = "3.2.2.0.2";
-       sha256 = "0a1frfdklhhfwlzrpxcrx1jnqanhzs2qrqm6xlyahnknbwhhc51g";
+       version = "3.2.2.0.3";
+       sha256 = "01k4a8c5maid9am6mcyj1mqfyd93yic8nfbx6scnxnqdrkwxxylb";
        setupHaskellDepends = [ base Cabal liquidhaskell-boot ];
        libraryHaskellDepends = [ base liquidhaskell parallel ];
        description = "LiquidHaskell specs for the parallel package";
@@ -189807,8 +190197,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquid-prelude";
-       version = "0.9.2.5";
-       sha256 = "1333z82xycs4mzbayj7n1ah4bd6mdz7pasw7g8gvcq0gqakqlxzd";
+       version = "0.9.2.8.1";
+       sha256 = "1yan7blwns2r39qgrrzn2q7z9j6m72jllnl523w61frr7yzlxkck";
        setupHaskellDepends = [ base Cabal liquidhaskell-boot ];
        libraryHaskellDepends = [
          base bytestring containers ghc-prim liquidhaskell
@@ -189824,8 +190214,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquid-vector";
-       version = "0.12.3.1.2";
-       sha256 = "1pc05sr1w827k7sv7x3kdrvssy4zbq4k0dn3fhd9jp62sciyf5ia";
+       version = "0.13.1.0.1";
+       sha256 = "1cb1kf48jcgw10i8sbs83873vccwsc220j8q6zg9p2wni8k52mrx";
        setupHaskellDepends = [ base Cabal liquidhaskell-boot ];
        libraryHaskellDepends = [ base liquidhaskell vector ];
        description = "LiquidHaskell specs for the vector package";
@@ -190264,10 +190654,8 @@ self: {
      }:
      mkDerivation {
        pname = "list-witnesses";
-       version = "0.1.4.0";
-       sha256 = "1npsb38smvjfpamnv1b5xhnb9ckk65c35dngny6jxgw0i1xi975l";
-       revision = "2";
-       editedCabalFile = "0i4kcxc150nvy2vmljr4mvxy4wqlijiar6jvn8bjh5lfjapc0l98";
+       version = "0.1.4.1";
+       sha256 = "0cap54w7h8q23m4qmjmrf7ki9zpiqgccyw3wkh8d7yhl7dmk9l1i";
        libraryHaskellDepends = [
          base decidable functor-products microlens profunctors singletons
          singletons-base vinyl
@@ -192687,8 +193075,8 @@ self: {
      }:
      mkDerivation {
        pname = "looksee";
-       version = "0.5.2";
-       sha256 = "06smzpcwsvmfxv9v1i8qdxanab8x0klw5gdb5jxd7pv4msv72py4";
+       version = "0.6.0";
+       sha256 = "1vv48fnr1dbbkcyw6cvfal3fggyn7rw4gzwzvix1qyyfsl9g7cm9";
        libraryHaskellDepends = [
          base bifunctors containers errata mmorph mtl recursion-schemes
          scientific text vector
@@ -192701,6 +193089,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "looksee-trip" = callPackage
+    ({ mkDerivation, base, daytripper, looksee, prettyprinter, text }:
+     mkDerivation {
+       pname = "looksee-trip";
+       version = "0.6.0";
+       sha256 = "0nc7i12swdq4shz4brkrblkx306fgc5lcfqc3crb9kiq014qd2c5";
+       libraryHaskellDepends = [
+         base daytripper looksee prettyprinter text
+       ];
+       description = "A simple text parser with decent errors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lookup-tables" = callPackage
     ({ mkDerivation, base, primitive, tasty, tasty-hunit
      , template-haskell
@@ -193290,37 +193692,6 @@ self: {
      }:
      mkDerivation {
        pname = "lsp";
-       version = "2.3.0.0";
-       sha256 = "0jxvwhmfvnyp6r1kqfg13qpkd1a6a26r8z1aqhg2lj62lnz6d672";
-       revision = "1";
-       editedCabalFile = "15jx8x106lnv824yw6mip10gxjbgqww4557xfbyi9nvmgb83h7xj";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base bytestring co-log-core containers
-         data-default directory exceptions filepath hashable lens lens-aeson
-         lsp-types mtl prettyprinter random row-types sorted-list stm text
-         text-rope transformers unliftio-core unordered-containers uuid
-       ];
-       testHaskellDepends = [
-         base containers hspec row-types sorted-list text text-rope
-         unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell library for the Microsoft Language Server Protocol";
-       license = lib.licenses.mit;
-     }) {};
-
-  "lsp_2_4_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , co-log-core, containers, data-default, directory, exceptions
-     , filepath, hashable, hspec, hspec-discover, lens, lens-aeson
-     , lsp-types, mtl, prettyprinter, random, row-types, sorted-list
-     , stm, text, text-rope, transformers, unliftio-core
-     , unordered-containers, uuid
-     }:
-     mkDerivation {
-       pname = "lsp";
        version = "2.4.0.0";
        sha256 = "1ggfw2wp9g9fpg9x3kj9zh6l6p2yiw4q0v1gzxjg0mcmvp4aad8w";
        isLibrary = true;
@@ -193338,7 +193709,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lsp-client" = callPackage
@@ -193378,37 +193748,10 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.16.0.1";
-       sha256 = "0vh4x6yx7drz78ffl4p80r6ykba7fvs0wfj3dp7lhn0k8yji4zv0";
-       libraryHaskellDepends = [
-         aeson aeson-pretty ansi-terminal async base bytestring co-log-core
-         conduit conduit-parse containers data-default Diff directory
-         exceptions filepath Glob lens lens-aeson lsp lsp-types mtl
-         parser-combinators process row-types some text time transformers
-         unix
-       ];
-       testHaskellDepends = [
-         aeson base co-log-core containers data-default directory filepath
-         hspec lens lsp mtl parser-combinators process text unliftio
-       ];
-       testToolDepends = [ lsp ];
-       benchmarkHaskellDepends = [ base extra lsp process ];
-       description = "Functional test framework for LSP servers";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "lsp-test_0_17_0_0" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
-     , bytestring, co-log-core, conduit, conduit-parse, containers
-     , data-default, Diff, directory, exceptions, extra, filepath, Glob
-     , hspec, lens, lens-aeson, lsp, lsp-types, mtl, parser-combinators
-     , process, row-types, some, text, time, transformers, unix
-     , unliftio
-     }:
-     mkDerivation {
-       pname = "lsp-test";
        version = "0.17.0.0";
        sha256 = "1jjzqp7dbvaxysfa765zlcmb8h973242fb7a6b17cab3bjc12laq";
+       revision = "1";
+       editedCabalFile = "07090b7n5a02s1npzmwn6yfk4jnxwi98j1hqflcihni48ylx3b4g";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring co-log-core
          conduit conduit-parse containers data-default Diff directory
@@ -193425,7 +193768,6 @@ self: {
        benchmarkHaskellDepends = [ base extra lsp process ];
        description = "Functional test framework for LSP servers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lsp-types_2_0_2_0" = callPackage
@@ -193831,14 +194173,12 @@ self: {
      }) {};
 
   "lucid-colonnade" = callPackage
-    ({ mkDerivation, base, colonnade, lucid, text }:
+    ({ mkDerivation, base, colonnade, lucid, text, vector }:
      mkDerivation {
        pname = "lucid-colonnade";
-       version = "1.0.1";
-       sha256 = "0gbpfh1ky5pq0f0rz619hxfgll4yj0ky056dvrvq0s741l3gnhv8";
-       revision = "1";
-       editedCabalFile = "13v8i24cyqvda13p2p2n0ihwljz4sqfl40fl0isrb9k5yraac41v";
-       libraryHaskellDepends = [ base colonnade lucid text ];
+       version = "1.0.2";
+       sha256 = "1cyr0h26p98wk9vslnalg29bpkprsbykw89jclwcslmfi0b0i4zi";
+       libraryHaskellDepends = [ base colonnade lucid text vector ];
        description = "Helper functions for using lucid with colonnade";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -194650,6 +194990,8 @@ self: {
        pname = "mac";
        version = "0.1.3.0";
        sha256 = "0zhjpszj8qm1kqx2q7g9a41crbmqvqis7qlx65a1l36ywk78gnyd";
+       revision = "1";
+       editedCabalFile = "0p0yrv75zpn127vcn3inhsma1kf7zq7b1c33fsvywm4jba700cnx";
        libraryHaskellDepends = [ base network transformers ];
        description = "Static Mandatory Access Control in Haskell";
        license = lib.licenses.bsd3;
@@ -195324,7 +195666,6 @@ self: {
        ];
        description = "Preconfigured email connection pool on top of smtp";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "exe";
      }) {};
 
@@ -196993,7 +197334,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Massiv (Массив) is an Array Library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.sheepforce ];
      }) {};
 
   "massiv-io" = callPackage
@@ -197020,7 +197361,7 @@ self: {
        ];
        description = "Import/export of Image files into massiv Arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.sheepforce ];
      }) {};
 
   "massiv-persist" = callPackage
@@ -197106,7 +197447,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Library that contains generators, properties and tests for Massiv Array Library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.sheepforce ];
      }) {};
 
   "master-plan" = callPackage
@@ -200402,8 +200743,8 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-aeson";
-       version = "2.5.1";
-       sha256 = "02p5qk1d7rn6h7vfvj0rzi05swd6fp04mhri60nysm6dv135qxgp";
+       version = "2.5.2";
+       sha256 = "1cnmasig3wq132k1j89qj7g1bsamhpbjg492cynch4lb2r8bwxkc";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring hashable microlens scientific text
          vector
@@ -200800,8 +201141,8 @@ self: {
      }:
      mkDerivation {
        pname = "midimory";
-       version = "0.0.2.2";
-       sha256 = "01zbwkx9aalxyqa7x59sqb3qagkabvsn6q57j8f7xavgch6cljiq";
+       version = "0.0.2.3";
+       sha256 = "1k9pm0ai9i66c7l4px84cf5db3nsq5ab9ndplcyfh05snbdy70vz";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -200975,8 +201316,8 @@ self: {
      }:
      mkDerivation {
        pname = "mighttpd2";
-       version = "4.0.4";
-       sha256 = "1qpg5h68mi2yhzp2vj4nka0nyafn9mhk2qdz5n8adp66k18cj6m2";
+       version = "4.0.5";
+       sha256 = "0zi3d2af31h6mvymmh7fwa2d2lwir642jzdisvgnm9yfhsavd39v";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -201366,6 +201707,17 @@ self: {
        mainProgram = "minesweeper";
      }) {};
 
+  "mini" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "mini";
+       version = "1.2.1.0";
+       sha256 = "1ammw6s8snlfzqz8h7lm47vkinwypql35y27rdapa1q3j5ywgmsd";
+       libraryHaskellDepends = [ base ];
+       description = "Minimal essentials";
+       license = lib.licenses.mit;
+     }) {};
+
   "mini-egison" = callPackage
     ({ mkDerivation, base, egison-pattern-src
      , egison-pattern-src-th-mode, haskell-src-exts, haskell-src-meta
@@ -201588,7 +201940,6 @@ self: {
        ];
        description = "A MinIO Haskell Library for Amazon S3 compatible cloud storage";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "minions" = callPackage
@@ -201671,6 +202022,8 @@ self: {
        pname = "minisat";
        version = "0.1.3";
        sha256 = "172l1zn3ls0s55llnp4z1kgf388bs5vq4a8qys2x7dqk9zmgpbqb";
+       revision = "1";
+       editedCabalFile = "1h5p30fmkgn8d2rl9cjd7ggwph2bhhiziz9zdi5caasnklsr1cvk";
        libraryHaskellDepends = [ async base ];
        description = "A Haskell bundle of the Minisat SAT solver";
        license = lib.licenses.bsd3;
@@ -202797,8 +203150,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmzk-typeid";
-       version = "0.5.0.1";
-       sha256 = "0y2gb58afghdhqapq96qwcq1938ixy4iv27lj7d0khcsal3706kr";
+       version = "0.5.0.2";
+       sha256 = "0ricw68ymglh4nh1ncyfhcwaw82apc8wi4nsqas7y1a9fk4pbgp2";
        libraryHaskellDepends = [
          aeson array base binary bytestring entropy hashable random text
          time uuid uuid-types
@@ -203202,6 +203555,21 @@ self: {
        broken = true;
      }) {};
 
+  "module-munging" = callPackage
+    ({ mkDerivation, base, hspec, hspec-discover, string-interpolate }:
+     mkDerivation {
+       pname = "module-munging";
+       version = "0.1.0.1";
+       sha256 = "1k8p8705wzkbx1wdkmy95bv0b3dw1j3phphfdhzg6fl8c0kffvhn";
+       revision = "1";
+       editedCabalFile = "1cgfgqfd0ixg6mv45cd9fq4m8i0xgs6qy19fbrrs22ynr85a81i9";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec string-interpolate ];
+       testToolDepends = [ hspec-discover ];
+       description = "Smash together text to make modules";
+       license = lib.licenses.mit;
+     }) {};
+
   "modulespection" = callPackage
     ({ mkDerivation, base, exceptions, filepath, ghc, ghc-paths
      , template-haskell, temporary, transformers
@@ -203585,15 +203953,16 @@ self: {
      }:
      mkDerivation {
        pname = "monad-bayes";
-       version = "1.2.0";
-       sha256 = "0v65asbmndgp5ljzdizgrrhwwbf6ajqaaaky5v51ivic8csb1dfy";
+       version = "1.3.0";
+       sha256 = "0hchkj0ybx76z3grha8844jw79kp94amgy30xm89jkqz09z9m1kq";
        isLibrary = true;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base brick containers foldl free histogram-fill ieee754 integration
          lens linear log-domain math-functions matrix monad-coroutine
          monad-extras mtl mwc-random pipes pretty-simple primitive random
-         safe scientific statistics text vector vty
+         safe scientific statistics text transformers vector vty
        ];
        executableHaskellDepends = [
          abstract-par base brick containers criterion directory foldl free
@@ -204585,25 +204954,6 @@ self: {
      }:
      mkDerivation {
        pname = "monad-schedule";
-       version = "0.1.2.1";
-       sha256 = "0fmqagy04p032f77q3lyzn8qqf3rr41id9ck5fr9308zvir338fg";
-       libraryHaskellDepends = [ base free stm time-domain transformers ];
-       testHaskellDepends = [
-         base free HUnit QuickCheck stm test-framework test-framework-hunit
-         test-framework-quickcheck2 time-domain transformers
-       ];
-       description = "A new, simple, composable concurrency abstraction";
-       license = lib.licenses.mit;
-       maintainers = [ lib.maintainers.turion ];
-     }) {};
-
-  "monad-schedule_0_1_2_2" = callPackage
-    ({ mkDerivation, base, free, HUnit, QuickCheck, stm, test-framework
-     , test-framework-hunit, test-framework-quickcheck2, time-domain
-     , transformers
-     }:
-     mkDerivation {
-       pname = "monad-schedule";
        version = "0.1.2.2";
        sha256 = "0nblwa9244lnxi1chy5hzhwwnj57hci391b3yfz20abq0ckdxdpm";
        libraryHaskellDepends = [ base free stm time-domain transformers ];
@@ -204613,7 +204963,6 @@ self: {
        ];
        description = "A new, simple, composable concurrency abstraction";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.turion ];
      }) {};
 
@@ -205054,7 +205403,6 @@ self: {
        testHaskellDepends = [ base ghc ghc-boot ghc-paths transformers ];
        description = "GHC plugin to desugar ! into do-notation";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "monadic-recursion-schemes" = callPackage
@@ -205350,42 +205698,8 @@ self: {
      }:
      mkDerivation {
        pname = "mongoDB";
-       version = "2.7.1.2";
-       sha256 = "0csjhvsvy534lq7lvqx96dw6ia3737rg7q96174067k7mhkxwf9m";
-       revision = "1";
-       editedCabalFile = "06kdgrg2p2c9n6im1fy04y0rvlwc4xssmk9wvw33k9svhzld7afr";
-       libraryHaskellDepends = [
-         array base base16-bytestring base64-bytestring binary bson
-         bytestring conduit conduit-extra containers cryptohash
-         data-default-class dns fail hashtables http-types lifted-base
-         monad-control mtl network nonce parsec pureMD5 random
-         random-shuffle resourcet stm tagged text time tls transformers
-         transformers-base
-       ];
-       testHaskellDepends = [ base hspec mtl old-locale text time ];
-       benchmarkHaskellDepends = [
-         array base base16-bytestring base64-bytestring binary bson
-         bytestring containers criterion cryptohash data-default-class dns
-         fail hashtables http-types lifted-base monad-control mtl network
-         nonce parsec random random-shuffle stm text tls transformers-base
-       ];
-       description = "Driver (client) for MongoDB, a free, scalable, fast, document DBMS";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "mongoDB_2_7_1_3" = callPackage
-    ({ mkDerivation, array, base, base16-bytestring, base64-bytestring
-     , binary, bson, bytestring, conduit, conduit-extra, containers
-     , criterion, cryptohash, data-default-class, dns, fail, hashtables
-     , hspec, http-types, lifted-base, monad-control, mtl, network
-     , nonce, old-locale, parsec, pureMD5, random, random-shuffle
-     , resourcet, stm, tagged, text, time, tls, transformers
-     , transformers-base
-     }:
-     mkDerivation {
-       pname = "mongoDB";
-       version = "2.7.1.3";
-       sha256 = "194qjhkhks3pqic9ycx7qyzkqlpvyxlhsixwkvnagakivyzrglv3";
+       version = "2.7.1.4";
+       sha256 = "1zkaigznyd47njsxq2cw8d0cm5dyh6mwl1h0w3ig5jsxg07312h6";
        libraryHaskellDepends = [
          array base base16-bytestring base64-bytestring binary bson
          bytestring conduit conduit-extra containers cryptohash
@@ -205404,7 +205718,6 @@ self: {
        ];
        description = "Driver (client) for MongoDB, a free, scalable, fast, document DBMS";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mongodb-queue" = callPackage
@@ -205503,14 +205816,15 @@ self: {
      }) {};
 
   "mono-traversable" = callPackage
-    ({ mkDerivation, base, bytestring, containers, foldl, gauge
-     , hashable, hspec, HUnit, mwc-random, QuickCheck, split, text
-     , transformers, unordered-containers, vector, vector-algorithms
+    ({ mkDerivation, base, bytestring, containers, deepseq, foldl
+     , gauge, hashable, hspec, HUnit, mwc-random, QuickCheck, split
+     , text, transformers, unordered-containers, vector
+     , vector-algorithms
      }:
      mkDerivation {
        pname = "mono-traversable";
-       version = "1.0.15.3";
-       sha256 = "1dvlp7r7r1lc3fxkwaz68f1nffg83240q8a989x24x1x67rj1clq";
+       version = "1.0.17.0";
+       sha256 = "0byk9hc2yh95hnhlx1r7h7i42h4dnlm3kwqksb9kaqxwc2wgkn15";
        libraryHaskellDepends = [
          base bytestring containers hashable split text transformers
          unordered-containers vector vector-algorithms
@@ -205519,7 +205833,9 @@ self: {
          base bytestring containers foldl hspec HUnit QuickCheck text
          transformers unordered-containers vector
        ];
-       benchmarkHaskellDepends = [ base gauge mwc-random vector ];
+       benchmarkHaskellDepends = [
+         base bytestring containers deepseq gauge mwc-random text vector
+       ];
        description = "Type classes for mapping, folding, and traversing monomorphic containers";
        license = lib.licenses.mit;
      }) {};
@@ -207990,6 +208306,17 @@ self: {
        mainProgram = "msu";
      }) {};
 
+  "mt19937" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "mt19937";
+       version = "0.1.0";
+       sha256 = "1gmw70an5qa37kq876z1y1nhj2c9zb48i2pn2z8dcc54ixc5ap4x";
+       libraryHaskellDepends = [ base vector ];
+       description = "Efficient MT19937 (standard 32-bit Mersenne Twister PRNG) implementation in pure Haskell";
+       license = lib.licenses.mit;
+     }) {};
+
   "mtgoxapi" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
      , base64-bytestring, bytestring, curl, either, errors, hashable
@@ -210573,8 +210900,8 @@ self: {
      }:
      mkDerivation {
        pname = "mysql-haskell";
-       version = "1.1.3";
-       sha256 = "1bq2yhnbglfdhvax5bnk3h87j840bmi0ls9qhanbv92ly2zsi48j";
+       version = "1.1.4";
+       sha256 = "1cqrn04p83pc7qjsk4vl8vfjw7z64r00dcki0rvq7si8dd7fslab";
        libraryHaskellDepends = [
          base binary blaze-textual bytestring bytestring-lexing crypton
          crypton-x509 crypton-x509-store crypton-x509-system
@@ -210633,16 +210960,17 @@ self: {
 
   "mysql-json-table" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, exceptions
-     , mysql, mysql-simple
+     , http-api-data, mysql, mysql-simple
      }:
      mkDerivation {
        pname = "mysql-json-table";
-       version = "0.1.2.0";
-       sha256 = "0k27jbm1pg07bk633h7zvkgfd28m35vds31ibz5mizll8xwvaz4i";
+       version = "0.1.3.0";
+       sha256 = "1r572z2j2jrgaddb3rf254g1bfjc9khf1rklfcccx8vvavbbkpvb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring conduit exceptions mysql mysql-simple
+         aeson base bytestring conduit exceptions http-api-data mysql
+         mysql-simple
        ];
        executableHaskellDepends = [ base conduit mysql-simple ];
        description = "Using MySQL to store id-to-json tables";
@@ -210880,6 +211208,7 @@ self: {
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
        mainProgram = "n-m";
+       broken = true;
      }) {};
 
   "n-tuple" = callPackage
@@ -211485,8 +211814,8 @@ self: {
     ({ mkDerivation, base, tasty, tasty-hunit, time }:
      mkDerivation {
        pname = "nanotime";
-       version = "0.3.1";
-       sha256 = "1r262mb020dxl9cwcnkikc3apc4556p2l02p90bz2rvgkv3sxpvr";
+       version = "0.3.2";
+       sha256 = "0s6ks96avm4k3v013kx8c5apzf6fa4ws0p6fgmyq1b58pnx67wkz";
        libraryHaskellDepends = [ base time ];
        testHaskellDepends = [ base tasty tasty-hunit time ];
        description = "a tiny time library";
@@ -212977,31 +213306,6 @@ self: {
      }:
      mkDerivation {
        pname = "nettle";
-       version = "0.3.0";
-       sha256 = "0pbxpxr9xdw3ha5lm9vnsbsvq0kzzsqv6gfk041ijllf1sc0hgyg";
-       revision = "2";
-       editedCabalFile = "0szkcrp9ws984ah282jwwfsmzn85khvpmkphv2b1jgxfwzqg426z";
-       libraryHaskellDepends = [
-         base byteable bytestring crypto-cipher-types securemem tagged
-       ];
-       libraryPkgconfigDepends = [ nettle ];
-       testHaskellDepends = [
-         array base bytestring crypto-cipher-tests crypto-cipher-types HUnit
-         QuickCheck tagged test-framework test-framework-hunit
-         test-framework-quickcheck2
-       ];
-       description = "safe nettle binding";
-       license = lib.licenses.mit;
-     }) {inherit (pkgs) nettle;};
-
-  "nettle_0_3_1_1" = callPackage
-    ({ mkDerivation, array, base, byteable, bytestring
-     , crypto-cipher-tests, crypto-cipher-types, HUnit, nettle
-     , QuickCheck, securemem, tagged, test-framework
-     , test-framework-hunit, test-framework-quickcheck2
-     }:
-     mkDerivation {
-       pname = "nettle";
        version = "0.3.1.1";
        sha256 = "0hnbba0wc68yfqznmswmr9radl5hara61m67vr6wdl3s4ln5aj6m";
        libraryHaskellDepends = [
@@ -213015,7 +213319,6 @@ self: {
        ];
        description = "safe nettle binding";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) nettle;};
 
   "nettle-frp" = callPackage
@@ -213068,6 +213371,24 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "netw" = callPackage
+    ({ mkDerivation, base, primitive, primitive-unaligned
+     , template-haskell, unix
+     }:
+     mkDerivation {
+       pname = "netw";
+       version = "0.1.0.0";
+       sha256 = "1w42pmm8ydf087wmlrhznkmz3r93qw4dzn1laqyd52103q6fjnl8";
+       libraryHaskellDepends = [
+         base primitive primitive-unaligned template-haskell unix
+       ];
+       testHaskellDepends = [ base primitive unix ];
+       description = "Binding to C socket API operating on bytearrays";
+       license = lib.licenses.gpl3Plus;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "netwire" = callPackage
     ({ mkDerivation, base, containers, deepseq, parallel, profunctors
      , random, semigroups, time, transformers
@@ -214904,13 +215225,13 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export";
-       version = "1.7.9";
-       sha256 = "0xjbpnsdqxc9fgmsqqv03vgr28q584hjl0w78v1fw7g48cww7j4h";
+       version = "1.7.10";
+       sha256 = "15hd1hknhkcpg8x8h7fb6azcgazyxbxggsxrqm441a80yvphq81s";
        libraryHaskellDepends = [
          async base binary bytestring deepseq monad-loops template-haskell
          unix
        ];
-       description = "Helper module for Nginx haskell module";
+       description = "Helper module for Nginx Haskell module";
        license = lib.licenses.bsd3;
      }) {};
 
@@ -214983,12 +215304,12 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools";
-       version = "1.2.2.1";
-       sha256 = "1nl3b1i034zbm15mhhyjlgh1220xlih6i80vx4lk83pydagj9xy1";
+       version = "1.2.3.2";
+       sha256 = "0d39i91vbqbs5ibzwka102c5dzjcswkvnz85k57xnir6jr4blfv9";
        libraryHaskellDepends = [
          aeson base binary bytestring ngx-export safe template-haskell
        ];
-       description = "Extra tools for Nginx haskell module";
+       description = "Extra tools for Nginx Haskell module";
        license = lib.licenses.bsd3;
      }) {};
 
@@ -215003,8 +215324,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "1.2.7";
-       sha256 = "0qspk9j5kcahsdima9c2428pvgm98lydx8slzc1fpyhmr8b1jcqw";
+       version = "1.2.8.1";
+       sha256 = "0x56jxbswzs371z8a93h5zbda4h6y9l2jnlp15h5vg9lsn2fhrnw";
        libraryHaskellDepends = [
          aeson array async base base64 binary bytestring case-insensitive
          containers ede enclosed-exceptions http-client
@@ -215347,10 +215668,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-diff";
-       version = "1.0.19";
-       sha256 = "0iscad4ydgg1365k64bzxn15pl4jnsv17jbzda4s0fs9ff4c5ias";
-       revision = "1";
-       editedCabalFile = "0yf5x1wx33bgpr1gj24jsgp5gx2741xjchyhvjb3acvw7w5lzr0s";
+       version = "1.0.20";
+       sha256 = "0p45fp1bl7n6yqwwlyy2cnmrj8ijq773hb5rqrzvb2n89wvilaga";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -215453,8 +215772,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-narinfo";
-       version = "0.1.1.0";
-       sha256 = "0vvmhfghh9i8w8wk4cigr4ycvd4fxqjcdy7fjmj3n83xxhpbc9ig";
+       version = "0.1.1.1";
+       sha256 = "1hc4w1wdnzjynvyxschglssfhxpqcgfx56vwblv17y7fc2qqk3xc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ attoparsec base containers text ];
@@ -217527,6 +217846,7 @@ self: {
        ];
        description = "Convert numbers to number words";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.t4ccer ];
      }) {};
 
   "numeric-domains" = callPackage
@@ -218568,14 +218888,14 @@ self: {
      }:
      mkDerivation {
        pname = "obdd";
-       version = "0.8.4";
-       sha256 = "1qb6324nfrfjng54dzp3z2134vc74dcwp4xn61y5a9vc4jkizb0s";
+       version = "0.9.0";
+       sha256 = "0crj7yhass9z5cirmbvip6cx0kpdh1f9vpf41ijmpxwcfdi72c6g";
        libraryHaskellDepends = [
          array base containers ersatz mtl process-extras random text
        ];
        testHaskellDepends = [ array base containers text ];
        description = "Ordered Reduced Binary Decision Diagrams";
-       license = "GPL";
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -218886,8 +219206,8 @@ self: {
      }:
      mkDerivation {
        pname = "odbc";
-       version = "0.2.6";
-       sha256 = "0yyyjnnlnd3zpvnh55l5gsvakrciml91jaqy5hdgnlpqfslz330r";
+       version = "0.3.0";
+       sha256 = "0kpmyrq7cgh1f7bvbliiihq7cqnamr3n653252ky31cl5qi3wrfj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -218897,7 +219217,7 @@ self: {
        ];
        librarySystemDepends = [ unixODBC ];
        executableHaskellDepends = [
-         base bytestring optparse-applicative text
+         base bytestring optparse-applicative text time
        ];
        testHaskellDepends = [
          base bytestring hspec parsec QuickCheck text time
@@ -219512,25 +219832,6 @@ self: {
      }:
      mkDerivation {
        pname = "om-elm";
-       version = "2.0.0.5";
-       sha256 = "0nggl62mf42q69vcjbdbkfflk4b4q6yd15sx0hkvrz1ry2ivjdqq";
-       libraryHaskellDepends = [
-         base bytestring Cabal containers directory http-types safe
-         safe-exceptions template-haskell text unix wai
-       ];
-       description = "Haskell utilities for building embedded Elm programs";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "om-elm_2_0_0_6" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, directory
-     , http-types, safe, safe-exceptions, template-haskell, text, unix
-     , wai
-     }:
-     mkDerivation {
-       pname = "om-elm";
        version = "2.0.0.6";
        sha256 = "1gjrnrl3gvjg85ldgih7zi4sv53vrfl28jymn4z70xnpna7lvph9";
        libraryHaskellDepends = [
@@ -219639,32 +219940,20 @@ self: {
 
   "om-legion" = callPackage
     ({ mkDerivation, aeson, async, base, binary, bytestring, clock
-     , conduit, containers, crdt-event-fold, data-default-class
-     , hostname, hspec, http-api-data, lens, lens-aeson, monad-logger
-     , mtl, mustache, network, om-fork, om-kubernetes, om-logging
-     , om-show, om-socket, om-time, random-shuffle, safe
-     , safe-exceptions, stm, template-haskell, text, time, transformers
-     , unix, unliftio, unliftio-core, uuid, vector
+     , containers, crdt-event-fold, data-default-class, http-api-data
+     , monad-logger, mtl, network, om-fork, om-logging, om-show
+     , om-socket, om-time, random-shuffle, safe-exceptions, stm
+     , streaming, text, time, transformers, unliftio-core, uuid
      }:
      mkDerivation {
        pname = "om-legion";
-       version = "6.9.0.4";
-       sha256 = "1jalb99j59v5d33zbl8jfgic4m1g82kmbbzx87gcyz4jclzmf2q6";
-       isLibrary = true;
-       isExecutable = true;
+       version = "6.9.0.6";
+       sha256 = "05kh6raq4fbqcbj2add7q6s7r3m12cgskbsh1kp39zlibkgvl81d";
        libraryHaskellDepends = [
-         aeson async base binary bytestring clock conduit containers
-         crdt-event-fold data-default-class http-api-data monad-logger mtl
-         network om-fork om-logging om-show om-socket om-time random-shuffle
-         safe-exceptions stm text time transformers unliftio-core uuid
-       ];
-       executableHaskellDepends = [
-         aeson async base binary bytestring clock conduit containers
-         crdt-event-fold data-default-class hostname hspec http-api-data
-         lens lens-aeson monad-logger mtl mustache network om-fork
-         om-kubernetes om-logging om-show om-socket om-time random-shuffle
-         safe safe-exceptions stm template-haskell text time transformers
-         unix unliftio unliftio-core uuid vector
+         aeson async base binary bytestring clock containers crdt-event-fold
+         data-default-class http-api-data monad-logger mtl network om-fork
+         om-logging om-show om-socket om-time random-shuffle safe-exceptions
+         stm streaming text time transformers unliftio-core uuid
        ];
        description = "Legion Framework";
        license = lib.licenses.mit;
@@ -219723,17 +220012,16 @@ self: {
      }:
      mkDerivation {
        pname = "om-socket";
-       version = "1.0.0.0";
-       sha256 = "0z83k8qmcbp6ph8wd51vk04q3vf5fmf0z7q4jn91nwrf196g6h3q";
+       version = "1.0.0.1";
+       sha256 = "1jgg1wfvxl36xgmhaaa7ri0grdhakzfrq1ivzh6788mxfdb4dkj7";
        libraryHaskellDepends = [
          aeson base binary bytestring containers exceptions megaparsec
          monad-logger network om-fork om-show stm streaming streaming-binary
          streaming-bytestring text tls unliftio-core
        ];
        testHaskellDepends = [
-         aeson base binary bytestring containers exceptions hspec megaparsec
-         monad-logger network om-fork om-show stm streaming streaming-binary
-         streaming-bytestring text tls unliftio-core
+         base binary exceptions hspec monad-logger om-fork om-show streaming
+         text unliftio-core
        ];
        description = "Socket utilities";
        license = lib.licenses.mit;
@@ -220182,35 +220470,6 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.10.2.0";
-       sha256 = "0an98lspk77zxg4phvll5zjxviq3q4iwc75p9k7aqqa1hvm4wrdj";
-       libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring case-insensitive
-         contravariant postgresql-simple pretty product-profunctors
-         profunctors scientific semigroups text time-compat
-         time-locale-compat transformers uuid void
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers contravariant dotenv hspec
-         hspec-discover multiset postgresql-simple product-profunctors
-         profunctors QuickCheck semigroups text time time-compat
-         transformers uuid
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "An SQL-generating DSL targeting PostgreSQL";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "opaleye_0_10_2_1" = callPackage
-    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
-     , case-insensitive, containers, contravariant, dotenv, hspec
-     , hspec-discover, multiset, postgresql-simple, pretty
-     , product-profunctors, profunctors, QuickCheck, scientific
-     , semigroups, text, time, time-compat, time-locale-compat
-     , transformers, uuid, void
-     }:
-     mkDerivation {
-       pname = "opaleye";
        version = "0.10.2.1";
        sha256 = "0n6z93a9j5qcr39m1y4fdff3mfnc7bxcx74xw7cnb228b23a6gx1";
        libraryHaskellDepends = [
@@ -220228,7 +220487,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "An SQL-generating DSL targeting PostgreSQL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "opaleye-classy" = callPackage
@@ -220543,6 +220801,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "openai-servant-gen" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, exceptions
+     , hspec, hspec-wai, http-api-data, http-client, http-client-tls
+     , http-media, http-types, mtl, network-uri, servant, servant-client
+     , servant-client-core, servant-server, swagger2, text, time
+     , transformers, uuid, vector, wai, wai-extra, warp
+     }:
+     mkDerivation {
+       pname = "openai-servant-gen";
+       version = "0.1.0.1";
+       sha256 = "00q1m06gx5g2j35wr2cm0fbh5q3d1c2b1h7ig0ny58v4817qgcvk";
+       libraryHaskellDepends = [
+         aeson base bytestring containers exceptions http-api-data
+         http-client http-client-tls http-media http-types mtl network-uri
+         servant servant-client servant-client-core servant-server swagger2
+         text time transformers uuid vector wai wai-extra warp
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers exceptions hspec hspec-wai
+         http-api-data http-client http-client-tls http-types mtl
+         network-uri servant servant-client servant-client-core
+         servant-server swagger2 text time transformers uuid wai wai-extra
+         warp
+       ];
+       description = "Auto-generated API bindings for openai";
+       license = lib.licenses.mit;
+     }) {};
+
   "openal-ffi" = callPackage
     ({ mkDerivation, base, openal }:
      mkDerivation {
@@ -220688,27 +220974,29 @@ self: {
 
   "opencascade-hs" = callPackage
     ({ mkDerivation, base, resourcet, TKBO, TKBRep, TKernel, TKFillet
-     , TKG2d, TKG3d, TKGeomBase, TKMath, TKMesh, TKOffset, TKPrim
-     , TKService, TKStd, TKSTEP, TKSTL, TKTopAlgo, TKV3d
+     , TKG2d, TKG3d, TKGeomBase, TKLCAF, TKMath, TKMesh, TKOffset
+     , TKPrim, TKRWMesh, TKService, TKStd, TKSTEP, TKSTL, TKTopAlgo
+     , TKV3d, TKXCAF
      }:
      mkDerivation {
        pname = "opencascade-hs";
-       version = "0.1.2.2";
-       sha256 = "0bi5azb9hpx6xfzj9r4a21majxzsiadgz6j9cbmc04wnp86p7yng";
+       version = "0.2.1.0";
+       sha256 = "0dwlhaq7mknz58r5j1gacm1m400pcg7idg41g1wcq5wv5v0y5rbp";
        libraryHaskellDepends = [ base resourcet ];
        librarySystemDepends = [
-         TKBO TKBRep TKernel TKFillet TKG2d TKG3d TKGeomBase TKMath TKMesh
-         TKOffset TKPrim TKService TKStd TKSTEP TKSTL TKTopAlgo TKV3d
+         TKBO TKBRep TKernel TKFillet TKG2d TKG3d TKGeomBase TKLCAF TKMath
+         TKMesh TKOffset TKPrim TKRWMesh TKService TKStd TKSTEP TKSTL
+         TKTopAlgo TKV3d TKXCAF
        ];
        description = "Thin Wrapper for the OpenCASCADE CAD Kernel";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {TKBO = null; TKBRep = null; TKFillet = null; TKG2d = null; 
-         TKG3d = null; TKGeomBase = null; TKMath = null; TKMesh = null; 
-         TKOffset = null; TKPrim = null; TKSTEP = null; TKSTL = null; 
-         TKService = null; TKStd = null; TKTopAlgo = null; TKV3d = null; 
-         TKernel = null;};
+         TKG3d = null; TKGeomBase = null; TKLCAF = null; TKMath = null; 
+         TKMesh = null; TKOffset = null; TKPrim = null; TKRWMesh = null; 
+         TKSTEP = null; TKSTL = null; TKService = null; TKStd = null; 
+         TKTopAlgo = null; TKV3d = null; TKXCAF = null; TKernel = null;};
 
   "opencc" = callPackage
     ({ mkDerivation, base, bytestring, mtl, opencc, text, transformers
@@ -222219,6 +222507,7 @@ self: {
        description = "Utility functions for working with optparse-applicative";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.slotThe ];
        broken = true;
      }) {};
 
@@ -223001,7 +223290,7 @@ self: {
        mainProgram = "ormolu";
      }) {};
 
-  "ormolu_0_7_3_0" = callPackage
+  "ormolu_0_7_4_0" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, binary, bytestring
      , Cabal-syntax, containers, deepseq, Diff, directory, file-embed
      , filepath, ghc-lib-parser, hspec, hspec-discover, hspec-megaparsec
@@ -223010,8 +223299,8 @@ self: {
      }:
      mkDerivation {
        pname = "ormolu";
-       version = "0.7.3.0";
-       sha256 = "1lmzmz8gfh994fmwr4cj955a1mny0cqjrqhc4cp0liy3byla92ks";
+       version = "0.7.4.0";
+       sha256 = "1s7a9crjhbsmjkdvpv8ycygpiikv96s96p3lmjik4pb3q7idir2z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -223605,7 +223894,6 @@ self: {
        ];
        description = "“Vertical” parsing of values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pa-json" = callPackage
@@ -223625,15 +223913,14 @@ self: {
        ];
        description = "Our JSON parsers/encoders";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pa-label" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "pa-label";
-       version = "0.1.0.1";
-       sha256 = "0dcdxqkpyfjig3ywiazyml6hc6ipnx8ix26cv16aj46r31vsnc81";
+       version = "0.1.1.0";
+       sha256 = "10v107ck2c9vq09qcmh652f0w33c68xfbn1fcg042mh41j8860dl";
        libraryHaskellDepends = [ base ];
        description = "Labels, and labelled tuples and enums (GHC >9.2)";
        license = lib.licenses.bsd3;
@@ -224468,6 +224755,61 @@ self: {
        ];
      }) {};
 
+  "pandoc_3_1_12_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, array, attoparsec, base
+     , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
+     , case-insensitive, citeproc, commonmark, commonmark-extensions
+     , commonmark-pandoc, containers, crypton-connection
+     , crypton-x509-system, data-default, deepseq, Diff, directory, djot
+     , doclayout, doctemplates, emojis, exceptions, file-embed, filepath
+     , Glob, gridtables, haddock-library, http-client, http-client-tls
+     , http-types, ipynb, jira-wiki-markup, JuicyPixels, mime-types, mtl
+     , network, network-uri, pandoc-types, parsec, pretty, pretty-show
+     , process, random, safe, scientific, SHA, skylighting
+     , skylighting-core, split, syb, tagsoup, tasty, tasty-bench
+     , tasty-golden, tasty-hunit, tasty-quickcheck, temporary, texmath
+     , text, text-conversions, time, tls, typst, unicode-collation
+     , unicode-transforms, unix, vector, xml, xml-conduit, xml-types
+     , yaml, zip-archive, zlib
+     }:
+     mkDerivation {
+       pname = "pandoc";
+       version = "3.1.12.2";
+       sha256 = "0liyv3pgn7fkjiazmln941vs5h58vipn6d4lmkchjqkdqd9j67ps";
+       configureFlags = [ "-f-trypandoc" ];
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty array attoparsec base base64-bytestring binary
+         blaze-html blaze-markup bytestring case-insensitive citeproc
+         commonmark commonmark-extensions commonmark-pandoc containers
+         crypton-connection crypton-x509-system data-default deepseq
+         directory djot doclayout doctemplates emojis exceptions file-embed
+         filepath Glob gridtables haddock-library http-client
+         http-client-tls http-types ipynb jira-wiki-markup JuicyPixels
+         mime-types mtl network network-uri pandoc-types parsec pretty
+         pretty-show process random safe scientific SHA skylighting
+         skylighting-core split syb tagsoup temporary texmath text
+         text-conversions time tls typst unicode-collation
+         unicode-transforms unix vector xml xml-conduit xml-types yaml
+         zip-archive zlib
+       ];
+       testHaskellDepends = [
+         base bytestring containers Diff directory doctemplates filepath
+         Glob mtl pandoc-types process tasty tasty-golden tasty-hunit
+         tasty-quickcheck temporary text time xml zip-archive
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring deepseq mtl tasty-bench text
+       ];
+       doHaddock = false;
+       description = "Conversion between markup formats";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [
+         lib.maintainers.maralorn lib.maintainers.sternenseemann
+       ];
+     }) {};
+
   "pandoc-builder-monadic" = callPackage
     ({ mkDerivation, base, dlist, mtl, pandoc-types, text }:
      mkDerivation {
@@ -224555,6 +224897,27 @@ self: {
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
+  "pandoc-cli_3_1_12_2" = callPackage
+    ({ mkDerivation, base, hslua-cli, pandoc, pandoc-lua-engine
+     , pandoc-server, safe, temporary, text, wai-extra, warp
+     }:
+     mkDerivation {
+       pname = "pandoc-cli";
+       version = "3.1.12.2";
+       sha256 = "1xx381i5ak9sijdx89f5dvk5ccjbmzr1imkvndj1kgay2aixmqap";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base hslua-cli pandoc pandoc-lua-engine pandoc-server safe
+         temporary text wai-extra warp
+       ];
+       description = "Conversion between documentation formats";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc";
+       maintainers = [ lib.maintainers.maralorn ];
+     }) {};
+
   "pandoc-columns" = callPackage
     ({ mkDerivation, base, pandoc, pandoc-types }:
      mkDerivation {
@@ -224922,6 +225285,35 @@ self: {
        license = lib.licenses.gpl2Plus;
      }) {};
 
+  "pandoc-lua-engine_0_2_1_3" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, citeproc, containers
+     , data-default, directory, doclayout, doctemplates, exceptions
+     , filepath, hslua, hslua-module-doclayout, hslua-module-path
+     , hslua-module-system, hslua-module-text, hslua-module-version
+     , hslua-module-zip, hslua-repl, lpeg, mtl, pandoc
+     , pandoc-lua-marshal, pandoc-types, parsec, SHA, tasty
+     , tasty-golden, tasty-hunit, tasty-lua, text
+     }:
+     mkDerivation {
+       pname = "pandoc-lua-engine";
+       version = "0.2.1.3";
+       sha256 = "1hmqjz4if85pl7fsg224mf01131ddl0zkgmhq9inm782pajzhdmg";
+       libraryHaskellDepends = [
+         aeson base bytestring citeproc containers data-default doclayout
+         doctemplates exceptions hslua hslua-module-doclayout
+         hslua-module-path hslua-module-system hslua-module-text
+         hslua-module-version hslua-module-zip hslua-repl lpeg mtl pandoc
+         pandoc-lua-marshal pandoc-types parsec SHA text
+       ];
+       testHaskellDepends = [
+         base bytestring data-default directory exceptions filepath hslua
+         pandoc pandoc-types tasty tasty-golden tasty-hunit tasty-lua text
+       ];
+       description = "Lua engine to power custom pandoc conversions";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pandoc-lua-marshal" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, exceptions
      , hslua, hslua-list, hslua-marshalling, pandoc-types, QuickCheck
@@ -224929,8 +225321,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-lua-marshal";
-       version = "0.2.4";
-       sha256 = "020iyy4i37zxlrggqjph5rk95yf3lr5jbv63l6l0f2pv8iakryyj";
+       version = "0.2.5";
+       sha256 = "0wzbxwy7wzrlq45agxwd0ifihqwjpz6307ij4s4zqplh7y16n9mi";
        libraryHaskellDepends = [
          aeson base bytestring containers exceptions hslua hslua-list
          hslua-marshalling pandoc-types safe text
@@ -225123,8 +225515,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-server";
-       version = "0.1.0.4";
-       sha256 = "101z99b06x4qx0v1dqxpggzjylvhp7g10q7cjn9ass4cfyg2am4v";
+       version = "0.1.0.5";
+       sha256 = "1vshd3mi71fng09b15pwis2gdwzmkm5dx9d8j47bz2n06y0izv18";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring containers data-default
          doctemplates pandoc pandoc-types servant-server skylighting text
@@ -225496,10 +225888,8 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.9.3.1";
-       sha256 = "17nnp3vl03bv5c4c8djyvv7w885ajypzwxwb82vza8m0cf2jyja5";
-       revision = "2";
-       editedCabalFile = "10sn5amd1hwgc8d64nv73mhjiqaza4wklkbqmp634g3ny6lsayaa";
+       version = "0.9.3.2";
+       sha256 = "059rrf9y5s5c60ra571b8zrm2vrmsmxlql7l0xdv8w34wr6fybqn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -226573,25 +226963,11 @@ self: {
     ({ mkDerivation, base, parsec }:
      mkDerivation {
        pname = "parsec-class";
-       version = "1.0.0.0";
-       sha256 = "0wqpivsrjsp9996fz6lb06rxl3860afc4l8hbx8d1vxhwv2lx702";
-       revision = "1";
-       editedCabalFile = "0ayf4kq2s69v8bb5m79dwycpj7b2fn1iy8m59h4knglw2fazk4px";
-       libraryHaskellDepends = [ base parsec ];
-       description = "Class of types that can be constructed from their text representation";
-       license = lib.licenses.mit;
-     }) {};
-
-  "parsec-class_1_0_1_0" = callPackage
-    ({ mkDerivation, base, parsec }:
-     mkDerivation {
-       pname = "parsec-class";
        version = "1.0.1.0";
        sha256 = "13211k8gx4gwks1f7nz8p6ak1964jpi2sxla29vwmzr76v08d1h6";
        libraryHaskellDepends = [ base parsec ];
        description = "Class of types that can be constructed from their text representation";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "parsec-extra" = callPackage
@@ -226881,6 +227257,29 @@ self: {
        broken = true;
      }) {};
 
+  "parser-regex" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, ghc-bignum
+     , primitive, QuickCheck, quickcheck-classes-base, tasty
+     , tasty-hunit, tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "parser-regex";
+       version = "0.1.0.0";
+       sha256 = "1rsq5bb6rx6y99h01d8g2yfn3kjyj60x3f2n9fhzg02v8sbzs4mx";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-bignum primitive text
+         transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers QuickCheck quickcheck-classes-base tasty
+         tasty-hunit tasty-quickcheck text
+       ];
+       description = "Regex based parsers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "parser-unbiased-choice-monad-embedding" = callPackage
     ({ mkDerivation, base, containers, doctest, Earley
      , lexer-applicative, regex-applicative, srcloc
@@ -227582,8 +227981,8 @@ self: {
      }:
      mkDerivation {
        pname = "patat";
-       version = "0.10.1.1";
-       sha256 = "0ndfqrnrl94rw4lnc3jmyijgpxj9xgl3m3f4iz8ilc4w36j96vpi";
+       version = "0.12.0.0";
+       sha256 = "0a903f34y1a3aipff2c4zl86smxgi8agbawkgdd6ac7px4zdz4sv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -227855,6 +228254,24 @@ self: {
        broken = true;
      }) {};
 
+  "path-tagged" = callPackage
+    ({ mkDerivation, aeson, base, deepseq, exceptions, hashable, path
+     , path-io, tasty, tasty-discover, template-haskell, th-compat, time
+     }:
+     mkDerivation {
+       pname = "path-tagged";
+       version = "0.1.0.0";
+       sha256 = "1w7m2g36aanmcis7q7d2lkcd76cni4fifnnln88qn5dxls09p94z";
+       libraryHaskellDepends = [
+         aeson base deepseq exceptions hashable path path-io
+         template-haskell th-compat time
+       ];
+       testHaskellDepends = [ base tasty ];
+       testToolDepends = [ tasty-discover ];
+       description = "A wrapper around the @path@ library, tagged with semantic name";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "path-text-utf8" = callPackage
     ({ mkDerivation, base, bytestring, file-io, filepath, path
      , safe-exceptions, text
@@ -227876,6 +228293,8 @@ self: {
        pname = "path-tree";
        version = "0.2.0.0";
        sha256 = "13dknkl5lyvy1hyfgvgav611788bkc5w2hzsvsfg40z7ga87v10q";
+       revision = "1";
+       editedCabalFile = "14a5qq0yhmf1x5lmw2rdzv312i9w3wjg0q582y3w79wrqdid99sr";
        libraryHaskellDepends = [ base containers relude ];
        description = "`Data.Tree` for file paths";
        license = lib.licenses.mit;
@@ -227960,29 +228379,6 @@ self: {
      }:
      mkDerivation {
        pname = "pathtype";
-       version = "0.8.1.2";
-       sha256 = "1ikbl1yzlimf5yjvi6agliraqdi6mf6m7ig5rx97wh03vrx58hfk";
-       revision = "2";
-       editedCabalFile = "1qbsh0s6alg19six6nbmvnlkf5qs60iv4i2djxqlrxah08ylxaxk";
-       libraryHaskellDepends = [
-         base deepseq directory doctest-exitcode-stdio QuickCheck semigroups
-         tagged time transformers utility-ht
-       ];
-       testHaskellDepends = [
-         base doctest-exitcode-stdio doctest-lib QuickCheck
-       ];
-       description = "Type-safe replacement for System.FilePath etc";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.thielema ];
-     }) {};
-
-  "pathtype_0_8_1_3" = callPackage
-    ({ mkDerivation, base, deepseq, directory, doctest-exitcode-stdio
-     , doctest-lib, QuickCheck, semigroups, tagged, time, transformers
-     , utility-ht
-     }:
-     mkDerivation {
-       pname = "pathtype";
        version = "0.8.1.3";
        sha256 = "0wik0dpqd0bjwpsjwgqzn6cghrjkh5rbv5ggkyj50savh30y9mkj";
        libraryHaskellDepends = [
@@ -227994,7 +228390,6 @@ self: {
        ];
        description = "Type-safe replacement for System.FilePath etc";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
@@ -228069,8 +228464,7 @@ self: {
        libraryHaskellDepends = [ base mtl ];
        description = "Arrows for Pretty Printing";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = [ lib.maintainers.t4ccer ];
      }) {};
 
   "pattern-matcher" = callPackage
@@ -228601,6 +228995,8 @@ self: {
        ];
        description = "Integration over convex polytopes";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pdc" = callPackage
@@ -229867,44 +230263,6 @@ self: {
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.14.6.0";
-       sha256 = "0fz5ns6m677vrhmvzfgpmh0d5nmkn3ax3m7b4hb0j3h6jw3k0avf";
-       libraryHaskellDepends = [
-         aeson attoparsec attoparsec-aeson base base64-bytestring blaze-html
-         bytestring conduit containers deepseq fast-logger http-api-data
-         lift-type monad-logger mtl path-pieces resource-pool resourcet
-         scientific silently template-haskell text th-lift-instances time
-         transformers unliftio unliftio-core unordered-containers vault
-         vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base base64-bytestring blaze-html bytestring
-         conduit containers deepseq fast-logger hspec http-api-data
-         monad-logger mtl path-pieces QuickCheck quickcheck-instances
-         resource-pool resourcet scientific shakespeare silently
-         template-haskell text th-lift-instances time transformers unliftio
-         unliftio-core unordered-containers vector
-       ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq file-embed template-haskell text
-       ];
-       description = "Type-safe, multi-backend data serialization";
-       license = lib.licenses.mit;
-       maintainers = [ lib.maintainers.psibi ];
-     }) {};
-
-  "persistent_2_14_6_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
-     , base64-bytestring, blaze-html, bytestring, conduit, containers
-     , criterion, deepseq, fast-logger, file-embed, hspec, http-api-data
-     , lift-type, monad-logger, mtl, path-pieces, QuickCheck
-     , quickcheck-instances, resource-pool, resourcet, scientific
-     , shakespeare, silently, template-haskell, text, th-lift-instances
-     , time, transformers, unliftio, unliftio-core, unordered-containers
-     , vault, vector
-     }:
-     mkDerivation {
-       pname = "persistent";
        version = "2.14.6.1";
        sha256 = "1adsm4m804pqf30jzwkv4s1xvp5d482r4lm4s14hx2cqb43frdfh";
        libraryHaskellDepends = [
@@ -229928,7 +230286,6 @@ self: {
        ];
        description = "Type-safe, multi-backend data serialization";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.psibi ];
      }) {};
 
@@ -230080,7 +230437,6 @@ self: {
        ];
        description = "Persistent based event sourcing";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "persistent-eventsource" = callPackage
@@ -230102,7 +230458,6 @@ self: {
        ];
        description = "Persistent based event sourcing";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "persistent-generic" = callPackage
@@ -230268,7 +230623,6 @@ self: {
        testToolDepends = [ tasty-autocollect ];
        description = "Monad transformer for the persistent API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "persistent-mysql" = callPackage
@@ -231365,8 +231719,8 @@ self: {
      }:
      mkDerivation {
        pname = "phladiprelio-general-simple";
-       version = "0.14.2.0";
-       sha256 = "07xgw30r4kyf2mw5jn4hm923xmhxnca0wb6w16k38hn1shbk9jf1";
+       version = "0.15.0.0";
+       sha256 = "1d4zsa1lhxwhsl8kns8d0r13pd1v9z9516h74a317j6vb26zqx1q";
        libraryHaskellDepends = [
          async base cli-arguments directory halfsplit minmax
          phladiprelio-general-datatype phladiprelio-general-shared
@@ -231409,8 +231763,8 @@ self: {
      }:
      mkDerivation {
        pname = "phladiprelio-ukrainian-shared";
-       version = "0.1.0.0";
-       sha256 = "1k3a70ncffww0p78siikznwiwk7lbcdywyhdfl7si5i6g8g20p1g";
+       version = "0.1.1.0";
+       sha256 = "05jgydwz0mc8n1h04dzk8azcc3clyyw2akjgxjh43l6dia33r4xm";
        libraryHaskellDepends = [
          base directory mmsyn2-array ukrainian-phonetics-basic-array
        ];
@@ -231430,8 +231784,8 @@ self: {
      }:
      mkDerivation {
        pname = "phladiprelio-ukrainian-simple";
-       version = "0.15.3.0";
-       sha256 = "18bipc4xnc9jqps00pih04lfz82881k5dd6ysrk5ihy9akj5xma6";
+       version = "0.16.0.0";
+       sha256 = "0h629wlm10rjprdnhwdl42dw74g4a5wn5c49md0p8iwkjk8qmn22";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -231792,8 +232146,8 @@ self: {
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-base";
-       version = "0.8.0.0";
-       sha256 = "1adi6vs3p0q7d3032favk7fymjljx6wmxwz8jxjghm1kj6az0clk";
+       version = "0.9.0.0";
+       sha256 = "0d76i7c069aa6g0pqh28al2avr5jx6632am6f75bmmjx644p9myb";
        libraryHaskellDepends = [
          base minmax monoid-insertleft phonetic-languages-basis
          phonetic-languages-permutations-array
@@ -232109,16 +232463,20 @@ self: {
      }) {};
 
   "phonetic-languages-ukrainian-array" = callPackage
-    ({ mkDerivation, base, mmsyn2-array, mmsyn5 }:
+    ({ mkDerivation, base, intermediate-structures, mmsyn2-array }:
      mkDerivation {
        pname = "phonetic-languages-ukrainian-array";
-       version = "0.12.1.0";
-       sha256 = "0aq3rsrgy8gx01zi016hn0mhszg1166ysmr3iqrq5f4ajg6kc0fm";
+       version = "0.12.2.0";
+       sha256 = "11pmaqk59pg4ibb4byzihr5w97ipfdsc9d0gil46b7np21zm5jyw";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base mmsyn2-array mmsyn5 ];
-       executableHaskellDepends = [ base mmsyn2-array mmsyn5 ];
-       description = "Prepares Ukrainian text to be used as a phonetic language text";
+       libraryHaskellDepends = [
+         base intermediate-structures mmsyn2-array
+       ];
+       executableHaskellDepends = [
+         base intermediate-structures mmsyn2-array
+       ];
+       description = "Prepares Ukrainian text to be used as a PhLADiPreLiO text";
        license = lib.licenses.mit;
        mainProgram = "unconcatUkr";
      }) {};
@@ -232991,16 +233349,17 @@ self: {
      }) {};
 
   "pipes-aeson" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, pipes
-     , pipes-attoparsec, pipes-bytestring, pipes-parse, transformers
+    ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
+     , bytestring, pipes, pipes-attoparsec, pipes-bytestring
+     , pipes-parse, transformers
      }:
      mkDerivation {
        pname = "pipes-aeson";
-       version = "0.4.1.8";
-       sha256 = "0xdybqszcs14sb02g7garfx8ivmp48fm5rsl4md8vypyjbs1211m";
+       version = "0.4.2";
+       sha256 = "0mwsjr1brvd3bfkyynd03b1g2kkzl8hifpapl2xh1g38rr104q0s";
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring pipes pipes-attoparsec
-         pipes-bytestring pipes-parse transformers
+         aeson attoparsec attoparsec-aeson base bytestring pipes
+         pipes-attoparsec pipes-bytestring pipes-parse transformers
        ];
        description = "Encode and decode JSON streams using Aeson and Pipes";
        license = lib.licenses.bsd3;
@@ -236163,7 +236522,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Higher-order, low-boilerplate free monads";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-RandomFu" = callPackage
@@ -236255,7 +236613,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "QuickCheck for Polysemy";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-chronos" = callPackage
@@ -236345,7 +236702,6 @@ self: {
        ];
        description = "Low level filesystem operations for polysemy";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-fskvstore" = callPackage
@@ -236646,7 +237002,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Mocking framework for polysemy effects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-optics" = callPackage
@@ -236698,7 +237053,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Disambiguate obvious uses of effects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-process" = callPackage
@@ -236947,7 +237301,6 @@ self: {
        ];
        description = "Start web servers from within a Polysemy effect stack";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-zoo" = callPackage
@@ -236973,7 +237326,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Experimental, user-contributed effects and interpreters for polysemy";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polyseq" = callPackage
@@ -237647,6 +237999,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "portmidi-utility" = callPackage
+    ({ mkDerivation, base, PortMidi }:
+     mkDerivation {
+       pname = "portmidi-utility";
+       version = "0.0";
+       sha256 = "1kyvxvp9znkk1f3xjnh38cczrf8w998a4ld7l00ysv3szmvkr3sw";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base PortMidi ];
+       description = "PortMidi utilities";
+       license = lib.licenses.bsd3;
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "portmidi-list-devices";
+     }) {};
+
   "portray" = callPackage
     ({ mkDerivation, base, bytestring, containers, HUnit
      , test-framework, test-framework-hunit, text, wrapped
@@ -237936,20 +238303,18 @@ self: {
 
   "posix-api" = callPackage
     ({ mkDerivation, base, byte-order, byteslice, primitive
-     , primitive-addr, primitive-offset, primitive-unlifted, run-st
-     , tasty, tasty-hunit, text-short
+     , primitive-addr, primitive-offset, run-st, tasty, tasty-hunit
+     , text-short
      }:
      mkDerivation {
        pname = "posix-api";
-       version = "0.7.1.0";
-       sha256 = "1195h6g521235dsk3gcyj5f4vnh9y1shld8w70gvwrfz07g28fjp";
+       version = "0.7.2.0";
+       sha256 = "019znszq7n2bvpkhxikcr8pdqi5s3m7hvvlrss0c0m7l0rl3m58l";
        libraryHaskellDepends = [
          base byte-order byteslice primitive primitive-addr primitive-offset
          run-st text-short
        ];
-       testHaskellDepends = [
-         base primitive primitive-unlifted tasty tasty-hunit
-       ];
+       testHaskellDepends = [ base primitive tasty tasty-hunit ];
        description = "posix bindings";
        license = lib.licenses.bsd3;
        badPlatforms = lib.platforms.darwin;
@@ -238439,10 +238804,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-migration";
-       version = "0.2.1.7";
-       sha256 = "0r8pmy9905549vavbmps4627d2a5agz7hq0wv9663xdibvqsaf78";
-       revision = "1";
-       editedCabalFile = "1s5kcfnbsh5y1jsybvpl92j32wp43n8pd56981wynnrhh3kinlbv";
+       version = "0.2.1.8";
+       sha256 = "1lr1fgr23zxhn52jarpwlcxkha23glgin71mdm34ph44xim9n6ra";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -238450,8 +238813,7 @@ self: {
          postgresql-simple text time
        ];
        executableHaskellDepends = [
-         base base64-bytestring bytestring cryptohash-md5 directory
-         postgresql-simple text time
+         base bytestring postgresql-simple text
        ];
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
@@ -240369,17 +240731,15 @@ self: {
      }:
      mkDerivation {
        pname = "pretty-compact";
-       version = "3.0";
-       sha256 = "06m8n5rx1d62hwd017ss8nlxas5ia57lgxddm2hv2046938a5wm8";
-       revision = "3";
-       editedCabalFile = "08wmmcqsh7yv1h9g0kmg2w84w7b1ljw2wxz81gjg91z0ig3f3zs2";
+       version = "3.1";
+       sha256 = "1cxw5cnl0kkpyfs23q68mrplqb07ys5v9amfywl9j04hakr25sxv";
        libraryHaskellDepends = [ base base-compat containers ];
        benchmarkHaskellDepends = [
          aeson base base-compat bytestring criterion deepseq pretty text
          unordered-containers wl-pprint
        ];
        description = "Pretty-printing library";
-       license = "GPL";
+       license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -241133,6 +241493,8 @@ self: {
        pname = "primitive";
        version = "0.9.0.0";
        sha256 = "1iwr176mx2xc96vgvzlby8z8s9d4vhbj266n89hp6kf9j794nvb9";
+       revision = "1";
+       editedCabalFile = "0g6rsz6hbpyfwbai04gmxil7wfcs1nd0xxcycvqwfn9mkr0ca21f";
        libraryHaskellDepends = [
          base deepseq template-haskell transformers
        ];
@@ -241152,10 +241514,8 @@ self: {
     ({ mkDerivation, base, primitive }:
      mkDerivation {
        pname = "primitive-addr";
-       version = "0.1.0.2";
-       sha256 = "06r1p56wm8rbjxnlaqbmc3rbsj1rsv5scwnh80lsn0xw56jc70a2";
-       revision = "2";
-       editedCabalFile = "1s18b6xm6906ldj8wd2b2j885xbgvf5mzabd4mpl1ic7a9205qgn";
+       version = "0.1.0.3";
+       sha256 = "1bs6xmlsv77187hqwcygv3nv2ynjgjwf3564vkk5bp8vjawigz72";
        libraryHaskellDepends = [ base primitive ];
        description = "Addresses to unmanaged memory";
        license = lib.licenses.bsd3;
@@ -241301,8 +241661,8 @@ self: {
     ({ mkDerivation, base, primitive }:
      mkDerivation {
        pname = "primitive-offset";
-       version = "0.2.0.0";
-       sha256 = "0aspdlzx1xaw1fyiy8vnzadbklpg7hn2mb1g9qmw2vpkxglpspmi";
+       version = "0.2.0.1";
+       sha256 = "0yca0izvvndx51742didyz7a8vk2q4af55z55rxxd2kbwjfv72h9";
        libraryHaskellDepends = [ base primitive ];
        description = "Types for offsets into unboxed arrays";
        license = lib.licenses.bsd3;
@@ -243149,7 +243509,6 @@ self: {
        executableHaskellDepends = [ base ];
        description = "property-based host configuration management in haskell";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "properties" = callPackage
@@ -243575,15 +243934,15 @@ self: {
      , insert-ordered-containers, large-generics, large-records, lens
      , mtl, neat-interpolation, optparse-applicative, optparse-generic
      , parsec, parsers, pretty, pretty-show, proto3-wire, QuickCheck
-     , quickcheck-instances, range-set-list, safe, split, swagger2
-     , system-filepath, tasty, tasty-hedgehog, tasty-hunit
-     , tasty-quickcheck, text, text-short, time, transformers, turtle
-     , vector
+     , quickcheck-instances, range-set-list, record-hasfield, safe
+     , split, swagger2, system-filepath, tasty, tasty-hedgehog
+     , tasty-hunit, tasty-quickcheck, text, text-short, time
+     , transformers, turtle, vector
      }:
      mkDerivation {
        pname = "proto3-suite";
-       version = "0.6.0";
-       sha256 = "041hjvhfdbr3lzlzrnz444pqdr3qwjx5d4kf890h4dm5mks4hi5j";
+       version = "0.7.0";
+       sha256 = "0yvp43clms55csjdr552ygszzcnyc32a53i11301awmvr8yxsarm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -243604,8 +243963,9 @@ self: {
          aeson attoparsec base base64-bytestring bytestring cereal
          containers deepseq doctest generic-arbitrary hedgehog
          large-generics large-records mtl parsec pretty pretty-show
-         proto3-wire QuickCheck swagger2 tasty tasty-hedgehog tasty-hunit
-         tasty-quickcheck text text-short transformers turtle vector
+         proto3-wire QuickCheck record-hasfield swagger2 tasty
+         tasty-hedgehog tasty-hunit tasty-quickcheck text text-short
+         transformers turtle vector
        ];
        description = "A higher-level API to the proto3-wire library";
        license = lib.licenses.asl20;
@@ -243852,25 +244212,6 @@ self: {
      }:
      mkDerivation {
        pname = "protolude";
-       version = "0.3.3";
-       sha256 = "0ihsjx48p9dgsp0i0l73h16mycnba40hyh7412jv3xz9qz9dwfbc";
-       revision = "2";
-       editedCabalFile = "0f949f93wml7h7na9d1n9lvignwphxr2r18jwmpy33g0dxgn21h1";
-       libraryHaskellDepends = [
-         array async base bytestring containers deepseq ghc-prim hashable
-         mtl mtl-compat stm text transformers transformers-compat
-       ];
-       description = "A small prelude";
-       license = lib.licenses.mit;
-     }) {};
-
-  "protolude_0_3_4" = callPackage
-    ({ mkDerivation, array, async, base, bytestring, containers
-     , deepseq, ghc-prim, hashable, mtl, mtl-compat, stm, text
-     , transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "protolude";
        version = "0.3.4";
        sha256 = "0lkh2m58fphnqdfk33fd4f24c6s3bnjq1qvhbmfy83a72a19jf7q";
        libraryHaskellDepends = [
@@ -243879,7 +244220,6 @@ self: {
        ];
        description = "A small prelude";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "protolude-lifted" = callPackage
@@ -244113,10 +244453,8 @@ self: {
      }:
      mkDerivation {
        pname = "pseudo-boolean";
-       version = "0.1.10.0";
-       sha256 = "1p9w1d80d2kp7wp7wp6xf9dz1iv9knhy8b75mklz7zq3cf5gvnrh";
-       revision = "4";
-       editedCabalFile = "1l1ribvz1vz9037ymxa6iqr3ilj6mkrwbap93vm84ywa2xxni77c";
+       version = "0.1.11.0";
+       sha256 = "04hkg7nlyrziq3pm44sqr6b5zjb5x3d70xqzblp3h7f1sc6839rr";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder containers deepseq
          dlist hashable megaparsec parsec void
@@ -245071,6 +245409,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "purs";
+       broken = true;
      }) {};
 
   "purescript-ast" = callPackage
@@ -245593,8 +245932,6 @@ self: {
        ];
        description = "Mutable variable with primitive values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pvd" = callPackage
@@ -246773,6 +247110,19 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "queues" = callPackage
+    ({ mkDerivation, base, containers, hedgehog, tasty-bench }:
+     mkDerivation {
+       pname = "queues";
+       version = "1.0.0";
+       sha256 = "0mnn6lgd7101lrmwqy4lf04ncq8ci2kfxydm1rlh879gjvzz3lsr";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base containers hedgehog ];
+       benchmarkHaskellDepends = [ base containers tasty-bench ];
+       description = "Queue data structures";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "quibble-core" = callPackage
     ({ mkDerivation, base, bytestring, containers, hedgehog
      , mono-traversable, optics-core, tasty, tasty-hedgehog, tasty-hunit
@@ -246801,20 +247151,20 @@ self: {
      , crypton-x509-system, data-default-class, fast-logger, filepath
      , hspec, hspec-discover, iproute, memory, network
      , network-byte-order, network-control, network-udp, QuickCheck
-     , random, stm, tls, unix-time, unliftio, unliftio-core
+     , random, serialise, stm, tls, unix-time, unliftio, unliftio-core
      }:
      mkDerivation {
        pname = "quic";
-       version = "0.1.15";
-       sha256 = "0axbpn12xgza3rhgr72kzajvw6rjykxvl6ikl7v6qc5vfhq9lw5c";
+       version = "0.1.17";
+       sha256 = "0p4h0s1hyndhqmwfsm0wqk92bq1sw14wk1idc52khyh6rl1a7bdb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array base base16-bytestring bytestring containers crypto-token
          crypton crypton-x509 crypton-x509-system data-default-class
          fast-logger filepath iproute memory network network-byte-order
-         network-control network-udp random stm tls unix-time unliftio
-         unliftio-core
+         network-control network-udp random serialise stm tls unix-time
+         unliftio unliftio-core
        ];
        testHaskellDepends = [
          async base base16-bytestring bytestring containers crypton hspec
@@ -247010,8 +247360,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-dynamic";
-       version = "3.3.1";
-       sha256 = "1xh1s80aynhyfkdcg5w4fy5fibhkh19zlidr2zwsiignxbqv0dgl";
+       version = "3.4.0";
+       sha256 = "0ibz99d7vplscc9dym151x28n7a44s3b0ingn5xg59kjl8ki86xx";
        libraryHaskellDepends = [ base containers mtl QuickCheck random ];
        testHaskellDepends = [
          base containers mtl QuickCheck stm tasty tasty-quickcheck
@@ -247115,8 +247465,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-lockstep";
-       version = "0.3.0";
-       sha256 = "1kqmdnknwqjc8x1dp7qbaca57y7rkcx3vmx6xxc12yh8f7qc8dx9";
+       version = "0.4.0";
+       sha256 = "06aifdyb256qxs6miwbr0jmp5840cwy33sy0ra66w1abwvimmwgf";
        libraryHaskellDepends = [
          base constraints containers mtl QuickCheck quickcheck-dynamic
        ];
@@ -248186,7 +248536,9 @@ self: {
        ];
        description = "Can be used to calculate the durations of the approximations of the Ukrainian phonemes";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "pldUkr";
+       broken = true;
      }) {};
 
   "r3x-haskell-sdk" = callPackage
@@ -248815,30 +249167,6 @@ self: {
      }:
      mkDerivation {
        pname = "random";
-       version = "1.2.1.1";
-       sha256 = "0xlv1k4sj87akwvj54kq4nrfkzi6qcz1941bf78pnkbaxpvp44iy";
-       revision = "1";
-       editedCabalFile = "12c7232yns0r38yxy72pvgq2zfj0yfwfi7lwc64cfp4x2n0zihg7";
-       libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
-       testHaskellDepends = [
-         base bytestring containers doctest smallcheck stm tasty tasty-hunit
-         tasty-inspection-testing tasty-smallcheck transformers
-       ];
-       benchmarkHaskellDepends = [
-         base mtl primitive rdtsc split splitmix tasty-bench time
-       ];
-       description = "Pseudo-random number generation";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "random_1_2_1_2" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
-     , mtl, primitive, rdtsc, smallcheck, split, splitmix, stm, tasty
-     , tasty-bench, tasty-hunit, tasty-inspection-testing
-     , tasty-smallcheck, time, transformers
-     }:
-     mkDerivation {
-       pname = "random";
        version = "1.2.1.2";
        sha256 = "1d54v51dzdc4izv3aycjbvaj7lcz74avzixayqzlaz1jsb14s3vr";
        libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
@@ -248851,7 +249179,6 @@ self: {
        ];
        description = "Pseudo-random number generation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "random-access-file" = callPackage
@@ -250234,6 +250561,41 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "rds-data-codecs" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, amazonka, amazonka-core
+     , amazonka-rds-data, base, bytestring, contravariant, doctest
+     , doctest-discover, generic-lens, hedgehog, hedgehog-extras
+     , http-client, lens, mtl, optparse-applicative, tasty
+     , tasty-discover, tasty-hedgehog, text, time, transformers, ulid
+     , uuid
+     }:
+     mkDerivation {
+       pname = "rds-data-codecs";
+       version = "0.0.0.3";
+       sha256 = "1641dpsanjwcdk687mnwx88y6hrgy3d3am1l2874rsj1dc4wm81a";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson amazonka-core amazonka-rds-data base bytestring contravariant
+         generic-lens lens mtl text time transformers ulid uuid
+       ];
+       executableHaskellDepends = [
+         aeson amazonka amazonka-rds-data base bytestring generic-lens
+         http-client lens optparse-applicative text time ulid uuid
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty amazonka-rds-data base bytestring doctest
+         doctest-discover generic-lens hedgehog hedgehog-extras lens tasty
+         tasty-hedgehog text time ulid uuid
+       ];
+       testToolDepends = [ doctest-discover tasty-discover ];
+       description = "Codecs for use with AWS rds-data";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "rds-data-codecs";
+       broken = true;
+     }) {};
+
   "rdtsc" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -251769,8 +252131,8 @@ self: {
      }:
      mkDerivation {
        pname = "redis-glob";
-       version = "0.1.0.7";
-       sha256 = "08sqgp6jnxwjybi0hza0inhm9nsc1d8fpg9wh86r2hvssmxpn1nb";
+       version = "0.1.0.8";
+       sha256 = "0wwj1f7dhw9c09220piyz1yxxdc6fv22ng8xqa2gkk133w6v3kz5";
        libraryHaskellDepends = [ ascii-char base bytestring megaparsec ];
        testHaskellDepends = [
          ascii-char ascii-superset base bytestring hspec QuickCheck
@@ -252723,8 +253085,8 @@ self: {
     ({ mkDerivation, base, deepseq, reflex }:
      mkDerivation {
        pname = "reflex-external-ref";
-       version = "1.0.3.1";
-       sha256 = "0mv17j5g0h7y1ym4563xr1vc0sdvw0g4wdpx0a9aryk3i0k0i4mx";
+       version = "1.1.0.0";
+       sha256 = "0vy7cnk24gjs779yc6ks6ihn02jrjgbyfqpk32afjgi84jp0rnk5";
        libraryHaskellDepends = [ base deepseq reflex ];
        description = "External reference with reactivity support";
        license = lib.licenses.mit;
@@ -252812,10 +253174,10 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-gi-gtk";
-       version = "0.2.0.0";
-       sha256 = "0dx9g5v5i0fhxn1kn6fsj8hpwnax8wq89drsv8q2fwk9pxd8i384";
-       revision = "4";
-       editedCabalFile = "0flxgiqxv9xa6cll4zli6gi8m24vn30jglrhah3f4kz1yb7shgbj";
+       version = "0.2.0.1";
+       sha256 = "071b4qw7ac8canlg17xpfa3dxpxyq6xig29jg73a6mqjaaq8kd1f";
+       revision = "1";
+       editedCabalFile = "164qbyllqpq4nckfvjiy4l41vibh5icdaq6yya9g2kjd9c0wxhgx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -252829,7 +253191,9 @@ self: {
        ];
        description = "Helper functions to use reflex with gi-gtk";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "reflex-gi-gtk-example";
+       broken = true;
      }) {};
 
   "reflex-gloss" = callPackage
@@ -252914,15 +253278,16 @@ self: {
      }) {};
 
   "reflex-localize" = callPackage
-    ({ mkDerivation, base, jsaddle, mtl, reflex, reflex-external-ref
-     , text
+    ({ mkDerivation, base, commutative-semigroups, jsaddle, mtl, reflex
+     , reflex-external-ref, text
      }:
      mkDerivation {
        pname = "reflex-localize";
-       version = "1.1.0.0";
-       sha256 = "16j6vqp7qqmkb1hm415nwcrnd8w4vdpqxbab2fwqmr4chpfrmf5n";
+       version = "1.2.0.0";
+       sha256 = "1r5pz7b5yq56ymd35lf3lhh6nnkmii97vkq9jsy9n8x18pg9rh5d";
        libraryHaskellDepends = [
-         base jsaddle mtl reflex reflex-external-ref text
+         base commutative-semigroups jsaddle mtl reflex reflex-external-ref
+         text
        ];
        description = "Localization library for reflex";
        license = lib.licenses.mit;
@@ -252935,8 +253300,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-localize-dom";
-       version = "1.0.3.0";
-       sha256 = "1jkid9d98ck7cnhr7zni1jn1rxi270226s0imkgxcn4y3sgrb94n";
+       version = "1.1.0.0";
+       sha256 = "18ks5m96xyrzsljglb95mk8cch7gsvms0b8kd7nb81zdfz180g70";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -256525,30 +256890,6 @@ self: {
      }:
      mkDerivation {
        pname = "rest-rewrite";
-       version = "0.4.2";
-       sha256 = "0ask5cq3y5qqasrb3hsqbdzl779b60y3k0bmlq5q5d84i5z6d6ag";
-       libraryHaskellDepends = [
-         base containers hashable monad-loops mtl parsec process QuickCheck
-         text time unordered-containers
-       ];
-       testHaskellDepends = [
-         base containers hashable mtl QuickCheck text time
-         unordered-containers
-       ];
-       testSystemDepends = [ graphviz z3 ];
-       doHaddock = false;
-       description = "Rewriting library with online termination checking";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.tbidne ];
-     }) {inherit (pkgs) graphviz; inherit (pkgs) z3;};
-
-  "rest-rewrite_0_4_3" = callPackage
-    ({ mkDerivation, base, containers, graphviz, hashable, monad-loops
-     , mtl, parsec, process, QuickCheck, text, time
-     , unordered-containers, z3
-     }:
-     mkDerivation {
-       pname = "rest-rewrite";
        version = "0.4.3";
        sha256 = "0rvqagskkibwadqdkfqqjp0vrdxfn1hnb6g27ps7h160knygaa1d";
        libraryHaskellDepends = [
@@ -256563,7 +256904,6 @@ self: {
        doHaddock = false;
        description = "Rewriting library with online termination checking";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.tbidne ];
      }) {inherit (pkgs) graphviz; inherit (pkgs) z3;};
 
@@ -256691,7 +257031,6 @@ self: {
        ];
        description = "Easy Git repository serialization";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "restricted-workers" = callPackage
@@ -258774,26 +259113,6 @@ self: {
      }:
      mkDerivation {
        pname = "roc-id";
-       version = "0.2.0.0";
-       sha256 = "1gng9rw9z9zmrkk68q8zf95w3d05yaglk2hp17jvnaw8qxfs3mvp";
-       libraryHaskellDepends = [
-         base MonadRandom Only text vector-sized
-       ];
-       testHaskellDepends = [
-         base hspec MonadRandom Only QuickCheck text vector-sized
-       ];
-       description = "Implementation of the ROC (Taiwan) National ID standard";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "roc-id_0_2_0_1" = callPackage
-    ({ mkDerivation, base, hspec, MonadRandom, Only, QuickCheck, text
-     , vector-sized
-     }:
-     mkDerivation {
-       pname = "roc-id";
        version = "0.2.0.1";
        sha256 = "03969sm3ia1mi4i2v9z4sclsa911h3myhwqgiygnncyxbwpawsmd";
        libraryHaskellDepends = [
@@ -259957,22 +260276,20 @@ self: {
 
   "rpmbuild-order" = callPackage
     ({ mkDerivation, base, case-insensitive, directory, extra, fgl
-     , filepath, graphviz, hspec, optparse-applicative, simple-cmd
+     , filepath, graphviz, hspec, regex-tdfa, simple-cmd
      , simple-cmd-args, unix
      }:
      mkDerivation {
        pname = "rpmbuild-order";
-       version = "0.4.10";
-       sha256 = "1dgl7zh8r5i8k21bgykgi30d9jbgcf9k4nnx3nyc1a594xpijab0";
+       version = "0.4.11";
+       sha256 = "0yvv524cy8iblxgkf125s8b6xjhg7a0l36xrfb51hl6y71b5cdx5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base case-insensitive directory extra fgl filepath graphviz
-         simple-cmd
-       ];
-       executableHaskellDepends = [
-         base extra fgl optparse-applicative simple-cmd-args
+         regex-tdfa simple-cmd
        ];
+       executableHaskellDepends = [ base extra fgl simple-cmd-args ];
        testHaskellDepends = [
          base directory extra hspec simple-cmd unix
        ];
@@ -260160,6 +260477,18 @@ self: {
        license = lib.licenses.publicDomain;
      }) {};
 
+  "rss_3000_2_0_8" = callPackage
+    ({ mkDerivation, base, HaXml, network-uri, time }:
+     mkDerivation {
+       pname = "rss";
+       version = "3000.2.0.8";
+       sha256 = "03bvyld0kbsmwj23hivdwq7qsd8qldfs2w4z4rq31xlsbksw8bnn";
+       libraryHaskellDepends = [ base HaXml network-uri time ];
+       description = "A library for generating RSS 2.0 feeds.";
+       license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "rss-conduit" = callPackage
     ({ mkDerivation, atom-conduit, base, base-compat-batteries
      , blaze-builder, bytestring, conduit, conduit-combinators
@@ -260519,8 +260848,8 @@ self: {
     ({ mkDerivation, base, primitive, primitive-unlifted }:
      mkDerivation {
        pname = "run-st";
-       version = "0.1.3.2";
-       sha256 = "1c3pl4fav5z04ixn4ny7zxrrkdy23wk7sk4xm8w5m1c73w0s5ngd";
+       version = "0.1.3.3";
+       sha256 = "0m56v348mp78g1g60bgxgwnvb3iczg8rccnq55mhmhzzvh9msn4p";
        libraryHaskellDepends = [ base primitive primitive-unlifted ];
        description = "runST without boxing penalty";
        license = lib.licenses.bsd3;
@@ -261398,8 +261727,8 @@ self: {
     ({ mkDerivation, base, template-haskell, th-abstraction }:
      mkDerivation {
        pname = "safe-wild-cards";
-       version = "1.0.0";
-       sha256 = "1cgs7v30jamk2i8xbis7gc5n0f3c9rykxq7s81mxafyyj33ac36d";
+       version = "1.0.0.1";
+       sha256 = "0kvr91ygb6wjr27scmvjazcbvv2y2kvs0mp8pjqv570wwsi593cy";
        libraryHaskellDepends = [ base template-haskell th-abstraction ];
        testHaskellDepends = [ base ];
        description = "Use RecordWildCards safely";
@@ -262772,7 +263101,7 @@ self: {
        broken = true;
      }) {inherit (pkgs) z3;};
 
-  "sbv_10_3" = callPackage
+  "sbv_10_6" = callPackage
     ({ mkDerivation, array, async, base, bytestring, containers
      , deepseq, directory, filepath, libBF, mtl, pretty, process
      , QuickCheck, random, syb, tasty, tasty-bench, tasty-golden
@@ -262781,8 +263110,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbv";
-       version = "10.3";
-       sha256 = "15jasmmh49w086gfd5wlhwkqszw3925a5k0k92rk7kwi3c73d57k";
+       version = "10.6";
+       sha256 = "0in7cb59m4h547kq9wss9kqcjpcignai9ybgwj7ci1lnynjj4h2k";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array async base containers deepseq directory filepath libBF mtl
@@ -263360,7 +263689,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Work stealing scheduler";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "scheduling" = callPackage
@@ -263714,8 +264042,8 @@ self: {
      }:
      mkDerivation {
        pname = "scientific-notation";
-       version = "0.1.6.1";
-       sha256 = "1qx2k9b77zz9skfp7b3lxm1ya5qyn6k6gcy8ff32s4x34zhvmzax";
+       version = "0.1.7.0";
+       sha256 = "0r24v6h3bh4lk19ldxs3nbzsakmp75sh4h2mijnl2li32vj1jgyq";
        libraryHaskellDepends = [
          base bytebuild byteslice bytesmith bytestring natural-arithmetic
          primitive text-short word-compat
@@ -263924,33 +264252,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "scotty_0_21" = callPackage
+  "scotty_0_22" = callPackage
     ({ mkDerivation, aeson, async, base, blaze-builder, bytestring
      , case-insensitive, cookie, data-default-class, directory, doctest
      , exceptions, hspec, hspec-discover, hspec-wai, http-client
      , http-types, lifted-base, lucid, monad-control, mtl, network
-     , regex-compat, stm, text, time, transformers, transformers-base
-     , transformers-compat, unliftio, wai, wai-extra, warp, weigh
+     , regex-compat, resourcet, stm, text, time, transformers
+     , transformers-base, unliftio, wai, wai-extra, warp, weigh
      }:
      mkDerivation {
        pname = "scotty";
-       version = "0.21";
-       sha256 = "1qnyagwirxcmja3wbiyp5s8f0dvcdiz7fh0a6jc4vyj2yy175yi4";
+       version = "0.22";
+       sha256 = "075qnj3s1ddq337qcbrgwsc12rgjm1g5p755iaf67k824p0rifff";
        revision = "1";
-       editedCabalFile = "0cg0s728112n8xy966cwmbvvjn2qnd6magibj9q3cxn41yinlzyi";
+       editedCabalFile = "1xx6rq7w2zzim2s8q1gj1z7amgd0jsn3l3rv0pdnh0z5cxw5ydhj";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring case-insensitive cookie
          data-default-class exceptions http-types monad-control mtl network
-         regex-compat stm text time transformers transformers-base
-         transformers-compat unliftio wai wai-extra warp
+         regex-compat resourcet stm text time transformers transformers-base
+         unliftio wai wai-extra warp
        ];
        testHaskellDepends = [
          async base bytestring directory doctest hspec hspec-wai http-client
-         http-types lifted-base network text wai
+         http-types lifted-base network text time wai wai-extra
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         base bytestring lucid mtl text transformers weigh
+         base bytestring lucid mtl resourcet text transformers weigh
        ];
        description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp";
        license = lib.licenses.bsd3;
@@ -265309,6 +265637,30 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) secp256k1;};
 
+  "secp256k1-haskell_1_2_0" = callPackage
+    ({ mkDerivation, base, base16, bytestring, deepseq, entropy
+     , hashable, hspec, hspec-discover, HUnit, monad-par, mtl
+     , QuickCheck, secp256k1, string-conversions, unliftio-core
+     }:
+     mkDerivation {
+       pname = "secp256k1-haskell";
+       version = "1.2.0";
+       sha256 = "1lr2sq8r3sx41f99pvga9ck0vw0sy7034zra80gxq1hnifjnd5q3";
+       libraryHaskellDepends = [
+         base base16 bytestring deepseq entropy hashable QuickCheck
+         string-conversions unliftio-core
+       ];
+       libraryPkgconfigDepends = [ secp256k1 ];
+       testHaskellDepends = [
+         base base16 bytestring deepseq entropy hashable hspec HUnit
+         monad-par mtl QuickCheck string-conversions unliftio-core
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Bindings for secp256k1";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) secp256k1;};
+
   "secp256k1-legacy" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, Cabal, cereal
      , cryptohash, entropy, HUnit, mtl, QuickCheck, string-conversions
@@ -265594,8 +265946,8 @@ self: {
        pname = "selective";
        version = "0.7";
        sha256 = "0dhwfhfp57fmg86h5hkizchnk94zdgbpxxfv0r3xp65a7aq546fg";
-       revision = "1";
-       editedCabalFile = "0ibky7kzs4rc0dz1m2116fb6q4ziwrb49vjbhfy6ns1qb205ag8f";
+       revision = "2";
+       editedCabalFile = "1lrbw2ii7361hwijfaaw8zrlfqz14dik7wjb23bvn2749kvxms1s";
        libraryHaskellDepends = [ base containers transformers ];
        testHaskellDepends = [ base containers QuickCheck transformers ];
        description = "Selective applicative functors";
@@ -265718,8 +266070,8 @@ self: {
      }:
      mkDerivation {
        pname = "semantic-source";
-       version = "0.2.0.0";
-       sha256 = "0m7y7ggfs1szmhn1q3814aq05la0wcwym8rj1hzz4ssibk486b5n";
+       version = "0.2.0.1";
+       sha256 = "0bvb583q9lx3rn6600wvlx5r2kyhb2kvi88rzvjgqgspqmk85hr8";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq hashable lingo
          semilattices text
@@ -265988,16 +266340,14 @@ self: {
      }) {};
 
   "semilattices" = callPackage
-    ({ mkDerivation, base, containers, doctest, hashable, QuickCheck
+    ({ mkDerivation, base, containers, doctest, QuickCheck
      , quickcheck-instances, unordered-containers
      }:
      mkDerivation {
        pname = "semilattices";
-       version = "0.0.0.4";
-       sha256 = "14b182gxg3frcr9572294ds0l1n5jx4cfr6bxc50ybpgl07a98pj";
-       libraryHaskellDepends = [
-         base containers hashable unordered-containers
-       ];
+       version = "0.0.0.7";
+       sha256 = "1m9sqm4nq8d8rraqfqfwbn91412aqqq4gg9754lnq9crns75df11";
+       libraryHaskellDepends = [ base containers unordered-containers ];
        testHaskellDepends = [
          base doctest QuickCheck quickcheck-instances
        ];
@@ -266532,8 +266882,8 @@ self: {
      }:
      mkDerivation {
        pname = "sequence-formats";
-       version = "1.8.0.0";
-       sha256 = "0xm0v56q90g89zwphayf6llpnmsrb7asnb06sm5lld4q9jfidi4d";
+       version = "1.8.0.1";
+       sha256 = "093w13dy7p2i77pc94b32n8j47q8c05kih597a9h107plzy97zxk";
        libraryHaskellDepends = [
          attoparsec base bytestring containers errors exceptions foldl
          lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
@@ -269639,8 +269989,8 @@ self: {
        pname = "servant-swagger-ui";
        version = "0.3.5.5.0.0";
        sha256 = "1sjgakdln2nx9ki13vk557rfqwqjksagl32q7y3m8mc9y9s80py7";
-       revision = "2";
-       editedCabalFile = "0a2d33cc1zw2l4r5ay7022qqf2kzld8rpsy66ky5k9xcpfwgxwn1";
+       revision = "4";
+       editedCabalFile = "1jgw4rv60cf5gl1icdbik0adzwn0zamyfd6nrkmkwf8ghikg2250";
        libraryHaskellDepends = [
          aeson base bytestring file-embed-lzma servant servant-server
          servant-swagger-ui-core text
@@ -269658,8 +270008,8 @@ self: {
        pname = "servant-swagger-ui-core";
        version = "0.3.5";
        sha256 = "0ckvrwrb3x39hfl2hixcj3fhibh0vqsh6y7n1lsm25yvzfrg02zd";
-       revision = "8";
-       editedCabalFile = "1bz2d1v43v0s41b547as0sarzfb3q4q20i15kgrlcbxvqdcrcbmk";
+       revision = "10";
+       editedCabalFile = "0f5k3103mm9rp00grw89if7iwkpzvxqbbbdpm09zhh1s8chhnqll";
        libraryHaskellDepends = [
          aeson base blaze-markup bytestring http-media servant servant-blaze
          servant-server text transformers transformers-compat wai-app-static
@@ -269728,6 +270078,7 @@ self: {
        description = "Automatically generate Elm clients for Servant APIs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-tracing" = callPackage
@@ -269798,7 +270149,9 @@ self: {
        ];
        description = "TypeScript client generation for Servant";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "servant-typescript-exe";
+       broken = true;
      }) {};
 
   "servant-util" = callPackage
@@ -269975,21 +270328,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-xml";
-       version = "1.0.2";
-       sha256 = "07ancw5dypcxqc48g9zn8vn597hj174aq5akzyr650pwz0dvwsfk";
-       libraryHaskellDepends = [
-         base bytestring http-media servant xmlbf xmlbf-xeno
-       ];
-       description = "Servant support for the XML Content-Type";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-xml_1_0_3" = callPackage
-    ({ mkDerivation, base, bytestring, http-media, servant, xmlbf
-     , xmlbf-xeno
-     }:
-     mkDerivation {
-       pname = "servant-xml";
        version = "1.0.3";
        sha256 = "1rn79pc0wvrzk5z8zcdir2ydia2bwksxrqbw5rma0ab0zsk3qvxf";
        libraryHaskellDepends = [
@@ -269997,7 +270335,6 @@ self: {
        ];
        description = "Servant support for the XML Content-Type";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-xml-conduit" = callPackage
@@ -270515,8 +270852,8 @@ self: {
     ({ mkDerivation, base, containers, mtl, syb }:
      mkDerivation {
        pname = "set-extra";
-       version = "1.4.1";
-       sha256 = "10kbvd09hp12rlfkc15xqiglrbxzi7gchb0aazqyg77ah66wjn10";
+       version = "1.4.2";
+       sha256 = "1la0nxpbl6nmb9prbr4rjcagd8c6j24d9xqp6xjrwfgbfvznzvxi";
        libraryHaskellDepends = [ base containers mtl syb ];
        description = "Functions that could be added to Data.Set.";
        license = lib.licenses.bsd3;
@@ -271225,6 +271562,7 @@ self: {
        description = "Build system library, like Make, but more accurate dependencies";
        license = lib.licenses.bsd3;
        mainProgram = "shake";
+       maintainers = [ lib.maintainers.ncfavier ];
      }) {};
 
   "shake-ats" = callPackage
@@ -275115,25 +275453,23 @@ self: {
      }) {};
 
   "siphon" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, colonnade
-     , contravariant, either, HUnit, pipes, profunctors, QuickCheck
-     , semigroups, streaming, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, text, transformers, vector
+    ({ mkDerivation, attoparsec, base, bytestring, colonnade, HUnit
+     , profunctors, QuickCheck, streaming, test-framework
+     , test-framework-hunit, test-framework-quickcheck2, text
+     , transformers, vector
      }:
      mkDerivation {
        pname = "siphon";
-       version = "0.8.2.0";
-       sha256 = "1nw8c9f7hyg26nldxkl4hkvdva5sgsyn7qqkqqrvp12qfsvdnqfi";
-       revision = "1";
-       editedCabalFile = "1hfvrh99bvh10gdw6z86scd8vzz56dkdfc8720hm7qiypdbgj8cr";
+       version = "0.8.2.1";
+       sha256 = "1y7nfvxmx78s492pcr80z0bvp18wxkas0pnknk0ccsp77nd9x7fs";
        libraryHaskellDepends = [
-         attoparsec base bytestring colonnade semigroups streaming text
-         transformers vector
+         attoparsec base bytestring colonnade streaming text transformers
+         vector
        ];
        testHaskellDepends = [
-         base bytestring colonnade contravariant either HUnit pipes
-         profunctors QuickCheck streaming test-framework
-         test-framework-hunit test-framework-quickcheck2 text vector
+         base bytestring colonnade HUnit profunctors QuickCheck streaming
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+         vector
        ];
        description = "Encode and decode CSV files";
        license = lib.licenses.bsd3;
@@ -275611,8 +275947,8 @@ self: {
      }:
      mkDerivation {
        pname = "sketch-frp-copilot";
-       version = "1.0.8";
-       sha256 = "09gn0bkia7rnhbbbh2a4qdbwmq1yjn67f8wfclv78fqia82b84yg";
+       version = "1.0.10";
+       sha256 = "1qfjn3w6733d1pch7pmz7b437grah0s5vahhrccd1757ywmxq32s";
        libraryHaskellDepends = [
          base containers copilot copilot-c99 copilot-language mtl
          optparse-applicative
@@ -275774,6 +276110,33 @@ self: {
        mainProgram = "skylighting";
      }) {};
 
+  "skylighting_0_14_1_1" = callPackage
+    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
+     , pretty-show, skylighting-core, skylighting-format-ansi
+     , skylighting-format-blaze-html, skylighting-format-context
+     , skylighting-format-latex, text
+     }:
+     mkDerivation {
+       pname = "skylighting";
+       version = "0.14.1.1";
+       sha256 = "0x1yq3891ssq7mfhcb4909a1553a2pj2rf3wr4y49q76p4r8jx3k";
+       configureFlags = [ "-fexecutable" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base binary containers skylighting-core skylighting-format-ansi
+         skylighting-format-blaze-html skylighting-format-context
+         skylighting-format-latex
+       ];
+       executableHaskellDepends = [
+         base blaze-html bytestring containers pretty-show text
+       ];
+       description = "syntax highlighting library";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "skylighting";
+     }) {};
+
   "skylighting-core" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring, binary
      , bytestring, case-insensitive, colour, containers, criterion, Diff
@@ -275804,6 +276167,37 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "skylighting-core_0_14_1_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring, binary
+     , bytestring, case-insensitive, colour, containers, criterion, Diff
+     , directory, filepath, mtl, pretty-show, QuickCheck, safe, tasty
+     , tasty-golden, tasty-hunit, tasty-quickcheck, text, transformers
+     , utf8-string, xml-conduit
+     }:
+     mkDerivation {
+       pname = "skylighting-core";
+       version = "0.14.1.1";
+       sha256 = "112wmgyzs3x939rk1i7fs604ijs25zmbk85r98xnqf7d3hmdjxjq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base base64-bytestring binary bytestring
+         case-insensitive colour containers directory filepath mtl safe text
+         transformers utf8-string xml-conduit
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers Diff directory filepath
+         pretty-show QuickCheck tasty tasty-golden tasty-hunit
+         tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion filepath text
+       ];
+       description = "syntax highlighting library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "skylighting-extensions" = callPackage
     ({ mkDerivation, base, containers, skylighting, skylighting-modding
      , text
@@ -275844,8 +276238,8 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting-format-blaze-html";
-       version = "0.1.1.1";
-       sha256 = "14ap85ss2ad21vjs0jmczw66m1nqzyk86fvxi31f3r1mhpmq5v4f";
+       version = "0.1.1.2";
+       sha256 = "0ycgv7nmrvcn4yxc0jk3nf62inz509wg1pqbfayb217gg8vfapqj";
        libraryHaskellDepends = [
          base blaze-html containers skylighting-core text
        ];
@@ -276463,8 +276857,8 @@ self: {
     ({ mkDerivation, base, bytebuild, byteslice }:
      mkDerivation {
        pname = "small-bytearray-builder";
-       version = "0.3.4.0";
-       sha256 = "1243s192sc6q7vlazj2bybkzs99sq7x45m30xlkky6ly15r9yn5r";
+       version = "0.3.7.0";
+       sha256 = "14nrqci74n8rrjpzi0mhqpn7gm855m4mirpwk48wvay2b9jkg4c1";
        libraryHaskellDepends = [ base bytebuild byteslice ];
        doHaddock = false;
        description = "Serialize to bytes";
@@ -276917,6 +277311,29 @@ self: {
        broken = true;
      }) {};
 
+  "smh" = callPackage
+    ({ mkDerivation, array, base, extra, lens, loop, megaparsec
+     , process, regex-pcre-builtin, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "smh";
+       version = "0.2.1";
+       sha256 = "07p2q5rfdwaspjjjiq69b8hls7wcaf8l8sq7z2nm27q7gsiaxnnl";
+       isLibrary = false;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base extra lens loop megaparsec regex-pcre-builtin text
+       ];
+       executableHaskellDepends = [ base megaparsec text ];
+       testHaskellDepends = [ base extra process tasty tasty-hunit text ];
+       doHaddock = false;
+       description = "String manipulation tool written in haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "smh";
+       broken = true;
+     }) {};
+
   "smiles" = callPackage
     ({ mkDerivation, base, hspec, megaparsec, QuickCheck, text }:
      mkDerivation {
@@ -277246,7 +277663,6 @@ self: {
        ];
        description = "Simple email sending via SMTP";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "smtp-mail-ng" = callPackage
@@ -278755,6 +279171,8 @@ self: {
        pname = "snappy-c";
        version = "0.1.0";
        sha256 = "02q3bikni0ajwiiah3w6bay24wc9ip6jgnb2nidnwshk4s7i84y7";
+       revision = "1";
+       editedCabalFile = "057h4hmb035562s5zqgc23r6kyzlqmna3s0bf5qw8bama3dk75yp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -279502,32 +279920,6 @@ self: {
 
   "solana-staking-csvs" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, cmdargs
-     , cointracking-imports, hedgehog, mtl, req, scientific, tasty
-     , tasty-hedgehog, tasty-hunit, text, time
-     }:
-     mkDerivation {
-       pname = "solana-staking-csvs";
-       version = "0.1.2.0";
-       sha256 = "03y8p5yf0gqv0lrmijqz0p302cf1qxhc6wyxzmfbgxvy22gfs3a1";
-       revision = "1";
-       editedCabalFile = "0blw47d4sy9g2yldzv7373g1xzc29knpbxys9bipw4kslmvq24zz";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring cassava cmdargs cointracking-imports mtl req
-         scientific text time
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base hedgehog tasty tasty-hedgehog tasty-hunit
-       ];
-       description = "Generate CSV Exports of your Solana Staking Rewards";
-       license = lib.licenses.bsd3;
-       mainProgram = "solana-staking-csvs";
-     }) {};
-
-  "solana-staking-csvs_0_1_3_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cassava, cmdargs
      , cointracking-imports, containers, exceptions, hedgehog
      , http-client, http-types, mtl, req, scientific, tasty
      , tasty-hedgehog, tasty-hunit, text, time
@@ -279549,7 +279941,6 @@ self: {
        ];
        description = "Generate CSV Exports of your Solana Staking Rewards";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "solana-staking-csvs";
      }) {};
 
@@ -280855,30 +281246,14 @@ self: {
     ({ mkDerivation, base, cmdargs, containers, express, leancheck }:
      mkDerivation {
        pname = "speculate";
-       version = "0.4.14";
-       sha256 = "1v635vvj4c3krbgv0y681l0dd3kq6knb9vfqy1jhnci14dy2nnr2";
-       libraryHaskellDepends = [
-         base cmdargs containers express leancheck
-       ];
-       testHaskellDepends = [ base express leancheck ];
-       benchmarkHaskellDepends = [ base express leancheck ];
-       description = "discovery of properties about Haskell functions";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "speculate_0_4_18" = callPackage
-    ({ mkDerivation, base, cmdargs, containers, express, leancheck }:
-     mkDerivation {
-       pname = "speculate";
-       version = "0.4.18";
-       sha256 = "0pqbrirw3fni46kpdymncczrqn0nsrglgx5m0l0yabfmkv7q45fy";
+       version = "0.4.20";
+       sha256 = "06qhbgyfrfiy1zraxa660f0g78yahdlzwczji9xxqkxdnzav6a0h";
        libraryHaskellDepends = [
          base cmdargs containers express leancheck
        ];
        testHaskellDepends = [ base express leancheck ];
        description = "discovery of properties about Haskell functions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "speculation" = callPackage
@@ -280909,12 +281284,12 @@ self: {
 
   "specup" = callPackage
     ({ mkDerivation, base, bytestring, extra, hspec, hspec-core
-     , megaparsec, optparse-applicative, process, stache, text, yaml
+     , megaparsec, optparse-applicative, stache, text, yaml
      }:
      mkDerivation {
        pname = "specup";
-       version = "0.2.0.0";
-       sha256 = "0in1qr13xx41j3whmwch58gk6nqyj7314v0v1s7y97cczsi391q4";
+       version = "0.2.0.1";
+       sha256 = "054v8qffs9wwl6vnfxmjv0753bchvsjibbvcs8fnnmy8si5hk80h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -280923,15 +281298,11 @@ self: {
        executableHaskellDepends = [
          base bytestring optparse-applicative text
        ];
-       testHaskellDepends = [
-         base bytestring hspec hspec-core process text
-       ];
+       testHaskellDepends = [ base bytestring hspec hspec-core text ];
        description = "Manage the application of templates to custom yaml";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "specup";
        maintainers = [ lib.maintainers.danielrolls ];
-       broken = true;
      }) {};
 
   "speechmatics" = callPackage
@@ -281854,6 +282225,26 @@ self: {
        broken = true;
      }) {};
 
+  "sqids_0_2_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hspec, mtl, split
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "sqids";
+       version = "0.2.2.0";
+       sha256 = "137ai4fmvfygz0wv6nhzxc721va985mj35h62cda8l8925dx72iq";
+       libraryHaskellDepends = [
+         base bytestring containers mtl text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers hspec mtl split text transformers
+       ];
+       description = "A small library that lets you generate YouTube-looking IDs from numbers";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "sql-simple" = callPackage
     ({ mkDerivation, base, containers, exceptions, monad-control, text
      , transformers, transformers-base
@@ -282829,8 +283220,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack";
-       version = "2.15.1";
-       sha256 = "1d9n7kpqvqknjkb4nj9p6i2k2cb7g1x89azw1k9bpkcdsbmhir4q";
+       version = "2.15.3";
+       sha256 = "05w6azg9p8x0vy5zhnlbl8vmcvgm5gl2zjzln6x6sgzcaqzzf0bb";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -282911,6 +283302,27 @@ self: {
        mainProgram = "stack-all";
      }) {};
 
+  "stack-all_0_5" = callPackage
+    ({ mkDerivation, aeson, base, cached-json-file, config-ini
+     , directory, extra, filepath, http-query, process, simple-cmd
+     , simple-cmd-args, text
+     }:
+     mkDerivation {
+       pname = "stack-all";
+       version = "0.5";
+       sha256 = "15mv7cgrhhpg2dmsvfkq8s54m8v2mby46jyk26kxl63spxmkynh6";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson base cached-json-file config-ini directory extra filepath
+         http-query process simple-cmd simple-cmd-args text
+       ];
+       description = "CLI tool for building across Stackage major versions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-all";
+     }) {};
+
   "stack-bump" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, bytestring, filepath
      , Glob, hspec, lens, lens-aeson, optparse-applicative, process
@@ -284626,8 +285038,8 @@ self: {
      }:
      mkDerivation {
        pname = "staversion";
-       version = "0.2.4.2";
-       sha256 = "0mghbl7hjym4fzzp84blq21kqxqap824cdxvc2fdrv9qapl1s7j8";
+       version = "0.2.4.3";
+       sha256 = "1l56w3calsk7r5j57r9qv95b8a1bx12fq2hjgx5sliw0a3q6pam2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -285699,10 +286111,8 @@ self: {
      }:
      mkDerivation {
        pname = "store-core";
-       version = "0.4.4.6";
-       sha256 = "1b4yhznw2xzi6qmbahf6p2sl9l8d1af36687gpwygd12h71qv17d";
-       revision = "1";
-       editedCabalFile = "03sd06p80hjmyb8s97i0061mw2ghpd758a222j8y18b6pmlavbvs";
+       version = "0.4.4.7";
+       sha256 = "1lxwl6zlmmdk62c35dwmx4xpcfvjx61is8ccmnr8i01i9l9i19b4";
        libraryHaskellDepends = [
          base bytestring ghc-prim primitive text transformers
        ];
@@ -287479,27 +287889,12 @@ self: {
     ({ mkDerivation, base, HUnit, template-haskell, text }:
      mkDerivation {
        pname = "string-qq";
-       version = "0.0.5";
-       sha256 = "0iss84b1cfi3zqj5wgcdakpbv9965r7ib65n7j9nb108fazkra59";
-       revision = "1";
-       editedCabalFile = "10mghimshafsn2k5d7a4smz28abpg7k6vrvvqp9whbqbjaangpfh";
-       libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base HUnit text ];
-       description = "QuasiQuoter for non-interpolated strings, texts and bytestrings";
-       license = lib.licenses.publicDomain;
-     }) {};
-
-  "string-qq_0_0_6" = callPackage
-    ({ mkDerivation, base, HUnit, template-haskell, text }:
-     mkDerivation {
-       pname = "string-qq";
        version = "0.0.6";
        sha256 = "14k4wxp3fgy5yl0hg1m06lrrpligp1xmi0v54fhwqh0x6nvmbs23";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base HUnit text ];
        description = "QuasiQuoter for non-interpolated strings, texts and bytestrings";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "string-quote" = callPackage
@@ -287594,8 +287989,8 @@ self: {
      }:
      mkDerivation {
        pname = "string-variants";
-       version = "0.3.0.1";
-       sha256 = "1bg1dqnmvhnzxf19j006rp3jmh672wf8grzii91iyy7dl94gjxip";
+       version = "0.3.1.0";
+       sha256 = "137ri01lss5ppji7zml50p7sxnd8sfgxc2ka0hn7ki07idaznhwk";
        libraryHaskellDepends = [
          aeson base bytestring mono-traversable QuickCheck refined
          string-conversions template-haskell text
@@ -289819,8 +290214,8 @@ self: {
     ({ mkDerivation, base, blaze-markup, blaze-svg, directory, text }:
      mkDerivation {
        pname = "svg-icons";
-       version = "3.8.1";
-       sha256 = "0dpqbl01bgwpvs02q8981q37gjcrmrz4jzwn4icjdly39vnqngjm";
+       version = "3.8.3";
+       sha256 = "0483mpcinsq06jahk58811r8l4bk6ajp6hilvs0sgc0543p4jj6i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -289923,8 +290318,8 @@ self: {
      }:
      mkDerivation {
        pname = "svgsym";
-       version = "0.1.1.0";
-       sha256 = "014vand8zag2b9ll2g6xn0s91bav7x2v2l4xdvidc0rs6m8s5fx5";
+       version = "0.1.2.0";
+       sha256 = "0b3m0acvypn58h566dhbpyjywka2saccfs0l7rp2nyvd9b51skk6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -292031,6 +292426,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "syslog" = callPackage
+    ({ mkDerivation, base, byteslice, bytesmith, chronos, contiguous
+     , primitive, run-st, unpacked-maybe-numeric
+     }:
+     mkDerivation {
+       pname = "syslog";
+       version = "0.1.0.0";
+       sha256 = "02ih3hwjz7ldbnh09jfk96wnlsarqf28s6bq683cx347yir0kv26";
+       libraryHaskellDepends = [
+         base byteslice bytesmith chronos contiguous primitive run-st
+         unpacked-maybe-numeric
+       ];
+       testHaskellDepends = [ base byteslice primitive ];
+       description = "Decode RFC 3164 and RFC 5424 syslog message formats";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "system-argv0" = callPackage
     ({ mkDerivation, base, bytestring, system-filepath, text }:
      mkDerivation {
@@ -292375,18 +292788,12 @@ self: {
      }) {};
 
   "systemd-api" = callPackage
-    ({ mkDerivation, base, byte-order, byteslice, posix-api, primitive
-     , systemd, text-short
-     }:
+    ({ mkDerivation, base, posix-api, systemd }:
      mkDerivation {
        pname = "systemd-api";
-       version = "0.1.0.0";
-       sha256 = "1isnzmz32nd55hgrn18gsjz7g5d6cvj1yxgf2z2i1fhjwnkw144y";
-       revision = "1";
-       editedCabalFile = "03z45qhppl29pab563933mv789724czv35872lcjqzmhf468idd6";
-       libraryHaskellDepends = [
-         base byte-order byteslice posix-api primitive text-short
-       ];
+       version = "0.1.0.1";
+       sha256 = "17yjlydr5xhrm4vr1afgmmafjmmrnrzg3vsjhi7ifgmlr5qhfrhi";
+       libraryHaskellDepends = [ base posix-api ];
        librarySystemDepends = [ systemd ];
        description = "systemd bindings";
        license = lib.licenses.bsd3;
@@ -292860,6 +293267,8 @@ self: {
        pname = "tagged";
        version = "0.8.8";
        sha256 = "19x66y8zqh06mmkbbnpy0m5sk402zj6iqfj3d30h6qji6mwgm0x0";
+       revision = "1";
+       editedCabalFile = "0chbxdppgpsrjqzf28z53x9wqwz0ncfimhfc6rr9knixvvxxx4wi";
        libraryHaskellDepends = [
          base deepseq template-haskell transformers
        ];
@@ -293862,15 +294271,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tar_0_6_1_0" = callPackage
+  "tar_0_6_2_0" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
      , directory, file-embed, filepath, os-string, QuickCheck, tasty
      , tasty-bench, tasty-quickcheck, temporary, time, transformers
      }:
      mkDerivation {
        pname = "tar";
-       version = "0.6.1.0";
-       sha256 = "1nh5sdlsdsgys3a17sj50gxgy2vdc7rzgzr39z9kj2244vhz5zpd";
+       version = "0.6.2.0";
+       sha256 = "160rxxaxq7aiz9zca7hxa5abllzqmb77rzp9hmzgxmlynn11xih8";
        libraryHaskellDepends = [
          array base bytestring containers deepseq directory filepath
          os-string time transformers
@@ -294254,9 +294663,7 @@ self: {
        ];
        description = "Autocollection of tasty tests";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "tasty-autocollect";
-       broken = true;
      }) {};
 
   "tasty-bdd" = callPackage
@@ -294906,6 +295313,34 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "tasty-process" = callPackage
+    ({ mkDerivation, async, base, deepseq, process, tasty
+     , tasty-expected-failure, test-executable-echo
+     , test-executable-exitcode, test-executable-simple
+     , test-executable-sleep
+     }:
+     mkDerivation {
+       pname = "tasty-process";
+       version = "0.1.0.1";
+       sha256 = "0qc9m52ms983jbsl4307drwbvaaza4iahb9v8f576a6n0vgapd1g";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ async base deepseq process tasty ];
+       executableHaskellDepends = [ async base deepseq process tasty ];
+       testHaskellDepends = [
+         async base deepseq process tasty tasty-expected-failure
+       ];
+       testToolDepends = [
+         test-executable-echo test-executable-exitcode
+         test-executable-simple test-executable-sleep
+       ];
+       description = "Test execution of external processes with Tasty";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {test-executable-echo = null; test-executable-exitcode = null; 
+         test-executable-simple = null; test-executable-sleep = null;};
+
   "tasty-program" = callPackage
     ({ mkDerivation, base, deepseq, directory, filepath, process, tasty
      }:
@@ -294979,8 +295414,8 @@ self: {
        pname = "tasty-rerun";
        version = "1.1.19";
        sha256 = "0dbj5jyms4rkb241dw2vgkzk442zga58zhg8mmw0ksi4yw0z8gbg";
-       revision = "2";
-       editedCabalFile = "01gliss91bx2xfpz4f99g82sqahir5g2rnwn531ccn8jp1m917di";
+       revision = "3";
+       editedCabalFile = "0s83ylr3wj2whzia7s4yb0cihbpz762nfdmg2kwr3nalpd8j1lzk";
        libraryHaskellDepends = [
          base containers mtl optparse-applicative split stm tagged tasty
          transformers
@@ -295498,7 +295933,6 @@ self: {
        testSystemDepends = [ tdlib ];
        description = "complete binding to the Telegram Database Library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) tdlib;};
 
   "tdlib-gen" = callPackage
@@ -295548,7 +295982,6 @@ self: {
        ];
        description = "Types and Functions generated from tdlib api spec";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tdoc" = callPackage
@@ -297585,8 +298018,8 @@ self: {
        pname = "test-lib";
        version = "0.4";
        sha256 = "0jp0k27vvdz4lfrdi7874j7gnnn051kvqfn1k3zg1ap4m9jzyb45";
-       revision = "3";
-       editedCabalFile = "03gcbf1yrmvn5sprrf4idwmmyr4lz3j6rmbdnnajpq7c8fibvjcf";
+       revision = "4";
+       editedCabalFile = "1axgj0pxis513zxxxbjws9vf3zdx9y6djsvgpvi0miprvzr5qask";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -298041,6 +298474,30 @@ self: {
        license = lib.licenses.gpl2Only;
      }) {};
 
+  "texmath_0_12_8_7" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , mtl, pandoc-types, parsec, pretty-show, split, syb, tagged, tasty
+     , tasty-golden, text, typst-symbols, xml
+     }:
+     mkDerivation {
+       pname = "texmath";
+       version = "0.12.8.7";
+       sha256 = "0i3ngkq87y6lvgfd6ky4zya6qz5n70ypb9yjmxzp7d6844p36g6k";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers mtl pandoc-types parsec split syb text
+         typst-symbols xml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath pretty-show tagged tasty
+         tasty-golden text xml
+       ];
+       description = "Conversion between math formats";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "texrunner" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, directory, filepath
      , HUnit, io-streams, lens, mtl, process, semigroups, temporary
@@ -298095,7 +298552,7 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "text_2_1" = callPackage
+  "text_2_1_1" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , deepseq, directory, filepath, ghc-prim, QuickCheck
      , system-cxx-std-lib, tasty, tasty-bench, tasty-hunit
@@ -298104,8 +298561,8 @@ self: {
      }:
      mkDerivation {
        pname = "text";
-       version = "2.1";
-       sha256 = "1j5nc8h6njdqrqi6swd278jwsqyw6gpca6ad6vga35lal825prnb";
+       version = "2.1.1";
+       sha256 = "1azy4kzy23nhck4mxfrqdd754z8nbwpxqdgdfqjdgx45nalds374";
        libraryHaskellDepends = [
          array base binary bytestring deepseq ghc-prim system-cxx-std-lib
          template-haskell
@@ -298874,6 +299331,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "text-rope-zipper" = callPackage
+    ({ mkDerivation, base, hspec, QuickCheck, text, text-rope }:
+     mkDerivation {
+       pname = "text-rope-zipper";
+       version = "0.1.0.0";
+       sha256 = "1k696f167l6hzhag9dwgq4xfz8imw0bqg15xrmy2mf2yryiw72a5";
+       libraryHaskellDepends = [ base text text-rope ];
+       testHaskellDepends = [ base hspec QuickCheck text text-rope ];
+       description = "2D text zipper based on text-rope";
+       license = lib.licenses.asl20;
+     }) {};
+
   "text-short" = callPackage
     ({ mkDerivation, base, binary, bytestring, deepseq, ghc-prim
      , hashable, tasty, tasty-hunit, tasty-quickcheck, template-haskell
@@ -299716,20 +300185,19 @@ self: {
      }) {};
 
   "th-letrec" = callPackage
-    ({ mkDerivation, base, containers, some, template-haskell
+    ({ mkDerivation, base, codet, containers, some, template-haskell
      , transformers
      }:
      mkDerivation {
        pname = "th-letrec";
-       version = "0.1";
-       sha256 = "0z9j8a7p9m5kp3zzia593zbzfmqc6himrzzjfk7nplv6vfh36yah";
-       revision = "2";
-       editedCabalFile = "0f5pzqfh4axv1x09pzp7dpqvbf3cq6yacyfa403klsyizvh6ly6g";
+       version = "0.1.1";
+       sha256 = "0z4zh9lnp60nih7dwy697jbnk19f1h3ypazw23jbf0z93f7d90b6";
        libraryHaskellDepends = [
-         base containers some template-haskell transformers
+         base codet containers some template-haskell transformers
        ];
        description = "Implicit (recursive) let insertion";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "th-lift" = callPackage
@@ -300598,32 +301066,6 @@ self: {
      }:
      mkDerivation {
        pname = "threepenny-gui";
-       version = "0.9.4.0";
-       sha256 = "08jqa01pp6b300ic0xcn687i0a0kvz76bgym3dchk9n75m6hvc4f";
-       revision = "4";
-       editedCabalFile = "11yn9z3n3czfpbhqfjbixcry1zj5p8m3jg2dbx5vcwx5ffklkcav";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson async base bytestring containers data-default deepseq
-         exceptions file-embed filepath hashable safe snap-core snap-server
-         stm template-haskell text transformers unordered-containers vault
-         vector websockets websockets-snap
-       ];
-       description = "GUI framework that uses the web browser as a display";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "threepenny-gui_0_9_4_1" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, containers
-     , data-default, deepseq, exceptions, file-embed, filepath, hashable
-     , safe, snap-core, snap-server, stm, template-haskell, text
-     , transformers, unordered-containers, vault, vector, websockets
-     , websockets-snap
-     }:
-     mkDerivation {
-       pname = "threepenny-gui";
        version = "0.9.4.1";
        sha256 = "199jpgzmjlraspazaq9crv1zl92xmi8k2fif5kvznzpjvl4b1k1k";
        isLibrary = true;
@@ -300637,7 +301079,6 @@ self: {
        ];
        description = "GUI framework that uses the web browser as a display";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "threepenny-gui-contextmenu" = callPackage
@@ -301288,17 +301729,18 @@ self: {
        mainProgram = "timberc";
      }) {};
 
-  "time_1_12_2" = callPackage
+  "time_1_14" = callPackage
     ({ mkDerivation, base, criterion, deepseq, QuickCheck, random
-     , tasty, tasty-hunit, tasty-quickcheck
+     , tasty, tasty-hunit, tasty-quickcheck, template-haskell
      }:
      mkDerivation {
        pname = "time";
-       version = "1.12.2";
-       sha256 = "07mgxdqhn72i34hbfj61k7lfk8fh5in4lyq013727s1hl93v186v";
-       libraryHaskellDepends = [ base deepseq ];
+       version = "1.14";
+       sha256 = "0gkzffnvi33ksw4zln0d31dpmqiyl8gicrx04g8j13kjr5ygx86z";
+       libraryHaskellDepends = [ base deepseq template-haskell ];
        testHaskellDepends = [
          base deepseq QuickCheck random tasty tasty-hunit tasty-quickcheck
+         template-haskell
        ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "A time library";
@@ -302863,33 +303305,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tls_1_9_0" = callPackage
-    ({ mkDerivation, asn1-encoding, asn1-types, async, base, bytestring
-     , cereal, crypton, crypton-x509, crypton-x509-store
-     , crypton-x509-validation, data-default-class, gauge, hourglass
-     , memory, mtl, network, QuickCheck, tasty, tasty-quickcheck
-     , transformers, unix-time
+  "tls_2_0_1" = callPackage
+    ({ mkDerivation, asn1-encoding, asn1-types, async, base
+     , base16-bytestring, bytestring, cereal, crypton, crypton-x509
+     , crypton-x509-store, crypton-x509-validation, data-default-class
+     , hourglass, hspec, hspec-discover, memory, mtl, network
+     , QuickCheck, serialise, transformers, unix-time
      }:
      mkDerivation {
        pname = "tls";
-       version = "1.9.0";
-       sha256 = "0gj3af9sqd0bw7dpcqfyvbslpxsk2ij00a77kl710fwhw35vj1an";
+       version = "2.0.1";
+       sha256 = "1176gdzhwbnp3i1dp555la9ch5kgr6k13zn5as6d172a76q8qrcq";
+       revision = "1";
+       editedCabalFile = "0nrzk8yjbnzw1d4cjw03hayny1jx99a6y131903i5jdfafrqsla0";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         asn1-encoding asn1-types async base bytestring cereal crypton
-         crypton-x509 crypton-x509-store crypton-x509-validation
-         data-default-class memory mtl network transformers unix-time
+         asn1-encoding asn1-types async base base16-bytestring bytestring
+         cereal crypton crypton-x509 crypton-x509-store
+         crypton-x509-validation data-default-class memory mtl network
+         serialise transformers unix-time
        ];
        testHaskellDepends = [
          asn1-types async base bytestring crypton crypton-x509
-         crypton-x509-validation data-default-class hourglass QuickCheck
-         tasty tasty-quickcheck
+         crypton-x509-validation data-default-class hourglass hspec
+         QuickCheck serialise
        ];
-       benchmarkHaskellDepends = [
-         asn1-types async base bytestring crypton crypton-x509
-         crypton-x509-validation data-default-class gauge hourglass
-         QuickCheck tasty-quickcheck
-       ];
-       description = "TLS/SSL protocol native implementation (Server and Client)";
+       testToolDepends = [ hspec-discover ];
+       description = "TLS protocol native implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -302950,6 +303393,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "tls-session-manager_0_0_5" = callPackage
+    ({ mkDerivation, auto-update, base, basement, bytestring, clock
+     , crypto-token, memory, psqueues, serialise, tls
+     }:
+     mkDerivation {
+       pname = "tls-session-manager";
+       version = "0.0.5";
+       sha256 = "0zfls8ckskip43vrjvvqafv0c9wb5a6j507j2fjjczb0gm9gdq5m";
+       revision = "1";
+       editedCabalFile = "109d07s6gp5flhhnsy96fnz1i0y9r7j2c06ql7k9gv8xaa8pa9s9";
+       libraryHaskellDepends = [
+         auto-update base basement bytestring clock crypto-token memory
+         psqueues serialise tls
+       ];
+       description = "In-memory TLS session DB and session ticket";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tlynx" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bytestring
      , comonad, containers, data-default-class, elynx-tools, elynx-tree
@@ -303071,21 +303533,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc_0_6_0_0" = callPackage
+  "tmp-proc_0_6_1_0" = callPackage
     ({ mkDerivation, async, base, bytestring, data-default, hspec
-     , http-client, http-types, mtl, network, process, text, unliftio
-     , wai, warp, warp-tls
+     , http-client, http-types, mtl, network, process, text, tls
+     , unliftio, wai, warp, warp-tls
      }:
      mkDerivation {
        pname = "tmp-proc";
-       version = "0.6.0.0";
-       sha256 = "148zvf2zwg84pyksir7j9y208y135i95dp0hh9514xahfh44ic3x";
+       version = "0.6.1.0";
+       sha256 = "0qhapmpwlslcr0b4r4031arhixmfm5dwhjz6qhcbjdf1q7jq68lr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         async base bytestring mtl network process text unliftio wai warp
-         warp-tls
+         async base bytestring mtl network process text tls unliftio wai
+         warp warp-tls
        ];
        testHaskellDepends = [
          base bytestring data-default hspec http-client http-types text wai
@@ -303141,14 +303603,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc-postgres_0_6_0_0" = callPackage
+  "tmp-proc-postgres_0_6_0_1" = callPackage
     ({ mkDerivation, base, bytestring, hspec, hspec-tmp-proc
      , postgresql-simple, text, tmp-proc
      }:
      mkDerivation {
        pname = "tmp-proc-postgres";
-       version = "0.6.0.0";
-       sha256 = "1zddls7fax0wrs06db6p9457gs7ay0q0b4cmvykzdlkq3k38xnd8";
+       version = "0.6.0.1";
+       sha256 = "0xlrk8idis8wdvv6wkv36yjf1hw023236340j6g6j4nh51pn3wan";
        libraryHaskellDepends = [
          base bytestring postgresql-simple text tmp-proc
        ];
@@ -303177,14 +303639,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc-rabbitmq_0_6_0_0" = callPackage
+  "tmp-proc-rabbitmq_0_6_0_1" = callPackage
     ({ mkDerivation, amqp, base, bytestring, hspec, hspec-tmp-proc
      , text, tmp-proc
      }:
      mkDerivation {
        pname = "tmp-proc-rabbitmq";
-       version = "0.6.0.0";
-       sha256 = "104hsrr18ch40h9vqa3pxzq5nvhawqxyq8lvyjfwal2ncakyyzrn";
+       version = "0.6.0.1";
+       sha256 = "0yw6j5fw1l35q1b0x25kksw3g1b5v97yzmi3s4snkljmf45wlfh6";
        libraryHaskellDepends = [ amqp base bytestring text tmp-proc ];
        testHaskellDepends = [
          amqp base bytestring hspec hspec-tmp-proc text tmp-proc
@@ -303210,14 +303672,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc-redis_0_6_0_0" = callPackage
+  "tmp-proc-redis_0_6_0_1" = callPackage
     ({ mkDerivation, base, bytestring, hedis, hspec, hspec-tmp-proc
      , text, tmp-proc
      }:
      mkDerivation {
        pname = "tmp-proc-redis";
-       version = "0.6.0.0";
-       sha256 = "02l8x3z1ikpvd92cynda4s46sg35ql9f59y48w32vcgdlzs6v19v";
+       version = "0.6.0.1";
+       sha256 = "1nwcw55rb9gcr36611vnw4vxcqqbppn6vxkwpviyv18lilsdpm22";
        libraryHaskellDepends = [ base bytestring hedis text tmp-proc ];
        testHaskellDepends = [
          base bytestring hedis hspec hspec-tmp-proc text tmp-proc
@@ -303233,8 +303695,8 @@ self: {
      }:
      mkDerivation {
        pname = "tmp-proc-zipkin";
-       version = "0.6.0.0";
-       sha256 = "01acz3c21wlkgrazlgmdl68y7pg2vz8cxk8776xi979w0q1kp56a";
+       version = "0.6.0.1";
+       sha256 = "1zpqjfn9bi72cq7bbfgixbckpg37jnkbklxha15gdx49qmxi2jhm";
        libraryHaskellDepends = [
          base bytestring http-client text tmp-proc tracing
        ];
@@ -303499,15 +303961,15 @@ self: {
 
   "token-limiter-concurrent" = callPackage
     ({ mkDerivation, async, base, genvalidity, genvalidity-sydtest
-     , QuickCheck, sydtest, sydtest-discover
+     , QuickCheck, stm, sydtest, sydtest-discover
      }:
      mkDerivation {
        pname = "token-limiter-concurrent";
-       version = "0.0.0.0";
-       sha256 = "1g64638v7kiblixb8xg5dvnif60mlpplp1l18pv32lr9sph7yv1c";
+       version = "0.1.0.0";
+       sha256 = "09ai81x994snla1aq1245y6x3w3kblcgl4wjy70vm9yli8c2d064";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
-         async base genvalidity genvalidity-sydtest QuickCheck sydtest
+         async base genvalidity genvalidity-sydtest QuickCheck stm sydtest
        ];
        testToolDepends = [ sydtest-discover ];
        description = "A thread-safe concurrent token-bucket rate limiter that guarantees fairness";
@@ -303750,6 +304212,30 @@ self: {
        license = lib.licenses.isc;
      }) {};
 
+  "toml-parser_2_0_0_0" = callPackage
+    ({ mkDerivation, alex, array, base, containers, happy, hspec
+     , hspec-discover, markdown-unlit, prettyprinter, template-haskell
+     , text, time, transformers
+     }:
+     mkDerivation {
+       pname = "toml-parser";
+       version = "2.0.0.0";
+       sha256 = "1nvrmlgmdvm7p16fywds4wnpyavyq7sk0p3zlqy9dci33qb3kzc7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base containers prettyprinter text time transformers
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [
+         base containers hspec template-haskell text time
+       ];
+       testToolDepends = [ hspec-discover markdown-unlit ];
+       description = "TOML 1.0.0 parser";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "toml-reader" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , megaparsec, parser-combinators, process, tasty, tasty-golden
@@ -303759,8 +304245,8 @@ self: {
        pname = "toml-reader";
        version = "0.2.1.0";
        sha256 = "1nq4f1a1gkm0xv1crq3fwp6xmr79kz6m4ls0nkj75mkcqk0mpd05";
-       revision = "3";
-       editedCabalFile = "1q6fgn4xcssp1q819igbiihjhwfkb6jzaxsd5h35jr847lmw9mjw";
+       revision = "4";
+       editedCabalFile = "1avm7r47cs9as0wy7y5030fvzq68bnbf4irb58jpag8cad7dglsb";
        libraryHaskellDepends = [
          base containers megaparsec parser-combinators text time
        ];
@@ -303793,6 +304279,26 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "toml-test-drivers" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, prettyprinter
+     , prettyprinter-ansi-terminal, text, toml-parser
+     }:
+     mkDerivation {
+       pname = "toml-test-drivers";
+       version = "1.0.0.0";
+       sha256 = "099847kqica8ixkp44npmk810lls2xqcnqimnvcdi3cmr1c9asa3";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson base bytestring containers prettyprinter
+         prettyprinter-ansi-terminal text toml-parser
+       ];
+       description = "toml-parser test drivers";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tomland" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , hashable, hedgehog, hspec, hspec-hedgehog, hspec-megaparsec
@@ -304246,23 +304752,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "torsor";
-       version = "0.1";
-       sha256 = "173dn2n24xdlyymw5hqd6qd1r6h65bqrhpkcl49kccxr10xgb8vm";
-       libraryHaskellDepends = [ base ];
-       description = "Torsor Typeclass";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "torsor_0_1_0_1" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "torsor";
        version = "0.1.0.1";
        sha256 = "0ljcxlv019qfbs3wvp03j8l261i1p6vv3vycabcd0hpy0dbq80d9";
        libraryHaskellDepends = [ base ];
        description = "Torsor Typeclass";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tostring" = callPackage
@@ -306319,32 +306813,6 @@ self: {
      }:
      mkDerivation {
        pname = "trifecta";
-       version = "2.1.3";
-       sha256 = "05jnq2q27ichv9x6g9dx7ljppy3mkyv8ppzb0ynmfmpkcbghpbrf";
-       revision = "1";
-       editedCabalFile = "1rgx5415y996vbpfpnkjf48hgfjvid6wbzhfq88zqf0j4kbi7m75";
-       libraryHaskellDepends = [
-         ansi-terminal array base blaze-builder blaze-html blaze-markup
-         bytestring charset comonad containers deepseq fingertree ghc-prim
-         hashable indexed-traversable lens mtl parsers prettyprinter
-         prettyprinter-ansi-terminal profunctors reducers transformers
-         unordered-containers utf8-string
-       ];
-       testHaskellDepends = [ base parsers QuickCheck ];
-       description = "A modern parser combinator library with convenient diagnostics";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "trifecta_2_1_4" = callPackage
-    ({ mkDerivation, ansi-terminal, array, base, blaze-builder
-     , blaze-html, blaze-markup, bytestring, charset, comonad
-     , containers, deepseq, fingertree, ghc-prim, hashable
-     , indexed-traversable, lens, mtl, parsers, prettyprinter
-     , prettyprinter-ansi-terminal, profunctors, QuickCheck, reducers
-     , transformers, unordered-containers, utf8-string
-     }:
-     mkDerivation {
-       pname = "trifecta";
        version = "2.1.4";
        sha256 = "0a4wvj3g27xmkck150ci6wfp8lqbdlrqgi9q8y3k0cqsvfpl5n6l";
        libraryHaskellDepends = [
@@ -306357,7 +306825,6 @@ self: {
        testHaskellDepends = [ base parsers QuickCheck ];
        description = "A modern parser combinator library with convenient diagnostics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "trigger" = callPackage
@@ -307514,6 +307981,8 @@ self: {
        pname = "twee-lib";
        version = "2.4.2";
        sha256 = "1fncqc2abb9hhy5ncb7174gy7n7wp5c9ablq07pr7k61i8ngqwd9";
+       revision = "1";
+       editedCabalFile = "1my0zlr5xbdyg0xrn5h0x40xiazx8dkimnzmrh1mfbdjckwlrdbr";
        libraryHaskellDepends = [
          base bytestring cereal containers dlist ghc-prim pretty primitive
          random transformers uglymemo
@@ -308432,8 +308901,6 @@ self: {
        ];
        description = "Tools for writing better type errors";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-errors-pretty" = callPackage
@@ -309817,21 +310284,20 @@ self: {
 
   "typst" = callPackage
     ({ mkDerivation, aeson, array, base, bytestring, cassava
-     , containers, digits, directory, filepath, mtl, ordered-containers
-     , parsec, pretty, pretty-show, regex-tdfa, scientific, tasty
-     , tasty-golden, text, time, toml-parser, typst-symbols, vector
-     , xml-conduit, yaml
+     , containers, directory, filepath, mtl, ordered-containers, parsec
+     , pretty, pretty-show, regex-tdfa, scientific, tasty, tasty-golden
+     , text, time, toml-parser, typst-symbols, vector, xml-conduit, yaml
      }:
      mkDerivation {
        pname = "typst";
-       version = "0.5";
-       sha256 = "01hmb835hig6igyhpyrxxmprd9azfqbkjcnw5pfcjy099v1ik5c4";
+       version = "0.5.0.1";
+       sha256 = "1cpc7k6kjif6pyl3rh543yrzhygf5fawi3s1ygdvzi92r5w9xk24";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson array base bytestring cassava containers digits directory
-         filepath mtl ordered-containers parsec pretty regex-tdfa scientific
-         text time toml-parser typst-symbols vector xml-conduit yaml
+         aeson array base bytestring cassava containers directory filepath
+         mtl ordered-containers parsec pretty regex-tdfa scientific text
+         time toml-parser typst-symbols vector xml-conduit yaml
        ];
        testHaskellDepends = [
          base bytestring directory filepath pretty-show tasty tasty-golden
@@ -309841,6 +310307,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "typst_0_5_0_2" = callPackage
+    ({ mkDerivation, aeson, array, base, bytestring, cassava
+     , containers, directory, filepath, mtl, ordered-containers, parsec
+     , pretty, pretty-show, regex-tdfa, scientific, tasty, tasty-golden
+     , text, time, toml-parser, typst-symbols, vector, xml-conduit, yaml
+     }:
+     mkDerivation {
+       pname = "typst";
+       version = "0.5.0.2";
+       sha256 = "1myglayx9wdjzr33hp9faqg37brvw5s8ic31xw5alf3n444g6i0j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson array base bytestring cassava containers directory filepath
+         mtl ordered-containers parsec pretty regex-tdfa scientific text
+         time toml-parser typst-symbols vector xml-conduit yaml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath pretty-show tasty tasty-golden
+         text time
+       ];
+       description = "Parsing and evaluating typst syntax";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "typst-symbols" = callPackage
     ({ mkDerivation, base, text }:
      mkDerivation {
@@ -309886,8 +310378,8 @@ self: {
        pname = "tz";
        version = "0.1.3.6";
        sha256 = "1vqnfk656i6j3j1bf9lc36adziv52x1b2ccq6afp8cka1nay2mcd";
-       revision = "5";
-       editedCabalFile = "0r1wbf0c0fpns8vyr2xrrkkclzjcy212zb9ldsrcxx7jyz5nr0jj";
+       revision = "6";
+       editedCabalFile = "0za67vc1lvadrl6r287cmkkz7cnharm1yhsyin8qbn9xlm5r8ci0";
        libraryHaskellDepends = [
          base binary bytestring containers data-default deepseq
          template-haskell time tzdata vector
@@ -309910,25 +310402,6 @@ self: {
      }:
      mkDerivation {
        pname = "tzdata";
-       version = "0.2.20231222.0";
-       sha256 = "049brcgpqkr8bj7q5fqmxclb4s1ikrx9gawy2yn0ig3nd0kspnw9";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring containers deepseq vector
-       ];
-       testHaskellDepends = [
-         base bytestring HUnit tasty tasty-hunit tasty-th unix
-       ];
-       description = "Time zone database (as files and as a module)";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "tzdata_0_2_20240201_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, HUnit
-     , tasty, tasty-hunit, tasty-th, unix, vector
-     }:
-     mkDerivation {
-       pname = "tzdata";
        version = "0.2.20240201.0";
        sha256 = "1mkb9j4xr8m03hpby39pb3xdqxxkbp9idz3xxhxf2fznv98z2acx";
        enableSeparateDataOutput = true;
@@ -309940,7 +310413,6 @@ self: {
        ];
        description = "Time zone database (as files and as a module)";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tztime" = callPackage
@@ -310444,15 +310916,16 @@ self: {
      }) {};
 
   "ukrainian-phonetics-basic-array" = callPackage
-    ({ mkDerivation, base, mmsyn2-array, mmsyn5
+    ({ mkDerivation, base, intermediate-structures, mmsyn2-array
      , ukrainian-phonetics-common
      }:
      mkDerivation {
        pname = "ukrainian-phonetics-basic-array";
-       version = "0.7.0.0";
-       sha256 = "13kwf822598hpvp0sa724bp4dyqgh79k0bydnlmxp51jsj8d85cq";
+       version = "0.7.1.1";
+       sha256 = "0qazbvkl6rsw08a4xh54yli4pwww0g1psn051bggs1ppscc31fd4";
        libraryHaskellDepends = [
-         base mmsyn2-array mmsyn5 ukrainian-phonetics-common
+         base intermediate-structures mmsyn2-array
+         ukrainian-phonetics-common
        ];
        description = "A library to work with the basic Ukrainian phonetics and syllable segmentation";
        license = lib.licenses.mit;
@@ -312160,6 +312633,8 @@ self: {
        pname = "units";
        version = "2.4.1.5";
        sha256 = "09ssrid1an2nv6j9skb787i3hqiz5hgz020q13552w55m0smw4c9";
+       revision = "1";
+       editedCabalFile = "0b1fdaafygxhkl06ik2yvfn8mgl7nlpsswd16iyqwwmrwp2advb4";
        libraryHaskellDepends = [
          base containers deepseq lens linear mtl multimap singletons
          singletons-base singletons-th syb template-haskell th-desugar
@@ -312504,6 +312979,33 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "universum_1_8_2_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, gauge
+     , ghc-prim, hashable, hedgehog, microlens, microlens-mtl, mtl
+     , safe-exceptions, stm, tasty, tasty-discover, tasty-hedgehog, text
+     , transformers, unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "universum";
+       version = "1.8.2.1";
+       sha256 = "06kv2p7792r4d7nsq1wx7vw5jy72fjacc2jwmkqfanaaapdr27q9";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable microlens
+         microlens-mtl mtl safe-exceptions stm text transformers
+         unordered-containers utf8-string vector
+       ];
+       testHaskellDepends = [
+         base bytestring hedgehog tasty tasty-hedgehog text
+       ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [
+         base containers gauge text unordered-containers
+       ];
+       description = "Custom prelude used in Serokell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "unix_2_8_5_0" = callPackage
     ({ mkDerivation, base, bytestring, filepath, tasty, tasty-hunit
      , tasty-quickcheck, time
@@ -312512,6 +313014,8 @@ self: {
        pname = "unix";
        version = "2.8.5.0";
        sha256 = "0zc5jbdkhnh8m8dxbgvbwx3r1jmgjxdnqq8qc632wzpf8bi822yp";
+       revision = "1";
+       editedCabalFile = "0n8j03w0wyga4qgv3q5drj9kv27hl4242gzas09yzmyz6bq44vi5";
        libraryHaskellDepends = [ base bytestring filepath time ];
        testHaskellDepends = [
          base bytestring filepath tasty tasty-hunit tasty-quickcheck
@@ -312525,10 +313029,8 @@ self: {
     ({ mkDerivation, base, bytestring }:
      mkDerivation {
        pname = "unix-bytestring";
-       version = "0.4.0";
-       sha256 = "0vpg1yfv69ks7b8vyci5l480nj3b90dfvkxdfhw4n3mgch4s6rh4";
-       revision = "1";
-       editedCabalFile = "0p9akxwacfkbhpiqp0nvdsk5lsxlr5l3b0dgz86fwf7pp2zsd82m";
+       version = "0.4.0.1";
+       sha256 = "013if0qmbm491hjc4ha455whw3gwxwpws351cjhpalz8a6yh479j";
        libraryHaskellDepends = [ base bytestring ];
        description = "Unix/Posix-specific functions for ByteStrings";
        license = lib.licenses.bsd3;
@@ -312678,24 +313180,6 @@ self: {
      }:
      mkDerivation {
        pname = "unix-time";
-       version = "0.4.11";
-       sha256 = "147hzx3gkqx1j2gr200fjgvl6dr2f9290dcimqyzrwscihbikmxb";
-       libraryHaskellDepends = [ base binary bytestring old-time ];
-       testHaskellDepends = [
-         base bytestring hspec old-locale old-time QuickCheck
-         template-haskell time
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Unix time parser/formatter and utilities";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "unix-time_0_4_12" = callPackage
-    ({ mkDerivation, base, binary, bytestring, hspec, hspec-discover
-     , old-locale, old-time, QuickCheck, template-haskell, time
-     }:
-     mkDerivation {
-       pname = "unix-time";
        version = "0.4.12";
        sha256 = "1qlpmwd43kaybbq7vaa1wnbay575qwj4r7xynafixa6bwnc759ah";
        libraryHaskellDepends = [ base binary bytestring old-time ];
@@ -312706,7 +313190,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Unix time parser/formatter and utilities";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "unjson" = callPackage
@@ -313146,14 +313629,14 @@ self: {
      }) {};
 
   "unpacked-maybe-numeric" = callPackage
-    ({ mkDerivation, base, primitive, QuickCheck, quickcheck-classes
-     , wide-word, word-compat
+    ({ mkDerivation, base, QuickCheck, quickcheck-classes, wide-word
+     , word-compat
      }:
      mkDerivation {
        pname = "unpacked-maybe-numeric";
-       version = "0.1.3.0";
-       sha256 = "04q6snimyvi2cznb8djh671y054x57gp6dvgzcsvv1y2fgqchpb7";
-       libraryHaskellDepends = [ base primitive wide-word word-compat ];
+       version = "0.1.3.1";
+       sha256 = "1cgcdz59nfnm356ic4kwarr4xq4vrf1y1balkrclgpvc0y00823a";
+       libraryHaskellDepends = [ base wide-word word-compat ];
        testHaskellDepends = [ base QuickCheck quickcheck-classes ];
        description = "maybes of numeric values with fewer indirections";
        license = lib.licenses.bsd3;
@@ -313969,6 +314452,8 @@ self: {
        pname = "url-slug";
        version = "0.1.0.0";
        sha256 = "0x5xkfxzml1cnqcmmyvm3gj0ikw2371jbsqya6ng7pfjlcsmdfzn";
+       revision = "1";
+       editedCabalFile = "0hzpc1ibcxy6pn4w8ngclicfms1l65jxavfnygbnklv0ci9ccwy0";
        libraryHaskellDepends = [
          aeson base relude text unicode-transforms uri-encode
        ];
@@ -314595,10 +315080,8 @@ self: {
      }:
      mkDerivation {
        pname = "utility-ht";
-       version = "0.0.17";
-       sha256 = "164sy6vdq5vspvfcj59hsmynn97x0wimw4xa5jyzkl4b0vp8lhb2";
-       revision = "1";
-       editedCabalFile = "11i3n06rg580c87br6ic3m75bd83p9incz1nmkkqrawpr7s2fk5f";
+       version = "0.0.17.1";
+       sha256 = "02pcjyi50jrxssirc8mf2mc17jqbr2a5w2vxiisfqwpwz2h4ivvb";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base doctest-exitcode-stdio doctest-lib QuickCheck
@@ -314608,22 +315091,84 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
-  "utility-ht_0_0_17_1" = callPackage
-    ({ mkDerivation, base, doctest-exitcode-stdio, doctest-lib
-     , QuickCheck
+  "utxorpc" = callPackage
+    ({ mkDerivation, base, proto-lens, proto-lens-protobuf-types
+     , proto-lens-runtime
      }:
      mkDerivation {
-       pname = "utility-ht";
-       version = "0.0.17.1";
-       sha256 = "02pcjyi50jrxssirc8mf2mc17jqbr2a5w2vxiisfqwpwz2h4ivvb";
-       libraryHaskellDepends = [ base ];
+       pname = "utxorpc";
+       version = "0.0.4.1";
+       sha256 = "08xn1jlc3q466cz63j1klkr05shnb3hicrz5i8fpf05cwf88ajl2";
+       libraryHaskellDepends = [
+         base proto-lens proto-lens-protobuf-types proto-lens-runtime
+       ];
+       description = "A gRPC interface for UTxO Blockchains";
+       license = lib.licenses.asl20;
+     }) {};
+
+  "utxorpc-client" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive, hspec
+     , http2, http2-client, http2-client-grpc, http2-grpc-proto-lens
+     , http2-grpc-types, katip, lens, proto-lens, safe, text, time
+     , transformers, unliftio, utxorpc, uuid
+     }:
+     mkDerivation {
+       pname = "utxorpc-client";
+       version = "0.0.1.1";
+       sha256 = "1l588nhg9ssqdwdx6pvqsj4mgl88rp4fbnba8ph4hf9jqf9j81ci";
+       revision = "1";
+       editedCabalFile = "1lqarn3bycipy6rbqy9p4ypsq0xvpm0qwmjpgkqs0ivr6wp9vnas";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring http2-client http2-client-grpc
+         http2-grpc-proto-lens http2-grpc-types proto-lens utxorpc uuid
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring case-insensitive http2 http2-client
+         http2-client-grpc http2-grpc-types katip lens proto-lens safe text
+         time transformers unliftio utxorpc uuid
+       ];
        testHaskellDepends = [
-         base doctest-exitcode-stdio doctest-lib QuickCheck
+         base bytestring hspec http2-client http2-client-grpc
+         http2-grpc-proto-lens http2-grpc-types proto-lens utxorpc uuid
        ];
-       description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
-       license = lib.licenses.bsd3;
+       description = "An SDK for clients of the UTxO RPC specification";
+       license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
+  "utxorpc-server" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , directory, hspec, http2-grpc-proto-lens, http2-grpc-types, katip
+     , lens, proto-lens, time, transformers, unliftio, utxorpc, uuid
+     , wai, warp, warp-grpc, warp-tls
+     }:
+     mkDerivation {
+       pname = "utxorpc-server";
+       version = "0.0.1.1";
+       sha256 = "025lrc650b0kjw1z5vsjqg1ylb8zjv4bm5jrlk8dilb5yipk3zjq";
+       revision = "1";
+       editedCabalFile = "06hxrc4d93v814yiv09x6f7pjphx9hk3jbgv6cnwi4bx9ryp7sak";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring http2-grpc-proto-lens http2-grpc-types utxorpc uuid
+         wai warp warp-grpc warp-tls
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring case-insensitive http2-grpc-types katip lens
+         proto-lens time transformers unliftio utxorpc uuid wai warp
+         warp-grpc warp-tls
+       ];
+       testHaskellDepends = [
+         base bytestring directory hspec http2-grpc-proto-lens
+         http2-grpc-types proto-lens transformers utxorpc uuid wai warp-grpc
+       ];
+       description = "An SDK for UTxO RPC services";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "server-example";
      }) {};
 
   "uu-cco" = callPackage
@@ -316313,6 +316858,8 @@ self: {
        pname = "vector";
        version = "0.13.1.0";
        sha256 = "1vpcxn0zkhmvksz373iz66bv42f358jv3zqg390vk2mbkqkp5wk3";
+       revision = "1";
+       editedCabalFile = "03fpy8vnjyk7hw6sci361pmb05jl5z05yb08yjv5wxqxnp7jq0xw";
        libraryHaskellDepends = [ base deepseq primitive vector-stream ];
        testHaskellDepends = [
          base base-orphans doctest HUnit primitive QuickCheck random tasty
@@ -316891,6 +317438,8 @@ self: {
        pname = "vector-stream";
        version = "0.1.0.1";
        sha256 = "0z5z88flyassdpgga412qci6brr9gyljbx875wd479fy9crhgxfh";
+       revision = "1";
+       editedCabalFile = "17sa7mq3maphzgwdjwxr1q9dm92gz4hcbyk0d3hkayqxswp9x9hn";
        libraryHaskellDepends = [ base ghc-prim ];
        description = "Efficient Streams";
        license = lib.licenses.bsd3;
@@ -317199,10 +317748,8 @@ self: {
      }:
      mkDerivation {
        pname = "verset";
-       version = "0.0.1.8";
-       sha256 = "19l5ck1l1528f7mqks5c6n314cyzrw5qk2ddg77s6y6lv5sm4kv3";
-       revision = "1";
-       editedCabalFile = "0lf4np9zxl9a48s4sifh49d9gvqv2hhd3wmbr5z1ian83l9slcz7";
+       version = "0.0.1.9";
+       sha256 = "1ygsqr6qhcfv71v0jgbh17ayrg1fkf63dl851zl3p745jjr2sxk2";
        libraryHaskellDepends = [
          base bytestring containers extra mtl safe text time uuid
        ];
@@ -317286,6 +317833,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "versions_6_0_6" = callPackage
+    ({ mkDerivation, base, deepseq, hashable, megaparsec, microlens
+     , parser-combinators, tasty, tasty-hunit, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "versions";
+       version = "6.0.6";
+       sha256 = "0w73gcg2yyrx5b6msynmpa05q2q1n4qaa59n0l21glz28k7lzyma";
+       libraryHaskellDepends = [
+         base deepseq hashable megaparsec parser-combinators
+         template-haskell text
+       ];
+       testHaskellDepends = [
+         base megaparsec microlens tasty tasty-hunit template-haskell text
+       ];
+       description = "Types and parsers for software version numbers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "vertexenum" = callPackage
     ({ mkDerivation, base, containers, hmatrix-glpk, tasty, tasty-hunit
      , vector-space
@@ -318570,8 +319137,8 @@ self: {
      }:
      mkDerivation {
        pname = "vty-windows";
-       version = "0.2.0.1";
-       sha256 = "0y2ihbhg5xmk1mljn1syrd5iqg0dd0lk6j0kgk6077j0jdm09ar3";
+       version = "0.2.0.2";
+       sha256 = "12dd00lp5vx8fijj6i3ihd5553k9b127lh25li50dimkxf5vrwjv";
        libraryHaskellDepends = [
          base blaze-builder bytestring containers deepseq directory filepath
          microlens microlens-mtl microlens-th mtl parsec stm transformers
@@ -318825,8 +319392,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-app-static";
-       version = "3.1.8";
-       sha256 = "00ig077z3ipc7vwpwflcn0z3xvgkl2kyqh7whwym69fldc4q2w0s";
+       version = "3.1.9";
+       sha256 = "0rjaivvfdpi512iik78hdhapngpikm8cgw5rzb0ax27ml56x8wxk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -319058,8 +319625,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-feature-flags";
-       version = "0.1.0.7";
-       sha256 = "0pqi45lf7pzad3d2l10hizsxwpjpj06m0z8di43vblb150z6y3my";
+       version = "0.1.0.8";
+       sha256 = "0mwad6x95yma2gdpi0i93hl29xhw1qrb4hxgpm2np7cwy8gcprv3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -319172,6 +319739,8 @@ self: {
        pname = "wai-handler-hal";
        version = "0.4.0.0";
        sha256 = "1qdw8ml3b0zgb09zrv37xp83yqw9v95nm22iw4ysdlampidz8s6d";
+       revision = "1";
+       editedCabalFile = "0klabj62v4qs7rac9vwvn1pqji7i0xhj1lza6zi49lkhsdn29020";
        libraryHaskellDepends = [
          base base64-bytestring bytestring case-insensitive hal http-media
          http-types network text unordered-containers vault wai
@@ -320414,8 +320983,8 @@ self: {
        pname = "wai-saml2";
        version = "0.5";
        sha256 = "1am7b933ipwphxzsxrbprx8fi2lk2z710sgsk6d66fd2l6axayki";
-       revision = "1";
-       editedCabalFile = "0aqmz8c6hlcrcq0nc3gg37lwzi2aqw5z330khsq4zk22szgjnhpw";
+       revision = "2";
+       editedCabalFile = "11ilrysikaxnjvrzsqrxfjvbp4vaqvwbb787avvr2mzwm5107d3p";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring c14n containers
          cryptonite data-default-class http-types mtl network-uri text time
@@ -320933,6 +321502,41 @@ self: {
        broken = true;
      }) {};
 
+  "warp_3_3_30" = callPackage
+    ({ mkDerivation, array, auto-update, base, bsb-http-chunked
+     , bytestring, case-insensitive, containers, crypton-x509, directory
+     , gauge, ghc-prim, hashable, hspec, hspec-discover, http-client
+     , http-date, http-types, http2, iproute, network, process
+     , QuickCheck, recv, simple-sendfile, stm, streaming-commons, text
+     , time-manager, unix, unliftio, vault, wai, word8
+     }:
+     mkDerivation {
+       pname = "warp";
+       version = "3.3.30";
+       sha256 = "1i5fnvc9n7w013asj7ckpfb59ybbvhif4d6f4g5jwwad50jmlbpg";
+       libraryHaskellDepends = [
+         array auto-update base bsb-http-chunked bytestring case-insensitive
+         containers crypton-x509 ghc-prim hashable http-date http-types
+         http2 iproute network recv simple-sendfile stm streaming-commons
+         text time-manager unix unliftio vault wai word8
+       ];
+       testHaskellDepends = [
+         array auto-update base bsb-http-chunked bytestring case-insensitive
+         containers crypton-x509 directory ghc-prim hashable hspec
+         http-client http-date http-types http2 iproute network process
+         QuickCheck recv simple-sendfile stm streaming-commons text
+         time-manager unix unliftio vault wai word8
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         auto-update base bytestring containers crypton-x509 gauge hashable
+         http-date http-types network recv time-manager unix unliftio
+       ];
+       description = "A fast, light-weight web server for WAI applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "warp" = callPackage
     ({ mkDerivation, array, auto-update, base, bsb-http-chunked
      , bytestring, case-insensitive, containers, crypton-x509, directory
@@ -321106,23 +321710,6 @@ self: {
      }:
      mkDerivation {
        pname = "warp-tls";
-       version = "3.4.3";
-       sha256 = "1fldcdd7x2r1vl7qjycrlfwk10z58ap15najlbfdfa1lnvwc50jd";
-       libraryHaskellDepends = [
-         base bytestring data-default-class network recv streaming-commons
-         tls tls-session-manager unliftio wai warp
-       ];
-       description = "HTTP over TLS support for Warp via the TLS package";
-       license = lib.licenses.mit;
-     }) {};
-
-  "warp-tls_3_4_4" = callPackage
-    ({ mkDerivation, base, bytestring, data-default-class, network
-     , recv, streaming-commons, tls, tls-session-manager, unliftio, wai
-     , warp
-     }:
-     mkDerivation {
-       pname = "warp-tls";
        version = "3.4.4";
        sha256 = "1l8lxqakz5c060sif6qz3nz019xan5zhdf5l8xmwy00aq8ccs6ba";
        libraryHaskellDepends = [
@@ -321131,7 +321718,6 @@ self: {
        ];
        description = "HTTP over TLS support for Warp via the TLS package";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "warp-tls-uid" = callPackage
@@ -321259,14 +321845,14 @@ self: {
 
   "waterfall-cad" = callPackage
     ({ mkDerivation, base, lattices, lens, linear, opencascade-hs
-     , resourcet
+     , primitive, resourcet
      }:
      mkDerivation {
        pname = "waterfall-cad";
-       version = "0.1.2.2";
-       sha256 = "1nlzb5h9ysxzi96z0hms803lg1banir586d8xb2wsm3q3hcp6wm7";
+       version = "0.2.1.0";
+       sha256 = "044si8pxsjryl8j34haqmly0g4pan2j25b8p7699ywh2c07glwb2";
        libraryHaskellDepends = [
-         base lattices lens linear opencascade-hs resourcet
+         base lattices lens linear opencascade-hs primitive resourcet
        ];
        description = "Declarative CAD/Solid Modeling Library";
        license = lib.licenses.lgpl21Only;
@@ -321279,8 +321865,8 @@ self: {
      }:
      mkDerivation {
        pname = "waterfall-cad-examples";
-       version = "0.1.2.2";
-       sha256 = "1c5hkvbgam64z810zks2jc5q7jh65jncyky1hdii439jml65rr4d";
+       version = "0.2.1.0";
+       sha256 = "0b6kk1rj9yxylc1578m7ydal046mcxcvska6r4j7ksa3v8icjvga";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -323156,8 +323742,8 @@ self: {
      }:
      mkDerivation {
        pname = "weeder";
-       version = "2.7.0";
-       sha256 = "042c4v7x91xfmams4v4kk8azvi6sh8l03rkkvyvi35jigkz74cbh";
+       version = "2.8.0";
+       sha256 = "086vni1i0sqy2xva63xdx1ppvwygyn1dav2bykggd6j1jrwi0m5p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -325396,7 +325982,7 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, attoparsec
      , authenticate-oauth, base, base16-bytestring, base64-bytestring
      , bytestring, Cabal, cabal-doctest, case-insensitive, containers
-     , cryptonite, directory, doctest, exceptions, filepath, ghc-prim
+     , crypton, directory, doctest, exceptions, filepath, ghc-prim
      , hashable, http-client, http-client-tls, http-types, HUnit, lens
      , lens-aeson, memory, mime-types, network-info, psqueues
      , QuickCheck, snap-core, snap-server, template-haskell, temporary
@@ -325406,16 +325992,16 @@ self: {
      }:
      mkDerivation {
        pname = "wreq";
-       version = "0.5.4.2";
-       sha256 = "016m5ij80nxnkz3hvdzx3g4w7yjk40bx47xrn54bx1ni9aq2h6wh";
+       version = "0.5.4.3";
+       sha256 = "00z6i4myg18bq15h9h889k7s9j5564cfjvzxd65i37dknwi2mpw6";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson attoparsec authenticate-oauth base base16-bytestring
-         bytestring case-insensitive containers cryptonite exceptions
-         ghc-prim hashable http-client http-client-tls http-types lens
-         lens-aeson memory mime-types psqueues template-haskell text time
+         bytestring case-insensitive containers crypton exceptions ghc-prim
+         hashable http-client http-client-tls http-types lens lens-aeson
+         memory mime-types psqueues template-haskell text time
          time-locale-compat unordered-containers
        ];
        testHaskellDepends = [
@@ -326322,6 +326908,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "x509-ocsp" = callPackage
+    ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
+     , cryptohash-sha1, crypton-x509, HUnit, pem
+     }:
+     mkDerivation {
+       pname = "x509-ocsp";
+       version = "0.1.1.0";
+       sha256 = "09crd65swq1qw7wyn87xmfwdm3rqn4pcaz09hhdvv8v9vq9n734g";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         asn1-encoding asn1-types base bytestring cryptohash-sha1
+         crypton-x509
+       ];
+       testHaskellDepends = [
+         asn1-encoding asn1-types base bytestring crypton-x509 HUnit pem
+       ];
+       description = "Basic X509 OCSP implementation";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "x509-store" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
      , containers, cryptonite, directory, filepath, mtl, pem, tasty
@@ -326586,7 +327192,6 @@ self: {
        ];
        description = "XDG Basedir";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "xdg-desktop-entry" = callPackage
@@ -328034,8 +328639,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmobar";
-       version = "0.47.3";
-       sha256 = "186dwm3a4fznjgh3l7hknq9rgjhci12qgwwhaqhx2kihk93c6dsp";
+       version = "0.47.4";
+       sha256 = "1vbi6psaljnqsvv397vqsla23azq1pcmmzlxm88n9qiqb85a52h7";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -328099,7 +328704,7 @@ self: {
        mainProgram = "xmonad";
        maintainers = [
          lib.maintainers.dschrempf lib.maintainers.ivanbrennan
-         lib.maintainers.peti
+         lib.maintainers.peti lib.maintainers.slotThe
        ];
      }) {};
 
@@ -328132,7 +328737,7 @@ self: {
        mainProgram = "xmonad";
        maintainers = [
          lib.maintainers.dschrempf lib.maintainers.ivanbrennan
-         lib.maintainers.peti
+         lib.maintainers.peti lib.maintainers.slotThe
        ];
      }) {};
 
@@ -328179,7 +328784,7 @@ self: {
        license = lib.licenses.bsd3;
        maintainers = [
          lib.maintainers.dschrempf lib.maintainers.ivanbrennan
-         lib.maintainers.peti
+         lib.maintainers.peti lib.maintainers.slotThe
        ];
      }) {};
 
@@ -328267,25 +328872,25 @@ self: {
      }) {};
 
   "xmonad-extras" = callPackage
-    ({ mkDerivation, alsa-mixer, base, bytestring, containers, hint
-     , libmpd, mtl, network, regex-posix, X11, xmonad, xmonad-contrib
+    ({ mkDerivation, alsa-mixer, base, bytestring, containers, dbus
+     , hint, libmpd, mtl, network, regex-posix, X11, xmonad
+     , xmonad-contrib
      }:
      mkDerivation {
        pname = "xmonad-extras";
-       version = "0.17.0";
-       sha256 = "0kkwng84hp19vc9nw97y77n3hsg9scn0c9fa1ivf4r9s5x3p6flx";
-       revision = "1";
-       editedCabalFile = "1ivm1nncg8qa5ww1kgk1d8zdawniz83ab5s2dj0hbcxffymgxp0k";
+       version = "0.17.1";
+       sha256 = "08kq9w38jk4nwb2dmqbmybiz50zy81md9sbjmwrkw5wjcdxgsgch";
        configureFlags = [
          "-f-with_hlist" "-fwith_parsec" "-fwith_split"
        ];
        libraryHaskellDepends = [
-         alsa-mixer base bytestring containers hint libmpd mtl network
+         alsa-mixer base bytestring containers dbus hint libmpd mtl network
          regex-posix X11 xmonad xmonad-contrib
        ];
        description = "Third party extensions for xmonad with wacky dependencies";
        license = lib.licenses.bsd3;
        badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.slotThe ];
      }) {};
 
   "xmonad-screenshot" = callPackage
@@ -329986,32 +330591,69 @@ self: {
      }) {};
 
   "yaya" = callPackage
-    ({ mkDerivation, base, bifunctors, comonad, constraints, containers
-     , distributive, either, errors, free, kan-extensions, lens
-     , profunctors, template-haskell, th-abstraction, transformers
+    ({ mkDerivation, base, Cabal, cabal-doctest, comonad, doctest
+     , either, free, kan-extensions, lens, profunctors, strict
+     , template-haskell, th-abstraction, transformers
      }:
      mkDerivation {
        pname = "yaya";
-       version = "0.4.2.1";
-       sha256 = "182h9lhk493az2ic2v5q64yy1adnxa6mm4hp72pcb73ma87z6amd";
+       version = "0.5.2.1";
+       sha256 = "01j92jjcq44fhv723rsmhn5qizvdvq1xaa3p0qljzc34z1910i83";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base bifunctors comonad constraints containers distributive either
-         errors free kan-extensions lens profunctors template-haskell
-         th-abstraction transformers
+         base comonad either free kan-extensions lens profunctors strict
+         template-haskell th-abstraction transformers
        ];
+       testHaskellDepends = [ base doctest ];
        description = "Total recursion schemes";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
+     }) {};
+
+  "yaya-containers" = callPackage
+    ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
+     , yaya
+     }:
+     mkDerivation {
+       pname = "yaya-containers";
+       version = "0.1.0.2";
+       sha256 = "1ylg2n36jl96iq84ljj6pg7m454mhdf6ffql9jby2cpmz3291i3m";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ base containers yaya ];
+       testHaskellDepends = [ base doctest ];
+       description = "Pattern functors and instances for types in the containers package";
+       license = lib.licenses.agpl3Plus;
      }) {};
 
   "yaya-hedgehog" = callPackage
-    ({ mkDerivation, base, deriving-compat, hedgehog, yaya }:
+    ({ mkDerivation, base, Cabal, cabal-doctest, deriving-compat
+     , doctest, hedgehog, yaya
+     }:
      mkDerivation {
        pname = "yaya-hedgehog";
-       version = "0.2.0.1";
-       sha256 = "0aw932d2yr3w84ia44y46w4w96bc8gdag63h66rhx3v7gwmkwdwg";
+       version = "0.2.1.3";
+       sha256 = "1q52rf9ay3x8q0ynrg2vxkld7h2c9rg4laq60hylkibmvlxvwpww";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base deriving-compat hedgehog yaya ];
+       testHaskellDepends = [
+         base deriving-compat doctest hedgehog yaya
+       ];
        description = "Hedgehog testing support for the Yaya recursion scheme library";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
+     }) {};
+
+  "yaya-quickcheck" = callPackage
+    ({ mkDerivation, base, Cabal, cabal-doctest, doctest, QuickCheck
+     , yaya
+     }:
+     mkDerivation {
+       pname = "yaya-quickcheck";
+       version = "0.1.0.2";
+       sha256 = "065j2vwjh8gsbb7n650fl7gg1njmw32kgi499mxfp1gz3xbmcjcf";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ base QuickCheck yaya ];
+       testHaskellDepends = [ base doctest ];
+       description = "QuickCheck testing support for the Yaya recursion scheme library";
+       license = lib.licenses.agpl3Plus;
      }) {};
 
   "yaya-test" = callPackage
@@ -330020,32 +330662,32 @@ self: {
      }:
      mkDerivation {
        pname = "yaya-test";
-       version = "0.3.1.0";
-       sha256 = "0kmdf5w8ly3vp0krmi2dy7bjw68z0hmy7i0dx0j7j8s3rzdf8dyh";
+       version = "0.3.1.3";
+       sha256 = "05zb8vafqplz4nghqr1473fd1x98zs3azhf96fgmmizpv0ih5n4l";
        isLibrary = false;
        isExecutable = false;
        testHaskellDepends = [
          base deriving-compat hedgehog yaya yaya-hedgehog
        ];
        description = "Test suites for `yaya`";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
 
   "yaya-unsafe" = callPackage
-    ({ mkDerivation, base, bifunctors, comonad, either, free, lens
-     , yaya
+    ({ mkDerivation, base, bifunctors, Cabal, cabal-doctest, comonad
+     , doctest, free, hedgehog, lens, yaya, yaya-hedgehog
      }:
      mkDerivation {
        pname = "yaya-unsafe";
-       version = "0.2.0.1";
-       sha256 = "1wj9bgczp5pl85c9sa3fn5zzkccn440mdi8gfi0warc98iy9r2pd";
-       libraryHaskellDepends = [
-         base bifunctors comonad either free lens yaya
-       ];
+       version = "0.3.3.1";
+       sha256 = "07qiyz66a5zq4ksn8j46m6p6r4kqn9p1l2b7cwgwjhhw52c4128s";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ base bifunctors comonad free lens yaya ];
+       testHaskellDepends = [ base doctest hedgehog yaya yaya-hedgehog ];
        description = "Non-total extensions to the Yaya recursion scheme library";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
      }) {};
 
   "yaya-unsafe-test" = callPackage
@@ -330053,15 +330695,15 @@ self: {
      }:
      mkDerivation {
        pname = "yaya-unsafe-test";
-       version = "0.1.1.2";
-       sha256 = "0qfhgb3mzm6s04y4rxlba9yz2yr37z5qmqwp1p6hkdbr38z5z9p5";
+       version = "0.2.0.2";
+       sha256 = "0fa3yfx92ddnqyx3agd24w2m48qmgsdp50rs6bsvyn4s134q2yar";
        isLibrary = false;
        isExecutable = false;
        testHaskellDepends = [
          base hedgehog yaya yaya-hedgehog yaya-unsafe
        ];
        description = "Test suites for `yaya-unsafe`";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -330726,8 +331368,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.7.1.3";
-       sha256 = "151is1lvhnl3pvp0q4sn3i26l4n936vlpky3hndsn1f76cjy489b";
+       version = "0.7.2.0";
+       sha256 = "055x45abny97h26p3s3zf08ifb3vakys3qviralqggqnlj1zmdxj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -330925,18 +331567,16 @@ self: {
      }) {};
 
   "yesod-colonnade" = callPackage
-    ({ mkDerivation, base, blaze-html, blaze-markup, colonnade, conduit
-     , conduit-extra, text, yesod-core, yesod-elements
+    ({ mkDerivation, base, blaze-html, blaze-markup, colonnade, text
+     , yesod-core, yesod-elements
      }:
      mkDerivation {
        pname = "yesod-colonnade";
-       version = "1.3.0.1";
-       sha256 = "1x5m3xv4jq2x49fnvxw3v8bvbsx4hdccykcn32fz3cwavp4p1q1p";
-       revision = "3";
-       editedCabalFile = "040r3scz1155ci40q3q7lhqyqfdq3x9cg2zp9jw1lqppl426fzmy";
+       version = "1.3.0.2";
+       sha256 = "0ik0gl2jmmvnmm7whck8qid2pc8w4hpm56ysyvjar2klwchb73nl";
        libraryHaskellDepends = [
-         base blaze-html blaze-markup colonnade conduit conduit-extra text
-         yesod-core yesod-elements
+         base blaze-html blaze-markup colonnade text yesod-core
+         yesod-elements
        ];
        description = "Helper functions for using yesod with colonnade";
        license = lib.licenses.bsd3;
@@ -331023,6 +331663,8 @@ self: {
        pname = "yesod-core";
        version = "1.6.25.1";
        sha256 = "0i8cfwq41f0h4rlapw98ljah4s46wyfsfipxzj0yx98c86km2cdc";
+       revision = "1";
+       editedCabalFile = "1k5xwklxxx3l4lc0ddfq6q8805wx86dfhf571vn4r5na3awcx4d4";
        libraryHaskellDepends = [
          aeson attoparsec-aeson auto-update base blaze-html blaze-markup
          bytestring case-insensitive cereal clientsession conduit
@@ -331091,8 +331733,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-csp";
-       version = "0.2.5.0";
-       sha256 = "16b569jwxw7rim9fmjkl3slddclcp1x75jf8czjj89d1wp202x15";
+       version = "0.2.6.0";
+       sha256 = "01wnb1lmxkkl2yw696lkhy8361xsdlsiwwr436h9jlcvwhm3dyv0";
        libraryHaskellDepends = [
          attoparsec base case-insensitive mono-traversable network-uri
          semigroups syb template-haskell text wai yesod yesod-core
@@ -332159,22 +332801,23 @@ self: {
 
   "yesod-session-persist" = callPackage
     ({ mkDerivation, aeson, annotated-exception, base, base64
-     , bytestring, containers, cookie, crypton, exceptions, hspec
-     , http-types, mtl, persistent, QuickCheck, random, stm, text, time
-     , transformers, wai, wai-extra, yesod, yesod-core, yesod-test
+     , bytestring, containers, cookie, crypton, exceptions
+     , generic-arbitrary, hspec, http-types, memcache, mtl, persistent
+     , QuickCheck, random, stm, text, time, transformers, wai, wai-extra
+     , yesod, yesod-core, yesod-test
      }:
      mkDerivation {
        pname = "yesod-session-persist";
-       version = "0.0.0.1";
-       sha256 = "0myiglk29wv320xq2405fizpzz17ax58cszq0pv1nlmd3r163yhz";
+       version = "0.0.0.2";
+       sha256 = "1kb22rnpk16hx8zqgzbd1ac1685hczaln2lcp5anq8wjj04bjzsq";
        libraryHaskellDepends = [
          annotated-exception base base64 bytestring containers cookie
-         crypton exceptions http-types mtl persistent text time transformers
-         wai yesod-core
+         crypton exceptions generic-arbitrary http-types memcache mtl
+         persistent QuickCheck text time transformers wai yesod-core
        ];
        testHaskellDepends = [
          aeson base containers cookie hspec mtl QuickCheck random stm text
-         time wai wai-extra yesod yesod-core yesod-test
+         wai wai-extra yesod yesod-core yesod-test
        ];
        doHaddock = false;
        description = "SQL session backend for Yesod";
@@ -333845,8 +334488,8 @@ self: {
      }:
      mkDerivation {
        pname = "zephyr-copilot";
-       version = "1.0.8";
-       sha256 = "1g1ikkwnybn02yfawfly9bgbfv4cx5ciqhq3xx3z023p4j1g7rcz";
+       version = "1.0.9";
+       sha256 = "1mwyrcd9a9ih31qfagkl16fyyyv814acq6z26dw5aiglzlgnymjn";
        libraryHaskellDepends = [
          base containers copilot copilot-c99 copilot-language directory
          filepath mtl optparse-applicative sketch-frp-copilot temporary
@@ -334400,8 +335043,8 @@ self: {
      }:
      mkDerivation {
        pname = "zip-archive";
-       version = "0.4.3";
-       sha256 = "01ax0idyvggizbdbg38nynmm5dk53apsjbj2xaq8v11ry6h0y1b8";
+       version = "0.4.3.1";
+       sha256 = "0f9z0p2vmqahk9fzxwp5914f3ls4wsacd9bf5p5nnd5vdp1navyf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -334647,6 +335290,8 @@ self: {
        pname = "zlib";
        version = "0.7.0.0";
        sha256 = "0ivszx31jw560axchxz9g646baw2rs6fr1ih0d5mmzz1w42w4hvy";
+       revision = "1";
+       editedCabalFile = "1fiwhzs7sp3ck75ii176pakmwjqcjlv0fiqcqka6r8p9jdf958b4";
        libraryHaskellDepends = [ base bytestring ];
        libraryPkgconfigDepends = [ zlib ];
        testHaskellDepends = [
diff --git a/pkgs/development/haskell-modules/patches/HSH-unix-openFd.patch b/pkgs/development/haskell-modules/patches/HSH-unix-openFd.patch
new file mode 100644
index 0000000000000..426343e6b93a0
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/HSH-unix-openFd.patch
@@ -0,0 +1,17 @@
+diff --git a/HSH/ShellEquivs.hs b/HSH/ShellEquivs.hs
+index f9287e8..b132737 100644
+--- a/HSH/ShellEquivs.hs
++++ b/HSH/ShellEquivs.hs
+@@ -223,9 +223,9 @@ catToFIFO fp ichan =
+        return (ChanString "")
+ 
+ fifoOpen :: FilePath -> IO Handle
+-fifoOpen fp = 
+-    do fd <- throwErrnoPathIf (< 0) "HSH fifoOpen" fp $ 
+-             openFd fp WriteOnly Nothing defaultFileFlags
++fifoOpen fp =
++    do fd <- throwErrnoPathIf (< 0) "HSH fifoOpen" fp $
++             openFd fp WriteOnly defaultFileFlags
+        fdToHandle fd
+ 
+ #endif
diff --git a/pkgs/development/haskell-modules/patches/cheapskate-mtl-2-3-support.patch b/pkgs/development/haskell-modules/patches/cheapskate-mtl-2-3-support.patch
new file mode 100644
index 0000000000000..de376ea8726c2
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/cheapskate-mtl-2-3-support.patch
@@ -0,0 +1,23 @@
+diff --git a/Cheapskate/Parse.hs b/Cheapskate/Parse.hs
+index b90d8e5..2925132 100644
+--- a/Cheapskate/Parse.hs
++++ b/Cheapskate/Parse.hs
+@@ -1,4 +1,5 @@
+ {-# LANGUAGE OverloadedStrings #-}
++{-# LANGUAGE CPP #-}
+ module Cheapskate.Parse (
+          markdown
+        ) where
+@@ -21,6 +22,12 @@ import Control.Applicative
+ import qualified Data.Map as M
+ import Data.List (intercalate)
+ 
++#if MIN_VERSION_mtl(2, 3, 0)
++import Control.Monad (guard, unless, replicateM)
++#else
++#endif
++
++
+ import Debug.Trace
+ 
+ -- | Parses the input as a markdown document.  Note that 'Doc' is an instance
diff --git a/pkgs/development/haskell-modules/patches/pattern-arrows-add-fix-import.patch b/pkgs/development/haskell-modules/patches/pattern-arrows-add-fix-import.patch
new file mode 100644
index 0000000000000..de2e9ce9f30a3
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/pattern-arrows-add-fix-import.patch
@@ -0,0 +1,12 @@
+diff --git a/src/Control/PatternArrows.hs b/src/Control/PatternArrows.hs
+index d382c19..0b067dd 100644
+--- a/src/Control/PatternArrows.hs
++++ b/src/Control/PatternArrows.hs
+@@ -23,6 +23,7 @@ import qualified Control.Category as C
+ import Control.Category ((>>>))
+ import qualified Control.Arrow as A
+ import Control.Arrow ((***), (<+>))
++import Data.Function (fix)
+ 
+ -- |
+ -- A first-order pattern match
diff --git a/pkgs/development/interpreters/expr/default.nix b/pkgs/development/interpreters/expr/default.nix
index 4a1dfd8d4f47b..20ec87bb53fd3 100644
--- a/pkgs/development/interpreters/expr/default.nix
+++ b/pkgs/development/interpreters/expr/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "expr";
-  version = "1.16.2";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "antonmedv";
     repo = "expr";
     rev = "v${version}";
-    hash = "sha256-U9DlgC3iuYry99A1O5E737680mq1TCf2M4ZYTytm56k=";
+    hash = "sha256-XTI4TPViNQUPrIPZRWcaxFpkqMUOdGN162f+deFNRR0=";
   };
 
   sourceRoot = "${src.name}/repl";
 
-  vendorHash = "sha256-olTmfSKLbkH95ArMHJWac7aw+DNKRyw4z+oGvW9j4tw=";
+  vendorHash = "sha256-ZIF0uCGrzs1nn06ouF/eJY1adOw8diAjMIhygZhrXuM=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix
index 074ccbf1bd23a..4c45d9603be82 100644
--- a/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -28,6 +28,45 @@
 , eggInstallHook
 }:
 
+let
+  inherit (builtins) unsafeGetAttrPos;
+  inherit (lib)
+    elem optionalString max stringLength fixedWidthString getName
+    optional optionals optionalAttrs hasSuffix escapeShellArgs
+    extendDerivation head splitString isBool;
+
+  leftPadName = name: against: let
+      len = max (stringLength name) (stringLength against);
+    in fixedWidthString len " " name;
+
+  isPythonModule = drv:
+    # all pythonModules have the pythonModule attribute
+    (drv ? "pythonModule")
+    # Some pythonModules are turned in to a pythonApplication by setting the field to false
+    && (!isBool drv.pythonModule);
+
+  isMismatchedPython = drv: drv.pythonModule != python;
+
+  withDistOutput' = lib.flip elem ["pyproject" "setuptools" "wheel"];
+
+  isBootstrapInstallPackage' = lib.flip elem [ "flit-core" "installer" ];
+
+  isBootstrapPackage' = lib.flip elem ([
+    "build" "packaging" "pyproject-hooks" "wheel"
+  ] ++ optionals (python.pythonOlder "3.11") [
+    "tomli"
+  ]);
+
+  isSetuptoolsDependency' = lib.flip elem [ "setuptools" "wheel" ];
+
+  cleanAttrs = lib.flip removeAttrs [
+    "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "pyproject" "format"
+    "disabledTestPaths" "outputs" "stdenv"
+    "dependencies" "optional-dependencies" "build-system"
+  ];
+
+in
+
 { name ? "${attrs.pname}-${attrs.version}"
 
 # Build-time dependencies for the package
@@ -128,29 +167,15 @@ let
     else
       "setuptools";
 
-  withDistOutput = lib.elem format' ["pyproject" "setuptools" "wheel"];
-
-  name_ = name;
+  withDistOutput = withDistOutput' format';
 
-  validatePythonMatches = attrName: let
-    isPythonModule = drv:
-      # all pythonModules have the pythonModule attribute
-      (drv ? "pythonModule")
-      # Some pythonModules are turned in to a pythonApplication by setting the field to false
-      && (!builtins.isBool drv.pythonModule);
-    isMismatchedPython = drv: drv.pythonModule != python;
-
-    optionalLocation = let
-        pos = builtins.unsafeGetAttrPos (if attrs ? "pname" then "pname" else "name") attrs;
-      in lib.optionalString (pos != null) " at ${pos.file}:${toString pos.line}:${toString pos.column}";
-
-    leftPadName = name: against: let
-        len = lib.max (lib.stringLength name) (lib.stringLength against);
-      in lib.strings.fixedWidthString len " " name;
-
-    throwMismatch = drv: let
+  validatePythonMatches = let
+    throwMismatch = attrName: drv: let
       myName = "'${namePrefix}${name}'";
       theirName = "'${drv.name}'";
+      optionalLocation = let
+          pos = unsafeGetAttrPos (if attrs ? "pname" then "pname" else "name") attrs;
+        in optionalString (pos != null) " at ${pos.file}:${toString pos.line}:${toString pos.column}";
     in throw ''
       Python version mismatch in ${myName}:
 
@@ -173,64 +198,51 @@ let
         * If ${theirName} provides executables that are called at run time, pass its
           bin path to makeWrapperArgs:
 
-              makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${lib.getName drv } ] }" ];
+              makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${getName drv } ] }" ];
 
       ${optionalLocation}
     '';
 
-    checkDrv = drv:
-      if (isPythonModule drv) && (isMismatchedPython drv)
-      then throwMismatch drv
+    checkDrv = attrName: drv:
+      if (isPythonModule drv) && (isMismatchedPython drv) then throwMismatch attrName drv
       else drv;
 
-    in inputs: builtins.map (checkDrv) inputs;
+    in attrName: inputs: map (checkDrv attrName) inputs;
 
-  isBootstrapInstallPackage = builtins.elem (attrs.pname or null) [
-    "flit-core" "installer"
-  ];
+  isBootstrapInstallPackage = isBootstrapInstallPackage' (attrs.pname or null);
 
-  isBootstrapPackage = isBootstrapInstallPackage || builtins.elem (attrs.pname or null) ([
-    "build" "packaging" "pyproject-hooks" "wheel"
-  ] ++ lib.optionals (python.pythonOlder "3.11") [
-    "tomli"
-  ]);
+  isBootstrapPackage = isBootstrapInstallPackage || isBootstrapPackage' (attrs.pname or null);
 
-  isSetuptoolsDependency = builtins.elem (attrs.pname or null) [
-    "setuptools" "wheel"
-  ];
+  isSetuptoolsDependency = isSetuptoolsDependency' (attrs.pname or null);
 
   passthru =
     attrs.passthru or { }
     // {
       updateScript = let
-        filename = builtins.head (lib.splitString ":" self.meta.position);
+        filename = head (splitString ":" self.meta.position);
       in attrs.passthru.updateScript or [ update-python-libraries filename ];
     }
-    // lib.optionalAttrs (dependencies != []) {
+    // optionalAttrs (dependencies != []) {
       inherit dependencies;
     }
-    // lib.optionalAttrs (optional-dependencies != {}) {
+    // optionalAttrs (optional-dependencies != {}) {
       inherit optional-dependencies;
     }
-    // lib.optionalAttrs (build-system != []) {
+    // optionalAttrs (build-system != []) {
       inherit build-system;
     };
 
   # Keep extra attributes from `attrs`, e.g., `patchPhase', etc.
-  self = toPythonModule (stdenv.mkDerivation ((builtins.removeAttrs attrs [
-    "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "pyproject" "format"
-    "disabledTestPaths" "outputs" "stdenv"
-    "dependencies" "optional-dependencies" "build-system"
-  ]) // {
+  self = toPythonModule (stdenv.mkDerivation ((cleanAttrs attrs) // {
 
-    name = namePrefix + name_;
+    name = namePrefix + name;
 
     nativeBuildInputs = [
       python
       wrapPython
       ensureNewerSourcesForZipFilesHook  # move to wheel installer (pip) or builder (setuptools, flit, ...)?
       pythonRemoveTestsDirHook
-    ] ++ lib.optionals (catchConflicts && !isBootstrapPackage && !isSetuptoolsDependency) [
+    ] ++ optionals (catchConflicts && !isBootstrapPackage && !isSetuptoolsDependency) [
       #
       # 1. When building a package that is also part of the bootstrap chain, we
       #    must ignore conflicts after installation, because there will be one with
@@ -240,13 +252,13 @@ let
       #    because the hook that checks for conflicts uses setuptools.
       #
       pythonCatchConflictsHook
-    ] ++ lib.optionals removeBinBytecode [
+    ] ++ optionals removeBinBytecode [
       pythonRemoveBinBytecodeHook
-    ] ++ lib.optionals (lib.hasSuffix "zip" (attrs.src.name or "")) [
+    ] ++ optionals (hasSuffix "zip" (attrs.src.name or "")) [
       unzip
-    ] ++ lib.optionals (format' == "setuptools") [
+    ] ++ optionals (format' == "setuptools") [
       setuptoolsBuildHook
-    ] ++ lib.optionals (format' == "pyproject") [(
+    ] ++ optionals (format' == "pyproject") [(
       if isBootstrapPackage then
         pypaBuildHook.override {
           inherit (python.pythonOnBuildForHost.pkgs.bootstrap) build;
@@ -261,24 +273,24 @@ let
         }
       else
         pythonRuntimeDepsCheckHook
-    )] ++ lib.optionals (format' == "wheel") [
+    )] ++ optionals (format' == "wheel") [
       wheelUnpackHook
-    ] ++ lib.optionals (format' == "egg") [
+    ] ++ optionals (format' == "egg") [
       eggUnpackHook eggBuildHook eggInstallHook
-    ] ++ lib.optionals (format' != "other") [(
+    ] ++ optionals (format' != "other") [(
       if isBootstrapInstallPackage then
         pypaInstallHook.override {
           inherit (python.pythonOnBuildForHost.pkgs.bootstrap) installer;
         }
       else
         pypaInstallHook
-    )] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
+    )] ++ optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
       # This is a test, however, it should be ran independent of the checkPhase and checkInputs
       pythonImportsCheckHook
-    ] ++ lib.optionals (python.pythonAtLeast "3.3") [
+    ] ++ optionals (python.pythonAtLeast "3.3") [
       # Optionally enforce PEP420 for python3
       pythonNamespacesHook
-    ] ++ lib.optionals withDistOutput [
+    ] ++ optionals withDistOutput [
       pythonOutputDistHook
     ] ++ nativeBuildInputs ++ build-system;
 
@@ -299,7 +311,7 @@ let
     doCheck = false;
     doInstallCheck = attrs.doCheck or true;
     nativeInstallCheckInputs = [
-    ] ++ lib.optionals (format' == "setuptools") [
+    ] ++ optionals (format' == "setuptools") [
       # Longer-term we should get rid of this and require
       # users of this function to set the `installCheckPhase` or
       # pass in a hook that sets it.
@@ -307,14 +319,14 @@ let
     ] ++ nativeCheckInputs;
     installCheckInputs = checkInputs;
 
-    postFixup = lib.optionalString (!dontWrapPythonPrograms) ''
+    postFixup = optionalString (!dontWrapPythonPrograms) ''
       wrapPythonPrograms
     '' + attrs.postFixup or "";
 
     # Python packages built through cross-compilation are always for the host platform.
-    disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonOnBuildForHost ];
+    disallowedReferences = optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonOnBuildForHost ];
 
-    outputs = outputs ++ lib.optional withDistOutput "dist";
+    outputs = outputs ++ optional withDistOutput "dist";
 
     inherit passthru;
 
@@ -323,15 +335,15 @@ let
       platforms = python.meta.platforms;
       isBuildPythonPackage = python.meta.platforms;
     } // meta;
-  } // lib.optionalAttrs (attrs?checkPhase) {
+  } // optionalAttrs (attrs?checkPhase) {
     # If given use the specified checkPhase, otherwise use the setup hook.
     # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
     installCheckPhase = attrs.checkPhase;
-  } //  lib.optionalAttrs (disabledTestPaths != []) {
-      disabledTestPaths = lib.escapeShellArgs disabledTestPaths;
+  } //  optionalAttrs (disabledTestPaths != []) {
+      disabledTestPaths = escapeShellArgs disabledTestPaths;
   }));
 
-in lib.extendDerivation
+in extendDerivation
   (disabled -> throw "${name} not supported for interpreter ${python.executable}")
   passthru
   self
diff --git a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
index 9e46a11141a65..3430c5806c4a7 100755
--- a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
+++ b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
@@ -215,7 +215,11 @@ def _get_latest_version_pypi(attr_path, package, extension, current_version, tar
     url = "{}/{}/json".format(INDEX, package)
     json = _fetch_page(url)
 
-    versions = json["releases"].keys()
+    versions = {
+        version
+        for version, releases in json["releases"].items()
+        if not all(release["yanked"] for release in releases)
+    }
     version = _determine_latest_version(current_version, target, versions)
 
     try:
diff --git a/pkgs/development/libraries/agda/1lab/default.nix b/pkgs/development/libraries/agda/1lab/default.nix
index 4d39fa0325f2e..3e8f3f0de318a 100644
--- a/pkgs/development/libraries/agda/1lab/default.nix
+++ b/pkgs/development/libraries/agda/1lab/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "1lab";
-  version = "unstable-2023-12-04";
+  version = "unstable-2024-03-07";
 
   src = fetchFromGitHub {
     owner = "plt-amy";
     repo = pname;
-    rev = "47c2a96220b4d14419e5ddb973bc1fa06933e723";
-    hash = "sha256-0U6s6sXdynk2IWRBDXBJCf7Gc+gE8AhR1PXZl0DS4yU=";
+    rev = "d698f21793c4815082c94d174b9eafae912abb1a";
+    hash = "sha256-v8avF9zNNz32kLuAacPdEVeUI9rjn6JCiWPzkXfzBS0=";
   };
 
   postPatch = ''
@@ -17,12 +17,20 @@ mkDerivation rec {
 
     # Remove verbosity options as they make Agda take longer and use more memory.
     shopt -s globstar extglob
-    sed -Ei '/OPTIONS/s/ -v ?[^ #]+//g' src/**/*.@(agda|lagda.md)
+    files=(src/**/*.@(agda|lagda.md))
+    sed -Ei '/OPTIONS/s/ -v ?[^ #]+//g' "''${files[@]}"
+
+    # Generate all-pages manually instead of building the build script.
+    mkdir -p _build
+    for f in "''${files[@]}"; do
+      f=''${f#src/} f=''${f%%.*} f=''${f//\//.}
+      echo "open import $f"
+    done > _build/all-pages.agda
   '';
 
   libraryName = "1lab";
   libraryFile = "1lab.agda-lib";
-  everythingFile = "src/index.lagda.md";
+  everythingFile = "_build/all-pages.agda";
 
   meta = with lib; {
     description =
diff --git a/pkgs/development/libraries/agda/agda-categories/default.nix b/pkgs/development/libraries/agda/agda-categories/default.nix
index 11c129badd646..311bdd595c681 100644
--- a/pkgs/development/libraries/agda/agda-categories/default.nix
+++ b/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -26,10 +26,6 @@ mkDerivation rec {
     find src -name '*.agda' | sed -e 's|^src/[/]*|import |' -e 's|/|.|g' -e 's/.agda//' -e '/import Everything/d' | LC_COLLATE='C' sort > Everything.agda
   '';
 
-  # agda: Heap exhausted;
-  # agda: Current maximum heap size is 4294967296 bytes (4096 MB).
-  GHCRTS = "-M5G";
-
   buildInputs = [ standard-library ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index 6549353916029..8019c6cc943f1 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -26,8 +26,6 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = toString ([
     # Needed with GCC 12
     "-Wno-error=array-bounds"
-  ] ++ lib.optionals stdenv.hostPlatform.isRiscV [
-    "-Wno-error=free-nonheap-object"
   ]);
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/ctranslate2/default.nix b/pkgs/development/libraries/ctranslate2/default.nix
index c7876a98bd54b..029e1cc8d3eb5 100644
--- a/pkgs/development/libraries/ctranslate2/default.nix
+++ b/pkgs/development/libraries/ctranslate2/default.nix
@@ -24,13 +24,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ctranslate2";
-  version = "4.0.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "OpenNMT";
     repo = "CTranslate2";
     rev = "v${version}";
-    hash = "sha256-pySnkDnV41rqr4OcNonPtSgv4AJYcF5vtkBg6Ad/IvU=";
+    hash = "sha256-vA1KnHRxIX0lYUfwXTbxjnrrBjFmqp2kwpxBNorVf0Y=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/freetds/default.nix b/pkgs/development/libraries/freetds/default.nix
index df7328b2b0436..bc6d6a583ea00 100644
--- a/pkgs/development/libraries/freetds/default.nix
+++ b/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   pname = "freetds";
-  version = "1.4.10";
+  version = "1.4.11";
 
   src = fetchurl {
     url    = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
-    hash   = "sha256-x+ryJr3LHNwbIhaWUyzNJfTk53VCZaKXd6NAAIS95pg=";
+    hash   = "sha256-Vn986RPyIhkd2n4cIh1eJyo4cVL+9srL2Xdn/qaLYT4=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/libaec/default.nix b/pkgs/development/libraries/libaec/default.nix
index 5bc6ad6c5f2eb..cd816329a51a3 100644
--- a/pkgs/development/libraries/libaec/default.nix
+++ b/pkgs/development/libraries/libaec/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libaec";
-  version  = "1.1.2";
+  version  = "1.1.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.dkrz.de";
     owner = "k202009";
     repo = "libaec";
     rev = "v${version}";
-    sha256 = "sha256-mmiPpfUZE7W6Hzalr/tcJUFQe5kF4dYM1uZShjBsoVA=";
+    sha256 = "sha256-4WS3l79v9CTFBLuJmNMMK7RRNPLSa5KYID3W4aGMTuE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libcloudproviders/default.nix b/pkgs/development/libraries/libcloudproviders/default.nix
index 5977ea33bd24f..6161ea78174d4 100644
--- a/pkgs/development/libraries/libcloudproviders/default.nix
+++ b/pkgs/development/libraries/libcloudproviders/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libcloudproviders";
-  version = "0.3.5";
+  version = "0.3.6";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libcloudproviders/${lib.versions.majorMinor version}/libcloudproviders-${version}.tar.xz";
-    sha256 = "uYdFbt2vcVup1iOqK8UBqxtpff/rEaqng6Y3J13xhto=";
+    sha256 = "O3URCzpP3vTFxaRA5IcB/gVNKuBh0VbIkTa7W6BedLc=";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libdwarf/20210528.nix b/pkgs/development/libraries/libdwarf/20210528.nix
deleted file mode 100644
index 25d14de99ae27..0000000000000
--- a/pkgs/development/libraries/libdwarf/20210528.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ callPackage, zlib, libelf }:
-callPackage ./common.nix rec {
-  version = "20210528";
-  url = "https://www.prevanders.net/libdwarf-${version}.tar.gz";
-  hash = "sha512-4PnIhVQFPubBsTM5YIkRieeCDEpN3DArfmN1Skzc/CrLG0tgg6ci0SBKdemU//NAHswlG4w7JAkPjLQEbZD4cA==";
-  buildInputs = [ zlib libelf ];
-  knownVulnerabilities = [ "CVE-2022-32200" "CVE-2022-39170" ];
-}
diff --git a/pkgs/development/libraries/libkrun/default.nix b/pkgs/development/libraries/libkrun/default.nix
index dbee4c9a35820..6a66320299279 100644
--- a/pkgs/development/libraries/libkrun/default.nix
+++ b/pkgs/development/libraries/libkrun/default.nix
@@ -13,18 +13,18 @@
 
 stdenv.mkDerivation rec {
   pname = "libkrun";
-  version = "1.7.2";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "libkrun";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cP+Pxl/9QIsoGysXTBZJ86q57cIMA7TJenMWtcOI+Y4=";
+    hash = "sha256-rrNiqwx4aEOB3fTyv8xcZEDsNJX4NNPhp13W0qnl1O0=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit pname version src;
-    hash = "sha256-qVyHC015QJEt6LZ8br3H0nucYKhYGBMtyB2IBaixTqk=";
+    hash = "sha256-6Zfy0LtxUDZzwlhul2fZpsI1c7GWntAMfsT6j+QefVs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libnabo/default.nix b/pkgs/development/libraries/libnabo/default.nix
index c6268ea3ee7e1..90ed45178d1fa 100644
--- a/pkgs/development/libraries/libnabo/default.nix
+++ b/pkgs/development/libraries/libnabo/default.nix
@@ -1,14 +1,14 @@
 {lib, stdenv, fetchFromGitHub, cmake, eigen, boost}:
 
 stdenv.mkDerivation rec {
-  version = "1.1.0";
+  version = "1.1.1";
   pname = "libnabo";
 
   src = fetchFromGitHub {
     owner = "ethz-asl";
     repo = "libnabo";
     rev = version;
-    sha256 = "sha256-KWqNJWdyFFe5zAs1HzGnIshGXkBAKjnbEmBZXxty99E=";
+    sha256 = "sha256-EVbvNwj1aRhRr5PhF6Kkb/UTn4JzF174WX1C+tvBv2Q=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libpulsar/default.nix b/pkgs/development/libraries/libpulsar/default.nix
index d87ef2b72802b..56132920147a5 100644
--- a/pkgs/development/libraries/libpulsar/default.nix
+++ b/pkgs/development/libraries/libpulsar/default.nix
@@ -1,10 +1,7 @@
 { lib
-, clang-tools
-, llvmPackages
-, boost179
-, protobuf
-, python3Support ? false
-, python3
+, asioSupport ? true
+, asio
+, boost180
 , log4cxxSupport ? false
 , log4cxx
 , snappySupport ? false
@@ -17,7 +14,8 @@
 , gtestSupport ? false
 , cmake
 , curl
-, fetchurl
+, fetchFromGitHub
+, protobuf
 , jsoncpp
 , openssl
 , pkg-config
@@ -37,48 +35,39 @@ let
   */
   enableCmakeFeature = p: if (p == null || p == false) then "OFF" else "ON";
 
-  # Not really sure why I need to do this.. If I call clang-tools without the override it defaults to a different version and fails
-  clangTools = clang-tools.override { inherit stdenv llvmPackages; };
-  # If boost has python enabled, then boost-python package will be installed which is used by libpulsars python wrapper
-  boost = if python3Support then boost179.override { inherit stdenv; enablePython = python3Support; python = python3; } else boost179;
-  defaultOptionals = [ boost protobuf ]
-    ++ lib.optional python3Support python3
+  defaultOptionals = [ protobuf ]
     ++ lib.optional snappySupport snappy.dev
     ++ lib.optional zlibSupport zlib
     ++ lib.optional zstdSupport zstd
-    ++ lib.optional log4cxxSupport log4cxx;
+    ++ lib.optional log4cxxSupport log4cxx
+    ++ lib.optional asioSupport asio
+    ++ lib.optional (!asioSupport) boost180;
 
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: rec {
   pname = "libpulsar";
-  version = "2.10.2";
+  version = "3.5.0";
 
-  src = fetchurl {
-    hash = "sha256-IONnsSDbnX2qz+Xya0taHYSViTOiRI36AfcxmY3dNpo=";
-    url = "mirror://apache/pulsar/pulsar-${version}/apache-pulsar-${version}-src.tar.gz";
+  src = fetchFromGitHub {
+    owner = "apache";
+    repo = "pulsar-client-cpp";
+    rev = "v${version}";
+    hash = "sha256-pNeoStDryyMtBolpp5nT5GFjYPuXg2ks1Ka1mjjN/9k=";
   };
 
-  sourceRoot = "apache-pulsar-${version}-src/pulsar-client-cpp";
-
-  # clang-tools needed for clang-format
-  nativeBuildInputs = [ cmake pkg-config clangTools ]
+  nativeBuildInputs = [ cmake pkg-config ]
     ++ defaultOptionals
     ++ lib.optional gtestSupport gtest.dev;
 
   buildInputs = [ jsoncpp openssl curl ]
     ++ defaultOptionals;
 
-  # Needed for GCC on Linux
-  env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=return-type" ];
-
   cmakeFlags = [
     "-DBUILD_TESTS=${enableCmakeFeature gtestSupport}"
-    "-DBUILD_PYTHON_WRAPPER=${enableCmakeFeature python3Support}"
     "-DUSE_LOG4CXX=${enableCmakeFeature log4cxxSupport}"
-    "-DClangTools_PATH=${clangTools}/bin"
+    "-DUSE_ASIO=${enableCmakeFeature asioSupport}"
   ];
 
-  enableParallelBuilding = true;
   doInstallCheck = true;
   installCheckPhase = ''
     echo ${lib.escapeShellArg ''
@@ -92,11 +81,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://pulsar.apache.org/docs/en/client-libraries-cpp";
+    homepage = "https://pulsar.apache.org/docs/next/client-libraries-cpp/";
     description = "Apache Pulsar C++ library";
-
+    changelog = "https://github.com/apache/pulsar-client-cpp/releases/tag/v${version}";
     platforms = platforms.all;
     license = licenses.asl20;
-    maintainers = [ maintainers.corbanr ];
+    maintainers = with maintainers; [ corbanr gaelreyrol ];
   };
-}
+})
diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index 6ab33b9e4ccfc..eda75bf0b25f5 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -113,5 +113,13 @@ in {
   libressl_3_8 = generic {
     version = "3.8.3";
     hash = "sha256-pl9A4+9uPJRRyDGObyxFTDZ+Z/CcDN4YSXMaTW7McnI=";
+
+    patches = [
+      (fetchpatch {
+        name = "libtls-pkg-config-static.patch";
+        url = "https://github.com/libressl/portable/commit/f7a0f40d52b994d0bca0eacd88b39f71e447c5d9.patch";
+        hash = "sha256-2ly6lsIdoV/riVqDViFXDP7nkZ/RUatEdiaSudQKtz0=";
+      })
+    ];
   };
 }
diff --git a/pkgs/development/libraries/librime/default.nix b/pkgs/development/libraries/librime/default.nix
index 95d88384b79e9..acf779f3304cd 100644
--- a/pkgs/development/libraries/librime/default.nix
+++ b/pkgs/development/libraries/librime/default.nix
@@ -11,13 +11,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "librime";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "rime";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tflWBfH1+1AFvkq0A6mgsKl+jq6m5c83GA56LWxdnlw=";
+    sha256 = "sha256-yP7YmmeA3k0/NI4XPsC/k2BX4mMnyMJvguiFZIWo8I8=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/openimagedenoise/cuda.patch b/pkgs/development/libraries/openimagedenoise/cuda.patch
new file mode 100644
index 0000000000000..4bc5172d88300
--- /dev/null
+++ b/pkgs/development/libraries/openimagedenoise/cuda.patch
@@ -0,0 +1,32 @@
+Remove upstream workarounds for CMake "limitations" that do not appear to exist
+in nixpkgs build environment, but rather break the build, presumably because
+CMAKE_INSTALL_{BIN,LIB}DIR is an absolute path in our build so
+CMAKE_INSTALL_PREFIX has no effect.
+
+diff --git a/devices/CMakeLists.txt b/devices/CMakeLists.txt
+index d5111cd..43986ad 100644
+--- a/devices/CMakeLists.txt
++++ b/devices/CMakeLists.txt
+@@ -53,7 +53,6 @@ if(OIDN_DEVICE_CUDA)
+       -DCMAKE_CXX_COMPILER:FILEPATH=${_host_compiler}
+       -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}
+       -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+-      -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/cuda/preinstall
+       -DCMAKE_INSTALL_BINDIR:PATH=${CMAKE_INSTALL_BINDIR}
+       -DCMAKE_INSTALL_LIBDIR:PATH=${CMAKE_INSTALL_LIBDIR}
+       -DCUDAToolkit_ROOT:PATH=${CUDAToolkit_ROOT}
+@@ -69,14 +68,6 @@ if(OIDN_DEVICE_CUDA)
+     DEPENDS
+       OpenImageDenoise_core
+   )
+-
+-  # Due to limitations of CMake, the module is pre-installed at build time to a temporary location,
+-  # and then copied to the real install location at install time.
+-  install(DIRECTORY
+-    ${CMAKE_CURRENT_BINARY_DIR}/cuda/preinstall/
+-    DESTINATION "."
+-    USE_SOURCE_PERMISSIONS
+-  )
+ endif()
+ 
+ if(OIDN_DEVICE_HIP)
diff --git a/pkgs/development/libraries/openimagedenoise/default.nix b/pkgs/development/libraries/openimagedenoise/default.nix
index 532ee7a095718..e2d9b66004ed6 100644
--- a/pkgs/development/libraries/openimagedenoise/default.nix
+++ b/pkgs/development/libraries/openimagedenoise/default.nix
@@ -1,21 +1,45 @@
-{ lib, stdenv, fetchzip, cmake, tbb, python3, ispc }:
+{
+  cmake,
+  config,
+  cudaPackages,
+  cudaSupport ? config.cudaSupport,
+  fetchzip,
+  ispc,
+  lib,
+  python3,
+  stdenv,
+  tbb,
+}:
 
 stdenv.mkDerivation rec {
   pname = "openimagedenoise";
-  version = "1.4.3";
+  version = "2.2.2";
 
   # The release tarballs include pretrained weights, which would otherwise need to be fetched with git-lfs
   src = fetchzip {
     url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${version}/oidn-${version}.src.tar.gz";
-    sha256 = "sha256-i73w/Vkr5TPLB1ulPbPU4OVGwdNlky1brfarueD7akE=";
+    sha256 = "sha256-ZIrs4oEb+PzdMh2x2BUFXKyu/HBlFb3CJX24ciEHy3Q=";
   };
 
-  nativeBuildInputs = [ cmake python3 ispc ];
-  buildInputs = [ tbb ];
+  patches = lib.optional cudaSupport ./cuda.patch;
+
+  nativeBuildInputs = [
+    cmake
+    python3
+    ispc
+  ] ++ lib.optional cudaSupport cudaPackages.cuda_nvcc;
+
+  buildInputs =
+    [ tbb ]
+    ++ lib.optionals cudaSupport [
+      cudaPackages.cuda_cudart
+      cudaPackages.cuda_cccl
+    ];
 
   cmakeFlags = [
-    "-DTBB_ROOT=${tbb}"
-    "-DTBB_INCLUDE_DIR=${tbb.dev}/include"
+    (lib.cmakeBool "OIDN_DEVICE_CUDA" cudaSupport)
+    (lib.cmakeFeature "TBB_INCLUDE_DIR" "${tbb.dev}/include")
+    (lib.cmakeFeature "TBB_ROOT" "${tbb}")
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix
index 17b7c286229b4..3ed10ef270f97 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opensubdiv";
-  version = "3.5.1";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "PixarAnimationStudios";
     repo = "OpenSubdiv";
     rev = "v${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "sha256-uDKCT0Uoa5WQekMUFm2iZmzm+oWAZ6IWMwfpchkUZY0=";
+    sha256 = "sha256-liy6pQyWMk7rw0usrCoLGzZLO7RAg0z2pV/GF2NnOkE=";
   };
 
   outputs = [ "out" "dev" "static" ];
diff --git a/pkgs/development/libraries/pdal/default.nix b/pkgs/development/libraries/pdal/default.nix
index 6f362967a2a27..86d976531cb37 100644
--- a/pkgs/development/libraries/pdal/default.nix
+++ b/pkgs/development/libraries/pdal/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pdal";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "PDAL";
     repo = "PDAL";
     rev = finalAttrs.version;
-    sha256 = "sha256-knyDVUZH+X563UzKkvDpi08EcXU5s4+Jvya3Xprpt1A=";
+    sha256 = "sha256-JoHBxJ0hCWH7ZhmeJk4huT2k0AK5CzIV58NWCjWj5T0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/pipewire/wireplumber.nix b/pkgs/development/libraries/pipewire/wireplumber.nix
index c60ac184978a1..dc0236a378afb 100644
--- a/pkgs/development/libraries/pipewire/wireplumber.nix
+++ b/pkgs/development/libraries/pipewire/wireplumber.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wireplumber";
-  version = "0.5.0";
+  version = "0.5.1";
 
   outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "wireplumber";
     rev = version;
-    hash = "sha256-zcYZvyGsGuiwuL9nOD5mW6RFwa9cPB9HvoQqdw2jlmY=";
+    hash = "sha256-l5s7GTKpqGvRs1o14QNXq3kyQsoPwwUmd0TKlBKTAKE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/protobuf/26.nix b/pkgs/development/libraries/protobuf/26.nix
new file mode 100644
index 0000000000000..7f7c3625699f0
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/26.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix ({
+  version = "26.1";
+  hash = "sha256-9sA+MYeDqRZl1v6HV4mpy60vqTbVTtinp9er6zkg/Ng=";
+} // args)
diff --git a/pkgs/development/libraries/quarto/default.nix b/pkgs/development/libraries/quarto/default.nix
index 09a44adbe561a..99b9ebf79ae81 100644
--- a/pkgs/development/libraries/quarto/default.nix
+++ b/pkgs/development/libraries/quarto/default.nix
@@ -19,10 +19,10 @@
 
 stdenv.mkDerivation (final: {
   pname = "quarto";
-  version = "1.4.551";
+  version = "1.4.552";
   src = fetchurl {
     url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${final.version}/quarto-${final.version}-linux-amd64.tar.gz";
-    sha256 = "sha256-RUnlLjJOf8hSj7aRCrmDSXFeNHCXnMY/bdbE3fbbThQ=";
+    sha256 = "sha256-I6uRqKgwb+VnbghA20BXEGrrLKOERc/IfF1TIDoymBw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/chemistry/dftd4/default.nix b/pkgs/development/libraries/science/chemistry/dftd4/default.nix
index 087c6e7d01de5..ea7aafd156ae6 100644
--- a/pkgs/development/libraries/science/chemistry/dftd4/default.nix
+++ b/pkgs/development/libraries/science/chemistry/dftd4/default.nix
@@ -1,8 +1,11 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, cmake
 , gfortran
+, meson
+, ninja
+, pkg-config
+, python3
 , blas
 , lapack
 , mctc-lib
@@ -23,23 +26,20 @@ stdenv.mkDerivation rec {
     hash = "sha256-VIV9953hx0MZupOARdH+P1h7JtZeJmTlqtO8si+lwdU=";
   };
 
-  nativeBuildInputs = [ cmake gfortran ];
+  nativeBuildInputs = [ gfortran meson ninja pkg-config python3 ];
 
   buildInputs = [ blas lapack mctc-lib mstore multicharge ];
 
   outputs = [ "out" "dev" ];
 
-  # Fix the Pkg-Config files for doubled store paths
+  doCheck = true;
+
   postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace "\''${prefix}/" ""
+    patchShebangs --build \
+      config/install-mod.py \
+      app/tester.py
   '';
 
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-  ];
-
-  doCheck = true;
   preCheck = ''
     export OMP_NUM_THREADS=2
   '';
diff --git a/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix b/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix
index a8c27b3eec56c..58c1fdaf04e24 100644
--- a/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix
+++ b/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix
@@ -2,9 +2,11 @@
 , lib
 , fetchFromGitHub
 , gfortran
+, meson
+, ninja
 , pkg-config
+, python3
 , json-fortran
-, cmake
 }:
 
 stdenv.mkDerivation rec {
@@ -18,24 +20,18 @@ stdenv.mkDerivation rec {
     hash = "sha256-AXjg/ZsitdDf9fNoGVmVal1iZ4/sxjJb7A9W4yye/rg=";
   };
 
-  nativeBuildInputs = [ gfortran pkg-config cmake ];
+  nativeBuildInputs = [ gfortran meson ninja pkg-config python3 ];
 
   buildInputs = [ json-fortran ];
 
   outputs = [ "out" "dev" ];
 
-  # Fix the Pkg-Config files for doubled store paths
+  doCheck = true;
+
   postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace "\''${prefix}/" ""
+    patchShebangs --build config/install-mod.py
   '';
 
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-  ];
-
-  doCheck = true;
-
   meta = with lib; {
     description = "Modular computation tool chain library";
     mainProgram = "mctc-convert";
diff --git a/pkgs/development/libraries/science/chemistry/mstore/default.nix b/pkgs/development/libraries/science/chemistry/mstore/default.nix
index 948d11435461d..e187a9a9833f0 100644
--- a/pkgs/development/libraries/science/chemistry/mstore/default.nix
+++ b/pkgs/development/libraries/science/chemistry/mstore/default.nix
@@ -1,8 +1,11 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, cmake
 , gfortran
+, meson
+, ninja
+, pkg-config
+, python3
 , mctc-lib
 }:
 
@@ -17,22 +20,16 @@ stdenv.mkDerivation rec {
     hash = "sha256-dN2BulLS/ENRFVdJIrZRxgBV8S4d5+7BjTCGnhBbf4I=";
   };
 
-  nativeBuildInputs = [ cmake gfortran ];
+  nativeBuildInputs = [ gfortran meson ninja pkg-config python3 ];
 
   buildInputs = [ mctc-lib ];
 
   outputs = [ "out" "dev" ];
 
-  # Fix the Pkg-Config files for doubled store paths
   postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace "\''${prefix}/" ""
+    patchShebangs --build config/install-mod.py
   '';
 
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-  ];
-
   meta = with lib; {
     description = "Molecular structure store for testing";
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/science/chemistry/multicharge/default.nix b/pkgs/development/libraries/science/chemistry/multicharge/default.nix
index 0203907371391..3660705242f6d 100644
--- a/pkgs/development/libraries/science/chemistry/multicharge/default.nix
+++ b/pkgs/development/libraries/science/chemistry/multicharge/default.nix
@@ -1,8 +1,12 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, cmake
+, fetchpatch2
 , gfortran
+, meson
+, ninja
+, pkg-config
+, python3
 , blas
 , lapack
 , mctc-lib
@@ -22,23 +26,28 @@ stdenv.mkDerivation rec {
     hash = "sha256-oUI5x5/Gd0EZBb1w+0jlJUF9X51FnkHFu8H7KctqXl0=";
   };
 
-  nativeBuildInputs = [ cmake gfortran ];
+  patches = [
+    # Fix finding of MKL for Intel 2021 and newer
+    # Also fix finding mstore
+    # https://github.com/grimme-lab/multicharge/pull/20
+    (fetchpatch2 {
+      url = "https://github.com/grimme-lab/multicharge/commit/98a11ac524cd2a1bd9e2aeb8f4429adb2d76ee8.patch";
+      hash = "sha256-zZ2pcbyaHjN2ZxpMhlqUtIXImrVsLk/8WIcb9IYPgBw=";
+    })
+  ];
+
+  nativeBuildInputs = [ gfortran meson ninja pkg-config python3 ];
 
   buildInputs = [ blas lapack mctc-lib mstore ];
 
   outputs = [ "out" "dev" ];
 
-  # Fix the Pkg-Config files for doubled store paths
+  doCheck = true;
+
   postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace "\''${prefix}/" ""
+    patchShebangs --build config/install-mod.py
   '';
 
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-  ];
-
-  doCheck = true;
   preCheck = ''
     export OMP_NUM_THREADS=2
   '';
diff --git a/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix b/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix
index d4f81e3a24cbd..eb8fa56455e41 100644
--- a/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix
+++ b/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix
@@ -2,7 +2,9 @@
 , lib
 , fetchFromGitHub
 , gfortran
-, cmake
+, meson
+, ninja
+, pkg-config
 , mctc-lib
 , mstore
 , toml-f
@@ -22,21 +24,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-dfXiKKCGJ69aExSKpVC3Bp//COy256R9PDyxCNmDsfo=";
   };
 
-  nativeBuildInputs = [ cmake gfortran ];
+  nativeBuildInputs = [ gfortran meson ninja pkg-config ];
 
   buildInputs = [ mctc-lib mstore toml-f blas ];
 
   outputs = [ "out" "dev" ];
 
-  # Fix the Pkg-Config files for doubled store paths
-  postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace "\''${prefix}/" ""
-  '';
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-  ];
-
   doCheck = true;
   preCheck = ''
     export OMP_NUM_THREADS=2
@@ -47,7 +40,7 @@ stdenv.mkDerivation rec {
     mainProgram = "s-dftd3";
     license = with licenses; [ lgpl3Only gpl3Only ];
     homepage = "https://github.com/dftd3/simple-dftd3";
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
     maintainers = [ maintainers.sheepforce ];
   };
 }
diff --git a/pkgs/development/libraries/science/chemistry/tblite/default.nix b/pkgs/development/libraries/science/chemistry/tblite/default.nix
index 64374972c2955..4f8c43a08e497 100644
--- a/pkgs/development/libraries/science/chemistry/tblite/default.nix
+++ b/pkgs/development/libraries/science/chemistry/tblite/default.nix
@@ -2,8 +2,10 @@
 , lib
 , fetchFromGitHub
 , fetchpatch
-, cmake
 , gfortran
+, meson
+, ninja
+, pkg-config
 , blas
 , lapack
 , mctc-lib
@@ -35,13 +37,12 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  # Fix the Pkg-Config files for doubled store paths
-  postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace "\''${prefix}/" ""
-  '';
-
-  nativeBuildInputs = [ cmake gfortran ];
+  nativeBuildInputs = [
+    gfortran
+    meson
+    ninja
+    pkg-config
+  ];
 
   buildInputs = [
     blas
@@ -56,10 +57,6 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-  ];
-
   doCheck = true;
   preCheck = ''
     export OMP_NUM_THREADS=2
diff --git a/pkgs/development/libraries/science/chemistry/tblite/python.nix b/pkgs/development/libraries/science/chemistry/tblite/python.nix
index 3a72cfaaa6a32..cfe8668204e27 100644
--- a/pkgs/development/libraries/science/chemistry/tblite/python.nix
+++ b/pkgs/development/libraries/science/chemistry/tblite/python.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
+, pythonAtLeast
 , fetchpatch
 , meson
 , ninja
@@ -15,6 +17,7 @@
 , toml-f
 , multicharge
 , dftd4
+, setuptools
 }:
 
 buildPythonPackage {
@@ -27,6 +30,8 @@ buildPythonPackage {
     pkg-config
     gfortran
     mctc-lib
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    setuptools
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/science/math/scalapack/default.nix b/pkgs/development/libraries/science/math/scalapack/default.nix
index 85aa5c4a8736a..2f8d3dbe15de3 100644
--- a/pkgs/development/libraries/science/math/scalapack/default.nix
+++ b/pkgs/development/libraries/science/math/scalapack/default.nix
@@ -63,6 +63,14 @@ stdenv.mkDerivation rec {
   # sometimes fail due to this
   checkFlagsArray = [ "ARGS=--timeout 10000" ];
 
+  postFixup = ''
+    # _IMPORT_PREFIX, used to point to lib, points to dev output. Every package using the generated
+    # cmake file will thus look for the library in the dev output instead of out.
+    # Use the absolute path to $out instead to fix the issue.
+    substituteInPlace  $dev/lib/cmake/scalapack-${version}/scalapack-targets-release.cmake \
+      --replace "\''${_IMPORT_PREFIX}" "$out"
+  '';
+
   meta = with lib; {
     homepage = "http://www.netlib.org/scalapack/";
     description = "Library of high-performance linear algebra routines for parallel distributed memory machines";
diff --git a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
index ac08cb8762533..84949e0a53447 100644
--- a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "suitesparse-graphblas";
-  version = "9.0.3";
+  version = "9.1.0";
 
   outputs = [ "out" "dev" ];
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "GraphBLAS";
     rev = "v${version}";
-    hash = "sha256-qRRrxMshLLEltCzXFv/j6NgRi6x1SHlAuKG5NfLiBFs=";
+    hash = "sha256-YK0REOqoNa55tQt6NH/0QQ07pzAImDR5kC00sbFILH8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/test-drive/default.nix b/pkgs/development/libraries/test-drive/default.nix
index b858f39498c2a..639582c3b8ae5 100644
--- a/pkgs/development/libraries/test-drive/default.nix
+++ b/pkgs/development/libraries/test-drive/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, gfortran, cmake }:
+{ stdenv, lib, fetchFromGitHub, gfortran, meson, ninja, mesonEmulatorHook }:
 
 stdenv.mkDerivation rec {
   pname = "test-drive";
@@ -11,21 +11,18 @@ stdenv.mkDerivation rec {
     hash = "sha256-ObAnHFP1Hp0knf/jtGHynVF0CCqK47eqetePx4NLmlM=";
   };
 
-  postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace 'libdir=''${prefix}/@CMAKE_INSTALL_LIBDIR@' "libdir=@CMAKE_INSTALL_LIBDIR@" \
-      --replace 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' "includedir=@CMAKE_INSTALL_INCLUDEDIR@"
-  '';
-
   nativeBuildInputs = [
     gfortran
-    cmake
+    meson
+    ninja
+  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    mesonEmulatorHook
   ];
 
   meta = with lib; {
     description = "Procedural Fortran testing framework";
     homepage = "https://github.com/fortran-lang/test-drive";
-    license = with licenses; [ asl20 mit ] ;
+    license = with licenses; [ asl20 mit ];
     platforms = platforms.linux;
     maintainers = [ maintainers.sheepforce ];
   };
diff --git a/pkgs/development/libraries/toml-f/default.nix b/pkgs/development/libraries/toml-f/default.nix
index 28fb3dadce48b..e24ceec58c075 100644
--- a/pkgs/development/libraries/toml-f/default.nix
+++ b/pkgs/development/libraries/toml-f/default.nix
@@ -2,7 +2,9 @@
 , lib
 , fetchFromGitHub
 , gfortran
-, cmake
+, meson
+, ninja
+, pkg-config
 , test-drive
 }:
 
@@ -17,29 +19,19 @@ stdenv.mkDerivation rec {
     hash = "sha256-+cac4rUNpd2w3yBdH1XoCKdJ9IgOHZioZg8AhzGY0FE=";
   };
 
-  nativeBuildInputs = [ gfortran cmake ];
+  nativeBuildInputs = [ gfortran meson ninja pkg-config ];
 
   buildInputs = [ test-drive ];
 
   outputs = [ "out" "dev" ];
 
-  # Fix the Pkg-Config files for doubled store paths
-  postPatch = ''
-    substituteInPlace config/template.pc \
-      --replace "\''${prefix}/" ""
-  '';
-
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-  ];
-
   doCheck = true;
 
   meta = with lib; {
     description = "TOML parser implementation for data serialization and deserialization in Fortran";
     license = with licenses; [ asl20 mit ];
     homepage = "https://github.com/toml-f/toml-f";
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
     maintainers = [ maintainers.sheepforce ];
   };
 }
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 7ca5ffc19020d..07fc616efacc7 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -20,8 +20,6 @@
 , wayland
 , wayland-protocols
 , libwebp
-, libwpe
-, libwpe-fdo
 , enchant2
 , xorg
 , libxkbcommon
@@ -48,7 +46,6 @@
 , libintl
 , lcms2
 , libmanette
-, openjpeg
 , geoclue2
 , sqlite
 , gst-plugins-base
@@ -56,6 +53,7 @@
 , woff2
 , bubblewrap
 , libseccomp
+, libbacktrace
 , systemd
 , xdg-dbus-proxy
 , substituteAll
@@ -70,7 +68,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "webkitgtk";
-  version = "2.42.5";
+  version = "2.44.0";
   name = "${finalAttrs.pname}-${finalAttrs.version}+abi=${if lib.versionAtLeast gtk3.version "4.0" then "6.0" else "4.${if lib.versions.major libsoup.version == "2" then "0" else "1"}"}";
 
   outputs = [ "out" "dev" "devdoc" ];
@@ -81,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz";
-    hash = "sha256-tkJ4wfILjP2/tf9XPDfYcaunSh2ybZs5906JU/5h50k=";
+    hash = "sha256-xmUw5Bulmx7bpO6J7yCyGI4nO+0El+lQhHKePPvjDIc=";
   };
 
   patches = lib.optionals stdenv.isLinux [
@@ -90,13 +88,6 @@ stdenv.mkDerivation (finalAttrs: {
       inherit (builtins) storeDir;
       inherit (addOpenGLRunpath) driverLink;
     })
-
-    # Hardcode path to WPE backend
-    # https://github.com/NixOS/nixpkgs/issues/110468
-    (substituteAll {
-      src = ./fdo-backend-path.patch;
-      wpebackend_fdo = libwpe-fdo;
-    })
   ];
 
   preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
@@ -150,17 +141,12 @@ stdenv.mkDerivation (finalAttrs: {
     libxkbcommon
     libxml2
     libxslt
+    libbacktrace
     nettle
-    openjpeg
     p11-kit
     sqlite
     woff2
-  ] ++ (with xorg; [
-    libXdamage
-    libXdmcp
-    libXt
-    libXtst
-  ]) ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.isDarwin [
     libedit
     readline
   ] ++ lib.optional (stdenv.isDarwin && !stdenv.isAarch64) (
@@ -175,8 +161,7 @@ stdenv.mkDerivation (finalAttrs: {
     libseccomp
     libmanette
     wayland
-    libwpe
-    libwpe-fdo
+    xorg.libX11
   ] ++ lib.optionals systemdSupport [
     systemd
   ] ++ lib.optionals enableGeoLocation [
@@ -184,7 +169,6 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ lib.optionals withLibsecret [
     libsecret
   ] ++ lib.optionals (lib.versionAtLeast gtk3.version "4.0") [
-    xorg.libXcomposite
     wayland-protocols
   ];
 
@@ -214,8 +198,8 @@ stdenv.mkDerivation (finalAttrs: {
     "-DENABLE_X11_TARGET=OFF"
     "-DUSE_APPLE_ICU=OFF"
     "-DUSE_OPENGL_OR_ES=OFF"
-  ] ++ lib.optionals (lib.versionAtLeast gtk3.version "4.0") [
-    "-DUSE_GTK4=ON"
+  ] ++ lib.optionals (lib.versionOlder gtk3.version "4.0") [
+    "-DUSE_GTK4=OFF"
   ] ++ lib.optionals (!systemdSupport) [
     "-DENABLE_JOURNALD_LOG=OFF"
   ];
diff --git a/pkgs/development/libraries/webkitgtk/fdo-backend-path.patch b/pkgs/development/libraries/webkitgtk/fdo-backend-path.patch
deleted file mode 100644
index 48e7d9cca7453..0000000000000
--- a/pkgs/development/libraries/webkitgtk/fdo-backend-path.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
-+++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
-@@ -84,7 +84,7 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process
- 
- #if PLATFORM(WAYLAND)
-     if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && parameters.dmaBufRendererBufferMode.isEmpty()) {
--        wpe_loader_init("libWPEBackend-fdo-1.0.so.1");
-+        wpe_loader_init("@wpebackend_fdo@/lib/libWPEBackend-fdo-1.0.so.1");
-         if (AcceleratedBackingStoreWayland::checkRequirements()) {
-             parameters.hostClientFileDescriptor = UnixFileDescriptor { wpe_renderer_host_create_client(), UnixFileDescriptor::Adopt };
-             parameters.implementationLibraryName = FileSystem::fileSystemRepresentation(String::fromLatin1(wpe_loader_get_loaded_implementation_library_name()));
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index 61027c374c11b..4dd884b45859a 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -113,14 +112,6 @@ let
 
 in
 rec {
-  wlroots_0_15 = generic {
-    version = "0.15.1";
-    hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
-    extraBuildInputs = [
-      ffmpeg_4
-    ];
-  };
-
   wlroots_0_16 = generic {
     version = "0.16.2";
     hash = "sha256-JeDDYinio14BOl6CbzAPnJDOnrk4vgGNMN++rcy2ItQ=";
diff --git a/pkgs/development/lisp-modules/packages.nix b/pkgs/development/lisp-modules/packages.nix
index 73cc1f35c657a..55c4c5abf7f86 100644
--- a/pkgs/development/lisp-modules/packages.nix
+++ b/pkgs/development/lisp-modules/packages.nix
@@ -201,6 +201,14 @@ let
     '';
   };
 
+  cephes = build-with-compile-into-pwd {
+    inherit (super.cephes) pname version src lispLibs;
+    patches = [ ./patches/cephes-make.patch ];
+    postConfigure = ''
+      substituteAllInPlace cephes.asd
+    '';
+  };
+
   clx-truetype = build-asdf-system {
     pname = "clx-truetype";
     version = "20160825-git";
diff --git a/pkgs/development/lisp-modules/patches/cephes-make.patch b/pkgs/development/lisp-modules/patches/cephes-make.patch
new file mode 100644
index 0000000000000..b67b5f70ad3ce
--- /dev/null
+++ b/pkgs/development/lisp-modules/patches/cephes-make.patch
@@ -0,0 +1,22 @@
+--- a/cephes.asd
++++ b/cephes.asd
+@@ -5,7 +5,7 @@
+ (defclass makefile (source-file) ((type :initform "m")))
+ (defmethod perform ((o load-op) (c makefile)) t)
+ (defmethod perform ((o compile-op) (c makefile))
+-  (let* ((lib-dir (system-relative-pathname "cephes" "scipy-cephes"))
++  (let* ((lib-dir #P"@out@/scipy-cephes")
+          (lib (make-pathname :directory `(:relative ,(namestring lib-dir))
+                              :name "libmd"
+                              :type #+darwin "dylib" #+(and unix (not darwin)) "so" #+(or windows win32) "dll"))
+@@ -14,7 +14,7 @@
+ 	(format *error-output* "Library ~S exists, skipping build" lib)
+ 	(format *error-output* "Building ~S~%" lib))
+     (unless built
+-      (chdir (native-namestring lib-dir))
++      (chdir "scipy-cephes")
+       (run-program "make" :output t))))
+ 
+ (defsystem "cephes"
+
+Diff finished.  Thu Mar 28 08:13:30 2024
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index a397e59b89223..e470bef93aadf 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -321,10 +321,13 @@ with prev;
   });
 
   luadbi-mysql = prev.luadbi-mysql.overrideAttrs (oa: {
-    luarocksConfig.variables = {
-      # Can't just be /include and /lib, unfortunately needs the trailing 'mysql'
-      MYSQL_INCDIR = "${libmysqlclient.dev}/include/mysql";
-      MYSQL_LIBDIR = "${libmysqlclient}/lib/mysql";
+
+    luarocksConfig = lib.recursiveUpdate oa.luarocksConfig {
+      variables = {
+        # Can't just be /include and /lib, unfortunately needs the trailing 'mysql'
+        MYSQL_INCDIR = "${libmysqlclient.dev}/include/mysql";
+        MYSQL_LIBDIR = "${libmysqlclient}/lib/mysql";
+      };
     };
     buildInputs = oa.buildInputs ++ [
       mariadb.client
diff --git a/pkgs/development/misc/brev-cli/default.nix b/pkgs/development/misc/brev-cli/default.nix
index 39824b634b11b..146d41321c6a6 100644
--- a/pkgs/development/misc/brev-cli/default.nix
+++ b/pkgs/development/misc/brev-cli/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "brev-cli";
-  version = "0.6.277";
+  version = "0.6.279";
 
   src = fetchFromGitHub {
     owner = "brevdev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-s80veDxN0GfHKOwDhxx1ArZXqk8OPSl+d/Ruxj0oLJA=";
+    sha256 = "sha256-jQkaMFTArXPSCm6aBQb/vb4JEkgHtmzJl/Iz/f/pBSY=";
   };
 
   vendorHash = "sha256-IR/tgqh8rS4uN5jSOcopCutbHCKHSU9icUfRhOgu4t8=";
diff --git a/pkgs/development/misc/resholve/README.md b/pkgs/development/misc/resholve/README.md
index 439e4ea8188d0..0e875a7656588 100644
--- a/pkgs/development/misc/resholve/README.md
+++ b/pkgs/development/misc/resholve/README.md
@@ -99,20 +99,22 @@ trivial, so I'll also link to some real-world examples:
 - [shell.nix from abathur/tdverpy](https://github.com/abathur/tdverpy/blob/e1f956df3ed1c7097a5164e0c85b178772e277f5/shell.nix#L6-L13)
 
 ```nix
-resholvedScript = resholve.writeScript "name" {
-    inputs = [ file ];
-    interpreter = "${bash}/bin/bash";
-  } ''
-    echo "Hello"
-    file .
-  '';
-resholvedScriptBin = resholve.writeScriptBin "name" {
-    inputs = [ file ];
-    interpreter = "${bash}/bin/bash";
-  } ''
-    echo "Hello"
-    file .
-  '';
+{
+  resholvedScript = resholve.writeScript "name" {
+      inputs = [ file ];
+      interpreter = "${bash}/bin/bash";
+    } ''
+      echo "Hello"
+      file .
+    '';
+  resholvedScriptBin = resholve.writeScriptBin "name" {
+      inputs = [ file ];
+      interpreter = "${bash}/bin/bash";
+    } ''
+      echo "Hello"
+      file .
+    '';
+}
 ```
 
 
@@ -212,29 +214,31 @@ This will hopefully make more sense when you see it. Here are CLI examples
 from the manpage, and the Nix equivalents:
 
 ```nix
-# --fake 'f:setUp;tearDown builtin:setopt source:/etc/bashrc'
-fake = {
-  # fake accepts the initial of valid identifier types as a CLI convenience.
-  # Use full names in the Nix API.
-  function = [ "setUp" "tearDown" ];
-  builtin = [ "setopt" ];
-  source = [ "/etc/bashrc" ];
-};
-
-# --fix 'aliases $GIT:gix /bin/bash'
-fix = {
-  # all single-word directives use `true` as value
-  aliases = true;
-  "$GIT" = [ "gix" ];
-  "/bin/bash";
-};
-
-# --keep 'source:$HOME /etc/bashrc ~/.bashrc'
-keep = {
-  source = [ "$HOME" ];
-  "/etc/bashrc" = true;
-  "~/.bashrc" = true;
-};
+{
+  # --fake 'f:setUp;tearDown builtin:setopt source:/etc/bashrc'
+  fake = {
+    # fake accepts the initial of valid identifier types as a CLI convenience.
+    # Use full names in the Nix API.
+    function = [ "setUp" "tearDown" ];
+    builtin = [ "setopt" ];
+    source = [ "/etc/bashrc" ];
+  };
+
+  # --fix 'aliases $GIT:gix /bin/bash'
+  fix = {
+    # all single-word directives use `true` as value
+    aliases = true;
+    "$GIT" = [ "gix" ];
+    interpreter = "/bin/bash";
+  };
+
+  # --keep 'source:$HOME /etc/bashrc ~/.bashrc'
+  keep = {
+    source = [ "$HOME" ];
+    "/etc/bashrc" = true;
+    "~/.bashrc" = true;
+  };
+}
 ```
 
 
@@ -283,27 +287,29 @@ the main lever is the ability to substitute your own lore. This is how you'd
 do it piecemeal:
 
 ```nix
-# --execer 'cannot:${openssl.bin}/bin/openssl can:${openssl.bin}/bin/c_rehash'
-execer = [
-  /*
-    This is the same verdict binlore will
-    come up with. It's a no-op just to demo
-    how to fiddle lore via the Nix API.
-  */
-  "cannot:${openssl.bin}/bin/openssl"
-  # different verdict, but not used
-  "can:${openssl.bin}/bin/c_rehash"
-];
-
-# --wrapper '${gnugrep}/bin/egrep:${gnugrep}/bin/grep'
-wrapper = [
-  /*
-    This is the same verdict binlore will
-    come up with. It's a no-op just to demo
-    how to fiddle lore via the Nix API.
-  */
-  "${gnugrep}/bin/egrep:${gnugrep}/bin/grep"
-];
+{
+  # --execer 'cannot:${openssl.bin}/bin/openssl can:${openssl.bin}/bin/c_rehash'
+  execer = [
+    /*
+      This is the same verdict binlore will
+      come up with. It's a no-op just to demo
+      how to fiddle lore via the Nix API.
+    */
+    "cannot:${openssl.bin}/bin/openssl"
+    # different verdict, but not used
+    "can:${openssl.bin}/bin/c_rehash"
+  ];
+
+  # --wrapper '${gnugrep}/bin/egrep:${gnugrep}/bin/grep'
+  wrapper = [
+    /*
+      This is the same verdict binlore will
+      come up with. It's a no-op just to demo
+      how to fiddle lore via the Nix API.
+    */
+    "${gnugrep}/bin/egrep:${gnugrep}/bin/grep"
+  ];
+}
 ```
 
 
diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix
index e3f79cee61f13..7e83041da1367 100644
--- a/pkgs/development/php-packages/mongodb/default.nix
+++ b/pkgs/development/php-packages/mongodb/default.nix
@@ -15,13 +15,13 @@
 
 buildPecl rec {
   pname = "mongodb";
-  version = "1.17.3";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-php-driver";
     rev = version;
-    hash = "sha256-5luaCrrnL7l9zhbxYUMSlID7Sx0MQhgFKgl8F6GkGsE=";
+    hash = "sha256-KrRWogmGMGaMRhU5D5xF5LTvJ6g9XSoDA5KfJxftvws=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index d2e28b0a1b2ca..c206a881eb156 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -2,16 +2,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpstan";
-  version = "1.10.65";
+  version = "1.10.66";
 
   src = fetchFromGitHub {
     owner = "phpstan";
     repo = "phpstan-src";
     rev = finalAttrs.version;
-    hash = "sha256-mKNix5TEnr0aUHxn9cYvFafU7yLhTe8AVkHZcu0/a1M=";
+    hash = "sha256-ZEQ6oP6zyi0cL69J9ck8gAht5taPkzH+iW5ALC4saAQ=";
   };
 
-  vendorHash = "sha256-NezEoraSomeeMbY7qz2pH2EwLr/VXO1tmWJ5/2fS/qU=";
+  vendorHash = "sha256-Qp/eMhcKK32N1EMgeIspBDs28Oofwn6n2bEFKqvSx9E=";
   composerStrictValidation = false;
 
   meta = {
diff --git a/pkgs/development/python-modules/aadict/default.nix b/pkgs/development/python-modules/aadict/default.nix
index d6b5bdf9c6f02..4ddf06bbb700a 100644
--- a/pkgs/development/python-modules/aadict/default.nix
+++ b/pkgs/development/python-modules/aadict/default.nix
@@ -2,27 +2,40 @@
 , buildPythonPackage
 , fetchPypi
 , six
-, nose
-, coverage
+, pynose
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aadict";
   version = "0.2.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "013pn9ii6mkql6khgdvsd1gi7zmya418fhclm5fp7dfvann2hwx7";
+    hash = "sha256-p3MorFXbtXNdqZRBhwJRvv4TX2h6twenoXhWE2OydwQ=";
   };
 
-  propagatedBuildInputs = [ six ];
-  nativeCheckInputs = [ nose coverage ];
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    six
+  ];
+
+  nativeCheckInputs = [
+    pynose
+  ];
+
+  pythonImportsCheck = [
+    "aadict"
+  ];
 
   meta = with lib; {
+    description = "An auto-attribute dict (and a couple of other useful dict functions)";
     homepage = "https://github.com/metagriffin/aadict";
-    description = "An auto-attribute dict (and a couple of other useful dict functions).";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ glittershark ];
-    license = licenses.gpl3;
   };
 }
diff --git a/pkgs/development/python-modules/actdiag/default.nix b/pkgs/development/python-modules/actdiag/default.nix
index 6d04df9d96715..070bcd72ed4ab 100644
--- a/pkgs/development/python-modules/actdiag/default.nix
+++ b/pkgs/development/python-modules/actdiag/default.nix
@@ -2,7 +2,7 @@
 , blockdiag
 , buildPythonPackage
 , fetchFromGitHub
-, nose
+, pynose
 , pytestCheckHook
 , pythonOlder
 , setuptools
@@ -11,24 +11,27 @@
 buildPythonPackage rec {
   pname = "actdiag";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "blockdiag";
-    repo = pname;
-    rev = version;
+    repo = "actdiag";
+    rev = "refs/tags/${version}";
     hash = "sha256-WmprkHOgvlsOIg8H77P7fzEqxGnj6xaL7Df7urRkg3o=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     blockdiag
-    setuptools
   ];
 
   nativeCheckInputs = [
-    nose
+    pynose
     pytestCheckHook
   ];
 
@@ -36,16 +39,23 @@ buildPythonPackage rec {
     "src/actdiag/tests/"
   ];
 
+  disabledTests = [
+    # AttributeError: 'TestRstDirectives' object has no attribute 'assertRegexpMatches'
+    "svg"
+    "noviewbox"
+  ];
+
   pythonImportsCheck = [
     "actdiag"
   ];
 
   meta = with lib; {
     description = "Generate activity-diagram image from spec-text file (similar to Graphviz)";
-    mainProgram = "actdiag";
     homepage = "http://blockdiag.com/";
+    changelog = "https://github.com/blockdiag/actdiag/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "actdiag";
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/agate/default.nix b/pkgs/development/python-modules/agate/default.nix
index 9c464014bb619..48a30b9a40efb 100644
--- a/pkgs/development/python-modules/agate/default.nix
+++ b/pkgs/development/python-modules/agate/default.nix
@@ -7,30 +7,35 @@
 , isodate
 , leather
 , lxml
-, nose
 , parsedatetime
 , pyicu
+, pynose
 , python-slugify
-, pytimeparse
 , pythonOlder
+, pytimeparse
 , pytz
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "agate";
   version = "1.9.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "wireservice";
-    repo = pname;
+    repo = "agate";
     rev = "refs/tags/${version}";
     hash = "sha256-I7jvZA/m06kUuUcfglySaroDbJ5wbgiF2lb84EFPmpw=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     babel
     isodate
     leather
@@ -43,7 +48,7 @@ buildPythonPackage rec {
     cssselect
     glibcLocales
     lxml
-    nose
+    pynose
     pyicu
     pytz
   ];
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index 1131a4b9c93f4..348d4e8e62376 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -8,23 +8,23 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.84";
+  version = "9.2.96";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "angr";
-    repo = pname;
+    repo = "ailment";
     rev = "refs/tags/v${version}";
-    hash = "sha256-I4lZrp4coJOBB8gREmeQsCiNhMC0MqhYxd5BmYXq9BA=";
+    hash = "sha256-xc9/J360ftynKT5HYNcjR/0WX04DUDmszaAHb8h3Iao=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pyvex
   ];
 
diff --git a/pkgs/development/python-modules/aioambient/default.nix b/pkgs/development/python-modules/aioambient/default.nix
index 9619b26a0b973..5646bf02b8a2f 100644
--- a/pkgs/development/python-modules/aioambient/default.nix
+++ b/pkgs/development/python-modules/aioambient/default.nix
@@ -2,6 +2,7 @@
 , aiohttp
 , aresponses
 , buildPythonPackage
+, certifi
 , fetchFromGitHub
 , poetry-core
 , pytest-aiohttp
@@ -27,12 +28,13 @@ buildPythonPackage rec {
     hash = "sha256-eqZVY0L+2BWF7cCXW/VLQYYXNPtUF6tJHQmeZNW1W5o=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
+    certifi
     python-engineio
     python-socketio
     websockets
diff --git a/pkgs/development/python-modules/aioraven/default.nix b/pkgs/development/python-modules/aioraven/default.nix
index 227e0b62becf7..ca64f111e35e3 100644
--- a/pkgs/development/python-modules/aioraven/default.nix
+++ b/pkgs/development/python-modules/aioraven/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aioraven";
-  version = "0.5.2";
+  version = "0.5.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,14 +21,14 @@ buildPythonPackage rec {
     owner = "cottsay";
     repo = "aioraven";
     rev = "refs/tags/${version}";
-    hash = "sha256-ysmIxWy+gufX5oUfQ7Zw5xv0t/yxihFB+eAdYAWAmXs=";
+    hash = "sha256-kGCFwpMaLWxLUp8k5H5AnL21KrwohbUYLswLcLqmc3M=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     iso4217
     pyserial
     pyserial-asyncio
diff --git a/pkgs/development/python-modules/aiounifi/default.nix b/pkgs/development/python-modules/aiounifi/default.nix
index 01879192a82d4..ebb61463bf881 100644
--- a/pkgs/development/python-modules/aiounifi/default.nix
+++ b/pkgs/development/python-modules/aiounifi/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "72";
+  version = "73";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -24,22 +24,22 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = "aiounifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PrFI5ncHW4r2Re1BIqRZlz8ns6d5p6y6PASCleSmyNc=";
+    hash = "sha256-xs3+2f/CNabdXm8g2V+sEIR5kQguxi3nMeJLb8TVrck=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "setuptools==" "setuptools>=" \
-      --replace "wheel==" "wheel>="
+      --replace-fail "setuptools==" "setuptools>=" \
+      --replace-fail "wheel==" "wheel>="
 
     sed -i '/--cov=/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     orjson
     segno
@@ -63,10 +63,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for communicating with Unifi Controller API";
-    mainProgram = "aiounifi";
     homepage = "https://github.com/Kane610/aiounifi";
     changelog = "https://github.com/Kane610/aiounifi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "aiounifi";
   };
 }
diff --git a/pkgs/development/python-modules/allure-python-commons-test/default.nix b/pkgs/development/python-modules/allure-python-commons-test/default.nix
index 52a38b647a697..4a75e18835a42 100644
--- a/pkgs/development/python-modules/allure-python-commons-test/default.nix
+++ b/pkgs/development/python-modules/allure-python-commons-test/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "allure-python-commons-test";
-  version = "2.13.3";
+  version = "2.13.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DGPxOoUGecpqKugrVR9iAa1VCBoInzUGTEY4GQB13SE=";
+    hash = "sha256-WPthxhyKlN6fGdKXJLrjh3nbQ8h6CacYToyadh/p49M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index 3fee462c620b5..06a884aaa0b33 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -20,19 +20,23 @@
 , protobuf
 , psutil
 , pycparser
+, pyformlang
 , pythonOlder
+, pythonRelaxDepsHook
 , pyvex
 , rich
 , rpyc
+, setuptools
 , sortedcontainers
 , sqlalchemy
 , sympy
 , unicorn
+, unique-log-filter
 }:
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.84";
+  version = "9.2.96";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -41,10 +45,19 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "angr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qav9SUvQtcEad9lvgyrMhOcFhPAhzU/9s7ekTfohqRc=";
+    hash = "sha256-eyXjmU/K8zv5nxrt+oKkyxS00tHOYrkbTc2X9esTSSA=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [
+    "capstone"
+  ];
+
+  build-system = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  dependencies = [
     ailment
     archinfo
     cachetools
@@ -63,6 +76,7 @@ buildPythonPackage rec {
     protobuf
     psutil
     pycparser
+    pyformlang
     pyvex
     rich
     rpyc
@@ -70,6 +84,7 @@ buildPythonPackage rec {
     sqlalchemy
     sympy
     unicorn
+    unique-log-filter
   ];
 
   setupPyBuildFlags = lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/python-modules/angrcli/default.nix b/pkgs/development/python-modules/angrcli/default.nix
index 368ea4c9a27eb..cd2bf2f5508f2 100644
--- a/pkgs/development/python-modules/angrcli/default.nix
+++ b/pkgs/development/python-modules/angrcli/default.nix
@@ -1,5 +1,4 @@
-{ stdenv
-, lib
+{ lib
 , angr
 , buildPythonPackage
 , cmd2
@@ -8,28 +7,34 @@
 , pygments
 , pytestCheckHook
 , pythonOlder
+, setuptools
+, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "angrcli";
   version = "1.2.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "fmagin";
     repo = "angr-cli";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-a5ajUBQwt3xUNkeSOeGOAFf47wd4UVk+LcuAHGqbq4s=";
   };
 
   postPatch = ''
     substituteInPlace tests/test_derefs.py \
-      --replace "/bin/ls" "${coreutils}/bin/ls"
+      --replace-fail "/bin/ls" "${coreutils}/bin/ls"
   '';
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     angr
     cmd2
     pygments
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
index 69b06e58784d4..1d26565b1b962 100644
--- a/pkgs/development/python-modules/angrop/default.nix
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -11,22 +11,22 @@
 buildPythonPackage rec {
   pname = "angrop";
   version = "9.2.8";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
-    repo = pname;
+    repo = "angrop";
     rev = "refs/tags/v${version}";
     hash = "sha256-zmWdGbFzwLDP7MUqEprZcIgA7lAdCrafWYohAehJyh0=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     angr
     progressbar
     tqdm
diff --git a/pkgs/development/python-modules/annoy/default.nix b/pkgs/development/python-modules/annoy/default.nix
index 2dc3afa56a6ff..4de8d0adacb9b 100644
--- a/pkgs/development/python-modules/annoy/default.nix
+++ b/pkgs/development/python-modules/annoy/default.nix
@@ -2,14 +2,16 @@
 , buildPythonPackage
 , fetchPypi
 , h5py
-, nose
+, numpy
+, pynose
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "annoy";
   version = "1.17.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,12 +20,22 @@ buildPythonPackage rec {
     hash = "sha256-nL/r7+Cl+EPropxr5MhNYB9PQa1N7QSG8biMOwdznBU=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "'nose>=1.0'" ""
+  '';
+
+  build-system = [
+    setuptools
+  ];
+
   nativeBuildInputs = [
     h5py
   ];
 
   nativeCheckInputs = [
-    nose
+    numpy
+    pynose
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index 0ae5af5730a21..9f71aac25354a 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "1.7.4";
+  version = "1.7.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-716DAFEUDUIop1nFvC1oV7zH+GZN8+RPMPZGF84MenM=";
+    hash = "sha256-CsNLJwCdXGJeh9M+yF+ldwYrV/O87W1yI+F8Wvu0Dmg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index 16b7c1d29dcbc..b396c69a61e5a 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -5,6 +5,7 @@
 , buildPythonPackage
 , empty-files
 , fetchFromGitHub
+, fetchpatch2
 , mock
 , mrjob
 , numpy
@@ -20,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "11.1.2";
+  version = "11.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,14 +30,21 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VM4TP98bS9NmhxZz+YHMJrHKr5g6E6aYidxjKQyXp7k=";
+    hash = "sha256-VqE2Oj3b+ZfKT+fhJ9DxBClfa8Wz8w/puAnAotN3eG4=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/approvals/ApprovalTests.Python/commit/dac7c8a8aa62f31dca7a687d4dbf08158351d5e1.patch";
+      hash = "sha256-TMyfXNtzpGci6tdFRhxiKJRjCWRD5LkaffPY8EVj53E=";
+    })
+  ];
+
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     allpairspy
     approval-utilities
     beautifulsoup4
@@ -56,7 +64,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # Tests expects paths below ApprovalTests.Python directory
+    # Tests expect paths below ApprovalTests.Python directory
     "test_received_filename"
     "test_pytest_namer"
   ];
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index a62c3dc8251de..22ef8222b04b2 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -17,21 +17,21 @@
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "5.6.4";
+  version = "5.6.6";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = "vulnerability-db";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Uq0DXrNQRVhQaPXXGNjbnPhOYoPpa8H3WuDdotCKS8c=";
+    hash = "sha256-wVl2C1AG9LbSh/p95fstJyJr6JnhZFIhNvq8mhpg13Q=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-warn " --cov-report=term-missing --no-cov-on-fail --cov vdb" ""
+      --replace-fail " --cov-report=term-missing --no-cov-on-fail --cov vdb" ""
   '';
 
   pythonRelaxDeps = [
@@ -39,12 +39,15 @@ buildPythonPackage rec {
     "semver"
   ];
 
+  build-system = [
+    setuptools
+  ];
+
   nativeBuildInputs = [
     pythonRelaxDepsHook
-    setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     appdirs
     cvss
     httpx
@@ -75,10 +78,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Vulnerability database and package search for sources such as OSV, NVD, GitHub and npm";
-    mainProgram = "vdb";
     homepage = "https://github.com/appthreat/vulnerability-db";
     changelog = "https://github.com/AppThreat/vulnerability-db/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "vdb";
   };
 }
diff --git a/pkgs/development/python-modules/apricot-select/default.nix b/pkgs/development/python-modules/apricot-select/default.nix
index 5680b15530e96..80e12792f1620 100644
--- a/pkgs/development/python-modules/apricot-select/default.nix
+++ b/pkgs/development/python-modules/apricot-select/default.nix
@@ -1,15 +1,15 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, nose
 , numba
 , numpy
+, pynose
 , pytestCheckHook
 , pythonOlder
-, torchvision
 , scikit-learn
 , scipy
 , setuptools
+, torchvision
 , tqdm
 }:
 
@@ -31,11 +31,11 @@ buildPythonPackage rec {
     sed -i '/"nose"/d' setup.py
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     numba
     numpy
     scipy
@@ -43,10 +43,10 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
+    pynose
     pytestCheckHook
-    torchvision
     scikit-learn
+    torchvision
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 35fc62a91b76b..3bee9cd94282e 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -9,23 +9,23 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.84";
+  version = "9.2.96";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "angr";
-    repo = pname;
+    repo = "archinfo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-drZuQRQ2XukCimH/SG6CRCL4avyMEcKxuj+Rinp7lJQ=";
+    hash = "sha256-g/fxj/6dMVLoW4hFtVDEjHjdJiB3KE2XB3c0ihclqeM=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
+  dependencies = lib.optionals (pythonOlder "3.11") [
     backports-strenum
   ];
 
diff --git a/pkgs/development/python-modules/argilla/default.nix b/pkgs/development/python-modules/argilla/default.nix
index f4886e311f850..bd05a3d076f56 100644
--- a/pkgs/development/python-modules/argilla/default.nix
+++ b/pkgs/development/python-modules/argilla/default.nix
@@ -65,7 +65,7 @@
 }:
 let
   pname = "argilla";
-  version = "1.26.0";
+  version = "1.26.1";
   optional-dependencies = {
     server = [
       fastapi
@@ -126,7 +126,7 @@ buildPythonPackage {
     owner = "argilla-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-+8oN3afbpBQU2tRb2Oq12IlmoCg4O1LUHtt4hl2FOEI=";
+    hash = "sha256-7d8zvP06GrHrSEJn2NNv2BUNea1wamf21e+qa1dZU18=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/asciimatics/default.nix b/pkgs/development/python-modules/asciimatics/default.nix
index 68607924c1de2..0a9736bebe508 100644
--- a/pkgs/development/python-modules/asciimatics/default.nix
+++ b/pkgs/development/python-modules/asciimatics/default.nix
@@ -1,45 +1,40 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools-scm
-, pyfiglet
 , pillow
+, pyfiglet
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
 , wcwidth
-, future
-, mock
-, nose
 }:
 
 buildPythonPackage rec {
   pname = "asciimatics";
   version = "1.15.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-z905gEJydRnYtz5iuO+CwL7P7U60IImcO5bJjQuWgho=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pyfiglet
     pillow
     wcwidth
-    future
   ];
 
   nativeCheckInputs = [
-    mock
-    nose
+    pytestCheckHook
   ];
 
-  # tests require a pty emulator
-  # which is too complicated to setup here
-  doCheck = false;
-
   pythonImportsCheck =  [
     "asciimatics.effects"
     "asciimatics.renderers"
@@ -48,8 +43,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Helps to create full-screen text UIs (from interactive forms to ASCII animations) on any platform";
+    description = "Module to create full-screen text UIs (from interactive forms to ASCII animations)";
     homepage = "https://github.com/peterbrittain/asciimatics";
+    changelog = "https://github.com/peterbrittain/asciimatics/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ cmcdragonkai ];
   };
diff --git a/pkgs/development/python-modules/asf-search/default.nix b/pkgs/development/python-modules/asf-search/default.nix
index e454101b25121..cffe2c0646227 100644
--- a/pkgs/development/python-modules/asf-search/default.nix
+++ b/pkgs/development/python-modules/asf-search/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "asf-search";
-  version = "7.0.7";
+  version = "7.0.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "asfadmin";
     repo = "Discovery-asf_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4DqZGDg9VZsBWaVb3WpAegZVW1lk/5f9AR5Gxgik1gQ=";
+    hash = "sha256-wmTt6JFuigpFo/0s9DmKfAZT0dPPyoNeVRlh8vz/jkY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/asgi-lifespan/default.nix b/pkgs/development/python-modules/asgi-lifespan/default.nix
new file mode 100644
index 0000000000000..05e21d84585f9
--- /dev/null
+++ b/pkgs/development/python-modules/asgi-lifespan/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools
+, setuptools-scm
+, sniffio
+}:
+
+buildPythonPackage rec {
+  pname = "asgi-lifespan";
+  version = "2.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "florimondmanca";
+    repo = "asgi-lifespan";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Jgmd/4c1lxHM/qi3MJNN1aSSUJrI7CRNwwHrFwwcCkc=";
+  };
+
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+  '';
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    sniffio
+  ];
+
+  # Circular dependencies, starlette
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "asgi_lifespan"
+  ];
+
+  meta = with lib; {
+    description = "Programmatic startup/shutdown of ASGI apps";
+    homepage = "https://github.com/florimondmanca/asgi-lifespan";
+    changelog = "https://github.com/florimondmanca/asgi-lifespan/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asyncstdlib/default.nix b/pkgs/development/python-modules/asyncstdlib/default.nix
index 57306bd01a4dc..c31beceb1496d 100644
--- a/pkgs/development/python-modules/asyncstdlib/default.nix
+++ b/pkgs/development/python-modules/asyncstdlib/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "asyncstdlib";
-  version = "3.12.1";
+  version = "3.12.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,10 +17,10 @@ buildPythonPackage rec {
     owner = "maxfischer2781";
     repo = "asyncstdlib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F7jS2EHiq+gK4a6+wJ8CA2YvwR37PP3yvbsLp3uE8R8=";
+    hash = "sha256-5DQM8m3aeCZAXOi+Rm+iM409juBBYdZDNqBAbhyTm/M=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     flit-core
   ];
 
diff --git a/pkgs/development/python-modules/awscrt/default.nix b/pkgs/development/python-modules/awscrt/default.nix
index b22836dd04b85..3343c46241bbd 100644
--- a/pkgs/development/python-modules/awscrt/default.nix
+++ b/pkgs/development/python-modules/awscrt/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "awscrt";
-  version = "0.20.5";
+  version = "0.20.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-v5zpSzU4M3G6tcvPnR4tLxjEhByDKz73qAor9yEjKdI=";
+    hash = "sha256-4LcUK7Zx1EVE2HlyhUbf1NnH7EYNEyJNXacwvqePkW0=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/awswrangler/default.nix b/pkgs/development/python-modules/awswrangler/default.nix
index 7cd356214d568..674b127fcae1b 100644
--- a/pkgs/development/python-modules/awswrangler/default.nix
+++ b/pkgs/development/python-modules/awswrangler/default.nix
@@ -25,8 +25,8 @@
 
 buildPythonPackage rec {
   pname = "awswrangler";
-  version = "3.7.1";
-  format = "pyproject";
+  version = "3.7.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -34,14 +34,14 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-sdk-pandas";
     rev = "refs/tags/${version}";
-    hash = "sha256-6HocnnPG/Id+49NN3WqnSYEnsijA2r13WM2NJIxVwFs=";
+    hash = "sha256-1eb2oTiRNxA2XTpkScA5WJutN5P6FX96jC4Ra9VdonI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     gremlinpython
     jsonpath-ng
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index a6a805fd33ad2..a878a17b0f2a4 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "1.32.0";
+  version = "1.33.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "Backblaze";
     repo = "b2-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xBLMvH51zbrSuBOtMxLeQJt7Wv31OcxBbD72EuLHzuU=";
+    hash = "sha256-eMFgsjEb0DMTLqG+8IZru1dEAuKZW4dEszrznZxR+mc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/bases/default.nix b/pkgs/development/python-modules/bases/default.nix
new file mode 100644
index 0000000000000..9c25ffaa63f85
--- /dev/null
+++ b/pkgs/development/python-modules/bases/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+, pytestCheckHook
+
+, pythonOlder
+
+, setuptools
+, wheel
+, setuptools-scm
+
+  # for tests
+, base58
+
+, typing-extensions
+, typing-validation
+}:
+
+buildPythonPackage rec {
+  pname = "bases";
+  version = "0.3.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "hashberg-io";
+    repo = "bases";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-CRXVxT9uYud1CKRcdRAD0OX5sTAttrUO9E4BaavTe6A=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+    setuptools-scm
+  ];
+
+  dependencies = [
+    typing-extensions
+    typing-validation
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    base58
+  ];
+
+  pythonImportsCheck = [
+    "bases"
+    "bases.alphabet"
+    "bases.alphabet.abstract"
+    "bases.alphabet.range_alphabet"
+    "bases.alphabet.string_alphabet"
+    "bases.encoding"
+    "bases.encoding.base"
+    "bases.encoding.block"
+    "bases.encoding.errors"
+    "bases.encoding.fixchar"
+    "bases.encoding.simple"
+    "bases.encoding.zeropad"
+    "bases.random"
+  ];
+
+  meta = {
+    description = "Python library for general Base-N encodings";
+    homepage = "https://github.com/hashberg-io/bases";
+    changelog = "https://github.com/hashberg-io/bases/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vizid ];
+  };
+}
diff --git a/pkgs/development/python-modules/bc-python-hcl2/default.nix b/pkgs/development/python-modules/bc-python-hcl2/default.nix
index 7f3832eeeb052..dc74d16127609 100644
--- a/pkgs/development/python-modules/bc-python-hcl2/default.nix
+++ b/pkgs/development/python-modules/bc-python-hcl2/default.nix
@@ -2,14 +2,15 @@
 , buildPythonPackage
 , fetchPypi
 , lark
-, nose
+, pynose
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "bc-python-hcl2";
   version = "0.4.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -20,10 +21,11 @@ buildPythonPackage rec {
 
   # Nose is required during build process, so can not use `nativeCheckInputs`.
   buildInputs = [
-    nose
+    pynose
+    setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     lark
   ];
 
@@ -36,7 +38,6 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Parser for HCL2 written in Python using Lark";
-    mainProgram = "hcl2tojson";
     longDescription = ''
       This parser only supports HCL2 and isn't backwards compatible with HCL v1.
       It can be used to parse any HCL2 config file such as Terraform.
@@ -46,5 +47,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/amplify-education/python-hcl2";
     license = licenses.mit;
     maintainers = with maintainers; [ anhdle14 ];
+    mainProgram = "hcl2tojson";
   };
 }
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
index c42ebffad538d..871e896dbd957 100644
--- a/pkgs/development/python-modules/bidict/default.nix
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -50,6 +50,6 @@ buildPythonPackage rec {
     changelog = "https://bidict.readthedocs.io/changelog.html";
     description = "The bidirectional mapping library for Python.";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ jakewaksbaum ];
+    maintainers = with maintainers; [ jab jakewaksbaum ];
   };
 }
diff --git a/pkgs/development/python-modules/blockdiag/default.nix b/pkgs/development/python-modules/blockdiag/default.nix
index 4444e34759465..47b598b306cb8 100644
--- a/pkgs/development/python-modules/blockdiag/default.nix
+++ b/pkgs/development/python-modules/blockdiag/default.nix
@@ -1,31 +1,30 @@
 { lib
 , buildPythonPackage
 , docutils
+, ephem
 , fetchFromGitHub
 , fetchpatch
 , funcparserlib
-, nose
 , pillow
-, ephem
-, pythonOlder
+, pynose
 , pytestCheckHook
+, pythonOlder
 , reportlab
 , setuptools
 , webcolors
-, python
 }:
 
 buildPythonPackage rec {
   pname = "blockdiag";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "blockdiag";
     repo = "blockdiag";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-j8FoNUIJJOaahaol1MRPyY2jcPCEIlaAD4bmM2QKFFI=";
   };
 
@@ -38,18 +37,21 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
     setuptools
+  ];
+
+  dependencies = [
+    docutils
     funcparserlib
     pillow
-    webcolors
     reportlab
-    docutils
+    webcolors
   ];
 
   nativeCheckInputs = [
     ephem
-    nose
+    pynose
     pytestCheckHook
   ];
 
@@ -68,10 +70,11 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate block-diagram image from spec-text file (similar to Graphviz)";
-    mainProgram = "blockdiag";
     homepage = "http://blockdiag.com/";
+    changelog = "https://github.com/blockdiag/blockdiag/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "blockdiag";
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/boost-histogram/default.nix b/pkgs/development/python-modules/boost-histogram/default.nix
index ed29be91d81fd..14eeb53c93f25 100644
--- a/pkgs/development/python-modules/boost-histogram/default.nix
+++ b/pkgs/development/python-modules/boost-histogram/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "boost-histogram";
-  version = "1.4.0";
+  version = "1.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "boost_histogram";
     inherit version;
-    hash = "sha256-z5gmz8/hAzUJa1emH2xlafZfAVklnusiUcW/MdhZ11M=";
+    hash = "sha256-lxRvc19GfVBpdqBH8/I3zlmECpUv0jH19DH4l/sAbN0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index e792f1e6bf939..1e1a3ce4f0e7b 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -365,14 +365,14 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.70";
+  version = "1.34.74";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WlF4VNAeHKXYEX7NYP0Ehw9uuRAI+tZ13Wr/NinzF7U=";
+    hash = "sha256-Lvsns5qA9BtPc/kk3VKWtkcRrJpfVTTCvw4SUOZFJh0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cantools/default.nix b/pkgs/development/python-modules/cantools/default.nix
index 2b6c0696f1559..2b87d4de37eaa 100644
--- a/pkgs/development/python-modules/cantools/default.nix
+++ b/pkgs/development/python-modules/cantools/default.nix
@@ -27,11 +27,6 @@ buildPythonPackage rec {
     hash = "sha256-WU8q6A3q24xrCOjhMi1C4lj0DULIDWiG2E4BQ/kLWiM=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "setuptools_scm>=8" "setuptools_scm"
-  '';
-
   nativeBuildInputs = [
     setuptools
     setuptools-scm
@@ -43,14 +38,17 @@ buildPythonPackage rec {
     can
     crccheck
     diskcache
-    matplotlib
     textparser
   ];
 
+  passthru.optional-dependencies.plot = [
+    matplotlib
+  ];
+
   nativeCheckInputs = [
     parameterized
     pytestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.plot;
 
   pythonImportsCheck = [
     "cantools"
diff --git a/pkgs/development/python-modules/censys/default.nix b/pkgs/development/python-modules/censys/default.nix
index 97b4f70853871..70c7a6c4a0d23 100644
--- a/pkgs/development/python-modules/censys/default.nix
+++ b/pkgs/development/python-modules/censys/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "censys";
-  version = "2.2.11";
+  version = "2.2.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,15 +27,20 @@ buildPythonPackage rec {
     owner = "censys";
     repo = "censys-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/aB8rsyymNTXJLsf/IkA6o7M/mzyao10cl7kbxHEzGc=";
+    hash = "sha256-Gw3JbAdg/ObWdD6vl8Wuct6VCcP4GAZbiesXSSnW1Mg=";
   };
 
-  nativeBuildInputs = [
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace-fail "--cov" ""
+  '';
+
+  build-system = [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     argcomplete
     backoff
     requests
@@ -57,11 +62,6 @@ buildPythonPackage rec {
     "rich"
   ];
 
-  postPatch = ''
-    substituteInPlace pytest.ini \
-      --replace "--cov" ""
-  '';
-
   # The tests want to write a configuration file
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -74,10 +74,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API wrapper for the Censys Search Engine (censys.io)";
-    mainProgram = "censys";
     homepage = "https://github.com/censys/censys-python";
     changelog = "https://github.com/censys/censys-python/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "censys";
   };
 }
diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix
index 172392f4567fb..abea00d207986 100644
--- a/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.2.2";
+  version = "10.2.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,14 +20,14 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-beBUluOTu90H2pinBWhb0Q1KmQ0vq23k+ZyCJVoc7ls=";
+    hash = "sha256-Dim0ZRYNzmlBqrqqs0CG+I/XQYpH9DuPISXoYxi92Dc=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     googleapis-common-protos
     grpcio
     protobuf
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index b5c0dcd061508..b9526b9faa7ce 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -1,19 +1,19 @@
 { lib
 , buildPythonPackage
-, setuptools
 , cachetools
 , decorator
 , fetchFromGitHub
-, future
 , pysmt
-, pythonOlder
 , pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
+, setuptools
 , z3-solver
 }:
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.84";
+  version = "9.2.96";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,20 +22,25 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "claripy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wgCWMngda0gB+AEDFpRxQ2ots5YXE4bkBSxMtYJqLEo=";
+    hash = "sha256-rXJzJCyhsScFW1L/mVARciGDlOOBCFT69VBivjV6oig=";
   };
 
-  nativeBuildInputs = [
+  # z3 does not provide a dist-info, so python-runtime-deps-check will fail
+  pythonRemoveDeps = [
+    "z3-solver"
+  ];
+
+  build-system = [
+    pythonRelaxDepsHook
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cachetools
     decorator
-    future
     pysmt
     z3-solver
-  ];
+  ] ++ z3-solver.requiredPythonModules;
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index 20ac0c60435d0..c1e0c3b5ad17e 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -1,11 +1,12 @@
 { lib
+, archinfo
 , buildPythonPackage
 , cffi
 , fetchFromGitHub
 , minidump
-, nose
 , pefile
 , pyelftools
+, pynose
 , pytestCheckHook
 , pythonOlder
 , pyvex
@@ -16,14 +17,14 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.84";
+  version = "9.2.96";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
     owner = "angr";
     repo = "binaries";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sU9Rv2kTLYMpaalrkcOv6HlHt1u4oG482M+d7OSjJ3Y=";
+    hash = "sha256-eC9qQCrms4pSXYTrKJlfdejhl/kzUmmyfYhjlEPpgzA=";
   };
 
 in
@@ -38,14 +39,15 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "cle";
     rev = "refs/tags/v${version}";
-    hash = "sha256-N0z5wgaeWkoPuhIUj7bj1kDKgZ7pWChm1uEU4MjXjqI=";
+    hash = "sha256-osClaoAzjf3mOng38disxxSFncbc/V7Uuc1HCTdX4SQ=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    archinfo
     cffi
     minidump
     pefile
@@ -56,7 +58,7 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
+    pynose
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/cocotb/0002-Patch-remove-test_unicode_handle_assignment_deprecated-test.patch b/pkgs/development/python-modules/cocotb/0002-Patch-remove-test_unicode_handle_assignment_deprecated-test.patch
new file mode 100644
index 0000000000000..f1a6c7f975fa0
--- /dev/null
+++ b/pkgs/development/python-modules/cocotb/0002-Patch-remove-test_unicode_handle_assignment_deprecated-test.patch
@@ -0,0 +1,25 @@
+diff --git a/tests/test_cases/test_cocotb/test_deprecated.py b/tests/test_cases/test_cocotb/test_deprecated.py
+index 523b93ba..b4f1701e 100644
+--- a/tests/test_cases/test_cocotb/test_deprecated.py
++++ b/tests/test_cases/test_cocotb/test_deprecated.py
+@@ -26,20 +26,6 @@ async def test_returnvalue_deprecated(dut):
+     assert val == 42
+ 
+ 
+-# strings are not supported on Icarus (gh-2585) or GHDL (gh-2584)
+-@cocotb.test(
+-    expect_error=AttributeError
+-    if cocotb.SIM_NAME.lower().startswith("icarus")
+-    else TypeError
+-    if cocotb.SIM_NAME.lower().startswith("ghdl")
+-    else ()
+-)
+-async def test_unicode_handle_assignment_deprecated(dut):
+-    with pytest.warns(DeprecationWarning, match=".*bytes.*"):
+-        dut.stream_in_string.value = "Bad idea"
+-        await cocotb.triggers.ReadWrite()
+-
+-
+ @cocotb.test()
+ async def test_convert_handle_to_string_deprecated(dut):
+     dut.stream_in_data.value = 0
diff --git a/pkgs/development/python-modules/cocotb/default.nix b/pkgs/development/python-modules/cocotb/default.nix
index 0e758490b8030..8d996a4ebb043 100644
--- a/pkgs/development/python-modules/cocotb/default.nix
+++ b/pkgs/development/python-modules/cocotb/default.nix
@@ -52,6 +52,10 @@ buildPythonPackage rec {
   patches = [
     # Fix "can't link with bundle (MH_BUNDLE) only dylibs (MH_DYLIB) file" error
     ./0001-Patch-LDCXXSHARED-for-macOS-along-with-LDSHARED.patch
+
+    # For the 1.8.1 release only: remove the test_unicode_handle_assignment_deprecated test
+    # It's more thoroughly removed upstream master with 425e1edb8e7133f4a891f2f87552aa2748cd8d2c
+    ./0002-Patch-remove-test_unicode_handle_assignment_deprecated-test.patch
   ];
 
   nativeCheckInputs = [ cocotb-bus pytestCheckHook swig verilog ghdl ];
diff --git a/pkgs/development/python-modules/craft-application-1/default.nix b/pkgs/development/python-modules/craft-application-1/default.nix
new file mode 100644
index 0000000000000..50685f0c16cee
--- /dev/null
+++ b/pkgs/development/python-modules/craft-application-1/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, craft-cli
+, craft-parts
+, craft-providers
+, pydantic-yaml-0
+, pyyaml
+, setuptools
+, setuptools-scm
+, pytestCheckHook
+, pytest-check
+, pytest-mock
+, hypothesis
+}:
+
+buildPythonPackage rec {
+  pname = "craft-application-1";
+  version = "1.2.1";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "craft-application";
+    rev = "refs/tags/${version}";
+    hash = "sha256-CXZEWVoE66dlQJp4G8tinufjyaDJaH1Muxz/qd/81oA=";
+  };
+
+  postPatch = ''
+    substituteInPlace craft_application/__init__.py \
+      --replace-fail "dev" "${version}"
+
+    substituteInPlace pyproject.toml \
+      --replace-fail "setuptools==67.7.2" "setuptools"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    craft-cli
+    craft-parts
+    craft-providers
+    pydantic-yaml-0
+    pyyaml
+  ];
+
+  pythonImportsCheck = [
+    "craft_application"
+  ];
+
+  nativeCheckInputs = [
+    hypothesis
+    pytest-check
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  pytestFlagsArray = [ "tests/unit" ];
+
+  disabledTests = [
+    "test_to_yaml_file"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "The basis for Canonical craft applications";
+    homepage = "https://github.com/canonical/craft-application";
+    changelog = "https://github.com/canonical/craft-application/releases/tag/${version}";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/python-modules/craft-archives/default.nix b/pkgs/development/python-modules/craft-archives/default.nix
new file mode 100644
index 0000000000000..3fb3b0e9f0fa9
--- /dev/null
+++ b/pkgs/development/python-modules/craft-archives/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, launchpadlib
+, lazr-restfulclient
+, overrides
+, pydantic_1
+, setuptools
+, setuptools-scm
+, tabulate
+, pytest-check
+, pytest-mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "craft-archives";
+  version = "1.1.3";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "craft-archives";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ZUqMjbOsHwzZyn0NsSTlZTljzagYEirWKEGatXVL43g=";
+  };
+
+  postPatch = ''
+    substituteInPlace craft_archives/__init__.py \
+      --replace-fail "dev" "${version}"
+
+    substituteInPlace pyproject.toml \
+      --replace-fail "setuptools==67.7.2" "setuptools"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    launchpadlib
+    lazr-restfulclient
+    overrides
+    pydantic_1
+    tabulate
+  ];
+
+  pythonImportsCheck = [
+    "craft_archives"
+  ];
+
+  nativeCheckInputs = [
+    pytest-check
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests/unit" ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "A library for handling archives/repositories in Canonical craft applications";
+    homepage = "https://github.com/canonical/craft-archives";
+    changelog = "https://github.com/canonical/craft-archives/releases/tag/${version}";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/python-modules/craft-cli/default.nix b/pkgs/development/python-modules/craft-cli/default.nix
new file mode 100644
index 0000000000000..17537a0c99672
--- /dev/null
+++ b/pkgs/development/python-modules/craft-cli/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, platformdirs
+, pydantic_1
+, pyyaml
+, setuptools
+, setuptools-scm
+, pytest-check
+, pytest-mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "craft-cli";
+  version = "2.5.1";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "craft-cli";
+    rev = "refs/tags/${version}";
+    hash = "sha256-yEKF04OPu4paRrghAP78r9hu6cqkUy6z/V7cHNys82I=";
+  };
+
+  postPatch = ''
+    substituteInPlace craft_cli/__init__.py \
+      --replace-fail "dev" "${version}"
+
+    substituteInPlace pyproject.toml \
+      --replace-fail "setuptools==67.7.2" "setuptools"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    platformdirs
+    pydantic_1
+    pyyaml
+  ];
+
+  pythonImportsCheck = [
+    "craft_cli"
+  ];
+
+  nativeCheckInputs = [
+    pytest-check
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests/unit" ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "A CLI builder for Canonical's CLI Guidelines";
+    homepage = "https://github.com/canonical/craft-cli";
+    changelog = "https://github.com/canonical/craft-cli/releases/tag/${version}";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/craft-grammar/default.nix b/pkgs/development/python-modules/craft-grammar/default.nix
new file mode 100644
index 0000000000000..3907317db924f
--- /dev/null
+++ b/pkgs/development/python-modules/craft-grammar/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, overrides
+, setuptools
+, pytest-check
+, pytest-mock
+, pytestCheckHook
+, pydantic_1
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "craft-grammar";
+  version = "1.1.2";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "craft-grammar";
+    rev = "refs/tags/${version}";
+    hash = "sha256-23KLIO2yHXGe/zb3B8LirJsh+LY9z0c5ZGtF392Kszo";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    overrides
+  ];
+
+  pythonImportsCheck = [
+    "craft_grammar"
+  ];
+
+  nativeCheckInputs = [
+    pydantic_1
+    pytestCheckHook
+    pyyaml
+  ];
+
+  pytestFlagsArray = [ "tests/unit" ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Advanced grammar for Canonical's craft-parts library";
+    homepage = "https://github.com/canonical/craft-grammar";
+    changelog = "https://github.com/canonical/craft-grammar/releases/tag/${version}";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/python-modules/craft-parts/bash-path.patch b/pkgs/development/python-modules/craft-parts/bash-path.patch
new file mode 100644
index 0000000000000..80e63d48003d8
--- /dev/null
+++ b/pkgs/development/python-modules/craft-parts/bash-path.patch
@@ -0,0 +1,41 @@
+diff --git a/craft_parts/executor/step_handler.py b/craft_parts/executor/step_handler.py
+index 404df69..f90e2ac 100644
+--- a/craft_parts/executor/step_handler.py
++++ b/craft_parts/executor/step_handler.py
+@@ -243,8 +243,9 @@ class StepHandler:
+                 print(script, file=script_file)
+                 script_file.flush()
+                 script_file.seek(0)
++                import shutil
+                 process = subprocess.Popen(  # pylint: disable=consider-using-with
+-                    ["/bin/bash"],
++                    [shutil.which("bash")],
+                     stdin=script_file,
+                     cwd=work_dir,
+                     stdout=self._stdout,
+@@ -394,7 +395,8 @@ def _create_and_run_script(
+ ) -> None:
+     """Create a script with step-specific commands and execute it."""
+     with script_path.open("w") as run_file:
+-        print("#!/bin/bash", file=run_file)
++        import shutil
++        print(f"#!{shutil.which('bash')}", file=run_file)
+         print("set -euo pipefail", file=run_file)
+ 
+         if build_environment_script_path:
+diff --git a/craft_parts/plugins/validator.py b/craft_parts/plugins/validator.py
+index b8d8f11..fce0e72 100644
+--- a/craft_parts/plugins/validator.py
++++ b/craft_parts/plugins/validator.py
+@@ -142,9 +142,9 @@ class PluginEnvironmentValidator:
+             print(self._env, file=env_file)
+             print(cmd, file=env_file)
+             env_file.flush()
+-
++            import shutil
+             proc = subprocess.run(
+-                ["/bin/bash", env_file.name],
++                [shutil.which("bash"), env_file.name],
+                 check=True,
+                 capture_output=True,
+                 text=True,
diff --git a/pkgs/development/python-modules/craft-parts/default.nix b/pkgs/development/python-modules/craft-parts/default.nix
new file mode 100644
index 0000000000000..bf8367a0ff498
--- /dev/null
+++ b/pkgs/development/python-modules/craft-parts/default.nix
@@ -0,0 +1,119 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, overrides
+, pydantic_1
+, pydantic-yaml-0
+, pyxdg
+, pyyaml
+, requests
+, requests-unixsocket
+, types-pyyaml
+, urllib3
+, pytestCheckHook
+, pytest-check
+, pytest-mock
+, pytest-subprocess
+, requests-mock
+, hypothesis
+, git
+, squashfsTools
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "craft-parts";
+  version = "1.26.2";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "craft-parts";
+    rev = "refs/tags/${version}";
+    hash = "sha256-wHv0JWffS916RK4Kgk+FuRthx+ajh0Ka4DBwGrLdUBs=";
+  };
+
+  patches = [
+    ./bash-path.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "pydantic-yaml[pyyaml]>=0.11.0,<1.0.0" "pydantic-yaml[pyyaml]" \
+      --replace-fail "urllib3<2" "urllib3"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    overrides
+    pydantic_1
+    pydantic-yaml-0
+    pyxdg
+    pyyaml
+    requests
+    requests-unixsocket
+    types-pyyaml
+    urllib3
+  ];
+
+  pythonImportsCheck = [
+    "craft_parts"
+  ];
+
+  nativeCheckInputs = [
+    git
+    hypothesis
+    pytest-check
+    pytest-mock
+    pytest-subprocess
+    pytestCheckHook
+    requests-mock
+    squashfsTools
+  ];
+
+  pytestFlagsArray = [ "tests/unit" ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    # Relies upon paths not present in Nix (like /bin/bash)
+    "test_run_builtin_build"
+    "test_run_prime"
+    "test_get_build_packages_with_source_type"
+    "test_get_build_packages"
+  ];
+
+  disabledTestPaths = [
+    # Relies upon filesystem extended attributes, and suid/guid bits
+    "tests/unit/sources/test_base.py"
+    "tests/unit/packages/test_base.py"
+    "tests/unit/state_manager"
+    "tests/unit/test_xattrs.py"
+    "tests/unit/packages/test_normalize.py"
+    # Relies upon presence of apt/dpkg.
+    "tests/unit/packages/test_apt_cache.py"
+    "tests/unit/packages/test_deb.py"
+    "tests/unit/packages/test_chisel.py"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Software artifact parts builder from Canonical";
+    homepage = "https://github.com/canonical/craft-parts";
+    changelog = "https://github.com/canonical/craft-parts/releases/tag/${version}";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/python-modules/craft-providers/default.nix b/pkgs/development/python-modules/craft-providers/default.nix
new file mode 100644
index 0000000000000..d1b824716d6d5
--- /dev/null
+++ b/pkgs/development/python-modules/craft-providers/default.nix
@@ -0,0 +1,111 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, packaging
+, platformdirs
+, pydantic_1
+, pyyaml
+, requests-unixsocket
+, setuptools
+, setuptools-scm
+, urllib3
+, pytest-check
+, pytest-mock
+, pytestCheckHook
+, responses
+, freezegun
+, pytest-subprocess
+, pytest-logdog
+}:
+
+buildPythonPackage rec {
+  pname = "craft-providers";
+  version = "1.23.0";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "craft-providers";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9ZoNgpuGytwozRsw0wnS3d2UBOIsh3VI/uzB1RD2Zac=";
+  };
+
+  patches = [
+    ./inject-snaps.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace craft_providers/lxd/installer.py \
+      --replace-fail "/var/snap/lxd/common/lxd/unix.socket" "/var/lib/lxd/unix.socket"
+
+    substituteInPlace craft_providers/__init__.py \
+      --replace-fail "dev" "${version}"
+
+    # The urllib3 incompat: https://github.com/msabramo/requests-unixsocket/pull/69
+    # This is already patched in nixpkgs.
+    substituteInPlace pyproject.toml \
+      --replace-fail "setuptools==67.8.0" "setuptools" \
+      --replace-fail "urllib3<2" "urllib3"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    packaging
+    platformdirs
+    pydantic_1
+    pyyaml
+    requests-unixsocket
+    urllib3
+  ];
+
+  pythonImportsCheck = [
+    "craft_providers"
+  ];
+
+  nativeCheckInputs = [
+    freezegun
+    pytest-check
+    pytest-mock
+    pytest-subprocess
+    pytest-logdog
+    pytestCheckHook
+    responses
+  ];
+
+  preCheck = ''
+    mkdir -p check-phase
+    export HOME="$(pwd)/check-phase"
+  '';
+
+  pytestFlagsArray = [ "tests/unit" ];
+
+  disabledTestPaths = [
+    # Relies upon "logassert" python package which isn't in nixpkgs
+    "tests/unit/bases/test_ubuntu_buildd.py"
+    "tests/unit/bases/test_centos_7.py"
+    "tests/unit/bases/test_almalinux.py"
+    "tests/unit/actions/test_snap_installer.py"
+    # Relies upon "pytest-time" python package which isn't in nixpkgs
+    "tests/unit/multipass"
+    "tests/unit/lxd"
+    "tests/unit/test_base.py"
+    "tests/unit/util/test_retry.py"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Interfaces for instantiating and controlling a variety of build environments";
+    homepage = "https://github.com/canonical/craft-providers";
+    changelog = "https://github.com/canonical/craft-providers/releases/tag/${version}";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/craft-providers/inject-snaps.patch b/pkgs/development/python-modules/craft-providers/inject-snaps.patch
new file mode 100644
index 0000000000000..85dec7f8bd97e
--- /dev/null
+++ b/pkgs/development/python-modules/craft-providers/inject-snaps.patch
@@ -0,0 +1,58 @@
+diff --git a/craft_providers/base.py b/craft_providers/base.py
+index 3c914a2..d9c2cf9 100644
+--- a/craft_providers/base.py
++++ b/craft_providers/base.py
+@@ -655,37 +655,22 @@ class Base(ABC):
+                     ),
+                 )
+ 
+-            if snap.channel:
+-                try:
+-                    snap_installer.install_from_store(
+-                        executor=executor,
+-                        snap_name=snap.name,
+-                        channel=snap.channel,
+-                        classic=snap.classic,
+-                    )
+-                except SnapInstallationError as error:
+-                    raise BaseConfigurationError(
+-                        brief=(
+-                            f"failed to install snap {snap.name!r} from store"
+-                            f" channel {snap.channel!r} in target environment."
+-                        ),
+-                        details=error.details,
+-                    ) from error
+-            else:
+-                try:
+-                    snap_installer.inject_from_host(
+-                        executor=executor,
+-                        snap_name=snap.name,
+-                        classic=snap.classic,
+-                    )
+-                except SnapInstallationError as error:
+-                    raise BaseConfigurationError(
+-                        brief=(
+-                            f"failed to inject host's snap {snap.name!r} "
+-                            "into target environment."
+-                        ),
+-                        details=error.details,
+-                    ) from error
++            try:
++                channel = "latest/edge" if snap.name == "rockcraft" else "latest/stable"
++                snap_installer.install_from_store(
++                    executor=executor,
++                    snap_name=snap.name,
++                    channel=channel,
++                    classic=snap.classic,
++                )
++            except SnapInstallationError as error:
++                raise BaseConfigurationError(
++                    brief=(
++                        f"failed to install snap {snap.name!r} from store"
++                        f" channel {channel!r} in target environment."
++                    ),
++                    details=error.details,
++                ) from error
+ 
+     def wait_until_ready(self, executor: Executor) -> None:
+         """Wait until base instance is ready.
diff --git a/pkgs/development/python-modules/cssutils/default.nix b/pkgs/development/python-modules/cssutils/default.nix
index 10f62f29280c0..8695f576f2bdf 100644
--- a/pkgs/development/python-modules/cssutils/default.nix
+++ b/pkgs/development/python-modules/cssutils/default.nix
@@ -2,9 +2,7 @@
 , buildPythonPackage
 , pythonAtLeast
 , pythonOlder
-, fetchpatch
-, fetchPypi
-, setuptools
+, fetchFromGitHub
 , setuptools-scm
 , cssselect
 , jaraco-test
@@ -16,19 +14,20 @@
 
 buildPythonPackage rec {
   pname = "cssutils";
-  version = "2.9.0";
+  version = "2.10.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-iUd7PRfXkOl7n7Te9wh2cGEFV5Wq5vfIKuMulnyb5M0=";
+  src = fetchFromGitHub {
+    owner = "jaraco";
+    repo = "cssutils";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-FK+EHdfsuCnWmnfUH18gyMq6CBXICBbhJj3XrscLLOA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  build-system = [
     setuptools-scm
   ];
 
@@ -42,14 +41,8 @@ buildPythonPackage rec {
     importlib-resources
   ];
 
-  pytestFlagsArray = [
-    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
-    "-W" "ignore::pytest.PytestRemovedIn8Warning"
-  ];
-
   disabledTests = [
     # access network
-    "test_parseUrl"
     "encutils"
     "website.logging"
   ];
@@ -59,7 +52,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A CSS Cascading Style Sheets library for Python";
     homepage = "https://github.com/jaraco/cssutils";
-    changelog = "https://github.com/jaraco/cssutils/blob/v${version}/CHANGES.rst";
+    changelog = "https://github.com/jaraco/cssutils/blob/${src.rev}/NEWS.rst";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/dbt-bigquery/default.nix b/pkgs/development/python-modules/dbt-bigquery/default.nix
index cb1d12bca703d..d6401c6502a0b 100644
--- a/pkgs/development/python-modules/dbt-bigquery/default.nix
+++ b/pkgs/development/python-modules/dbt-bigquery/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dbt-bigquery";
-  version = "1.7.6";
+  version = "1.7.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,19 +24,19 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-bigquery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bF2++Bs4pvqA3GW2xJkRNa1HkqnHBbMnKHHjo1TWboM=";
+    hash = "sha256-+UF49ReSxKQ8ouutOv1b9JcU/6CNk7Yw8f1/tlRvwnU=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-    setuptools
-  ];
-
   pythonRelaxDeps = [
     "agate"
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  dependencies = [
     agate
     dbt-core
     google-cloud-bigquery
diff --git a/pkgs/development/python-modules/dbt-core/default.nix b/pkgs/development/python-modules/dbt-core/default.nix
index b537da2a30551..9a165b4925ca4 100644
--- a/pkgs/development/python-modules/dbt-core/default.nix
+++ b/pkgs/development/python-modules/dbt-core/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "dbt-core";
-  version = "1.7.10";
+  version = "1.7.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,26 +42,27 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-core";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0cKzQjAnj0JMrHyA/gOgYceM6g1URJFgQtp90m09Nkw=";
+    hash = "sha256-r51aki1fuHfp6gWkzOMA92xFeM0MXFPrNq77aKTYYWA=";
   };
 
   sourceRoot = "${src.name}/core";
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-    setuptools
-  ];
-
   pythonRelaxDeps = [
     "agate"
     "click"
     "mashumaro"
     "networkx"
     "logbook"
+    "pathspec"
     "urllib3"
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  dependencies = [
     agate
     cffi
     click
diff --git a/pkgs/development/python-modules/dbt-postgres/default.nix b/pkgs/development/python-modules/dbt-postgres/default.nix
index b2852ce6d2149..d2669cb2357e4 100644
--- a/pkgs/development/python-modules/dbt-postgres/default.nix
+++ b/pkgs/development/python-modules/dbt-postgres/default.nix
@@ -19,11 +19,11 @@ buildPythonPackage {
 
   env.DBT_PSYCOPG2_NAME = "psycopg2";
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     agate
     dbt-core
     psycopg2
diff --git a/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix b/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
index 894dbed29f265..d63a0cee0447a 100644
--- a/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
+++ b/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
@@ -36,12 +36,12 @@ buildPythonPackage rec {
     "importlib-metadata"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     dateutils
     importlib-metadata
@@ -63,9 +63,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    changelog = "https://github.com/dbt-labs/dbt-semantic-interfaces/releases/tag/v${version}";
-    description = "shared interfaces used by dbt-core and MetricFlow projects";
+    description = "Shared interfaces used by dbt-core and MetricFlow projects";
     homepage = "https://github.com/dbt-labs/dbt-semantic-interfaces";
+    changelog = "https://github.com/dbt-labs/dbt-semantic-interfaces/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ pbsds ];
   };
diff --git a/pkgs/development/python-modules/dbt-snowflake/default.nix b/pkgs/development/python-modules/dbt-snowflake/default.nix
index ef3cb866c2b2a..a25ffaba5581b 100644
--- a/pkgs/development/python-modules/dbt-snowflake/default.nix
+++ b/pkgs/development/python-modules/dbt-snowflake/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "dbt-snowflake";
-  version = "1.7.2";
+  version = "1.7.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,14 +19,14 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-snowflake";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OyUBqSNHMedCDsY280O8VAmxeyeF5J0snk5o6XhE2V4=";
+    hash = "sha256-ksnLQdoXR8KVtYTFdlaWT8UYjAsLNyEVVap/QHtm+j8=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dbt-core
     snowflake-connector-python
   ] ++ snowflake-connector-python.optional-dependencies.secure-local-storage;
diff --git a/pkgs/development/python-modules/deal/default.nix b/pkgs/development/python-modules/deal/default.nix
index b24d8be44826b..41d966c8f1e80 100644
--- a/pkgs/development/python-modules/deal/default.nix
+++ b/pkgs/development/python-modules/deal/default.nix
@@ -1,49 +1,49 @@
 { lib
+, astroid
 , buildPythonPackage
-, pythonOlder
+, deal-solver
+, docstring-parser
 , fetchFromGitHub
 , flit-core
-, astroid
-, pytestCheckHook
-, docstring-parser
-, marshmallow
-, sphinx
 , hypothesis
-, vaa
-, deal-solver
+, marshmallow
 , pygments
+, pytestCheckHook
+, pythonOlder
+, sphinx
 , typeguard
 , urllib3
-, flake8
+, vaa
 }:
 
 buildPythonPackage rec {
   pname = "deal";
-  version = "4.24.3";
-  format = "pyproject";
+  version = "4.24.4";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "life4";
-    repo = pname;
+    repo = "deal";
     rev = "refs/tags/${version}";
-    hash = "sha256-QlM3d/jmg6v3L3D45+cgcCej71U1dl4uZ6sAYGGm3tU=";
+    hash = "sha256-4orpoYfPGSvquhg9w63uUe8QbBa2RUpxaEJ9uy28+fU=";
   };
 
   postPatch = ''
     # don't do coverage
     substituteInPlace pyproject.toml \
-      --replace "\"--cov-fail-under=100\"," "" \
-      --replace "\"--cov=deal\"," "" \
-      --replace "\"--cov-report=html\"," "" \
-      --replace "\"--cov-report=term-missing:skip-covered\"," ""
+      --replace-fail '"--cov-fail-under=100",' "" \
+      --replace-fail '"--cov=deal",' "" \
+      --replace-fail '"--cov-report=html",' "" \
+      --replace-fail '"--cov-report=term-missing:skip-covered",' ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     flit-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astroid
     deal-solver
     pygments
@@ -51,15 +51,13 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
-
     docstring-parser
+    hypothesis
     marshmallow
+    pytestCheckHook
     sphinx
-    hypothesis
-    vaa
     urllib3
-    flake8
+    vaa
   ];
 
   pytestFlagsArray = [
@@ -67,7 +65,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # needs internet access
+    # Tests need internet access
     "test_smoke_has"
     "test_pure_offline"
     "test_raises_doesnt_override_another_contract"
@@ -84,25 +82,30 @@ buildPythonPackage rec {
     # assert errors
     "test_doctest"
     "test_no_violations"
+    "test_source_get_lambda_multiline_splitted_dec"
   ];
 
   disabledTestPaths = [
-    # needs internet access
+    # Test needs internet access
     "tests/test_runtime/test_offline.py"
     # depends on typeguard <4.0.0 for tests, but >=4.0.0 seems fine for runtime
     # https://github.com/life4/deal/blob/9be70fa1c5a0635880619b2cea83a9f6631eb236/pyproject.toml#L40
     "tests/test_testing.py"
   ];
 
-  pythonImportsCheck = [ "deal" ];
+  pythonImportsCheck = [
+    "deal"
+  ];
 
   meta = with lib; {
     description = "Library for design by contract (DbC) and checking values, exceptions, and side-effects";
     longDescription = ''
       In a nutshell, deal empowers you to write bug-free code.
-      By adding a few decorators to your code, you get for free tests, static analysis, formal verification, and much more
+      By adding a few decorators to your code, you get for free tests, static analysis, formal verification,
+      and much more.
     '';
     homepage = "https://github.com/life4/deal";
+    changelog = "https://github.com/life4/deal/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/development/python-modules/deprecat/default.nix b/pkgs/development/python-modules/deprecat/default.nix
index 194859ad531ac..a87394dea289b 100644
--- a/pkgs/development/python-modules/deprecat/default.nix
+++ b/pkgs/development/python-modules/deprecat/default.nix
@@ -10,22 +10,22 @@
 buildPythonPackage rec {
   pname = "deprecat";
   version = "2.1.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mjhajharia";
-    repo = pname;
+    repo = "deprecat";
     rev = "refs/tags/v${version}";
     hash = "sha256-uAabZAtZDhcX6TfiM0LnrAzxxS64ys+vdodmxO//0x8=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     wrapt
   ];
 
@@ -37,6 +37,11 @@ buildPythonPackage rec {
     "deprecat"
   ];
 
+  disabledTestPaths = [
+    # https://github.com/mjhajharia/deprecat/issues/13
+    "tests/test_sphinx.py"
+  ];
+
   meta = with lib; {
     description = "Decorator to deprecate old python classes, functions or methods";
     homepage = "https://github.com/mjhajharia/deprecat";
diff --git a/pkgs/development/python-modules/dirigera/default.nix b/pkgs/development/python-modules/dirigera/default.nix
index a2856ba209eac..96c62ee200893 100644
--- a/pkgs/development/python-modules/dirigera/default.nix
+++ b/pkgs/development/python-modules/dirigera/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "dirigera";
-  version = "1.0.11";
+  version = "1.0.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,14 +20,14 @@ buildPythonPackage rec {
     owner = "Leggin";
     repo = "dirigera";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kZlmfoGbvSv13+UqCE73ToLfrzzQ9AOxefRTxUvxMCg=";
+    hash = "sha256-e8kbMP5ih7MBozFbylLEBR9DrS894X4xZh62OLLSgFw=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pydantic
     requests
     websocket-client
@@ -43,10 +43,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for controlling the IKEA Dirigera Smart Home Hub";
-    mainProgram = "generate-token";
     homepage = "https://github.com/Leggin/dirigera";
     changelog = "https://github.com/Leggin/dirigera/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "generate-token";
   };
 }
diff --git a/pkgs/development/python-modules/django-webpush/default.nix b/pkgs/development/python-modules/django-webpush/default.nix
index 44d670dfeedee..5f04dccb1ca64 100644
--- a/pkgs/development/python-modules/django-webpush/default.nix
+++ b/pkgs/development/python-modules/django-webpush/default.nix
@@ -22,17 +22,21 @@ buildPythonPackage rec {
     hash = "sha256-Mwp53apdPpBcn7VfDbyDlvLAVAG65UUBhT0w9OKjKbU=";
   };
 
-  nativeBuildInputs = [
+  pythonRelaxDeps = [
+    "pywebpush"
+  ];
+
+  build-system = [
     pythonRelaxDepsHook
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     django
     pywebpush
   ];
 
-  # nothing to test
+  # Module has no tests
   doCheck = false;
 
   pythonImportsCheck = [
@@ -40,7 +44,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Package made for integrating and sending Web Push Notification in Django Application";
+    description = "Module for integrating and sending Web Push Notification in Django Application";
     homepage = "https://github.com/safwanrahman/django-webpush/";
     changelog = "https://github.com/safwanrahman/django-webpush/releases/tag/${src.rev}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/django/5.nix b/pkgs/development/python-modules/django/5.nix
index 7bbc36f27af86..2fe896e3bd3d8 100644
--- a/pkgs/development/python-modules/django/5.nix
+++ b/pkgs/development/python-modules/django/5.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
-, fetchpatch2
 , pythonOlder
 , substituteAll
 
@@ -64,11 +63,6 @@ buildPythonPackage rec {
     # disable test that excpects timezone issues
     ./django_5_disable_failing_tests.patch
 
-    (fetchpatch2 {
-      # fix test on 3.12; https://github.com/django/django/pull/17843
-      url = "https://github.com/django/django/commit/bc8471f0aac8f0c215b9471b594d159783bac19b.patch";
-      hash = "sha256-g1T9b73rmQ0uk1lB+iQy1XwK3Qin3mf5wpRsyYISJaw=";
-    })
   ] ++ lib.optionals withGdal [
     (substituteAll {
       src = ./django_5_set_geos_gdal_lib.patch;
diff --git a/pkgs/development/python-modules/dnf-plugins-core/default.nix b/pkgs/development/python-modules/dnf-plugins-core/default.nix
index 81404145e8b81..70259804158b4 100644
--- a/pkgs/development/python-modules/dnf-plugins-core/default.nix
+++ b/pkgs/development/python-modules/dnf-plugins-core/default.nix
@@ -22,7 +22,7 @@ in
 
 buildPythonPackage rec {
   pname = "dnf-plugins-core";
-  version = "4.5.0";
+  version = "4.6.0";
   format = "other";
 
   outputs = [ "out" "man" ];
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "rpm-software-management";
     repo = "dnf-plugins-core";
     rev = "refs/tags/${version}";
-    hash = "sha256-og20X2AUzoOphwF+508EobGEp/VYLtxWY7N4k327o8o=";
+    hash = "sha256-7LaI5EungJrOPgxDzK/pi4X+D3PPsrbIjYdCknKIiHA=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/dtw-python/default.nix b/pkgs/development/python-modules/dtw-python/default.nix
index 11164736a2c0d..02e4176e9b978 100644
--- a/pkgs/development/python-modules/dtw-python/default.nix
+++ b/pkgs/development/python-modules/dtw-python/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dtw-python";
-  version = "1.3.1";
+  version = "1.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "DynamicTimeWarping";
     repo = "dtw-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XO6uyQjWRPCZ7txsBJpFxr5fcNlwt+CBmV6AAWoxaHI=";
+    hash = "sha256-Y0XzAPc2iJIp799gXTO7bUcHuOrDyqkd64DulLbdcAg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dvc/default.nix b/pkgs/development/python-modules/dvc/default.nix
index 885e4915d1af8..72cb75d784c0f 100644
--- a/pkgs/development/python-modules/dvc/default.nix
+++ b/pkgs/development/python-modules/dvc/default.nix
@@ -57,7 +57,7 @@
 
 buildPythonPackage rec {
   pname = "dvc";
-  version = "3.48.4";
+  version = "3.49.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -66,7 +66,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc";
     rev = "refs/tags/${version}";
-    hash = "sha256-vO+i0BU8mQuLfgb1rcGRmlb8gpHsRxgdwuJHRERA4Pw=";
+    hash = "sha256-Qu2+zTcTIPxLRZn1GB3Q6465kSEAuN+wessBVgxEdFU=";
   };
 
   pythonRelaxDeps = [
@@ -76,17 +76,17 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace dvc/analytics.py \
-      --replace 'enabled = not os.getenv(DVC_NO_ANALYTICS)' 'enabled = False'
+      --replace-fail 'enabled = not os.getenv(DVC_NO_ANALYTICS)' 'enabled = False'
     substituteInPlace dvc/daemon.py \
       --subst-var-by dvc "$out/bin/dcv"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     pythonRelaxDepsHook
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     appdirs
     colorama
     configobj
@@ -166,10 +166,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Version Control System for Machine Learning Projects";
-    mainProgram = "dvc";
     homepage = "https://dvc.org";
     changelog = "https://github.com/iterative/dvc/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ cmcdragonkai fab ];
+    mainProgram = "dvc";
   };
 }
diff --git a/pkgs/development/python-modules/extract-msg/default.nix b/pkgs/development/python-modules/extract-msg/default.nix
index 592172fc3d259..6c6e23370261a 100644
--- a/pkgs/development/python-modules/extract-msg/default.nix
+++ b/pkgs/development/python-modules/extract-msg/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "extract-msg";
-  version = "0.48.3";
+  version = "0.48.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "TeamMsgExtractor";
     repo = "msg-extractor";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oN5blYU8LR2O1LEb6naL33UXjBk9xpINl4h6HSaN7PQ=";
+    hash = "sha256-xX25RVtkUFn+j9rALOHQOTRzqJXiEMn7i9pxCJ8so4U=";
   };
 
   pythonRelaxDeps = [
@@ -33,12 +33,12 @@ buildPythonPackage rec {
     "red-black-tree-mod"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     pythonRelaxDepsHook
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     beautifulsoup4
     compressed-rtf
     ebcdic
diff --git a/pkgs/development/python-modules/findpython/default.nix b/pkgs/development/python-modules/findpython/default.nix
index 78875b6db2c8f..aa0905fed01fe 100644
--- a/pkgs/development/python-modules/findpython/default.nix
+++ b/pkgs/development/python-modules/findpython/default.nix
@@ -15,7 +15,7 @@
 
 let
   pname = "findpython";
-  version = "0.5.1";
+  version = "0.6.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -25,7 +25,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UGSjA5PFLvyMajV5DDdbiwAF1vdPFykDW0tCZHNH4T0=";
+    hash = "sha256-A2p4QbiOLzckM6WJsfCSGVGXN9KYnrX1Nw1wr7z4R2U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fjaraskupan/default.nix b/pkgs/development/python-modules/fjaraskupan/default.nix
index 3068d6542ed7e..533847786c891 100644
--- a/pkgs/development/python-modules/fjaraskupan/default.nix
+++ b/pkgs/development/python-modules/fjaraskupan/default.nix
@@ -5,23 +5,28 @@
 , pytest-mock
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "fjaraskupan";
-  version = "2.2.0";
-  format = "setuptools";
+  version = "2.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "elupus";
-    repo = pname;
+    repo = "fjaraskupan";
     rev = "refs/tags/${version}";
-    hash = "sha256-0tNLwYckWF9GjhniEkiO+A+xDsUriUsMFZxG/FmUfps=";
+    hash = "sha256-3jw42lsCwNkFptMNpnhtbrPIkZP/8lUCcMigzq8Hbc4=";
   };
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  dependencies = [
     bleak
   ];
 
@@ -37,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Module for controlling Fjäråskupan kitchen fans";
     homepage = "https://github.com/elupus/fjaraskupan";
+    changelog = "https://github.com/elupus/fjaraskupan/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/flask-paginate/default.nix b/pkgs/development/python-modules/flask-paginate/default.nix
index f28579e04a46d..ec2082b0ec188 100644
--- a/pkgs/development/python-modules/flask-paginate/default.nix
+++ b/pkgs/development/python-modules/flask-paginate/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "flask-paginate";
-  version = "2023.10.24";
+  version = "2024.3.28";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "lixxu";
     repo = "flask-paginate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9633YLHMF9S1DLK7ZS4qmCOzslXdHLSgpKoJFNvkXlA=";
+    hash = "sha256-HqjgmqRH83N+CbTnkkEJnuo+c+n5wLwdsPXyY2i5XRg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-restx/default.nix b/pkgs/development/python-modules/flask-restx/default.nix
index 106f6cc82165b..1a9a27dc0315e 100644
--- a/pkgs/development/python-modules/flask-restx/default.nix
+++ b/pkgs/development/python-modules/flask-restx/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
@@ -16,24 +17,29 @@
 , pytest-mock
 , pytest-benchmark
 , pytestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "flask-restx";
   version = "1.3.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   # Tests not included in PyPI tarball
   src = fetchFromGitHub {
     owner = "python-restx";
-    repo = pname;
+    repo = "flask-restx";
     rev = "refs/tags/${version}";
     hash = "sha256-CBReP/u96fsr28lMV1BfLjjdBMXEvsD03wvsxkIcteI=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     aniso8601
     flask
     importlib-resources
@@ -58,6 +64,8 @@ buildPythonPackage rec {
     "--deselect=tests/test_inputs.py::URLTest::test_check"
     "--deselect=tests/test_inputs.py::EmailTest::test_valid_value_check"
     "--deselect=tests/test_logging.py::LoggingTest::test_override_app_level"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "--deselect=tests/test_inputs.py::EmailTest::test_invalid_values_check"
   ];
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
index 7920c53b8f577..a11e65955391c 100644
--- a/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "geoalchemy2";
-  version = "0.14.6";
+  version = "0.14.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "geoalchemy";
     repo = "geoalchemy2";
     rev = "refs/tags/${version}";
-    hash = "sha256-s3+w6LtewjR725O8ENl7jRer979fRZDqsnbAYJOWcIY=";
+    hash = "sha256-QYYYSYApU5WNqnRObhK6zTGVz2HtTQSMGIBwz3z9szQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/githubkit/default.nix b/pkgs/development/python-modules/githubkit/default.nix
index ad737eb7b3bc3..ac9ed0be67d5f 100644
--- a/pkgs/development/python-modules/githubkit/default.nix
+++ b/pkgs/development/python-modules/githubkit/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
       --replace-fail "--cov=githubkit --cov-append --cov-report=term-missing" ""
   '';
 
-  build-systems = [
+  build-system = [
     poetry-core
     pythonRelaxDepsHook
   ];
diff --git a/pkgs/development/python-modules/glean-parser/default.nix b/pkgs/development/python-modules/glean-parser/default.nix
index 7f0dfe2d5e87b..86a4c6248f5d4 100644
--- a/pkgs/development/python-modules/glean-parser/default.nix
+++ b/pkgs/development/python-modules/glean-parser/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "glean-parser";
-  version = "13.0.0";
+  version = "13.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "glean_parser";
     inherit version;
-    hash = "sha256-gzeAyrfgVwNLNSeGIDr5TyGvywCUy+1gEEcfXcIaX5E=";
+    hash = "sha256-/urUy+xpMO04pI31uunrTuSGu0Am3fLzIGuF+AJ50ec=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index a284b961291d0..7705598e80971 100644
--- a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
+++ b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -15,21 +15,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "1.10.0";
+  version = "1.11.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OyfMbjxwtrYLrXrjCVS+DFjGdGGsMsfHBrGzg66crkU=";
+    hash = "sha256-+oeVT/ag00BEObbqzkC/EazEwnrWvRURnz3gnCBbn4k=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     google-cloud-logging
     proto-plus
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index c4517465a55c8..f69f56fb510dc 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.20.3";
+  version = "2.21.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dq8PF5UJ5DHSu+P1H0JiVng9yVm49FjBNwyxnW974LE=";
+    hash = "sha256-lAF/C8moX6P02RPzEukwoP4hd1vWjd5cZm4vGxrd+BE=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/google-nest-sdm/default.nix b/pkgs/development/python-modules/google-nest-sdm/default.nix
index 44cd15ba33cd0..2fb82e23543f4 100644
--- a/pkgs/development/python-modules/google-nest-sdm/default.nix
+++ b/pkgs/development/python-modules/google-nest-sdm/default.nix
@@ -12,12 +12,13 @@
 , pytestCheckHook
 , pythonOlder
 , requests-oauthlib
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "google-nest-sdm";
-  version = "3.0.3";
-  format = "setuptools";
+  version = "3.0.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
@@ -25,10 +26,14 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "python-google-nest-sdm";
     rev = "refs/tags/${version}";
-    hash = "sha256-VO/TY/QBzVFxqIumVJjw+Ic0hrqkRBS+7wQKBhcN9Jw=";
+    hash = "sha256-zYHrS9y15dcyDhOoky7sB2BYkpTL3PoyNbNewKKl19E=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     aiohttp
     google-auth
     google-auth-oauthlib
@@ -57,10 +62,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for Google Nest Device Access using the Smart Device Management API";
-    mainProgram = "google_nest";
     homepage = "https://github.com/allenporter/python-google-nest-sdm";
     changelog = "https://github.com/allenporter/python-google-nest-sdm/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "google_nest";
   };
 }
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index 8ed4c6d9beea0..e8c54b19788ec 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "gspread";
-  version = "6.0.2";
+  version = "6.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "burnash";
     repo = "gspread";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NY6Q45/XuidDUeBG0QfVaStwp2+BqMSgefDifHu2erU=";
+    hash = "sha256-kuXPX+VY0qz4fldGYPbzZMFx+blzsmueews1W+AjQb0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gurobipy/darwin.nix b/pkgs/development/python-modules/gurobipy/default.nix
index ec74f46c180ad..7793009abe963 100644
--- a/pkgs/development/python-modules/gurobipy/darwin.nix
+++ b/pkgs/development/python-modules/gurobipy/default.nix
@@ -11,14 +11,20 @@ let
   pyShortVersion = "cp" + builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   platforms = rec {
     aarch64-darwin = "macosx_10_9_universal2";
+    aarch64-linux = "manylinux2014_aarch64.manylinux_2_17_aarch64";
     x86_64-darwin = aarch64-darwin;
+    x86_64-linux = "manylinux2014_x86_64.manylinux_2_17_x86_64";
   };
   platform = platforms.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   hashes = rec {
     cp311-aarch64-darwin = "sha256-pMwq4TXvr0mrKxZppeW2MQE/KrplWWFGmjKRLKwbHCI=";
+    cp311-aarch64-linux = "sha256-fxJSQUt+nk7JBGtkDi+qTl/js0hnWGZGyht4AqD9g60=";
     cp311-x86_64-darwin = cp311-aarch64-darwin;
+    cp311-x86_64-linux = "sha256-q1nmuWmlDPeNWWw4bX3KECOChNQkwU+6hItYqWcyY4M=";
     cp312-aarch64-darwin = "sha256-5+1QxYOhjbs01S3gqhkQ9Bx/0/NhbXEi710BGpiC5kM=";
+    cp312-aarch64-linux = "sha256-N7cFtibenj+SrZ7ZtevZtDUdW48DnLC4p5jB9vrWlb8=";
     cp312-x86_64-darwin = cp312-aarch64-darwin;
+    cp312-x86_64-linux = "sha256-Aw5xxvCwdgfdT7HMrWT/jKWx3RDjs8IuB4in0ZGdqcw=";
   };
   hash =
     hashes."${pyShortVersion}-${stdenv.system}"
diff --git a/pkgs/development/python-modules/gurobipy/linux.nix b/pkgs/development/python-modules/gurobipy/linux.nix
deleted file mode 100644
index a7c519406e74f..0000000000000
--- a/pkgs/development/python-modules/gurobipy/linux.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, buildPythonPackage, python, gurobi }:
-
-buildPythonPackage {
-  pname = "gurobipy";
-  version = "9.1.2";
-
-  src = gurobi.src;
-
-  setSourceRoot = "sourceRoot=$(echo gurobi*/*64)";
-
-  patches = [ ./no-clever-setup.patch ];
-
-  postInstall = ''
-    mv lib/libgurobi*.so* $out/lib
-  '';
-
-  postFixup = ''
-    patchelf --set-rpath $out/lib \
-      $out/${python.sitePackages}/gurobipy/gurobipy.so
-  '';
-
-  meta = with lib; {
-    description = "The Gurobi Python interface";
-    homepage = "https://www.gurobi.com";
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    license = licenses.unfree;
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/development/python-modules/gurobipy/no-clever-setup.patch b/pkgs/development/python-modules/gurobipy/no-clever-setup.patch
deleted file mode 100644
index bcb43a4707bfa..0000000000000
--- a/pkgs/development/python-modules/gurobipy/no-clever-setup.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -Naur a/setup.py b/setup.py
---- a/setup.py	2021-04-24 12:53:18.300255006 -0500
-+++ b/setup.py	2021-04-24 12:47:51.619052574 -0500
-@@ -15,29 +15,6 @@
- from distutils.command.install import install
- import os,sys,shutil
- 
--class GurobiClean(Command):
--    description = "remove the build directory"
--    user_options = []
--    def initialize_options(self):
--        self.cwd = None
--    def finalize_options(self):
--        self.cwd = os.path.dirname(os.path.realpath(__file__))
--    def run(self):
--        build_dir = os.path.join(os.getcwd(), "build")
--        if os.path.exists(build_dir):
--            print('removing %s' % build_dir)
--            shutil.rmtree(build_dir)
--
--class GurobiInstall(install):
--
--    # Calls the default run command, then deletes the build area
--    # (equivalent to "setup clean --all").
--    def run(self):
--        install.run(self)
--        c = GurobiClean(self.distribution)
--        c.finalize_options()
--        c.run()
--
- License = """
-     This software is covered by the Gurobi End User License Agreement.
-     By completing the Gurobi installation process and using the software,
-@@ -78,7 +55,5 @@
-       packages = ['gurobipy'],
-       package_dir={'gurobipy' : srcpath },
-       package_data = {'gurobipy' : [srcfile] },
--      cmdclass={'install' : GurobiInstall, 
--                'clean'   : GurobiClean }
-       )
- 
diff --git a/pkgs/development/python-modules/hcloud/default.nix b/pkgs/development/python-modules/hcloud/default.nix
index 86f3537a732ef..6212c4f0cc5a5 100644
--- a/pkgs/development/python-modules/hcloud/default.nix
+++ b/pkgs/development/python-modules/hcloud/default.nix
@@ -7,21 +7,26 @@
 , python-dateutil
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "hcloud";
-  version = "1.33.2";
-  format = "setuptools";
+  version = "1.34.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GCiw+HbN/0na2fiAS16On72nj09VR0Naw6wwCIQ4zl8=";
+    hash = "sha256-8hwr0K+6nLgAVMhXb/08CS7HrlLYQ/SV0K8MWH/PQk0=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     future
     requests
     python-dateutil
diff --git a/pkgs/development/python-modules/hishel/default.nix b/pkgs/development/python-modules/hishel/default.nix
index 2deba68019e5c..112d8759c62c3 100644
--- a/pkgs/development/python-modules/hishel/default.nix
+++ b/pkgs/development/python-modules/hishel/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "hishel";
-  version = "0.0.24";
+  version = "0.0.25";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,15 +26,15 @@ buildPythonPackage rec {
     owner = "karpetrosyan";
     repo = "hishel";
     rev = "refs/tags/${version}";
-    hash = "sha256-wup1rQ5MHjsBaTdfueP9y7QhutoO0xYeexZPDQpUEJk=";
+    hash = "sha256-vDzXrAGJUqG9+wOUWXeKLYraUrILJFAQXf60iCAHRPo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-fancy-pypi-readme
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
   ];
 
diff --git a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
index 969bc3a9533cd..396ff052182e2 100644
--- a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-clusters";
-  version = "2024.2.2";
+  version = "2024.3.2";
   format = "wheel";
 
   src = fetchPypi {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pname = "home_assistant_chip_clusters";
     dist = "py3";
     python = "py3";
-    hash = "sha256-OWDOJfVQJSJFng5xAQqBNpqB0nXnYVCTq1MwyPtwfIM=";
+    hash = "sha256-Imdpqy7m81oxfkzj+82afSX9juK/SOCBIMoaPjK8G+Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/home-assistant-chip-core/default.nix b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
index b7ca71bbb257d..8f05913fbd830 100644
--- a/pkgs/development/python-modules/home-assistant-chip-core/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-core";
-  version = "2024.2.2";
+  version = "2024.3.2";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -37,11 +37,11 @@ buildPythonPackage rec {
     system = {
       "aarch64-linux" = {
         name = "aarch64";
-        hash = "sha256-lo6upkkZYQCtggNU+4/S/JTUqJnAWaWFA6NTt4C2gEM=";
+        hash = "sha256-li+fmEikVnTAkgQnoiWjoZaVRwGRadTYuQySR5s8VB4=";
       };
       "x86_64-linux" = {
         name = "x86_64";
-        hash = "sha256-VwiIH/PK4fOQCc+KSHXP1VwHVK1gYnmBXTgKDT1Yt58=";
+        hash = "sha256-iUKtAz00qFklTW2ilUPGAWhpqDmnLb6D3Zdy1oHpQl0=";
       };
     }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   in fetchPypi {
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index 1593e7c9d84b7..7717982dd4e07 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.22.0";
+  version = "0.22.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jq7oCQlLXwr859mhHYolKp/N63Z0SIksMTwNL0JjfNQ=";
+    hash = "sha256-Y/oUF+d6Oo45x9cufZxjaJCQpoY0acPhetbyAt8M3pQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/icontract/default.nix b/pkgs/development/python-modules/icontract/default.nix
index e525cf89cca2e..f8b9fd589f186 100644
--- a/pkgs/development/python-modules/icontract/default.nix
+++ b/pkgs/development/python-modules/icontract/default.nix
@@ -1,26 +1,28 @@
 { lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
 , astor
 , asttokens
 , asyncstdlib
+, buildPythonPackage
 , deal
 , dpcontracts
+, fetchFromGitHub
 , numpy
 , pytestCheckHook
+, pythonOlder
+, setuptools
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "icontract";
   version = "2.6.6";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Parquery";
-    repo = pname;
+    repo = "icontract";
     rev = "refs/tags/v${version}";
     hash = "sha256-R5/FBfuTvXItfTlNZMSnO18Q+etnHbQyXFWpaOpOLes=";
   };
@@ -32,7 +34,11 @@ buildPythonPackage rec {
     export ICONTRACT_SLOW=1
   '';
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     asttokens
     typing-extensions
   ];
@@ -46,11 +52,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # AssertionError
+    "test_abstract_method_not_implemented"
+  ];
+
   disabledTestPaths = [
     # mypy decorator checks don't pass. For some reason mypy
     # doesn't check the python file provided in the test.
     "tests/test_mypy_decorators.py"
-    # those tests seems to simply re-run some typeguard tests
+    # Those tests seems to simply re-run some typeguard tests
     "tests/test_typeguard.py"
   ];
 
@@ -59,7 +70,9 @@ buildPythonPackage rec {
     "-W" "ignore::RuntimeWarning"
   ];
 
-  pythonImportsCheck = [ "icontract" ];
+  pythonImportsCheck = [
+    "icontract"
+  ];
 
   meta = with lib; {
     description = "Provide design-by-contract with informative violation messages";
diff --git a/pkgs/development/python-modules/ijson/default.nix b/pkgs/development/python-modules/ijson/default.nix
index dd490f3707834..4f99055f5ad11 100644
--- a/pkgs/development/python-modules/ijson/default.nix
+++ b/pkgs/development/python-modules/ijson/default.nix
@@ -1,26 +1,34 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, yajl
 , cffi
+, fetchPypi
 , pytestCheckHook
+, pythonOlder
+, setuptools
+, yajl
 }:
 
 buildPythonPackage rec {
   pname = "ijson";
   version = "3.2.3";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-EClOm/ictxPaBbxHkL3/YWYQQy21YZZIJwdImOF0+Rc=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   buildInputs = [
     yajl
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cffi
   ];
 
@@ -28,8 +36,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  doCheck = true;
-
   pythonImportsCheck = [
     "ijson"
   ];
@@ -39,5 +45,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ICRAR/ijson";
     changelog = "https://github.com/ICRAR/ijson/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/impacket/default.nix b/pkgs/development/python-modules/impacket/default.nix
index ba387cd8d06c7..f216aad5e431b 100644
--- a/pkgs/development/python-modules/impacket/default.nix
+++ b/pkgs/development/python-modules/impacket/default.nix
@@ -27,11 +27,11 @@ buildPythonPackage rec {
     hash = "sha256-7kA5tNKu3o9fZEeLxZ+qyGA2eWviTeqNwY8An7CQXko=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     charset-normalizer
     dsinternals
     flask
@@ -40,6 +40,7 @@ buildPythonPackage rec {
     pyasn1
     pycryptodomex
     pyopenssl
+    setuptools
     six
   ];
 
diff --git a/pkgs/development/python-modules/irc/default.nix b/pkgs/development/python-modules/irc/default.nix
index d761a26e7a734..4e724207a26f4 100644
--- a/pkgs/development/python-modules/irc/default.nix
+++ b/pkgs/development/python-modules/irc/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "irc";
-  version = "20.3.1";
+  version = "20.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gGuDr4lNixIe0eFIZqkGQBKFiN5swElcTsssXsJyKAs=";
+    hash = "sha256-fSUX9VZta/Oqhdf5jHdYth8NY+6RW/2fb1ZxOXNmRPk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index e2260aec4b14b..54abdfe48c345 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -5,6 +5,7 @@
 # See `python3Packages.jax.passthru` for CUDA tests.
 
 { absl-py
+, autoAddDriverRunpath
 , autoPatchelfHook
 , buildPythonPackage
 , config
@@ -23,7 +24,7 @@
 }:
 
 let
-  inherit (cudaPackagesGoogle) autoAddDriverRunpath cudaVersion;
+  inherit (cudaPackagesGoogle) cudaVersion;
 
   version = "0.4.24";
 
diff --git a/pkgs/development/python-modules/jira/default.nix b/pkgs/development/python-modules/jira/default.nix
index b569483f92118..1963fe2e8e89b 100644
--- a/pkgs/development/python-modules/jira/default.nix
+++ b/pkgs/development/python-modules/jira/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "jira";
-  version = "3.6.0";
+  version = "3.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "pycontribs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Wv6xjk1nyFIDKAypyQRlqFglzxe9Ems2ON3PEehUP/Q=";
+    hash = "sha256-zE0fceCnyv0qKak8sRCXPCauC0KeOmczY/ZkVoHNcS8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter-server/default.nix b/pkgs/development/python-modules/jupyter-server/default.nix
index 6b0160202d872..fbde4773c80ef 100644
--- a/pkgs/development/python-modules/jupyter-server/default.nix
+++ b/pkgs/development/python-modules/jupyter-server/default.nix
@@ -70,6 +70,9 @@ buildPythonPackage rec {
     overrides
   ];
 
+  # https://github.com/NixOS/nixpkgs/issues/299427
+  stripExclude = lib.optionals stdenv.isDarwin [ "favicon.ico" ];
+
   nativeCheckInputs = [
     ipykernel
     pytestCheckHook
diff --git a/pkgs/development/python-modules/karton-core/default.nix b/pkgs/development/python-modules/karton-core/default.nix
index 6746fd6eb710a..e9c0b9cb07c4b 100644
--- a/pkgs/development/python-modules/karton-core/default.nix
+++ b/pkgs/development/python-modules/karton-core/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "karton-core";
-  version = "5.3.3";
+  version = "5.3.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,14 +20,14 @@ buildPythonPackage rec {
     owner = "CERT-Polska";
     repo = "karton";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RVHhMKoQAqsddziK/vWGynSL9mxMuccNEGzoJTx8KAA=";
+    hash = "sha256-q12S80GZFyh7zU6iMeCkyIesMK8qXtZ1B69w8H5LpOU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     orjson
     redis
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index bb3bd33e469ec..7818871db1b71 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -1,14 +1,15 @@
 { lib
 , stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# propgatedBuildInputs
 , adal
+, buildPythonPackage
 , certifi
+, fetchFromGitHub
 , google-auth
+, mock
+, pytestCheckHook
 , python-dateutil
+, pythonOlder
+, pythonRelaxDepsHook
 , pyyaml
 , requests
 , requests-oauthlib
@@ -16,16 +17,12 @@
 , six
 , urllib3
 , websocket-client
-
-# tests
-, pytestCheckHook
-, mock
 }:
 
 buildPythonPackage rec {
   pname = "kubernetes";
   version = "28.1.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -36,20 +33,38 @@ buildPythonPackage rec {
     hash = "sha256-NKrxv5a5gkgpNG7yViTKYBYnU249taWl6fkPJa7/Rzo=";
   };
 
-  propagatedBuildInputs = [
-    adal
+  postPatch = ''
+    substituteInPlace kubernetes/base/config/kube_config_test.py \
+      --replace-fail "assertEquals" "assertEqual"
+  '';
+
+  pythonRelaxDeps = [
+    "urllib3"
+  ];
+
+  build-system = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  dependencies = [
     certifi
     google-auth
     python-dateutil
     pyyaml
     requests
     requests-oauthlib
-    setuptools
     six
     urllib3
     websocket-client
   ];
 
+  passthru.optional-dependencies = {
+    adal = [
+      adal
+    ];
+  };
+
   pythonImportsCheck = [
     "kubernetes"
   ];
@@ -57,7 +72,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     mock
     pytestCheckHook
-  ];
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # AssertionError: <class 'urllib3.poolmanager.ProxyManager'> != <class 'urllib3.poolmanager.Poolmanager'>
@@ -67,6 +82,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Kubernetes Python client";
     homepage = "https://github.com/kubernetes-client/python";
+    changelog = "https://github.com/kubernetes-client/python/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ lsix ];
   };
diff --git a/pkgs/development/python-modules/lacuscore/default.nix b/pkgs/development/python-modules/lacuscore/default.nix
index fa7949eff097c..7bf59e72eb8a3 100644
--- a/pkgs/development/python-modules/lacuscore/default.nix
+++ b/pkgs/development/python-modules/lacuscore/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "lacuscore";
-  version = "1.8.10";
+  version = "1.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "ail-project";
     repo = "LacusCore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-X3Bs/eMkpobRqiGB70ujvaIO1xWftEBZFyR9i5eN7/A=";
+    hash = "sha256-DUgMql/KCy8g63HvA7qbrv9qia+nchPLIkufWmUXKDg=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index 0f0492c1c4b42..95786643d458c 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.27";
+  version = "0.0.29";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_community";
     inherit version;
-    hash = "sha256-Jm3/vUwWZtsYicrZU/pRAtTev/eCM1NTtteGNqdhd40=";
+    hash = "sha256-2IEH+vqf4sVzPaljDGjZ7lHNM7HIiklQ56LZo49+eqM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 350e9a9036900..d1a48870d255e 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.32";
+  version = "0.1.36";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_core";
     inherit version;
-    hash = "sha256-1iaDvsvyD1HxKHV5GgQjIPReqgyHomfTC8A7waB/XsI=";
+    hash = "sha256-qiQyNwyj0qXW3RSoEKpkiL8vYi/3oKPcMPbg7Z1/X6g=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index f9352c5f9876f..1fc9cd416ecdd 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -52,7 +52,7 @@
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.11";
+  version = "0.1.13";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -61,7 +61,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langchain";
     rev = "refs/tags/v${version}";
-    hash = "sha256-I7H8W85WJCt8Dkep5UvFRVuhJS8uAeg0xF9mNPZwm2g=";
+    hash = "sha256-tBEO0GOY1cqO5FOYnBXAOSupSRhcoI9u4Nu4FieId74=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index 33fcdcad63f02..3c2cee34008ce 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.31";
+  version = "0.1.38";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eQ2oP1I7uc9s9vrDqKCIqMGuh1+MjUpLFukp3Fg0RM0=";
+    hash = "sha256-hK9zPEmO0LaRnbLTbc9ABE9a7UAZU9yZZUswu955CJU=";
   };
 
   sourceRoot = "${src.name}/python";
@@ -33,12 +33,12 @@ buildPythonPackage rec {
     "orjson"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     orjson
     pydantic
     requests
diff --git a/pkgs/development/python-modules/libretranslate/default.nix b/pkgs/development/python-modules/libretranslate/default.nix
index 8afdbf97e184b..042fd5d404d1c 100644
--- a/pkgs/development/python-modules/libretranslate/default.nix
+++ b/pkgs/development/python-modules/libretranslate/default.nix
@@ -1,7 +1,9 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonRelaxDepsHook
 , pytestCheckHook
+, hatchling
 , argostranslate
 , flask
 , flask-swagger
@@ -11,6 +13,8 @@
 , flask-session
 , waitress
 , expiringdict
+, langdetect
+, lexilang
 , ltpycld2
 , morfessor
 , appdirs
@@ -27,8 +31,7 @@
 buildPythonPackage rec {
   pname = "libretranslate";
   version = "1.5.6";
-
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "LibreTranslate";
@@ -37,7 +40,14 @@ buildPythonPackage rec {
     hash = "sha256-43VnxgtapMRKyXxqsvBgSMUxvpbLI+iOfW3FA0/POpE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    hatchling
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = true;
+
+  dependencies = [
     argostranslate
     flask
     flask-swagger
@@ -47,6 +57,8 @@ buildPythonPackage rec {
     flask-session
     waitress
     expiringdict
+    langdetect
+    lexilang
     ltpycld2
     morfessor
     appdirs
@@ -59,14 +71,6 @@ buildPythonPackage rec {
     polib
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt  \
-      --replace "==" ">="
-
-    substituteInPlace setup.py  \
-      --replace "'pytest-runner'" ""
-  '';
-
   postInstall = ''
     # expose static files to be able to serve them via web-server
     mkdir -p $out/share/libretranslate
diff --git a/pkgs/development/python-modules/librosa/default.nix b/pkgs/development/python-modules/librosa/default.nix
index 48eae549523fc..62d712aa7b1f3 100644
--- a/pkgs/development/python-modules/librosa/default.nix
+++ b/pkgs/development/python-modules/librosa/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
@@ -108,6 +109,9 @@ buildPythonPackage rec {
     "test_load_resample"
     # does not converge
     "test_nnls_vector"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # https://github.com/librosa/librosa/pull/1808
+    "test_pyin_multi_center"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix
index 7204e502d8ecf..1d26117e5ba11 100644
--- a/pkgs/development/python-modules/libtmux/default.nix
+++ b/pkgs/development/python-modules/libtmux/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.35.0";
+  version = "0.36.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tmux-python";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-1Xt2sl4L56TnveufD2j9k6eQQ+HllDxagv1APrErQYc=";
+    hash = "sha256-oJ2IGaPFMKA/amUEPZi1UO9vZtjPNQg3SIFjQWzUeSE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/lion-pytorch/default.nix b/pkgs/development/python-modules/lion-pytorch/default.nix
index e23011aeb8371..3b8552837acf3 100644
--- a/pkgs/development/python-modules/lion-pytorch/default.nix
+++ b/pkgs/development/python-modules/lion-pytorch/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "lion-pytorch";
-  version = "0.1.2";
+  version = "0.1.4";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "lucidrains";
     repo = "lion-pytorch";
     rev = "refs/tags/${version}";
-    hash = "sha256-9hdpRJvCpv3PeC7f0IXpHt6i+e6LiT0QUl5jeDGelQE=";
+    hash = "sha256-8LbALBKQ5ACwmLWYUz3GYkkkhhy8emi6n3kgwYdnDSI=";
   };
 
   propagatedBuildInputs = [ torch ];
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 71ec2af828855..3671abb0e47bd 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.34.0";
+  version = "1.34.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FRAT7wQZEO60Hf3sJv+jLIHif8ium0j2Mr1mU/XKlCM=";
+    hash = "sha256-ei4fMjEL7IytpQs/szTjRNu+3TByLZLVYX7qxwjT4OQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/llama-index-agent-openai/default.nix b/pkgs/development/python-modules/llama-index-agent-openai/default.nix
index 5663e9f118289..35b473ad8ef6b 100644
--- a/pkgs/development/python-modules/llama-index-agent-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-agent-openai/default.nix
@@ -1,25 +1,36 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , llama-index-core
 , llama-index-llms-openai
 , poetry-core
+, pythonOlder
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-agent-openai";
+  version = "0.2.1";
+  pyproject = true;
 
-  inherit (llama-index-core) version src meta;
+  disabled = pythonOlder "3.8";
 
-  pyproject = true;
+  src = fetchPypi {
+    pname = "llama_index_agent_openai";
+    inherit version;
+    hash = "sha256-ydCixD0vdSuA99PdflbhEsSd3b0Gl0lzFTz9uTdLYrQ=";
+  };
 
-  sourceRoot = "${src.name}/llama-index-integrations/agent/${pname}";
+  pythonRelaxDeps = [
+    "llama-index-llms-openai"
+  ];
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     llama-index-core
     llama-index-llms-openai
   ];
@@ -27,4 +38,11 @@ buildPythonPackage rec {
   pythonImportsCheck = [
     "llama_index.agent.openai"
   ];
+
+  meta = with lib; {
+    description = "LlamaIndex Agent Integration for OpenAI";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/agent/llama-index-agent-openai";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
 }
diff --git a/pkgs/development/python-modules/llama-index-core/default.nix b/pkgs/development/python-modules/llama-index-core/default.nix
index 45b92fdae27bd..5146eca9d4d69 100644
--- a/pkgs/development/python-modules/llama-index-core/default.nix
+++ b/pkgs/development/python-modules/llama-index-core/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-core";
-  version = "0.10.23";
+  version = "0.10.25";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     owner = "run-llama";
     repo = "llama_index";
     rev = "refs/tags/v${version}";
-    hash = "sha256-koFdHpcMX4Qg+LLDcjHx4wYxHnrJaAqebpba0ejINzo=";
+    hash = "sha256-E06Fxj6dD0BVYpme107IdgGg0Y7vhNR9zFvyKL0Yqws=";
   };
 
   sourceRoot = "${src.name}/${pname}";
diff --git a/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix b/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
new file mode 100644
index 0000000000000..c30cb3e72e2af
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, llama-index-core
+, poetry-core
+, pythonOlder
+, sentence-transformers
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-embeddings-huggingface";
+  version = "0.2.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_embeddings_huggingface";
+    inherit version;
+    hash = "sha256-3PCplFXzfE4aL91c1lyd0aRRu4aMP4DDNcTQybadAHE=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    llama-index-core
+    sentence-transformers
+  ];
+
+  # Tests are only available in the mono repo
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "llama_index.embeddings.huggingface"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Embeddings Integration for Huggingface";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/embeddings/llama-index-embeddings-huggingface";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix b/pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix
new file mode 100644
index 0000000000000..509bf54d2872a
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-generativeai
+, llama-index-core
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-embeddings-ollama";
+  version = "0.1.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    pname = "llama_index_embeddings_ollama";
+    inherit version;
+    hash = "sha256-qeCAm93S5K2IjySVGe3H49M5x05OA/xaQMMGDcQdR6k=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    llama-index-core
+  ];
+
+  # Tests are only available in the mono repo
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "llama_index.embeddings.ollama"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Llms Integration for Ollama";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/embeddings/llama-index-embeddings-ollama";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
new file mode 100644
index 0000000000000..783ace83f6560
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, llama-index-core
+, nebula3-python
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-graph-stores-nebula";
+  version = "0.1.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_graph_stores_nebula";
+    inherit version;
+    hash = "sha256-Xb/0ogj2NlGV4MGC9Be54d/JfalT40jtAe6LOPO1u/8=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    llama-index-core
+    nebula3-python
+  ];
+
+  pythonImportsCheck = [
+    "llama_index.graph_stores.nebula"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Graph Store Integration for Nebula";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/graph_stores/llama-index-graph-stores-nebula";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
new file mode 100644
index 0000000000000..bc2664e530123
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, neo4j
+, llama-index-core
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-graph-stores-neo4j";
+  version = "0.1.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_graph_stores_neo4j";
+    inherit version;
+    hash = "sha256-zr3EAFuLzbQKnGPVE6BsLEtNpnfYhDq9brxWPFtQiG8=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    neo4j
+    llama-index-core
+  ];
+
+  pythonImportsCheck = [
+    "llama_index.graph_stores.neo4j"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Graph Store Integration for Neo4j";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix
new file mode 100644
index 0000000000000..869116b58c6bf
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, boto3
+, llama-index-core
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-graph-stores-neptune";
+  version = "0.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_graph_stores_neptune";
+    inherit version;
+    hash = "sha256-ZveFCJJT7Qal82cuVTs+3AmSuvdc7GsHqqqNvcDb3CY=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    boto3
+    llama-index-core
+  ];
+
+  pythonImportsCheck = [
+    "llama_index.graph_stores.neptune"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Graph Store Integration for Neptune";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/graph_stores/llama-index-graph-stores-neptune";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-llms-ollama/default.nix b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
new file mode 100644
index 0000000000000..dd1ccf563b779
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, llama-index-core
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-llms-ollama";
+  version = "0.1.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_llms_ollama";
+    inherit version;
+    hash = "sha256-GexyfQSMhzkV1bA32aL+lWUgwBmxHXq4w8QG3RHzTks=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    llama-index-core
+  ];
+
+  # Tests are only available in the mono repo
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "llama_index.llms.ollama"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex LLMS Integration for ollama";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/llms/llama-index-llms-ollama";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-llms-openai-like/default.nix b/pkgs/development/python-modules/llama-index-llms-openai-like/default.nix
new file mode 100644
index 0000000000000..ccb32689f5308
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-llms-openai-like/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, llama-index-core
+, llama-index-llms-openai
+, poetry-core
+, pythonOlder
+, transformers
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-llms-openai-like";
+  version = "0.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_llms_openai_like";
+    inherit version;
+    hash = "sha256-w0EjJQd8dSY+N9YNUBMUub3HcPEtiisW51bn2ayPnj8=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    llama-index-core
+    llama-index-llms-openai
+    transformers
+  ];
+
+  # Tests are only available in the mono repo
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "llama_index.llms.openai_like"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex LLMS Integration for OpenAI like";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/llms/llama-index-llms-openai-like";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-llms-openai/default.nix b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
index 8678e80272c1c..fbb23ae82bdce 100644
--- a/pkgs/development/python-modules/llama-index-llms-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-llms-openai";
-  version = "0.1.12";
+  version = "0.1.14";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_openai";
     inherit version;
-    hash = "sha256-QAygCDlRvWaM6Lwkh1znC2NufbMosnxqUObRorCBueY=";
+    hash = "sha256-frpmiCroT6QrGIlBI0uEJnxI5EnvIU9RF1bcrT+fC2I=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/llama-index-program-openai/default.nix b/pkgs/development/python-modules/llama-index-program-openai/default.nix
index 12b2f6a7ac9e0..70640d4a4bbe1 100644
--- a/pkgs/development/python-modules/llama-index-program-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-program-openai/default.nix
@@ -6,11 +6,12 @@
 , llama-index-llms-openai
 , poetry-core
 , pythonOlder
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-program-openai";
-  version = "0.1.4";
+  version = "0.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,11 +19,16 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_program_openai";
     inherit version;
-    hash = "sha256-Vz6Zot0WrTyvOCyKso0awQ6yVxvJSB2EptiYBq1qpdQ=";
+    hash = "sha256-wzqi0odq0P8fmip1XU59SRckCEfQF057LQuEdEmbtwA=";
   };
 
+  pythonRelaxDeps = [
+    "llama-index-agent-openai"
+  ];
+
   build-system = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/llama-index-readers-file/default.nix b/pkgs/development/python-modules/llama-index-readers-file/default.nix
index f4b441142bfb9..18a126dd3822c 100644
--- a/pkgs/development/python-modules/llama-index-readers-file/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-file/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-readers-file";
-  version = "0.1.12";
+  version = "0.1.13";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_file";
     inherit version;
-    hash = "sha256-YGXL+AsPtdGJVYuLkK273JKsuGFH/KGS2I/MJwStKvM=";
+    hash = "sha256-gw8G7Hs0Q3/Du18mjSNcXHZAKWrbFI2Pkid9zrfwhG0=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/llama-index-readers-s3/default.nix b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
index 0cc7c10661e2e..947a81bb76c47 100644
--- a/pkgs/development/python-modules/llama-index-readers-s3/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-readers-s3";
-  version = "0.1.4";
+  version = "0.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_s3";
     inherit version;
-    hash = "sha256-FjRIo0sJGJikX4T4Esew3pBxEp7E3kK7Ds2uXDJqMzQ=";
+    hash = "sha256-x3XaPKxnvYYzrJYDmXIKC9YOAOr1HOU1XnaaHIuQnhk=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-google/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-google/default.nix
new file mode 100644
index 0000000000000..419357ea30b9a
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-vector-stores-google/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-generativeai
+, llama-index-core
+, poetry-core
+, pythonOlder
+, pythonRelaxDepsHook
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-vector-stores-google";
+  version = "0.1.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_vector_stores_google";
+    inherit version;
+    hash = "sha256-E6RNf2DzktoZW89P0VKfmeZ5SEslGkyFLRxVtnsQOYc=";
+  };
+
+  pythonRelaxDeps = [
+    "google-generativeai"
+  ];
+
+  build-system = [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  dependencies = [
+    google-generativeai
+    llama-index-core
+  ];
+
+  pythonImportsCheck = [
+    "llama_index.vector_stores.google"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Vector Store Integration for Google";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/vector_stores/llama-index-vector-stores-google";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
new file mode 100644
index 0000000000000..0fa3a9b237368
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, asyncpg
+, buildPythonPackage
+, fetchPypi
+, llama-index-core
+, pgvector
+, poetry-core
+, psycopg2
+, pythonRelaxDepsHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-vector-stores-postgres";
+  version = "0.1.4.post1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_vector_stores_postgres";
+    inherit version;
+    hash = "sha256-E75oSh9MH8aX00y//jhNbehqYdIm5HfEjb5Swn7J/cQ=";
+  };
+
+  pythonRemoveDeps = [
+    "psycopg2-binary"
+  ];
+
+  build-system = [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  dependencies = [
+    asyncpg
+    llama-index-core
+    pgvector
+    psycopg2
+  ];
+
+  pythonImportsCheck = [
+    "llama_index.vector_stores.postgres"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Vector Store Integration for Postgres";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
new file mode 100644
index 0000000000000..39727d6ef7f3b
--- /dev/null
+++ b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, llama-index-core
+, qdrant-client
+, poetry-core
+, grpcio
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "llama-index-vector-stores-qdrant";
+  version = "0.1.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "llama_index_vector_stores_qdrant";
+    inherit version;
+    hash = "sha256-Q4+ehywPz+jrA36AtU9yiicRr2nU6BCO6Y42j0SKPdI=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    grpcio
+    llama-index-core
+    qdrant-client
+  ];
+
+  pythonImportsCheck = [
+    "llama_index.vector_stores.qdrant"
+  ];
+
+  meta = with lib; {
+    description = "LlamaIndex Vector Store Integration for Qdrant";
+    homepage = "https://github.com/run-llama/llama_index/tree/main/llama-index-integrations/vector_stores/llama-index-vector-stores-qdrant";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/llama-parse/default.nix b/pkgs/development/python-modules/llama-parse/default.nix
index 284f03f67a590..5d63c234fa077 100644
--- a/pkgs/development/python-modules/llama-parse/default.nix
+++ b/pkgs/development/python-modules/llama-parse/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "llama-parse";
-  version = "0.3.9";
+  version = "0.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,14 +16,14 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_parse";
     inherit version;
-    hash = "sha256-vra6Tbt6V3CKtvEPfVMUFZjjneGgQKYeb1pxw6XVaxM=";
+    hash = "sha256-7lIelCLbSNvfADA8tukPEGYTGWC1yk4U9bWm22t5F+I=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     llama-index-core
   ];
 
diff --git a/pkgs/development/python-modules/llamaindex-py-client/default.nix b/pkgs/development/python-modules/llamaindex-py-client/default.nix
index d46e070c9517e..fb0cb4ad58adf 100644
--- a/pkgs/development/python-modules/llamaindex-py-client/default.nix
+++ b/pkgs/development/python-modules/llamaindex-py-client/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llamaindex-py-client";
-  version = "0.1.13";
+  version = "0.1.15";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llamaindex_py_client";
     inherit version;
-    hash = "sha256-O9m0Ne4KeBceukEt6lZ02BPrW/NuV308fH6Q7cVJANk=";
+    hash = "sha256-x84mhVupdhU7tAFXw8GUIjxrdReZNbmI3UvWo/6Dqss=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/lsassy/default.nix b/pkgs/development/python-modules/lsassy/default.nix
index dea8c8d194aa7..9ab583acbeebd 100644
--- a/pkgs/development/python-modules/lsassy/default.nix
+++ b/pkgs/development/python-modules/lsassy/default.nix
@@ -3,26 +3,42 @@
 , fetchFromGitHub
 , impacket
 , netaddr
-, pythonOlder
+, poetry-core
 , pypykatz
+, pythonOlder
+, pythonRelaxDepsHook
 , rich
 }:
 
 buildPythonPackage rec {
   pname = "lsassy";
   version = "3.1.9";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Hackndo";
-    repo = pname;
+    repo = "lsassy";
     rev = "refs/tags/v${version}";
     hash = "sha256-VGLSVv/+UpgeSTHoOTjEfQSAYfXA3bAI+yKjcKBI1Z4=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [
+    "impacket"
+    "netaddr"
+    "rich"
+  ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
     impacket
     netaddr
     pypykatz
@@ -38,10 +54,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to extract data from Local Security Authority Subsystem Service (LSASS)";
-    mainProgram = "lsassy";
     homepage = "https://github.com/Hackndo/lsassy";
     changelog = "https://github.com/Hackndo/lsassy/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "lsassy";
   };
 }
diff --git a/pkgs/development/python-modules/lxmf/default.nix b/pkgs/development/python-modules/lxmf/default.nix
index 6a3f45b414b7e..6682b2b09f641 100644
--- a/pkgs/development/python-modules/lxmf/default.nix
+++ b/pkgs/development/python-modules/lxmf/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "lxmf";
-  version = "0.4.2";
+  version = "0.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,14 +17,14 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "lxmf";
     rev = "refs/tags/${version}";
-    hash = "sha256-JDD1X0/5xuqGN/Qw67tTFqfoWUd7Ah80/mimK01tG6Y=";
+    hash = "sha256-8Usu2fecSnyVfGrEJED4qMBO5RwJjTq5c7svCTu445Q=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     rns
   ];
 
@@ -37,10 +37,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Lightweight Extensible Message Format for Reticulum";
-    mainProgram = "lxmd";
     homepage = "https://github.com/markqvist/lxmf";
     changelog = "https://github.com/markqvist/LXMF/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "lxmd";
   };
 }
diff --git a/pkgs/development/python-modules/manifest-ml/default.nix b/pkgs/development/python-modules/manifest-ml/default.nix
index 0d3e02ed732c4..4465066682c9a 100644
--- a/pkgs/development/python-modules/manifest-ml/default.nix
+++ b/pkgs/development/python-modules/manifest-ml/default.nix
@@ -1,34 +1,35 @@
 { lib
+, accelerate
+, aiohttp
 , buildPythonPackage
+, fastapi
 , fetchFromGitHub
-, pythonOlder
+, flask
 , numpy
+, pg8000
+, pillow
 , pydantic
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
 , redis
 , requests
-, aiohttp
+, sentence-transformers
+, setuptools
+, sqlalchemy
 , sqlitedict
 , tenacity
 , tiktoken
-, xxhash
-, # optional dependencies
-  accelerate
-, flask
-, sentence-transformers
 , torch
 , transformers
-, fastapi
 , uvicorn
-, pillow
-, pg8000
-, sqlalchemy
-, pytestCheckHook
+, xxhash
 }:
 
 buildPythonPackage rec {
   pname = "manifest-ml";
   version = "0.1.9";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -41,7 +42,16 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [
+    "pydantic"
+  ];
+
+  build-system = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  dependencies = [
     numpy
     pydantic
     redis
@@ -51,7 +61,7 @@ buildPythonPackage rec {
     tenacity
     tiktoken
     xxhash
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ];
 
   passthru.optional-dependencies = {
     api = [
@@ -79,7 +89,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-  ];
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   preCheck = ''
     export HOME=$TMPDIR
@@ -91,12 +101,17 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # these tests have db access
+    # Tests require DB access
     "test_init"
     "test_key_get_and_set"
     "test_get"
-    # this test has network access
+    # Tests require network access
+    "test_abatch_run"
+    "test_batch_run"
     "test_retry_handling"
+    "test_run_chat"
+    "test_run"
+    "test_score_run"
     # Test is time-senstive
     "test_timing"
   ];
diff --git a/pkgs/development/python-modules/marimo/default.nix b/pkgs/development/python-modules/marimo/default.nix
index 8873ac724c681..55b3e6c68172d 100644
--- a/pkgs/development/python-modules/marimo/default.nix
+++ b/pkgs/development/python-modules/marimo/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "marimo";
-  version = "0.3.4";
+  version = "0.3.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nCH8JmeU81aJHHGJ1DOOCL9iarBXTBGauQKyHpU66Rk=";
+    hash = "sha256-XBOffkPJaGeyuK/mesN1nXXARRpoZpmiu5WVYS1tFvI=";
   };
 
   build-system = [
@@ -58,6 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps";
     homepage = "https://github.com/marimo-team/marimo";
+    changelog = "https://github.com/marimo-team/marimo/releases/tag/${version}";
     license = licenses.asl20;
     mainProgram = "marimo";
     maintainers = with maintainers; [ akshayka dmadisetti ];
diff --git a/pkgs/development/python-modules/markdownify/default.nix b/pkgs/development/python-modules/markdownify/default.nix
index 19f8429380077..e6b09592073ab 100644
--- a/pkgs/development/python-modules/markdownify/default.nix
+++ b/pkgs/development/python-modules/markdownify/default.nix
@@ -1,29 +1,48 @@
 { lib
+, beautifulsoup4
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
-, beautifulsoup4
+, pythonOlder
+, setuptools
 , six
 }:
 
 buildPythonPackage rec {
   pname = "markdownify";
-  version = "0.11.6";
-  format = "setuptools";
+  version = "0.12.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AJskDgyfTI6vHQhWJdzUAR4S8PjOxV3t+epvdlXkm/4=";
+    hash = "sha256-H7CMYYsw4O56MaObmY9EoY+yirJU9V9K8GttNaIXnic=";
   };
 
-  propagatedBuildInputs = [ beautifulsoup4 six ];
-  nativeCheckInputs = [ pytestCheckHook ];
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    beautifulsoup4
+    six
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "markdownify"
+  ];
 
   meta = with lib; {
     description = "HTML to Markdown converter";
-    mainProgram = "markdownify";
     homepage = "https://github.com/matthewwithanm/python-markdownify";
+    changelog = "https://github.com/matthewwithanm/python-markdownify/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = [ maintainers.McSinyx ];
+    maintainers = with maintainers; [ McSinyx ];
+    mainProgram = "markdownify";
   };
 }
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index c531b78130bc4..bc00d859f6b83 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "2.3.0";
+  version = "2.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,14 +30,14 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-HiksPxV5VTIOV71J0zlC8iiXmF85a0dTYjjnWthhdGY=";
+    hash = "sha256-kydZgOiQHDovQ5RwyLru2nyHoCEVZClq8wJit/mnbvU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     bleak
     dotmap
     pexpect
@@ -73,50 +73,14 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # AttributeError: 'HardwareMessage'...
-    "test_handleFromRadio_with_my_info"
-    "test_handleFromRadio_with_node_info"
-    "test_main_ch_longsfast_on_non_primary_channel"
-    "test_main_ch_set_name_with_ch_index"
-    "test_main_configure_with_camel_case_keys"
-    "test_main_configure_with_snake_case"
-    "test_main_export_config_called_from_main"
-    "test_main_export_config_use_camel"
-    "test_main_export_config"
-    "test_main_get_with_invalid"
-    "test_main_get_with_valid_values_camel"
-    "test_main_getPref_invalid_field_camel"
-    "test_main_getPref_invalid_field"
-    "test_main_getPref_valid_field_bool_camel"
-    "test_main_getPref_valid_field_bool"
-    "test_main_getPref_valid_field_camel"
-    "test_main_getPref_valid_field_string_camel"
-    "test_main_getPref_valid_field_string"
-    "test_main_getPref_valid_field"
-    "test_main_set_invalid_wifi_passwd"
-    "test_main_set_valid_camel_case"
-    "test_main_set_valid_wifi_passwd"
-    "test_main_set_valid"
-    "test_main_set_with_invalid"
-    "test_main_setPref_ignore_incoming_0"
-    "test_main_setPref_ignore_incoming_123"
-    "test_main_setPref_invalid_field_camel"
-    "test_main_setPref_invalid_field"
-    "test_main_setPref_valid_field_int_as_string"
-    "test_readGPIOs"
-    "test_onGPIOreceive"
-    "test_setURL_empty_url"
-    "test_watchGPIOs"
-    "test_writeConfig_with_no_radioConfig"
-    "test_writeGPIOs"
-    "test_reboot"
-    "test_shutdown"
-    "test_main_sendtext"
-    "test_main_sendtext_with_channel"
-    "test_MeshInterface"
-    "test_getNode_not_local"
-    "test_getNode_not_local_timeout"
-    "test_main_onConnected_exception"
+    # TypeError
+    "test_main_info"
+    "test_main_support"
+    "test_main_info_with_tcp_interfa"
+    "test_main_no_proto"
+    "test_main_info_with_seriallog_stdout"
+    "test_main_info_with_seriallog_output_txt"
+    "test_support_info"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/metakernel/default.nix b/pkgs/development/python-modules/metakernel/default.nix
index 3c8396bef7976..e888ccfe98f8f 100644
--- a/pkgs/development/python-modules/metakernel/default.nix
+++ b/pkgs/development/python-modules/metakernel/default.nix
@@ -11,21 +11,21 @@
 
 buildPythonPackage rec {
   pname = "metakernel";
-  version = "0.30.1";
-  format = "pyproject";
+  version = "0.30.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TKBvuGh8DnPDLaOpwOvLZHdj1kBOTE/JLda1nQ6J//U=";
+    hash = "sha256-Siff2FO4SfASgkLFUgTuWXpajYZClPJghLry+8gU1aQ=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     ipykernel
     jedi
     jupyter-core
diff --git a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
index 1ffc27845241a..61b8d7804f51b 100644
--- a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
+++ b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "microsoft-kiota-abstractions";
-  version = "1.3.1";
+  version = "1.3.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,14 +22,14 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "kiota-abstractions-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AsJHKoA50JZBDQ7vob4lI0gEmfhRUELKtgq17tHegUY=";
+    hash = "sha256-n9Erm21slKm+zDblhSHA5Cwxkyrcyx0w09ua3bUc5XI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     flit-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     opentelemetry-api
     opentelemetry-sdk
     std-uritemplate
diff --git a/pkgs/development/python-modules/mitogen/default.nix b/pkgs/development/python-modules/mitogen/default.nix
index 167378cecbbb6..0a9dd029a5d2d 100644
--- a/pkgs/development/python-modules/mitogen/default.nix
+++ b/pkgs/development/python-modules/mitogen/default.nix
@@ -2,22 +2,27 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "mitogen";
-  version = "0.3.4";
-  format = "setuptools";
+  version = "0.3.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mitogen-hq";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-tMpjmSqZffFGbo06W/FAut584F8eOPrcLKjj2bnB+Zo=";
+    repo = "mitogen";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-EDybx25eqJiMeoyB/lkuuofGTS8Q0ZjtB8HaKuGaKhk=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   # Tests require network access and Docker support
   doCheck = false;
 
@@ -28,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python Library for writing distributed self-replicating programs";
     homepage = "https://github.com/mitogen-hq/mitogen";
+    changelog = "https://github.com/mitogen-hq/mitogen/blob/v${version}/docs/changelog.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/mizani/default.nix b/pkgs/development/python-modules/mizani/default.nix
index f54c018212405..1ab85c88c3126 100644
--- a/pkgs/development/python-modules/mizani/default.nix
+++ b/pkgs/development/python-modules/mizani/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mizani";
-  version = "0.11.0";
+  version = "0.11.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "mizani";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4xk8FCUiNOp5n512asYKcjAS7fsyExyMQiWg14XWwHY=";
+    hash = "sha256-rlzMvIQej8d7LCklNNZeIgtrGaB5A6lDd/1iQG+j+X8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix b/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
new file mode 100644
index 0000000000000..35d3e5c9cc165
--- /dev/null
+++ b/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mkdocs
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "mkdocs-autolinks-plugin";
+  version = "0.7.1";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "zachhannum";
+    repo = "mkdocs-autolinks-plugin";
+    # The commit messages mention version 0.7.1, but the tag is v_071.
+    rev = "e2b649eb4db23459bcec121838f27c92c81f9ce1";
+    hash = "sha256-mEbuB9VwK7po1TqtJfBSkItOVlI3/W3nD2LYRHgPpTA=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [ mkdocs ];
+
+  # Module has no tests.
+  doCheck = false;
+
+  pythonImportsCheck = [ "mkdocs_autolinks_plugin" ];
+
+  meta = with lib; {
+    description = "An MkDocs plugin that simplifies relative linking between documents";
+    homepage = "https://github.com/zachhannum/mkdocs-autolinks-plugin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lucas-deangelis ];
+  };
+}
diff --git a/pkgs/development/python-modules/mscerts/default.nix b/pkgs/development/python-modules/mscerts/default.nix
index 9dc16828c8697..6d7642c894703 100644
--- a/pkgs/development/python-modules/mscerts/default.nix
+++ b/pkgs/development/python-modules/mscerts/default.nix
@@ -2,12 +2,13 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "mscerts";
-  version = "2024.2.28";
-  format = "setuptools";
+  version = "2024.3.27";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -15,9 +16,13 @@ buildPythonPackage rec {
     owner = "ralphje";
     repo = "mscerts";
     rev = "refs/tags/${version}";
-    hash = "sha256-ReUDpax4tvw4ZCH8zOipelIPtHi7BdgLHI/r3FNpo1c=";
+    hash = "sha256-Hucf3tToYm3P6ebKNlUs5V+X1B95u9P2UC1yOItZOhc=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   # extras_require contains signify -> circular dependency
 
   # Module has no tests
diff --git a/pkgs/development/python-modules/myjwt/default.nix b/pkgs/development/python-modules/myjwt/default.nix
index c310c7efe1a1e..d0d39dc9d087f 100644
--- a/pkgs/development/python-modules/myjwt/default.nix
+++ b/pkgs/development/python-modules/myjwt/default.nix
@@ -34,20 +34,21 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-warn "1.6.0" "${version}"
+      --replace-fail "1.6.0" "${version}"
   '';
 
   pythonRelaxDeps = [
     "cryptography"
+    "pyopenssl"
     "questionary"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     colorama
     cryptography
diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix
index 74b48b53458ee..987d26ca0676a 100644
--- a/pkgs/development/python-modules/mypy-boto3/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3/default.nix
@@ -111,7 +111,7 @@ rec {
 
   mypy-boto3-backupstorage = buildMypyBoto3Package "backupstorage" "1.34.0" "sha256-Y8kjZ+ov8OsiJ8Sm1LlvP8YbgVc+AkLkbZIhOh4y7ZY=";
 
-  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.59" "sha256-rsXdh8f3KRAROftePejdLxChRqtiaDFsJyhctX7jRUQ=";
+  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.72" "sha256-ha5OZVVcO/+slxQOPIrd+D1Ehaw6YpGqCWofSgFj5JI=";
 
   mypy-boto3-billingconductor = buildMypyBoto3Package "billingconductor" "1.34.1" "sha256-uXxQkoe2u3idcYta9YFbjxoK8HsvUiRQSyYrYhVi1kU=";
 
@@ -119,7 +119,7 @@ rec {
 
   mypy-boto3-budgets = buildMypyBoto3Package "budgets" "1.34.0" "sha256-gs8JYnpFNOMWppBO2R3DO+c6RecQC0vzaox5DqXCKOA=";
 
-  mypy-boto3-ce = buildMypyBoto3Package "ce" "1.34.52" "sha256-KHimN6KC8V6nyp6ZQbv0XAuWMjGZkg/bPrQ6do5QQE0=";
+  mypy-boto3-ce = buildMypyBoto3Package "ce" "1.34.71" "sha256-VfB823/q+ie97Bv5GXhsBaGxAuXSDbfFq2rO6TjThXY=";
 
   mypy-boto3-chime = buildMypyBoto3Package "chime" "1.34.0" "sha256-/IBkHJf4t1K/Ubdf/hUw5XToNBTCziMfTSdksxMwA2Q=";
 
@@ -161,9 +161,9 @@ rec {
 
   mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.34.68" "sha256-Ey0cmx0OxN1/VXIyvn0EOBP9qYIuc/XyFVZniHLaNEY=";
 
-  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.67" "sha256-Kvd8zAHfepA4dulpiQCaT2pfKCH567d6CYd5QlweXIY=";
+  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.74" "sha256-A8SRNosqzXQab2J9gnYUWNkIdju8QqX44GJnFSNE4DQ=";
 
-  mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.0" "sha256-TsXVy8bx6kaj84PJiNNU+075Tx3WW0mrtZFOyLx9yT4=";
+  mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.73" "sha256-jQ/DIoWXQWo1oVWi4Gn88cxr78QCs45EVtgfc6fZkFk=";
 
   mypy-boto3-codecommit = buildMypyBoto3Package "codecommit" "1.34.6" "sha256-wCw6e7yvMjM+A6jXfB2D4Z+i9s3e/F9Ih/VxD6iiwws=";
 
@@ -193,7 +193,7 @@ rec {
 
   mypy-boto3-comprehendmedical = buildMypyBoto3Package "comprehendmedical" "1.34.0" "sha256-4KzL56xU474te8tW5xVZo6D5Pwe3GLRQbQfX8CXTz9g=";
 
-  mypy-boto3-compute-optimizer = buildMypyBoto3Package "compute-optimizer" "1.34.0" "sha256-k/4Ixaf9n4J8Y5ELjuMZ2dn7DgKftmwQZfdHhYDMc6w=";
+  mypy-boto3-compute-optimizer = buildMypyBoto3Package "compute-optimizer" "1.34.73" "sha256-WOPbzONtQ+hnVYwWCWC2Q/E1mqWNww0K2tbJhZxjAHo=";
 
   mypy-boto3-config = buildMypyBoto3Package "config" "1.34.45" "sha256-LN1CcIOj9cgzSNCvnUVwLRNPXlitHAlt+5jj6wu6i8E=";
 
@@ -251,7 +251,7 @@ rec {
 
   mypy-boto3-ebs = buildMypyBoto3Package "ebs" "1.34.0" "sha256-xIrrXOayZed+Jcn4CFXXNgKz/G+RdiuwA04wq+Ry/fs=";
 
-  mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.66" "sha256-Io0ExXqdar+5A4H66ryaApWIQnEcspQysfBsOit4WyY=";
+  mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.73" "sha256-/vEtJCIUBHeOX0ttyOID2/Ds2VCm6/eGEqRXE/ynrr4=";
 
   mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.63" "sha256-kExmGXEJ5jrvOewmWx7AjVb3boD5GU0cEUp/2PQhzlw=";
 
@@ -259,15 +259,15 @@ rec {
 
   mypy-boto3-ecr-public = buildMypyBoto3Package "ecr-public" "1.34.0" "sha256-38ZiRVPr9L+KUF6oL23xsIiKMW0pT/nIngFkhSS3z2Y=";
 
-  mypy-boto3-ecs = buildMypyBoto3Package "ecs" "1.34.39" "sha256-s3YTAoZSgDHenHa54DwSNRRAnfCNMcdmZP1FX0hTygE=";
+  mypy-boto3-ecs = buildMypyBoto3Package "ecs" "1.34.71" "sha256-Ka2nMhArorYcIx+MoLN7bIbKl4ptNER6uC9FdLWZBfI=";
 
   mypy-boto3-efs = buildMypyBoto3Package "efs" "1.34.0" "sha256-VAK7mfnPBPDC8Azm6Bxl86E8CkeArTmfgqYkIcSblYA=";
 
-  mypy-boto3-eks = buildMypyBoto3Package "eks" "1.34.53" "sha256-bmd/gv3krZZSeQDCYca/AFHkSBL4PTvx3ZEjItQ43QQ=";
+  mypy-boto3-eks = buildMypyBoto3Package "eks" "1.34.73" "sha256-sSVfQvBmH9wYnqInvF8ixsyb0pbvHPx0zQwfPxa5caE=";
 
   mypy-boto3-elastic-inference = buildMypyBoto3Package "elastic-inference" "1.34.0" "sha256-gbWKw0zDQf3qBlp1KeO7MX1j/GqRUpFAxLG0BKFrHBk=";
 
-  mypy-boto3-elasticache = buildMypyBoto3Package "elasticache" "1.34.60" "sha256-D3WLH1FS8dddD6WKUmQApvtehGMmjWYzdaMwTHzvzYk=";
+  mypy-boto3-elasticache = buildMypyBoto3Package "elasticache" "1.34.72" "sha256-yZd2KB7wIw23PybblyIlCo/5IEFYxAUfbLD2J91eOzw=";
 
   mypy-boto3-elasticbeanstalk = buildMypyBoto3Package "elasticbeanstalk" "1.34.0" "sha256-ftVFUwY81mg/9zJ4xxVjhXF1HgKpzj1koIS32cMKRLw=";
 
@@ -279,7 +279,7 @@ rec {
 
   mypy-boto3-emr = buildMypyBoto3Package "emr" "1.34.44" "sha256-zM1VpAaBSxqdZiSrNiaAKfvliNRXMLEmvFvXcFmkZO0=";
 
-  mypy-boto3-emr-containers = buildMypyBoto3Package "emr-containers" "1.34.0" "sha256-tGHWoMVrfH35hLgzDGMSJs5kRTWQqjM/e0IAPe4EfiU=";
+  mypy-boto3-emr-containers = buildMypyBoto3Package "emr-containers" "1.34.70" "sha256-uZADsQWfrkoVrQZosfqogcKERWsykIqdk+tJpgmcai4=";
 
   mypy-boto3-emr-serverless = buildMypyBoto3Package "emr-serverless" "1.34.0" "sha256-YgccYi2+XhKiPGCMimrCooYPRV+iRuA1h120UdqJKUc=";
 
@@ -291,7 +291,7 @@ rec {
 
   mypy-boto3-evidently = buildMypyBoto3Package "evidently" "1.34.0" "sha256-MkBB5iTYJYg2cWFYHR3Qu7TcsDglLPEw0MnoHqij6+A=";
 
-  mypy-boto3-finspace = buildMypyBoto3Package "finspace" "1.34.66" "sha256-G5FMKm9HymvRPtkjvYZt6NVhPUVuBwCR4kQq8/naUFs=";
+  mypy-boto3-finspace = buildMypyBoto3Package "finspace" "1.34.71" "sha256-bgPwDXqu73DjQCADmjTig6kLNOWvQ39flwhyYAbTai4=";
 
   mypy-boto3-finspace-data = buildMypyBoto3Package "finspace-data" "1.34.0" "sha256-8mND5BbdKY5srFwdpxSyfCUTIP4fa9hztP4daUJOB8k=";
 
@@ -315,7 +315,7 @@ rec {
 
   mypy-boto3-glacier = buildMypyBoto3Package "glacier" "1.34.0" "sha256-j8LUD8EjjRL1av7UEXBqNPEARaSFgstaioGJtbel4oM=";
 
-  mypy-boto3-globalaccelerator = buildMypyBoto3Package "globalaccelerator" "1.34.0" "sha256-hvQeuu1TuLO9aB1+lWTGPgpGqoZlC8d3Ru5S4OVLgys=";
+  mypy-boto3-globalaccelerator = buildMypyBoto3Package "globalaccelerator" "1.34.70" "sha256-7Su+rgV6KD9I4j630Qybufwn39rp/8tYQ2ldEe2Untc=";
 
   mypy-boto3-glue = buildMypyBoto3Package "glue" "1.34.35" "sha256-+Kvk8uB9KZp7mw3sMAM6mHdBTnkO5J8nSVClttndMDY=";
 
@@ -327,7 +327,7 @@ rec {
 
   mypy-boto3-groundstation = buildMypyBoto3Package "groundstation" "1.34.0" "sha256-CR3w42iyXmyGMzjCM7M1LKqsIROMjXxxGM8coSTtJ3o=";
 
-  mypy-boto3-guardduty = buildMypyBoto3Package "guardduty" "1.34.59" "sha256-Q5itLyYcSK7tzlYjT4Dgdcm4bE2Dr+bl5kfHqV4D9Pg=";
+  mypy-boto3-guardduty = buildMypyBoto3Package "guardduty" "1.34.73" "sha256-DasHgBMa4/hnh/otzh0Zz4nalmESIS2/HkaY4vTltRs=";
 
   mypy-boto3-health = buildMypyBoto3Package "health" "1.34.0" "sha256-st3ygy9yZbAbh1ZWnT8XDZTBz1qWhRWXCEfr5ILQHpo=";
 
@@ -347,7 +347,7 @@ rec {
 
   mypy-boto3-inspector2 = buildMypyBoto3Package "inspector2" "1.34.29" "sha256-ZMdNVgKXQnEHyK4tV/XegvFX7xdk5A1AiSfpTKWCtcY=";
 
-  mypy-boto3-internetmonitor = buildMypyBoto3Package "internetmonitor" "1.34.48" "sha256-tJ5Hu8ojUahG1YbNHgwDjYWqbSPCZEUyYM/dOObmArg=";
+  mypy-boto3-internetmonitor = buildMypyBoto3Package "internetmonitor" "1.34.74" "sha256-VFIeJqQHHvbB+mLyzxHpZUvgGS5dJJen4AAJAMJTDqE=";
 
   mypy-boto3-iot = buildMypyBoto3Package "iot" "1.34.52" "sha256-YWGotOPKljY4B0JL1I+axk4MJZIk84rVxoZu9tzBGss=";
 
@@ -381,7 +381,7 @@ rec {
 
   mypy-boto3-iottwinmaker = buildMypyBoto3Package "iottwinmaker" "1.34.0" "sha256-K5LEh8wdXvftxGstThSBN73K+1FUVlE40JxvjWv6GMA=";
 
-  mypy-boto3-iotwireless = buildMypyBoto3Package "iotwireless" "1.34.0" "sha256-g2Ab6AQ0fvmEuSqAHlvAPe3TYSz/Nai1U8srjT0QWHw=";
+  mypy-boto3-iotwireless = buildMypyBoto3Package "iotwireless" "1.34.74" "sha256-57ZO7LlQ9/itiynqSjXu7SJrNLNaFo5WCJBqSXEYeLs=";
 
   mypy-boto3-ivs = buildMypyBoto3Package "ivs" "1.34.45" "sha256-Ilrtk6ZF1p3GNuZrtiEiNXi3bHI3MYNr6bDpJ8sf4Fg=";
 
@@ -459,7 +459,7 @@ rec {
 
   mypy-boto3-managedblockchain-query = buildMypyBoto3Package "managedblockchain-query" "1.34.67" "sha256-c2BoAKpgurKaNOTkl3cqc3X1CiaQVfQL5kvQV3/WLww=";
 
-  mypy-boto3-marketplace-catalog = buildMypyBoto3Package "marketplace-catalog" "1.34.41" "sha256-SZqNZO/36iGuf0jqNIZrbD1BOE7p6xMWhs5Y5VkUl8c=";
+  mypy-boto3-marketplace-catalog = buildMypyBoto3Package "marketplace-catalog" "1.34.74" "sha256-+ehJMgzEt0R0sV1IL4/eEEltEIcFDqr4GzeTraabW90=";
 
   mypy-boto3-marketplace-entitlement = buildMypyBoto3Package "marketplace-entitlement" "1.34.0" "sha256-yGaeDZLEmp/Nap++wI6GgQvVW3HxQFcM+ipk7RAuG4g=";
 
@@ -469,7 +469,7 @@ rec {
 
   mypy-boto3-mediaconvert = buildMypyBoto3Package "mediaconvert" "1.34.33" "sha256-7OwfjcWDE1AHvpyOu3fE5YBwjQscpa+VnE7eylk1unA=";
 
-  mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.34.47" "sha256-kE93r3oDtz+uwUDeWBJA2yQBx4HFAL49FdpIexVMbrc=";
+  mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.34.70" "sha256-WMBmgEckAoWpwe/YMJsVRZnbkT8dbr8F1S3AW1PRF+4=";
 
   mypy-boto3-mediapackage = buildMypyBoto3Package "mediapackage" "1.34.0" "sha256-4DJ2zVk0satmVn+TZdDExx/+ClJpc1bdmbvl72Joe5U=";
 
@@ -519,7 +519,7 @@ rec {
 
   mypy-boto3-nimble = buildMypyBoto3Package "nimble" "1.34.0" "sha256-i0E9kLunDRl+XzU3Ti3vxqHNa2oGHQQ9xDjCtNKi1Lw=";
 
-  mypy-boto3-oam = buildMypyBoto3Package "oam" "1.34.0" "sha256-/0ou6QtLQerkqJ+alocpYxUfe9jRHoOgQy9R6sxZAFo=";
+  mypy-boto3-oam = buildMypyBoto3Package "oam" "1.34.73" "sha256-MAnS/E6BKcaubeOdblitGzS7y7YUZr35M4679iJL6lE=";
 
   mypy-boto3-omics = buildMypyBoto3Package "omics" "1.34.7" "sha256-Mtb11Oe2j28u+MFaycvMMNiqi7ZdVDcKQV/X/7npze4=";
 
@@ -575,7 +575,7 @@ rec {
 
   mypy-boto3-qldb-session = buildMypyBoto3Package "qldb-session" "1.34.0" "sha256-JHePiaFCfIJPxZzvC1U38xrBGkDvB9+yKwPecaZl7BY=";
 
-  mypy-boto3-quicksight = buildMypyBoto3Package "quicksight" "1.34.53" "sha256-aN1W1Hu/gyV181x68VNkbBp2Ua4jpJB3H/vmQ0HO1Nw=";
+  mypy-boto3-quicksight = buildMypyBoto3Package "quicksight" "1.34.73" "sha256-tbO9V8EiPR1OyCYImQHYmMsZtvclNK7Mnoqt3s0YRFM=";
 
   mypy-boto3-ram = buildMypyBoto3Package "ram" "1.34.0" "sha256-9sOspEfirpVQ8cT9ILUSWypxBswpAD75A0hHRV7glNg=";
 
@@ -625,7 +625,7 @@ rec {
 
   mypy-boto3-s3outposts = buildMypyBoto3Package "s3outposts" "1.34.0" "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos=";
 
-  mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.64" "sha256-Sf1T1aqRMIEZmuA2KH5tzuhTDN8yfFID/+h0DCWxws0=";
+  mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.74" "sha256-gTSksOsEH4IRLqw+AZ/CNLO28Ir18oy7iP2h6a38rmE=";
 
   mypy-boto3-sagemaker-a2i-runtime = buildMypyBoto3Package "sagemaker-a2i-runtime" "1.34.0" "sha256-jMZ3aWKQPhNec4A/02S1waQi6Mx9JVdENc3kblhsKjA=";
 
@@ -647,7 +647,7 @@ rec {
 
   mypy-boto3-sdb = buildMypyBoto3Package "sdb" "1.34.0" "sha256-13BuAQD8uDwwDhCw+8O3V882H6/oor5Z8mBmjb7HHAU=";
 
-  mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.63" "sha256-oZM3PXGPdH1Th4tcx/7y6bj944kuR4isaQ/SsWo1Vkw=";
+  mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.72" "sha256-0HM8W1Potee9oA9LQu2ErxLjaiDISJF+ScFzoEIu8Dw=";
 
   mypy-boto3-securityhub = buildMypyBoto3Package "securityhub" "1.34.69" "sha256-2fJx1VaOhYSjTXAEboBhHhMdTH697zcGHmrJsGknDTI=";
 
diff --git a/pkgs/development/python-modules/mypy-boto3/update.sh b/pkgs/development/python-modules/mypy-boto3/update.sh
index f45789baecb29..f45789baecb29 100644..100755
--- a/pkgs/development/python-modules/mypy-boto3/update.sh
+++ b/pkgs/development/python-modules/mypy-boto3/update.sh
diff --git a/pkgs/development/python-modules/nampa/default.nix b/pkgs/development/python-modules/nampa/default.nix
index d5d411728315e..abeedb716ad56 100644
--- a/pkgs/development/python-modules/nampa/default.nix
+++ b/pkgs/development/python-modules/nampa/default.nix
@@ -2,41 +2,49 @@
 , buildPythonPackage
 , fetchFromGitHub
 , future
-, pytestCheckHook
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "nampa";
   version = "1.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "thebabush";
-    repo = pname;
-    rev = version;
-    sha256 = "14b6xjm497wrfw4kv24zhsvz2l6zknvx36w8i754hfwz3s3fsl6a";
+    repo = "nampa";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ylDthh6fO0jKiYib0bed31Dxt4afiD0Jd5mfRKrsZpE=";
   };
 
-  propagatedBuildInputs = [
-    future
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
   postPatch = ''
     # https://github.com/thebabush/nampa/pull/13
     substituteInPlace setup.py \
       --replace "0.1.1" "${version}"
   '';
 
-  pythonImportsCheck = [ "nampa" ];
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    future
+  ];
+
+  # Not used for binaryninja as plugin
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "nampa"
+  ];
 
   meta = with lib; {
     description = "Python implementation of the FLIRT technology";
-    mainProgram = "dumpsig.py";
     homepage = "https://github.com/thebabush/nampa";
+    changelog = "https://github.com/thebabush/nampa/releases/tag/${version}";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/nbdime/749.patch b/pkgs/development/python-modules/nbdime/749.patch
new file mode 100644
index 0000000000000..b88aec0f67e31
--- /dev/null
+++ b/pkgs/development/python-modules/nbdime/749.patch
@@ -0,0 +1,10 @@
+--- a/nbdime/webapp/nbdimeserver.py
++++ b/nbdime/webapp/nbdimeserver.py
+@@ -388,6 +388,7 @@
+         'jinja2_env': env,
+         'local_hostnames': ['localhost', '127.0.0.1'],
+         'cookie_secret': base64.encodebytes(os.urandom(32)), # Needed even for an unsecured server.
++        'allow_unauthenticated_access': True,
+     }
+ 
+     try:
diff --git a/pkgs/development/python-modules/nbdime/default.nix b/pkgs/development/python-modules/nbdime/default.nix
index 3f58201e2c927..855192fa5ec54 100644
--- a/pkgs/development/python-modules/nbdime/default.nix
+++ b/pkgs/development/python-modules/nbdime/default.nix
@@ -31,6 +31,12 @@ buildPythonPackage rec {
     hash = "sha256-8adgwLAMG6m0lFwWzpJXfzk/tR0YTzUbdoW6boUCCY4=";
   };
 
+  patches = [
+    # this fixes the webserver (nbdiff-web) when jupyter-server >=2.13 is used
+    # see https://github.com/jupyter/nbdime/issues/749
+    ./749.patch
+  ];
+
   nativeBuildInputs = [
     hatch-jupyter-builder
     hatchling
diff --git a/pkgs/development/python-modules/nebula3-python/default.nix b/pkgs/development/python-modules/nebula3-python/default.nix
new file mode 100644
index 0000000000000..c352f732ef203
--- /dev/null
+++ b/pkgs/development/python-modules/nebula3-python/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pdm-backend
+, future
+, httplib2
+, pythonOlder
+, pytz
+, pytestCheckHook
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "nebula3-python";
+  version = "3.5.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "vesoft-inc";
+    repo = "nebula-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-T9lZVYov6tQ8QRM2QtOGyolHk3O5FSb3xq70nS2Rr6c=";
+  };
+
+  build-system = [
+    pdm-backend
+  ];
+
+  dependencies = [
+    future
+    httplib2
+    pytz
+    six
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "nebula3"
+  ];
+
+  disabledTestPaths = [
+    # Tests require a running thrift instance
+    "tests/test_connection.py"
+    "tests/test_data_from_server.py"
+    "tests/test_graph_storage_client.py"
+    "tests/test_meta_cache.py"
+    "tests/test_parameter.py"
+    "tests/test_pool.py"
+    "tests/test_session.py"
+    "tests/test_session_pool.py"
+    "tests/test_ssl_connection.py"
+    "tests/test_ssl_pool.py"
+  ];
+
+  meta = with lib; {
+    description = "Client API of Nebula Graph in Python";
+    homepage = "https://github.com/vesoft-inc/nebula-python";
+    changelog = "https://github.com/vesoft-inc/nebula-python/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ntc-templates/default.nix b/pkgs/development/python-modules/ntc-templates/default.nix
index dc4ba155bedbd..04b2c8c17f1ad 100644
--- a/pkgs/development/python-modules/ntc-templates/default.nix
+++ b/pkgs/development/python-modules/ntc-templates/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "ntc-templates";
-  version = "4.3.0";
+  version = "4.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "networktocode";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zTJNatg5s5Y9uJ/42uhBltvP69qDsdTRIOCt5OuLwQc=";
+    hash = "sha256-8Lzh6ku2TUQFatqbOb5JIc/WkRPegx/gNnT53DErMuk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nwdiag/default.nix b/pkgs/development/python-modules/nwdiag/default.nix
index a35d6159731a0..54bd6a1f9fea4 100644
--- a/pkgs/development/python-modules/nwdiag/default.nix
+++ b/pkgs/development/python-modules/nwdiag/default.nix
@@ -2,7 +2,7 @@
 , blockdiag
 , fetchFromGitHub
 , buildPythonPackage
-, nose
+, pynose
 , pytestCheckHook
 , setuptools
 , pythonOlder
@@ -11,24 +11,27 @@
 buildPythonPackage rec {
   pname = "nwdiag";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "blockdiag";
-    repo = pname;
-    rev = version;
+    repo = "nwdiag";
+    rev = "refs/tags/${version}";
     hash = "sha256-uKrdkXpL5YBr953sRsHknYg+2/WwrZmyDf8BMA2+0tU=";
   };
 
-  propagatedBuildInputs = [
-    blockdiag
+  build-system = [
     setuptools
   ];
 
+  dependencies = [
+    blockdiag
+  ];
+
   nativeCheckInputs = [
-    nose
+    pynose
     pytestCheckHook
   ];
 
@@ -37,8 +40,9 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # UnicodeEncodeError: 'latin-1' codec can't encode...
-    "test_setup_inline_svg_is_true_with_multibytes"
+    # AttributeError: 'TestRstDirectives' object has no attribute 'assertRegexpMatches'
+    "svg"
+    "noviewbox"
   ];
 
   pythonImportsCheck = [
@@ -48,8 +52,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Generate network-diagram image from spec-text file (similar to Graphviz)";
     homepage = "http://blockdiag.com/";
+    changelog = "https://github.com/blockdiag/nwdiag/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "rackdiag";
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
index c57a777710987..b4ad1c942d45f 100644
--- a/pkgs/development/python-modules/oci/default.nix
+++ b/pkgs/development/python-modules/oci/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.124.2";
+  version = "2.125.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IYINga1qCCmdu1j6ix2GcZtx6twPwfHCxU8fPOqF4eE=";
+    hash = "sha256-H4LGMl2SuXAGD2cdaDQYkWkYqhjp+EDFOnrku6cG6jk=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/ollama/default.nix b/pkgs/development/python-modules/ollama/default.nix
index 5e46474e11291..8bc0639b016d3 100644
--- a/pkgs/development/python-modules/ollama/default.nix
+++ b/pkgs/development/python-modules/ollama/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "ollama";
-  version = "0.1.7";
+  version = "0.1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "ollama";
     repo = "ollama-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xNH9kAjSdVXrCI7zkyR7tYxJ/NG8/08ykkDZQJI8Za4=";
+    hash = "sha256-hMNoWalUL+5FzmV5ICj7Zl6cTWzE6xGWfTf5++c36+E=";
   };
 
   postPatch = ''
@@ -34,12 +34,12 @@ buildPythonPackage rec {
     "httpx"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
   ];
 
diff --git a/pkgs/development/python-modules/pathlib-abc/default.nix b/pkgs/development/python-modules/pathlib-abc/default.nix
index b048fc3748c1a..891b6d348561e 100644
--- a/pkgs/development/python-modules/pathlib-abc/default.nix
+++ b/pkgs/development/python-modules/pathlib-abc/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pathlib-abc";
-  version = "0.2.0";
+  version = "0.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pathlib_abc";
     inherit version;
-    hash = "sha256-ua9rOf1RMhSFZ47DgD0KEeAqIuhp6AUsrLbo9l3nuGI=";
+    hash = "sha256-CE573ZGbD3d0kUqeZM2GobOYYPgfeB3XJCWGMfKRWr4=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/pathtools/default.nix b/pkgs/development/python-modules/pathtools/default.nix
index 754669eb42fe8..453dc9df36ef8 100644
--- a/pkgs/development/python-modules/pathtools/default.nix
+++ b/pkgs/development/python-modules/pathtools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -8,6 +9,9 @@ buildPythonPackage rec {
   version = "0.1.2";
   format = "setuptools";
 
+  # imp and distuils usage, last commit in 2016
+  disabled = pythonAtLeast "3.12";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw";
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 6260a921ffa83..7b962064a8321 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -7,17 +7,17 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.2.2";
+  version = "2.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g5D9v1CZ70viP0C/9lWwJvterJ2KH3oUCKRsxEr9Neg=";
+    hash = "sha256-fQ/IYjYZL7wUpxslCB6cSMVD19vB57Jw1i7/iK/SJFw=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index fc39ba10083ff..0cdd9d8bff130 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.22.0";
+  version = "2.22.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9opygqCRxKGNQo52cS7BiUYdmknIk9ygubPgpylcy8o=";
+    hash = "sha256-nux6/1z1xBr+4+fWrR/oOc+zVOI9j60p/SHHAPZ+hWI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pipx/default.nix b/pkgs/development/python-modules/pipx/default.nix
index 7a60c22fcf25f..39837783976a7 100644
--- a/pkgs/development/python-modules/pipx/default.nix
+++ b/pkgs/development/python-modules/pipx/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , hatchling
 , hatch-vcs
+, installShellFiles
 , packaging
 , platformdirs
 , pytestCheckHook
@@ -41,6 +42,10 @@ buildPythonPackage rec {
     tomli
   ];
 
+  nativeBuildInputs = [
+      installShellFiles
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
     git
@@ -79,6 +84,13 @@ buildPythonPackage rec {
     "test_skip_maintenance"
   ];
 
+  postInstall =  ''
+    installShellCompletion --cmd pipx \
+      --bash <(${argcomplete}/bin/register-python-argcomplete pipx --shell bash) \
+      --zsh <(${argcomplete}/bin/register-python-argcomplete pipx --shell zsh) \
+      --fish <(${argcomplete}/bin/register-python-argcomplete pipx --shell fish)
+  '';
+
   meta = with lib; {
     description = "Install and run Python applications in isolated environments";
     mainProgram = "pipx";
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index a49adbc2acbfe..dfc981b615e6c 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "19.0.0";
+  version = "20.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mwWE5AZjqoUkPzyvuARotcRU2mKnqkoBh6priXLzE/I=";
+    hash = "sha256-TSydetm05gELugfRr6IGEfSrDhCOHzm73BTqbGkAXpk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plantuml-markdown/default.nix b/pkgs/development/python-modules/plantuml-markdown/default.nix
index 600131e2f5ec6..50e6bb2cf9418 100644
--- a/pkgs/development/python-modules/plantuml-markdown/default.nix
+++ b/pkgs/development/python-modules/plantuml-markdown/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "plantuml-markdown";
-  version = "3.9.3";
+  version = "3.9.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mikitex70";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-2nZV/bYRN1SKI6OmpOhK7KUuBwmwhTt/ErTYqVQ9Dps=";
+    hash = "sha256-DSR4/PEs1uzGHgtw5p3HMlquOIYHPWbTHrw6QGx7t4o=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/playwrightcapture/default.nix b/pkgs/development/python-modules/playwrightcapture/default.nix
index cf424e9af8228..e619ebeb89d8a 100644
--- a/pkgs/development/python-modules/playwrightcapture/default.nix
+++ b/pkgs/development/python-modules/playwrightcapture/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "playwrightcapture";
-  version = "1.23.14";
+  version = "1.24.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "Lookyloo";
     repo = "PlaywrightCapture";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZOElXI2JSo+/wPw58WjCO7hiOUutfC2TvBFAP2DpT7I=";
+    hash = "sha256-+2BxXgIC595FM3FDIbFjFpWIEkqQrDILWFjQkyN5nao=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/plotnine/default.nix b/pkgs/development/python-modules/plotnine/default.nix
index cc446f300bf14..bb39cae86c252 100644
--- a/pkgs/development/python-modules/plotnine/default.nix
+++ b/pkgs/development/python-modules/plotnine/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "plotnine";
-  version = "0.13.2";
+  version = "0.13.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "plotnine";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GgkaFiRRVpr0TreAetpaiOjpsyLV2wfGQWvUdHJN2mg=";
+    hash = "sha256-dbfbXYYmVdufTtrrllrqwe87LL1nYRar4RMLef7ajTQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index 7d8b5f6665157..0e53ee17e04af 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.37.1";
+  version = "0.37.2";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -30,21 +30,22 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6o0g3il4GV6E8avp9V2YrkaVPf2z37asdJOxf6Phbmc=";
+    hash = "sha256-zPh4yko35aMhiTTIDbaBgVruRDyolhtvTzTIhF5fo+Y=";
   };
 
   postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "setuptools~=68.0" "setuptools" \
-      --replace "wheel~=0.40.0" "wheel"
+    # setuptools
+    sed -i -e "s/~=[0-9.]*//" pyproject.toml
+    # wheel
+    sed -i -e "s/~=[0-9.]*//" pyproject.toml
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     async-timeout
     crcmod
diff --git a/pkgs/development/python-modules/preshed/default.nix b/pkgs/development/python-modules/preshed/default.nix
index 557045649425f..2314555fcb588 100644
--- a/pkgs/development/python-modules/preshed/default.nix
+++ b/pkgs/development/python-modules/preshed/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "preshed";
-  version = "4.0.0";
+  version = "3.0.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XisLKgfdGo3uqtZhIBmEXGAu4kkH9pNuqvF6q9VuVEw=";
+    hash = "sha256-chhjxSRP/NJlGtCSiVGix8d7EC9OEaJRrYXTfudiFmA=";
   };
 
   nativeBuildInputs = [
@@ -41,6 +41,9 @@ buildPythonPackage rec {
     "preshed"
   ];
 
+  # don't update to 4.0.0, version was yanked
+  passthru.skipBulkUpdate = true;
+
   meta = with lib; {
     description = "Cython hash tables that assume keys are pre-hashed";
     homepage = "https://github.com/explosion/preshed";
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index 174139f5aaf48..b6437f880ddb1 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "7.4.2";
+  version = "7.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,14 +24,14 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fmRFxSVzKN2ynuXJlpZcuIt4XIe7XHU4HSzSN1kCi2g=";
+    hash = "sha256-t3lNotfT3C2hv5AGPWZpL3wN68m8HRcjsccUz8QcY5I=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     cbor2
     pycryptodomex
diff --git a/pkgs/development/python-modules/pulsar/default.nix b/pkgs/development/python-modules/pulsar/default.nix
new file mode 100644
index 0000000000000..472b9cb0527a0
--- /dev/null
+++ b/pkgs/development/python-modules/pulsar/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, cmake
+, pkg-config
+, libpulsar
+, pybind11
+, certifi
+}:
+
+buildPythonPackage rec {
+  pname = "pulsar";
+  version = "3.4.0";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "apache";
+    repo = "pulsar-client-python";
+    rev = "v${version}";
+    hash = "sha256-WcD88s8V4AT/juW0qmYHdtYzrS3hWeom/4r8TETlmFE=";
+  };
+
+  disabled = pythonOlder "3.7";
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libpulsar
+    pybind11
+  ];
+
+  preBuild = ''
+    make -j$NIX_BUILD_CORES
+    make install
+    cd ..
+  '';
+
+  propagatedBuildInputs = [
+    certifi
+  ];
+
+  # Requires to setup a cluster
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pulsar"
+  ];
+
+  meta = with lib; {
+    description = "Apache Pulsar Python client library";
+    homepage = "https://pulsar.apache.org/docs/next/client-libraries-python/";
+    changelog = "https://github.com/apache/pulsar-client-python/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ gaelreyrol ];
+  };
+}
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index 004487bebbcd1..6ec4405a03684 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -24,12 +24,12 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.56";
+  version = "3.57";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dHc5t8QO4wtwFlLkiaSu5Ern/MsxNHZMd5aeqWdKwNo=";
+    hash = "sha256-6l0l7sbPspdF/TYTOKaWsgOdpfDUs0PyFVKGUBNPwIA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pydantic-yaml-0/default.nix b/pkgs/development/python-modules/pydantic-yaml-0/default.nix
new file mode 100644
index 0000000000000..57a4f72ba1f99
--- /dev/null
+++ b/pkgs/development/python-modules/pydantic-yaml-0/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, deprecated
+, importlib-metadata
+, pydantic_1
+, ruamel-yaml
+, semver
+, types-deprecated
+, setuptools
+, setuptools-scm
+, pytest-mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pydantic_yaml-0";
+  version = "0.11.2";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "NowanIlfideme";
+    repo = "pydantic-yaml";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-AeUyVav0/k4Fz69Qizn4hcJKoi/CDR9eUan/nJhWsDY=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/pydantic_yaml/version.py \
+      --replace-fail "0.0.0" "${version}"
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    deprecated
+    importlib-metadata
+    pydantic_1
+    ruamel-yaml
+    semver
+    types-deprecated
+  ];
+
+  pythonImportsCheck = [
+    "pydantic_yaml"
+  ];
+
+  nativeCheckInputs = [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "A small helper library that adds some YAML capabilities to pydantic";
+    homepage = "https://github.com/NowanIlfideme/pydantic-yaml";
+    changelog = "https://github.com/NowanIlfideme/pydantic-yaml/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/pyecoforest/default.nix b/pkgs/development/python-modules/pyecoforest/default.nix
index 2021b4e414b9c..a116a35420897 100644
--- a/pkgs/development/python-modules/pyecoforest/default.nix
+++ b/pkgs/development/python-modules/pyecoforest/default.nix
@@ -25,14 +25,14 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=pyecoforest --cov-report=term-missing:skip-covered" ""
+      --replace-fail "--cov=pyecoforest --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
   ];
 
diff --git a/pkgs/development/python-modules/pyenphase/default.nix b/pkgs/development/python-modules/pyenphase/default.nix
index 549d0b8e8263a..b3e4863f24725 100644
--- a/pkgs/development/python-modules/pyenphase/default.nix
+++ b/pkgs/development/python-modules/pyenphase/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pyenphase";
-  version = "1.20.0";
+  version = "1.20.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "pyenphase";
     repo = "pyenphase";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/TyQ6oSA361at1VSr6dLefOOmbZP4otBgb/JDA2sNWo=";
+    hash = "sha256-Bxwd8qHsvq9BuBMSu5JI/Yk/KC5aQ7b7lnXuIoNQ6EI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyformlang/default.nix b/pkgs/development/python-modules/pyformlang/default.nix
index ce3923e0f8a68..f5cc07c29e749 100644
--- a/pkgs/development/python-modules/pyformlang/default.nix
+++ b/pkgs/development/python-modules/pyformlang/default.nix
@@ -1,12 +1,13 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools
-, wheel
 , networkx
 , numpy
 , pydot
 , pytestCheckHook
+, pythonOlder
+, setuptools
+, wheel
 }:
 
 buildPythonPackage rec {
@@ -14,17 +15,19 @@ buildPythonPackage rec {
   version = "1.0.9";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-oCwYM4yQ1KYZpC7vVpeHSIDH2Q930JAuTDq9mds9zoc=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     networkx
     numpy
     pydot
@@ -39,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A python framework for formal grammars";
+    description = "Framework for formal grammars";
     homepage = "https://github.com/Aunsiels/pyformlang";
     license = licenses.mit;
     maintainers = with maintainers; [ natsukium ];
diff --git a/pkgs/development/python-modules/pygatt/default.nix b/pkgs/development/python-modules/pygatt/default.nix
index b2bf9416508db..67a7fea6b3341 100644
--- a/pkgs/development/python-modules/pygatt/default.nix
+++ b/pkgs/development/python-modules/pygatt/default.nix
@@ -2,27 +2,43 @@
 , buildPythonPackage
 , fetchFromGitHub
 , mock
-, nose
+, pynose
 , pexpect
 , pyserial
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pygatt";
   version = "4.0.5";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "peplin";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1zdfxidiw0l8n498sy0l33n90lz49n25x889cx6jamjr7frlcihd";
+    repo = "pygatt";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DUZGsztZViVNZwmhXoRN5FOQ7BgUeI0SsYgCHlvsrv0=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Not support for Python < 3.4
+    substituteInPlace setup.py \
+      --replace-fail "'enum-compat'" "" \
+      --replace-fail "'coverage >= 3.7.1'," "" \
+      --replace-fail "'nose >= 1.3.7'" ""
+    substituteInPlace tests/bgapi/test_bgapi.py \
+       --replace-fail "assertEquals" "assertEqual"
+  '';
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     pyserial
   ];
 
@@ -34,25 +50,22 @@ buildPythonPackage rec {
     # For cross compilation the doCheck is false and therefor the
     # nativeCheckInputs not included. We have to include nose here, since
     # setup.py requires nose unconditionally.
-    nose
+    pynose
   ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
-  ]
-  ++ passthru.optional-dependencies.GATTTOOL;
-
-  postPatch = ''
-    # Not support for Python < 3.4
-    substituteInPlace setup.py --replace "'enum-compat'" ""
-  '';
+  ] ++ passthru.optional-dependencies.GATTTOOL;
 
-  pythonImportsCheck = [ "pygatt" ];
+  pythonImportsCheck = [
+    "pygatt"
+  ];
 
   meta = with lib; {
     description = "Python wrapper the BGAPI for accessing Bluetooth LE Devices";
     homepage = "https://github.com/peplin/pygatt";
+    changelog = "https://github.com/peplin/pygatt/blob/v${version}/CHANGELOG.rst";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
index 9c4d50843e22c..e85c985b6c5ae 100644
--- a/pkgs/development/python-modules/pygls/default.nix
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "1.3.0";
+  version = "1.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "openlawlibrary";
     repo = "pygls";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6+SMlBTi+jw+bAUYqbaxXT5QygZFj4FeeEp6bch8M1s=";
+    hash = "sha256-AvrGoQ0Be1xKZhFn9XXYJpt5w+ITbDbj6NFZpaDPKao=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/pyinsteon/default.nix b/pkgs/development/python-modules/pyinsteon/default.nix
index e2e25aa18dcd6..22242ee62bf49 100644
--- a/pkgs/development/python-modules/pyinsteon/default.nix
+++ b/pkgs/development/python-modules/pyinsteon/default.nix
@@ -1,6 +1,7 @@
 { lib
 , aiofiles
 , aiohttp
+, async-timeout
 , async-generator
 , buildPythonPackage
 , fetchFromGitHub
@@ -12,31 +13,30 @@
 , pythonOlder
 , setuptools
 , voluptuous
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "pyinsteon";
   version = "1.5.3";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "pyinsteon";
+    repo = "pyinsteon";
     rev = "refs/tags/${version}";
     hash = "sha256-9d6QbekUv63sjKdK+ZogYOkGfFXVW+JB6ITHnehLwtM=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiofiles
     aiohttp
+    async-timeout
     pypubsub
     pyserial
     pyserial-asyncio
@@ -48,20 +48,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.12") [
-    # AssertionError: Failed test 'read_eeprom_response' with argument 'group' value X vs expected value Z
-    "test_async_send"
-    "test_nak_response"
-    "test_no_direct_ack"
-    "test_on_level"
-    "test_on_level_group"
-    "test_on_level_nak"
-    # AssertionError: Failed test 'read_eeprom_response' with argument 'target' value X vs expected value Y
-    "test_other_status"
-    "test_status_command"
-    "test_status_request_hub"
-    # stuck in epoll
-    "test_read_all_peek"
+  disabledTestPaths = lib.optionals (pythonAtLeast "3.12") [
+    # Tests are blocking or failing
+    "tests/test_handlers/"
   ];
 
   pythonImportsCheck = [
@@ -70,7 +59,6 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to support Insteon home automation projects";
-    mainProgram = "insteon_tools";
     longDescription = ''
       This is a Python package to interface with an Insteon Modem. It has been
       tested to work with most USB or RS-232 serial based devices such as the
@@ -80,5 +68,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/pyinsteon/pyinsteon/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "insteon_tools";
   };
 }
diff --git a/pkgs/development/python-modules/pylacus/default.nix b/pkgs/development/python-modules/pylacus/default.nix
index 1f2790ad20311..09941db80a0ed 100644
--- a/pkgs/development/python-modules/pylacus/default.nix
+++ b/pkgs/development/python-modules/pylacus/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pylacus";
-  version = "1.8.2";
+  version = "1.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "ail-project";
     repo = "PyLacus";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wXdQe/4Xw/D0MRFqNfSKimJ99aCE7M7k1neT/+t7ixY=";
+    hash = "sha256-ytO9wtCkiC6CLWLkmSV/R+Rnx/W4Jv2dsgykZ2GB13U=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/pyleri/default.nix b/pkgs/development/python-modules/pyleri/default.nix
index 98c71d06f55ac..2ff3abf5978d9 100644
--- a/pkgs/development/python-modules/pyleri/default.nix
+++ b/pkgs/development/python-modules/pyleri/default.nix
@@ -3,12 +3,13 @@
 , fetchFromGitHub
 , pythonOlder
 , unittestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pyleri";
-  version = "1.4.2";
-  format = "setuptools";
+  version = "1.4.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -16,9 +17,13 @@ buildPythonPackage rec {
     owner = "cesbit";
     repo = "pyleri";
     rev = "refs/tags/${version}";
-    hash = "sha256-52Q2iTrXFNbDzXL0FM+Gypipvo5ciNqAtZa5sKOwQRc=";
+    hash = "sha256-4t+6wtYzJbmL0TB/OXr89uZ2s8DeGlUdWwHd4YPsCW0=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     unittestCheckHook
   ];
diff --git a/pkgs/development/python-modules/pymaven-patch/default.nix b/pkgs/development/python-modules/pymaven-patch/default.nix
index 8218ccddcc61e..4d98ded89637b 100644
--- a/pkgs/development/python-modules/pymaven-patch/default.nix
+++ b/pkgs/development/python-modules/pymaven-patch/default.nix
@@ -11,12 +11,12 @@
 }:
 buildPythonPackage rec {
   pname = "pymaven-patch";
-  version = "0.3.0";
+  version = "0.3.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d55b29bd4aeef3510904a12885eb6856b5bd48f3e29925a123461429f9ad85c0";
+    sha256 = "sha256-DPfJPonwHwQI62Vu7FjLSiKMleA7PUfLc9MfiZBVzVA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pynobo/default.nix b/pkgs/development/python-modules/pynobo/default.nix
index 783415a2c2fb7..c4da63a0e333e 100644
--- a/pkgs/development/python-modules/pynobo/default.nix
+++ b/pkgs/development/python-modules/pynobo/default.nix
@@ -2,22 +2,27 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pynobo";
-  version = "1.7.0";
-  format = "setuptools";
+  version = "1.8.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "echoromeo";
-    repo = pname;
+    repo = "pynobo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LJS4NJM+f+j53YzH8LradBDzHAsOprd4F7nH1cfC3B0=";
+    hash = "sha256-Hfyf7XGleDWTKKWNlItcBFuiS3UEwsYed7v5FPRdC0w=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   # Project has no tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pynvim-pp/default.nix b/pkgs/development/python-modules/pynvim-pp/default.nix
index 0f69b51e65dea..a1dee20139b4e 100644
--- a/pkgs/development/python-modules/pynvim-pp/default.nix
+++ b/pkgs/development/python-modules/pynvim-pp/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage {
   pname = "pynvim-pp";
-  version = "unstable-2023-08-03";
+  version = "unstable-2024-03-11";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ms-jpq";
     repo = "pynvim_pp";
-    rev = "40d0f6053ddbba61f53505eebb0290cfb661661b";
-    hash = "sha256-4jeYE9HL+PQZuJq5nyf9CgL4UrRWm3ifLL/vfygLOwc=";
+    rev = "34e3a027c595981886d7efd1c91071f3eaa4715d";
+    hash = "sha256-2+jDRJXlg9q4MN9vOhmeq4cWVJ0wp5r5xAh3G8lqgOg=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyogg/default.nix b/pkgs/development/python-modules/pyogg/default.nix
index 22a602df273a3..77f63870a2960 100644
--- a/pkgs/development/python-modules/pyogg/default.nix
+++ b/pkgs/development/python-modules/pyogg/default.nix
@@ -1,37 +1,64 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage, libvorbis, flac, libogg, libopus, opusfile, substituteAll }:
+{ stdenv
+, lib
+, fetchPypi
+, buildPythonPackage
+, libvorbis
+, flac
+, libogg
+, libopus
+, opusfile
+, substituteAll
+, python
+}:
 
 buildPythonPackage rec {
-    pname = "pyogg";
-    version = "0.6.9a1";
-
-    src = fetchPypi {
-      pname = "PyOgg";
-      inherit version;
-      sha256 = "0xabqwyknpvfc53s7il5pq6b07fcaqvz5bi5vbs3pbaw8602qvim";
-    };
-
-    buildInputs = [ libvorbis flac libogg libopus ];
-    propagatedBuidInputs = [ libvorbis flac libogg libopus opusfile ];
-    # There are no tests in this package.
-    doCheck = false;
-    patchFlags = [ "-p1" "--binary" ]; # patch has dos style eol
-    patches = [
-      (substituteAll {
-        src = ./pyogg-paths.patch;
-        flacLibPath="${flac.out}/lib/libFLAC${stdenv.hostPlatform.extensions.sharedLibrary}";
-        oggLibPath="${libogg}/lib/libogg${stdenv.hostPlatform.extensions.sharedLibrary}";
-        vorbisLibPath="${libvorbis}/lib/libvorbis${stdenv.hostPlatform.extensions.sharedLibrary}";
-        vorbisFileLibPath="${libvorbis}/lib/libvorbisfile${stdenv.hostPlatform.extensions.sharedLibrary}";
-        vorbisEncLibPath="${libvorbis}/lib/libvorbisenc${stdenv.hostPlatform.extensions.sharedLibrary}";
-        opusLibPath="${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}";
-        opusFileLibPath="${opusfile}/lib/libopusfile${stdenv.hostPlatform.extensions.sharedLibrary}";
-      })
-    ];
-
-  meta = {
+
+  pname = "pyogg";
+  version = "0.6.14a1";
+
+  src = fetchPypi {
+    pname = "PyOgg";
+    inherit version;
+    hash = "sha256-gpSzSqWckCAMRjDCzEpbhEByCRQejl0GnXpb41jpQmI=";
+  };
+
+  buildInputs = [
+    libvorbis
+    flac
+    libogg
+    libopus
+  ];
+
+  propagatedBuidInputs = [
+    libvorbis
+    flac
+    libogg
+    libopus
+    opusfile
+  ];
+
+  # There are no tests in this package.
+  doCheck = false;
+
+  # patch has dos style eol
+  patchFlags = [ "-p1" "--binary" ];
+  patches = [
+    (substituteAll {
+      src = ./pyogg-paths.patch;
+      flacLibPath="${flac.out}/lib/libFLAC${stdenv.hostPlatform.extensions.sharedLibrary}";
+      oggLibPath="${libogg}/lib/libogg${stdenv.hostPlatform.extensions.sharedLibrary}";
+      vorbisLibPath="${libvorbis}/lib/libvorbis${stdenv.hostPlatform.extensions.sharedLibrary}";
+      vorbisFileLibPath="${libvorbis}/lib/libvorbisfile${stdenv.hostPlatform.extensions.sharedLibrary}";
+      vorbisEncLibPath="${libvorbis}/lib/libvorbisenc${stdenv.hostPlatform.extensions.sharedLibrary}";
+      opusLibPath="${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}";
+      opusFileLibPath="${opusfile}/lib/libopusfile${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  meta = with lib; {
     description = "Xiph.org's Ogg Vorbis, Opus and FLAC for Python";
     homepage = "https://github.com/Zuzu-Typ/PyOgg";
-    license = lib.licenses.publicDomain;
-    maintainers = with lib.maintainers; [ pmiddend ];
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ pmiddend ];
   };
 }
diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix
index 0b22058a8463b..ce40b9c2a9ec7 100644
--- a/pkgs/development/python-modules/pyoverkiz/default.nix
+++ b/pkgs/development/python-modules/pyoverkiz/default.nix
@@ -16,8 +16,8 @@
 
 buildPythonPackage rec {
   pname = "pyoverkiz";
-  version = "1.13.9";
-  format = "pyproject";
+  version = "1.13.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -25,19 +25,19 @@ buildPythonPackage rec {
     owner = "iMicknl";
     repo = "python-overkiz-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J1nsRB9KYg3yUuxQV79/Udjjkux+BE4YcawpRJcSYHI=";
+    hash = "sha256-05S0tCfCXgvkheUBVDGX8my0c7SCi/ran2emjaGWd9s=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'pyhumps = "^3.0.2,!=3.7.3"' 'pyhumps = "^3.0.2"'
+      --replace-fail 'pyhumps = "^3.0.2,!=3.7.3"' 'pyhumps = "^3.0.2"'
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     attrs
     backoff
diff --git a/pkgs/development/python-modules/pyrevolve/default.nix b/pkgs/development/python-modules/pyrevolve/default.nix
index d60b2164051c0..a097532e8c978 100644
--- a/pkgs/development/python-modules/pyrevolve/default.nix
+++ b/pkgs/development/python-modules/pyrevolve/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyrevolve";
-  version = "2.2.3";
+  version = "2.2.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "devitocodes";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-z1G8DXG06Capd87x02zqrtYyBrX4xmJP94t4bgaR2PE=";
+    hash = "sha256-fcIq/zuKO3W7K9N2E4f2Q6ZVcssZwN/n8o9cCOYmr3E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyring-buffer/default.nix b/pkgs/development/python-modules/pyring-buffer/default.nix
new file mode 100644
index 0000000000000..6a5c709f617ea
--- /dev/null
+++ b/pkgs/development/python-modules/pyring-buffer/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# build-system
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pyring-buffer";
+  version = "1.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rhasspy";
+    repo = "pyring-buffer";
+    rev = "382290312fa2ad5d75bd42c040a43e25dad9c8a7";
+    hash = "sha256-bHhcBU4tjFAyZ3/GjaP/hDXz2N73mCChTNYHsZyBCSM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [
+    "pyring_buffer"
+  ];
+
+  meta = with lib; {
+    description = "A pure Python ring buffer for bytes";
+    homepage = "https://github.com/rhasspy/pyring-buffer";
+    changelog = "https://github.com/rhasspy/pyring-buffer/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix
index 7b60a47c44c32..a8c0911276b4c 100644
--- a/pkgs/development/python-modules/pyscf/default.nix
+++ b/pkgs/development/python-modules/pyscf/default.nix
@@ -84,6 +84,7 @@ buildPythonPackage rec {
     "test_n3_cis_ewald"
     "test_veff"
     "test_collinear_kgks_gga"
+    "test_libxc_gga_deriv4"
   ];
 
   pytestFlagsArray = [
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index b883c5ea147f3..bf7a00dd8fe1f 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.11.3";
+  version = "0.11.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma";
     rev = "refs/tags/v${version}";
-    hash = "sha256-G3/ksQXAN981i8iZC8/Ho0r/iHQqqtBPg/VdDTWxC9Y=";
+    hash = "sha256-tlFrUAwOTK+O/YJjfA6nwsVAcZrMNXFmCYoxHc2ykVY=";
   };
 
   pythonRelaxDeps = [
@@ -32,12 +32,12 @@ buildPythonPackage rec {
     "packaging"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jinja2
     packaging
     pyparsing
diff --git a/pkgs/development/python-modules/pysilero-vad/default.nix b/pkgs/development/python-modules/pysilero-vad/default.nix
new file mode 100644
index 0000000000000..332d7260e519f
--- /dev/null
+++ b/pkgs/development/python-modules/pysilero-vad/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, stdenv
+, pythonRelaxDepsHook
+
+# build-system
+, setuptools
+
+# dependencies
+, numpy
+, onnxruntime
+
+# tests
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pysilero-vad";
+  version = "1.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rhasspy";
+    repo = "pysilero-vad";
+    rev = "fc1e3f74e6282249c1fd67ab0f65832ad1ce9cc5";
+    hash = "sha256-5jS2xZEtvzXO/ffZzseTTUHfE528W9FvKB0AKG6T62k=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "numpy"
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    onnxruntime
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "pysilero_vad"
+  ];
+
+  meta = with lib; {
+    # what():  /build/source/include/onnxruntime/core/common/logging/logging.h:294 static const onnxruntime::logging::Logger& onnxruntime::logging::LoggingManager::DefaultLogger() Attempt to use DefaultLogger but none has been registered.
+    broken = stdenv.isAarch64 && stdenv.isLinux;
+    description = "Pre-packaged voice activity detector using silero-vad";
+    homepage = "https://github.com/rhasspy/pysilero-vad";
+    changelog = "https://github.com/rhasspy/pysilero-vad/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-relaxed/default.nix b/pkgs/development/python-modules/pytest-relaxed/default.nix
index 84f7edb2b6e40..8a541c74e5f69 100644
--- a/pkgs/development/python-modules/pytest-relaxed/default.nix
+++ b/pkgs/development/python-modules/pytest-relaxed/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-relaxed";
-  version = "2.0.1";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-U6c3Lj/qpSdAm7QDU/gTxZt2Dl2L1H5vb88YfF2W3Qw=";
+    hash = "sha256-lW6gKOww27+2gN2Oe0p/uPgKI5WV6Ius4Bi/LA1xgkg=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix
index 034a908445086..b157eba228acd 100644
--- a/pkgs/development/python-modules/python-matter-server/default.nix
+++ b/pkgs/development/python-modules/python-matter-server/default.nix
@@ -55,7 +55,7 @@ in
 
 buildPythonPackage rec {
   pname = "python-matter-server";
-  version = "5.8.1";
+  version = "5.9.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -64,7 +64,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "python-matter-server";
     rev = "refs/tags/${version}";
-    hash = "sha256-iisDEopaKklLvvGDTo2fv0Fpkhuhd+7KoNnQA+QmjB8=";
+    hash = "sha256-O3AJ7vBjuwRGa4AMwWIdxn5m2F45rLCjCHeff18b/5E=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch b/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
index 217fe42339eca..6c52715950562 100644
--- a/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
+++ b/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
@@ -1,22 +1,21 @@
 diff --git a/matter_server/server/const.py b/matter_server/server/const.py
-index 2a6140b..275353a 100644
+index 8cca3cf..43f02f5 100644
 --- a/matter_server/server/const.py
 +++ b/matter_server/server/const.py
-@@ -15,7 +15,8 @@ DATA_MODEL_SCHEMA_VERSION = 6
- # and always uses the development subfolder
- # regardless of anything you pass into instantiating the controller
- # revisit this once matter 1.1 is released
--PAA_ROOT_CERTS_DIR: Final[pathlib.Path] = (
-+PAA_ROOT_CERTS_DIR: Final[pathlib.Path] = pathlib.Path("@paacerts@")
+@@ -14,6 +14,8 @@ DATA_MODEL_SCHEMA_VERSION = 6
+ # Keep default location inherited from early version of the Python
+ # bindings.
+ DEFAULT_PAA_ROOT_CERTS_DIR: Final[pathlib.Path] = (
++    pathlib.Path("@paacerts@"))
 +(
      pathlib.Path(__file__)
      .parent.resolve()
      .parent.resolve()
 diff --git a/matter_server/server/helpers/paa_certificates.py b/matter_server/server/helpers/paa_certificates.py
-index d186be1..d2cef54 100644
+index e530838..fdd6025 100644
 --- a/matter_server/server/helpers/paa_certificates.py
 +++ b/matter_server/server/helpers/paa_certificates.py
-@@ -62,6 +62,8 @@ async def fetch_dcl_certificates(
+@@ -64,6 +64,8 @@ async def fetch_dcl_certificates(
      fetch_production_certificates: bool = True,
  ) -> int:
      """Fetch DCL PAA Certificates."""
@@ -25,16 +24,16 @@ index d186be1..d2cef54 100644
      LOGGER.info("Fetching the latest PAA root certificates from DCL.")
      fetch_count: int = 0
      base_urls = set()
-@@ -121,6 +123,8 @@ async def fetch_dcl_certificates(
+@@ -124,6 +126,8 @@ async def fetch_dcl_certificates(
  
- async def fetch_git_certificates() -> int:
+ async def fetch_git_certificates(paa_root_cert_dir: Path) -> int:
      """Fetch Git PAA Certificates."""
 +    return 0
 +
      fetch_count = 0
      LOGGER.info("Fetching the latest PAA root certificates from Git.")
  
-@@ -162,6 +166,8 @@ async def fetch_certificates(
+@@ -159,6 +163,8 @@ async def fetch_certificates(
      fetch_production_certificates: bool = True,
  ) -> int:
      """Fetch PAA Certificates."""
@@ -42,4 +41,4 @@ index d186be1..d2cef54 100644
 +
      loop = asyncio.get_running_loop()
  
-     if not PAA_ROOT_CERTS_DIR.is_dir():
+     if not paa_root_cert_dir.is_dir():
diff --git a/pkgs/development/python-modules/python-whois/default.nix b/pkgs/development/python-modules/python-whois/default.nix
index 6cdfb81628a3a..a9bb5cdd8e383 100644
--- a/pkgs/development/python-modules/python-whois/default.nix
+++ b/pkgs/development/python-modules/python-whois/default.nix
@@ -1,37 +1,53 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, future
-, nose
+, pynose
 , pytestCheckHook
+, python-dateutil
+, pythonOlder
+, setuptools
 , simplejson
 }:
 
 buildPythonPackage rec {
   pname = "python-whois";
-  version = "0.8.0";
-  format = "setuptools";
+  version = "0.9.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3TNtNRfqzip2iUBtt7uWraPF50MnQjFRru4+ZCJfYiA=";
+    hash = "sha256-jdoscMD4nw+PxIpCNweJMyv/9nm1+kYgSIhBUdJso84=";
   };
 
-  propagatedBuildInputs = [ future ];
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    python-dateutil
+  ];
 
   nativeCheckInputs = [
-    nose
+    pynose
     pytestCheckHook
     simplejson
   ];
 
-  # Exclude tests that require network access
   disabledTests = [
+    # Exclude tests that require network access
     "test_dk_parse"
     "test_ipv4"
     "test_ipv6"
+    "test_choose_server"
+    "test_simple_ascii_domain"
+    "test_simple_unicode_domain"
+  ];
+
+  pythonImportsCheck = [
+    "whois"
   ];
-  pythonImportsCheck = [ "whois" ];
 
   meta = with lib; {
     description = "Python module to produce parsed WHOIS data";
diff --git a/pkgs/development/python-modules/pytimeparse/default.nix b/pkgs/development/python-modules/pytimeparse/default.nix
index 41cfa632dd2e9..ec7dac91c12a6 100644
--- a/pkgs/development/python-modules/pytimeparse/default.nix
+++ b/pkgs/development/python-modules/pytimeparse/default.nix
@@ -1,21 +1,40 @@
-{ lib, fetchPypi, buildPythonPackage, nose }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pynose
+, pythonOlder
+, setuptools
+}:
 
 buildPythonPackage rec {
-    pname = "pytimeparse";
-    version = "1.1.8";
-    format = "setuptools";
+  pname = "pytimeparse";
+  version = "1.1.8";
+  pyproject = true;
 
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a";
-    };
+  disabled = pythonOlder "3.7";
 
-    nativeCheckInputs = [ nose ];
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-6GE2R3vpJNfmcGRqmFYZV+jKcwjUSEHiH13ep1dVago=";
+  };
 
-    meta = with lib; {
-      description = "A small Python library to parse various kinds of time expressions";
-      homepage    = "https://github.com/wroberts/pytimeparse";
-      license     = licenses.mit;
-      maintainers = with maintainers; [ vrthra ];
-    };
+  build-system = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pynose
+  ];
+
+  pythonImportsCheck = [
+    "pytimeparse"
+  ];
+
+  meta = with lib; {
+    description = "Library to parse various kinds of time expressions";
+    homepage = "https://github.com/wroberts/pytimeparse";
+    changelog = "https://github.com/wroberts/pytimeparse/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vrthra ];
+  };
 }
diff --git a/pkgs/development/python-modules/pyunifiprotect/default.nix b/pkgs/development/python-modules/pyunifiprotect/default.nix
index 9cf0773b0cb5f..7b7a042ad8be6 100644
--- a/pkgs/development/python-modules/pyunifiprotect/default.nix
+++ b/pkgs/development/python-modules/pyunifiprotect/default.nix
@@ -13,6 +13,7 @@
 , orjson
 , packaging
 , pillow
+, platformdirs
 , poetry-core
 , py
 , pydantic
@@ -32,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "pyunifiprotect";
-  version = "5.0.2";
+  version = "5.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -41,22 +42,22 @@ buildPythonPackage rec {
     owner = "briis";
     repo = "pyunifiprotect";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bZjfpatw4lcOgMCqung/DMfRijxwtuIht6QusIYaCQ0=";
+    hash = "sha256-DtQm6u3O0kdVJ23Ch+hJQ6HTOt5iAMdhCzC1K/oICWk=";
   };
 
   env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--strict-markers -ra -Wd --ignore=.* --no-cov-on-fail --cov=pyunifiprotect --cov-append --maxfail=10 -n=auto" ""
+      --replace-fail "--strict-markers -ra -Wd --ignore=.* --no-cov-on-fail --cov=pyunifiprotect --cov-append --maxfail=10 -n=auto" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiofiles
     aiohttp
     aioshutil
@@ -64,6 +65,7 @@ buildPythonPackage rec {
     orjson
     packaging
     pillow
+    platformdirs
     pydantic
     pyjwt
     pytz
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index 3259d3133d87d..9a3f6d00dc6ee 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -1,11 +1,9 @@
 { lib
 , stdenv
-, archinfo
 , bitstring
 , buildPythonPackage
 , cffi
 , fetchPypi
-, future
 , pycparser
 , pythonOlder
 , setuptools
@@ -13,31 +11,29 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.93";
+  version = "9.2.96";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-44F1EE8TRsmYRnMNQakxIaFdAuZKpHIDsq+M1cK/pQk=";
+    hash = "sha256-60aOAm7eUlYHTCqIILz4l0oF1jvttDZUs4jSrF5+IJI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    archinfo
+  dependencies = [
     bitstring
     cffi
-    future
     pycparser
   ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace vex/Makefile-gcc \
-      --replace '/usr/bin/ar' 'ar'
+      --replace-fail '/usr/bin/ar' 'ar'
   '';
 
   setupPyBuildFlags = lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/python-modules/pywebpush/default.nix b/pkgs/development/python-modules/pywebpush/default.nix
index 903ad646b8b53..ebb3313b20c52 100644
--- a/pkgs/development/python-modules/pywebpush/default.nix
+++ b/pkgs/development/python-modules/pywebpush/default.nix
@@ -1,28 +1,36 @@
 { lib
-, fetchPypi
+, aiohttp
 , buildPythonPackage
 , cryptography
+, fetchPypi
 , http-ece
+, mock
 , py-vapid
+, pytestCheckHook
+, pythonOlder
 , requests
+, setuptools
 , six
-, coverage
-, flake8
-, mock
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pywebpush";
-  version = "1.14.1";
-  format = "setuptools";
+  version = "2.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+I1+K/XofGFt+wS4yVwRkjjFEWWbAvc17nfMFoQoVe4=";
+    hash = "sha256-A8zD6XW2A3S3Y0xJVZVha+Ujvyx9oNl26E/amsjGMwE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    aiohttp
     cryptography
     http-ece
     py-vapid
@@ -31,19 +39,20 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    coverage
-    flake8
     mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pywebpush" ];
+  pythonImportsCheck = [
+    "pywebpush"
+  ];
 
   meta = with lib; {
     description = "Webpush Data encryption library for Python";
-    mainProgram = "pywebpush";
     homepage = "https://github.com/web-push-libs/pywebpush";
+    changelog = "https://github.com/web-push-libs/pywebpush/releases/tag/${version}";
     license = licenses.mpl20;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "pywebpush";
   };
 }
diff --git a/pkgs/development/python-modules/pyzbar/default.nix b/pkgs/development/python-modules/pyzbar/default.nix
index 60241e40773fa..334db791c3b7c 100644
--- a/pkgs/development/python-modules/pyzbar/default.nix
+++ b/pkgs/development/python-modules/pyzbar/default.nix
@@ -20,7 +20,9 @@ buildPythonPackage rec {
     sha256 = "8IZQY6qB4r1SUPItDlTDnVQuPs0I38K3yJ6LiPJuwbU=";
   };
 
-  propagatedBuildInputs = [ zbar pillow numpy ];
+  buildInputs = [ zbar ];
+
+  propagatedBuildInputs = [ pillow numpy ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/qbittorrent-api/default.nix b/pkgs/development/python-modules/qbittorrent-api/default.nix
index 2c1cbc8d5164c..c2087c3f52b15 100644
--- a/pkgs/development/python-modules/qbittorrent-api/default.nix
+++ b/pkgs/development/python-modules/qbittorrent-api/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "qbittorrent-api";
-  version = "2024.2.59";
+  version = "2024.3.60";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-227vnOJmYcrbYd8MjTG8c82sf3awNOF/bxAby0JlSfA=";
+    hash = "sha256-gnT19BKyPqzcRK1aKsC97NxktR4aqPd3LOlVo9/1gJY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qpsolvers/default.nix b/pkgs/development/python-modules/qpsolvers/default.nix
index 7a1844616a362..9d3bba7ecb024 100644
--- a/pkgs/development/python-modules/qpsolvers/default.nix
+++ b/pkgs/development/python-modules/qpsolvers/default.nix
@@ -19,14 +19,14 @@
 }:
 buildPythonPackage rec {
   pname = "qpsolvers";
-  version = "4.3.1";
+  version = "4.3.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "qpsolvers";
     repo = "qpsolvers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/HLc9dFf9F/6W7ux2Fj2yJuV/xCVeGyO6MblddwIGdM=";
+    hash = "sha256-EU7/OGLeOIHw7wyNTibMmHZLAiRTCUFwjEaVNsHg1vw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/qtawesome/default.nix b/pkgs/development/python-modules/qtawesome/default.nix
index e1bd21ba00547..b5e668c10a685 100644
--- a/pkgs/development/python-modules/qtawesome/default.nix
+++ b/pkgs/development/python-modules/qtawesome/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "qtawesome";
-  version = "1.3.0";
+  version = "1.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "spyder-ide";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-CencHIgkiXDmSEasc1EgalhT8RXfyXKx0wy09NDsj54=";
+    hash = "sha256-dF77vkrEl671fQvsHAX+JY9OmLA29kgAVswY2b3UyTg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/radian/default.nix b/pkgs/development/python-modules/radian/default.nix
index 820e10a409347..09d0c38c41575 100644
--- a/pkgs/development/python-modules/radian/default.nix
+++ b/pkgs/development/python-modules/radian/default.nix
@@ -18,16 +18,16 @@
 
 buildPythonPackage rec {
   pname = "radian";
-  version = "0.6.8";
+  version = "0.6.12";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "randy3k";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zI6oUHO4rY/BbbHhvzSNIKCpTDRm0cK46rIKN/ISgY0=";
+    hash = "sha256-cojKbDNqcUay5RxvWszQ96eC4jVI4G7iRv/ZYWgidCQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/rchitect/default.nix b/pkgs/development/python-modules/rchitect/default.nix
index 060fafa8d6e07..cbafc0d2b2b6d 100644
--- a/pkgs/development/python-modules/rchitect/default.nix
+++ b/pkgs/development/python-modules/rchitect/default.nix
@@ -8,20 +8,21 @@
 , R
 , rPackages
 , six
+, packaging
 }:
 
 buildPythonPackage rec {
   pname = "rchitect";
-  version = "0.4.4";
+  version = "0.4.6";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "randy3k";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-igrYMgPemYVGDR+eWiqtxFxFjroCyOfKEU0wj8D7ZS8=";
+    hash = "sha256-IVyYzf433m03RRfL5SmUOdaXFy0NHf/QuAdtUeUjIz0=";
   };
 
   postPatch = ''
@@ -32,6 +33,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     cffi
     six
+    packaging
   ] ++ (with rPackages; [
     reticulate
   ]);
diff --git a/pkgs/development/python-modules/redis-om/default.nix b/pkgs/development/python-modules/redis-om/default.nix
index 551a251bc174e..1549b891636ff 100644
--- a/pkgs/development/python-modules/redis-om/default.nix
+++ b/pkgs/development/python-modules/redis-om/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "redis-om";
-  version = "0.2.1";
+  version = "0.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,10 +30,10 @@ buildPythonPackage rec {
     owner = "redis";
     repo = "redis-om-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jQS0VTYZeAj3+OVFy+JP4mUFBPo+a5D/kdJKagFraaA=";
+    hash = "sha256-E11wpTrE+HIT+jgn1zMC8L7RGas83DAJd1R0WWHp7Jc=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     pythonRelaxDepsHook
     unasync
     poetry-core
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   # https://github.com/redis/redis-om-python/pull/577
   pythonRelaxDeps = true;
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     hiredis
     more-itertools
diff --git a/pkgs/development/python-modules/reptor/default.nix b/pkgs/development/python-modules/reptor/default.nix
index 013008581a531..1843505af86d4 100644
--- a/pkgs/development/python-modules/reptor/default.nix
+++ b/pkgs/development/python-modules/reptor/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "reptor";
-  version = "0.14";
+  version = "0.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "Syslifters";
     repo = "reptor";
     rev = "refs/tags/${version}";
-    hash = "sha256-XZiFVIUyLVVr3ZraOAuXs+shl4vk3S8OJHNHV4p10YY=";
+    hash = "sha256-xyk83XPITD1sAtuFcndTQg0otDMO89LK+B+9SD89kvo=";
   };
 
   pythonRelaxDeps = true;
diff --git a/pkgs/development/python-modules/requirements-parser/default.nix b/pkgs/development/python-modules/requirements-parser/default.nix
index 11fe8edf6a100..1f35ce49b25c5 100644
--- a/pkgs/development/python-modules/requirements-parser/default.nix
+++ b/pkgs/development/python-modules/requirements-parser/default.nix
@@ -10,23 +10,23 @@
 
 buildPythonPackage rec {
   pname = "requirements-parser";
-  version = "0.5.0";
-  format = "pyproject";
+  version = "0.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "madpah";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-e2dfVBMh1uGRMDw7OdPefO4/eRxc3BGwvy/D7u5ipkk=";
+    repo = "requirements-parser";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-P1uMpg9uoPp18KwdBHkvpMGV8eKhTEsDCKwz2JsTOug=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     setuptools
     types-setuptools
   ];
@@ -42,7 +42,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pip requirements file parser";
     homepage = "https://github.com/davidfischer/requirements-parser";
+    changelog = "https://github.com/madpah/requirements-parser/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd2;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/rerun-sdk/default.nix b/pkgs/development/python-modules/rerun-sdk/default.nix
index 6ab9c8a758a05..f6476b1675bde 100644
--- a/pkgs/development/python-modules/rerun-sdk/default.nix
+++ b/pkgs/development/python-modules/rerun-sdk/default.nix
@@ -4,6 +4,7 @@
   rustPlatform,
   stdenv,
   attrs,
+  darwin,
   numpy,
   pillow,
   pyarrow,
@@ -12,6 +13,7 @@
   typing-extensions,
   pytestCheckHook,
   python,
+  libiconv,
 }:
 
 buildPythonPackage {
@@ -27,6 +29,13 @@ buildPythonPackage {
     rustPlatform.maturinBuildHook
   ];
 
+  buildInputs = [
+    libiconv # No-op on Linux, necessary on Darwin.
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    darwin.apple_sdk.frameworks.AppKit
+    darwin.apple_sdk.frameworks.CoreServices
+  ];
+
   propagatedBuildInputs = [
     attrs
     numpy
diff --git a/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix b/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
index 797bda0d3ea40..39feab338d240 100644
--- a/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
+++ b/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
@@ -2,16 +2,18 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, fetchpatch2
 , setuptools
+, robotframework
+, approvaltests
 , pytest-mockito
 , pytestCheckHook
-, robotframework
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "robotframework-pythonlibcore";
-  version = "4.3.0";
+  version = "4.4.0";
 
   disabled = pythonOlder "3.8";
 
@@ -21,24 +23,31 @@ buildPythonPackage rec {
     owner = "robotframework";
     repo = "PythonLibCore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5ayOQyOhCg4nLpAyH/eQ6NYEApix0wsL2nhJzEXKJRo=";
+    hash = "sha256-282A4EW88z6ODSIEIIeBbN8YO491rwI4M7njI7kL3XQ=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/robotframework/PythonLibCore/commit/8b756a4bd119d660109437023789bfada21bdc78.patch";
+      hash = "sha256-4NtgkGbIj9gH9Det6VNh1MpGSGroESxQ8X2ZTeoX/zU=";
+    })
+  ];
+
+  build-system = [
     setuptools
   ];
 
+  dependencies = [
+    robotframework
+  ];
+
   nativeCheckInputs = [
+    approvaltests
     pytest-mockito
     pytestCheckHook
-    robotframework
     typing-extensions
   ];
 
-  preCheck = ''
-    export PYTHONPATH="atest:utest/helpers:$PYTHONPATH"
-  '';
-
   pythonImportsCheck = [ "robotlibcore" ];
 
   meta = {
diff --git a/pkgs/development/python-modules/romy/default.nix b/pkgs/development/python-modules/romy/default.nix
new file mode 100644
index 0000000000000..9492bab6ce0e7
--- /dev/null
+++ b/pkgs/development/python-modules/romy/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, aiohttp
+}:
+
+buildPythonPackage rec {
+  pname = "romy";
+  version = "0.0.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "xeniter";
+    repo = "romy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-r7g8DE8eBFHkMHzGfNlYi+XxrRIvH8IDxGOSEiJKKqM=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "romy"
+  ];
+
+  meta = with lib; {
+    description = "Library to control Wi-Fi enabled ROMY vacuum cleaners";
+    homepage = "https://github.com/xeniter/romy";
+    changelog = "https://github.com/xeniter/romy/releases/tag/${version}";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rpyc/default.nix b/pkgs/development/python-modules/rpyc/default.nix
index 7c9a13fc4d17a..9d3d66b46f25f 100644
--- a/pkgs/development/python-modules/rpyc/default.nix
+++ b/pkgs/development/python-modules/rpyc/default.nix
@@ -11,22 +11,22 @@
 buildPythonPackage rec {
   pname = "rpyc";
   version = "6.0.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "tomerfiliba";
-    repo = pname;
+    repo = "rpyc";
     rev = "refs/tags/${version}";
     hash = "sha256-BvXEXZlVbOmKBwnSBCDksUkbT7JPcMX48KZe/Gd5Y8Q=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     plumbum
   ];
 
@@ -42,11 +42,22 @@ buildPythonPackage rec {
     "test_listing"
     "test_pruning"
     "test_rpyc"
+    "test_instancecheck_across_connections"
+    # Internal import error
+    "test_modules"
     # Test is outdated
     # ssl.SSLError: [SSL: NO_CIPHERS_AVAILABLE] no ciphers available (_ssl.c:997)
     "test_ssl_conenction"
   ];
 
+  disabledTestPaths = [
+    # Internal import issue
+    "tests/test_attributes.py"
+    "tests/test_service_pickle.py"
+    "tests/test_affinity.py"
+    "tests/test_magic.py"
+  ];
+
   pythonImportsCheck = [
     "rpyc"
   ];
diff --git a/pkgs/development/python-modules/rtfde/default.nix b/pkgs/development/python-modules/rtfde/default.nix
index c986d7b0c5e3e..3b11adc34a1a1 100644
--- a/pkgs/development/python-modules/rtfde/default.nix
+++ b/pkgs/development/python-modules/rtfde/default.nix
@@ -23,11 +23,17 @@ buildPythonPackage rec {
     hash = "sha256-ai9JQ3gphY/IievBNdHiblIpc0IPS9wp7CVvBIRzG/4=";
   };
 
-  nativeBuildInputs = [
+  postPatch = ''
+    # https://github.com/seamustuohy/RTFDE/issues/31
+    substituteInPlace setup.py \
+      --replace-fail "==" ">="
+  '';
+
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     lark
     oletools
   ];
diff --git a/pkgs/development/python-modules/scalene/default.nix b/pkgs/development/python-modules/scalene/default.nix
new file mode 100644
index 0000000000000..29a51e38b631b
--- /dev/null
+++ b/pkgs/development/python-modules/scalene/default.nix
@@ -0,0 +1,87 @@
+{ lib
+, buildPythonPackage
+, hypothesis
+, fetchpatch
+, fetchPypi
+, setuptools
+, setuptools-scm
+, cloudpickle
+, cython
+, jinja2
+, numpy
+, psutil
+, pynvml
+, pytestCheckHook
+, pythonOlder
+, rich
+}:
+
+buildPythonPackage rec {
+  pname = "scalene";
+  version = "1.5.38";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-LR1evkn2m6FNBmJnUUJubesxIPeHG6RDgLFBHDuxe38=";
+  };
+
+  patches = [
+    # fix scalene_config import. remove on next update
+    (fetchpatch {
+      name = "scalene_config-import-fix.patch";
+      url = "https://github.com/plasma-umass/scalene/commit/cd437be11f600ac0925ce77efa516e6d83934200.patch";
+      hash = "sha256-YjFh+mu5jyIJYUQFhmGqLXhec6lgQAdj4tWxij3NkwU=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cython
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cloudpickle
+    jinja2
+    psutil
+    pynvml
+    rich
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  checkInputs = [
+    hypothesis
+    numpy
+  ];
+
+  disabledTestPaths = [
+    # remove on next update
+    # Failing Darwin-specific tests that were subsequently removed from the source repo.
+    "tests/test_coverup_35.py"
+    "tests/test_coverup_42.py"
+    "tests/test_coverup_43.py"
+  ];
+
+  # remove scalene directory to prevent pytest import confusion
+  preCheck = ''
+    rm -rf scalene
+  '';
+
+  pythonImportsCheck = [ "scalene" ];
+
+  meta = with lib; {
+    description = "High-resolution, low-overhead CPU, GPU, and memory profiler for Python with AI-powered optimization suggestions";
+    homepage = "https://github.com/plasma-umass/scalene";
+    changelog = "https://github.com/plasma-umass/scalene/releases/tag/v${version}";
+    mainProgram = "scalene";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ sarahec ];
+  };
+}
diff --git a/pkgs/development/python-modules/scancode-toolkit/default.nix b/pkgs/development/python-modules/scancode-toolkit/default.nix
index 13bee07a1859f..47f7eb93a349b 100644
--- a/pkgs/development/python-modules/scancode-toolkit/default.nix
+++ b/pkgs/development/python-modules/scancode-toolkit/default.nix
@@ -60,23 +60,23 @@
 
 buildPythonPackage rec {
   pname = "scancode-toolkit";
-  version = "32.0.8";
+  version = "32.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-W6Ev1MV8cZU4bauAfmuZsBzMJKz7xpw8siO3Afn5mc8=";
+    hash = "sha256-WjVtE+3KtFdtBLqNUzFwDrWAUQLblE+DNGjABH+5zWc=";
   };
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     beautifulsoup4
     bitarray
diff --git a/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index 58e8ceadd0d44..b7571c828ab01 100644
--- a/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.42";
+  version = "0.4.43";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-2zUo/uGIQl0wSFWWxoTmttzUNq9rFGJRYr95PQJH/I8=";
+    hash = "sha256-+CJyo6motrS89eDJct1zh6zOOrrw+yfAODA/BaVm00A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/securityreporter/default.nix b/pkgs/development/python-modules/securityreporter/default.nix
new file mode 100644
index 0000000000000..df2f60a22cff4
--- /dev/null
+++ b/pkgs/development/python-modules/securityreporter/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, docker
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+, requests
+, responses
+}:
+
+buildPythonPackage rec {
+  pname = "securityreporter";
+  version = "1.0.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dongit-org";
+    repo = "python-reporter";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-mBZVsoDnDRYHdcFzi4kuwmAJDRdpysUbNRcDzIhYRGY=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    requests
+  ];
+
+  nativeCheckInputs = [
+    docker
+    pytestCheckHook
+    responses
+  ];
+
+  pythonImportsCheck = [
+    "reporter"
+  ];
+
+  disabledTestPaths = [
+    # Test require a running Docker instance
+    "tests/functional/"
+  ];
+
+  meta = with lib; {
+    description = "A Python wrapper for the Reporter API";
+    homepage = "https://github.com/dongit-org/python-reporter";
+    changelog = "https://github.com/dongit-org/python-reporter/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sentence-transformers/default.nix b/pkgs/development/python-modules/sentence-transformers/default.nix
index 3803dc4d29c65..d0174236cebd9 100644
--- a/pkgs/development/python-modules/sentence-transformers/default.nix
+++ b/pkgs/development/python-modules/sentence-transformers/default.nix
@@ -4,9 +4,12 @@
 , huggingface-hub
 , nltk
 , numpy
+, pytestCheckHook
+, pythonOlder
 , scikit-learn
 , scipy
 , sentencepiece
+, setuptools
 , tokenizers
 , torch
 , torchvision
@@ -16,17 +19,23 @@
 
 buildPythonPackage rec {
   pname = "sentence-transformers";
-  version = "2.5.1";
-  format = "setuptools";
+  version = "2.6.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "UKPLab";
     repo = "sentence-transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HIOizBf8YnPAj95cG1HopO9B/bhAmT0u3q5CM6POEjQ=";
+    hash = "sha256-09AAuv/yXTbBvjA4gu5ueZrQkVja0BTIGNLZ2tLSyh8=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     huggingface-hub
     nltk
     numpy
@@ -40,14 +49,37 @@ buildPythonPackage rec {
     transformers
   ];
 
-  pythonImportsCheck = [ "sentence_transformers" ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  doCheck = false; # tests fail at build_ext
+  pythonImportsCheck = [
+    "sentence_transformers"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_simple_encode"
+    "test_paraphrase_mining"
+    "test_cmnrl_same_grad"
+    "test_LabelAccuracyEvaluator"
+    "test_ParaphraseMiningEvaluator"
+  ];
+
+  disabledTestPaths = [
+    # Tests require network access
+    "tests/test_pretrained_stsb.py"
+    "tests/test_sentence_transformer.py"
+    "tests/test_compute_embeddings.py"
+    "tests/test_multi_process.py"
+    "tests/test_cross_encoder.py"
+    "tests/test_train_stsb.py"
+  ];
 
   meta = with lib; {
     description = "Multilingual Sentence & Image Embeddings with BERT";
     homepage = "https://github.com/UKPLab/sentence-transformers";
-    changelog = "https://github.com/UKPLab/sentence-transformers/releases/tag/${src.rev}";
+    changelog = "https://github.com/UKPLab/sentence-transformers/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
   };
diff --git a/pkgs/development/python-modules/seqdiag/default.nix b/pkgs/development/python-modules/seqdiag/default.nix
index bbf7cca1293a4..8b8a89bd49db3 100644
--- a/pkgs/development/python-modules/seqdiag/default.nix
+++ b/pkgs/development/python-modules/seqdiag/default.nix
@@ -2,7 +2,7 @@
 , blockdiag
 , buildPythonPackage
 , fetchFromGitHub
-, nose
+, pynose
 , pytestCheckHook
 , pythonOlder
 , setuptools
@@ -11,24 +11,27 @@
 buildPythonPackage rec {
   pname = "seqdiag";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "blockdiag";
-    repo = pname;
-    rev = version;
+    repo = "seqdiag";
+    rev = "refs/tags/${version}";
     hash = "sha256-Dh9JMx50Nexi0q39rYr9MpkKmQRAfT7lzsNOXoTuphg=";
   };
 
-  propagatedBuildInputs = [
-    blockdiag
+  build-system = [
     setuptools
   ];
 
+  dependencies = [
+    blockdiag
+  ];
+
   nativeCheckInputs = [
-    nose
+    pynose
     pytestCheckHook
   ];
 
@@ -36,21 +39,17 @@ buildPythonPackage rec {
     "src/seqdiag/tests/"
   ];
 
-  disabledTests = [
-    # UnicodeEncodeError: 'latin-1' codec can't encode...
-    "test_setup_inline_svg_is_true_with_multibytes"
-  ];
-
   pythonImportsCheck = [
     "seqdiag"
   ];
 
   meta = with lib; {
     description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)";
-    mainProgram = "seqdiag";
     homepage = "http://blockdiag.com/";
+    changelog = "https://github.com/blockdiag/seqdiag/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "seqdiag";
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix b/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix
index 0a1f92a9d4f80..8785039c6a189 100644
--- a/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix
+++ b/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-executor-plugin-cluster-generic";
-  version = "1.0.8";
+  version = "1.0.9";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-+aGd+E+VQb7MflsiUgFR98AyeetZxbc4gdvU1JWJNcM=";
+    hash = "sha256-RHMefoJOZb6TjRsFCORLFdHtI5ZpTsV6CHrjHKMat9o=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generic cluster executor for Snakemake";
-    homepage = "https://github.com/snakemake/snakemake-executor-plugin-cluster-generic/tags";
+    homepage = "https://github.com/snakemake/snakemake-executor-plugin-cluster-generic";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
   };
diff --git a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
index 38b42fc9d1e87..b493c4bcee96e 100644
--- a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-interface-executor-plugins";
-  version = "8.2.0";
+  version = "9.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZkhayXWy83/INRH7FYwFkhgHL+nSj7ReYC9I97SEeTM=";
+    hash = "sha256-DW8fxBBP6U7N0Hgk/enOzUz68L7pCjVl/8MFCy6PKxg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
new file mode 100644
index 0000000000000..85c4c756b534d
--- /dev/null
+++ b/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, snakemake-interface-common
+}:
+
+buildPythonPackage rec {
+  pname = "snakemake-interface-report-plugins";
+  version = "1.0.0";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "snakemake";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-30x4avA3FrqZ4GoTl6Js5h3VG5LW7BNHOcNWxznXoT0=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    snakemake-interface-common
+  ];
+
+  pythonImportsCheck = [ "snakemake_interface_report_plugins" ];
+
+  meta = with lib; {
+    description = "The interface for Snakemake report plugins";
+    homepage = "https://github.com/snakemake/snakemake-interface-report-plugins";
+    license = licenses.mit;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/python-modules/snap-helpers/default.nix b/pkgs/development/python-modules/snap-helpers/default.nix
new file mode 100644
index 0000000000000..c21df9231ee5b
--- /dev/null
+++ b/pkgs/development/python-modules/snap-helpers/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nix-update-script
+, pyyaml
+, setuptools
+, pytestCheckHook
+, pytest-mock
+}:
+
+buildPythonPackage rec {
+  pname = "snap-helpers";
+  version = "0.4.2";
+
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "albertodonato";
+    repo = "snap-helpers";
+    rev = "refs/tags/${version}";
+    hash = "sha256-7JBvrD4WNOcFSVx3xauk4JgiVGKWuUEdUMRlH7mudE4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+  ];
+
+  pythonImportsCheck = [
+    "snaphelpers"
+  ];
+
+  nativeCheckInputs = [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Interact with snap configuration and properties from inside a snap.";
+    homepage = "https://github.com/albertodonato/snap-helpers";
+    changelog = "https://github.com/albertodonato/snap-helpers/releases/tag/${version}";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index 1055f45f55b71..fa1c101ecb386 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
   };
 
   pythonRelaxDeps = [
+    "smart-open"
     "typer"
   ];
 
diff --git a/pkgs/development/python-modules/spdx-lookup/default.nix b/pkgs/development/python-modules/spdx-lookup/default.nix
new file mode 100644
index 0000000000000..6bcb2c9427966
--- /dev/null
+++ b/pkgs/development/python-modules/spdx-lookup/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, nix-update-script
+, spdx
+}:
+
+buildPythonPackage rec {
+  pname = "spdx-lookup";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "bbqsrc";
+    repo = "spdx-lookup-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jtzhqRAj1BWdU8AuR7Gr343mL5alLXhi+SyCkCI5AAU=";
+  };
+
+  propagatedBuildInputs = [
+    spdx
+  ];
+
+  pythonImportsCheck = [
+    "spdx_lookup"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "SPDX license list query tool";
+    homepage = "https://github.com/bbqsrc/spdx-lookup-python";
+    changelog = "https://github.com/bbqsrc/spdx-lookup-python/releases/tag/v${version}";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/spdx/default.nix b/pkgs/development/python-modules/spdx/default.nix
new file mode 100644
index 0000000000000..f09fcfceec8d3
--- /dev/null
+++ b/pkgs/development/python-modules/spdx/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, nix-update-script
+}:
+
+buildPythonPackage rec {
+  pname = "spdx";
+  version = "2.5";
+
+  src = fetchFromGitHub {
+    owner = "bbqsrc";
+    repo = "spdx-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-lfTgAX4Wl01xrvLA12ZUqjah7ZiLafMAU+yNNdVkRk0=";
+  };
+
+  pythonImportsCheck = [
+    "spdx"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "SPDX license list database";
+    homepage = "https://github.com/bbqsrc/spdx-python";
+    changelog = "https://github.com/bbqsrc/spdx-python/releases/tag/v${version}";
+    license = lib.licenses.cc0;
+    maintainers = with lib.maintainers; [ jnsgruk ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/speechrecognition/default.nix b/pkgs/development/python-modules/speechrecognition/default.nix
index 4e50e8260a0f3..a6e839ead5ce9 100644
--- a/pkgs/development/python-modules/speechrecognition/default.nix
+++ b/pkgs/development/python-modules/speechrecognition/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "speechrecognition";
-  version = "3.10.1";
+  version = "3.10.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,14 +22,14 @@ buildPythonPackage rec {
     owner = "Uberi";
     repo = "speech_recognition";
     rev = "refs/tags/${version}";
-    hash = "sha256-lO1CW4j5aBnPtemNGsW8cytSa/H+Tb4Jpbfh4Z/0WHk=";
+    hash = "sha256-g2DE3u2nuJHqWA2X8S6zw5nUVS1yvSqO0VI3zKoIUgg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     requests
     typing-extensions
   ];
diff --git a/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix b/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
new file mode 100644
index 0000000000000..dbe40c0fcafd1
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
@@ -0,0 +1,54 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, pynose
+, setuptools
+, sphinx
+, sphinx-rtd-theme
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-rtd-dark-mode";
+  version = "1.3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "MrDogeBro";
+    repo = "sphinx_rtd_dark_mode";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-N5KG2Wqn9wfGNY3VH4FnBce1aZUbnvVmwD10Loe0Qn4=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    sphinx-rtd-theme
+  ];
+
+  nativeCheckInputs = [
+    pynose
+    sphinx
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    nosetests tests
+
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [
+    "sphinx_rtd_dark_mode"
+  ];
+
+  meta = with lib; {
+    description = "Adds a toggleable dark mode to the Read the Docs theme for Sphinx.";
+    homepage = "https://github.com/MrDogeBro/sphinx_rtd_dark_mode";
+    changelog = "https://github.com/MrDogeBro/sphinx_rtd_dark_mode/releases/tag/v${version}";
+    maintainers = with maintainers; [ wolfgangwalther ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/sse-starlette/default.nix b/pkgs/development/python-modules/sse-starlette/default.nix
new file mode 100644
index 0000000000000..149a37886ca0b
--- /dev/null
+++ b/pkgs/development/python-modules/sse-starlette/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, anyio
+, asgi-lifespan
+, buildPythonPackage
+, fastapi
+, fetchFromGitHub
+, httpx
+, pdm-backend
+, psutil
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, starlette
+, uvicorn
+}:
+
+buildPythonPackage rec {
+  pname = "sse-starlette";
+  version = "2.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "sysid";
+    repo = "sse-starlette";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kDcSG/3foP7fMZKYrkKx6FHvT9c9rSzxyv2EHjQ2WSA=";
+  };
+
+  build-system = [
+    pdm-backend
+  ];
+
+  dependencies = [
+    anyio
+    starlette
+    uvicorn
+  ];
+
+  nativeCheckInputs = [
+    asgi-lifespan
+    fastapi
+    httpx
+    psutil
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sse_starlette"
+  ];
+
+  disabledTests = [
+    # AssertionError
+    "test_stop_server_with_many_consumers"
+    "test_stop_server_conditional"
+  ];
+
+  meta = with lib; {
+    description = "Server Sent Events for Starlette and FastAPI";
+    homepage = "https://github.com/sysid/sse-starlette";
+    changelog = "https://github.com/sysid/sse-starlette/blob/${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/starlette-context/default.nix b/pkgs/development/python-modules/starlette-context/default.nix
new file mode 100644
index 0000000000000..2657e9740a60e
--- /dev/null
+++ b/pkgs/development/python-modules/starlette-context/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, starlette
+}:
+
+buildPythonPackage rec {
+  pname = "starlette-context";
+  version = "0.3.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "tomwojcik";
+    repo = "starlette-context";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZKwE2M86clYKdptd0o/j8VYUOj/Y/72uUnpxFbJ65vw=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    starlette
+  ];
+
+  nativeCheckInputs = [
+    httpx
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "starlette_context"
+  ];
+
+  meta = with lib; {
+    description = "Middleware for Starlette that allows you to store and access the context data of a request";
+    homepage = "https://github.com/tomwojcik/starlette-context";
+    changelog = "https://github.com/tomwojcik/starlette-context/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/tempest/default.nix b/pkgs/development/python-modules/tempest/default.nix
index ef2cb1b755695..ad8ad53dafadf 100644
--- a/pkgs/development/python-modules/tempest/default.nix
+++ b/pkgs/development/python-modules/tempest/default.nix
@@ -31,14 +31,14 @@
 
 buildPythonPackage rec {
   pname = "tempest";
-  version = "37.0.0";
+  version = "38.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-z9DCHlBetJ4wWcwfzIWf+TLKKNcCTKzpVs+2zgmuAyc=";
+    hash = "sha256-2WmSN4NrH5/y5iAuYaaVuZkuh1ym14jFj7OXw8Jfxtc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index e12d4e6b8abb5..c46aeb33788be 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1116";
+  version = "3.0.1119";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-TeS5ymvVbebzGdCbQL7HEtB4J4VgnzfEsB31zwjs6aE=";
+    hash = "sha256-F/aghPj/4xh06z+PTHSd/J7ImwouDd59/Cry2Zq13Jg=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/tendo/default.nix b/pkgs/development/python-modules/tendo/default.nix
new file mode 100644
index 0000000000000..fe02bc0aed29b
--- /dev/null
+++ b/pkgs/development/python-modules/tendo/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "tendo";
+  version = "0.4.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pycontribs";
+    repo = "tendo";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZOozMGxAKcEtmUEzHCFSojKc+9Ha+T2MOTmMvdMqNuQ=";
+  };
+
+  postPatch = ''
+    # marken broken and not required
+    sed -i '/setuptools_scm_git_archive/d' pyproject.toml
+    # unused
+    substituteInPlace setup.cfg \
+      --replace-fail "six" ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "tendo"
+  ];
+
+  meta = with lib; {
+    description = "Adds basic functionality that is not provided by Python";
+    homepage = "https://github.com/pycontribs/tendo";
+    changelog = "https://github.com/pycontribs/tendo/releases/tag/v${version}";
+    license = licenses.psfl;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/tensorrt/default.nix b/pkgs/development/python-modules/tensorrt/default.nix
index 58a3e64d56105..2f3606d8562ec 100644
--- a/pkgs/development/python-modules/tensorrt/default.nix
+++ b/pkgs/development/python-modules/tensorrt/default.nix
@@ -1,5 +1,6 @@
 { lib
 , python
+, autoAddDriverRunpath
 , buildPythonPackage
 , autoPatchelfHook
 , unzip
@@ -22,7 +23,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     unzip
     autoPatchelfHook
-    cudaPackages.autoAddDriverRunpath
+    autoAddDriverRunpath
   ];
 
   preUnpack = ''
diff --git a/pkgs/development/python-modules/tesla-fleet-api/default.nix b/pkgs/development/python-modules/tesla-fleet-api/default.nix
index 0377b13b244b9..fad5795a930e5 100644
--- a/pkgs/development/python-modules/tesla-fleet-api/default.nix
+++ b/pkgs/development/python-modules/tesla-fleet-api/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "tesla-fleet-api";
-  version = "0.5.1";
+  version = "0.5.6";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Teslemetry";
     repo = "python-tesla-fleet-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PbtOokzpJ58SpQOfpSyoDnUb8qcRvy0XPDR5cGMMbKU=";
+    hash = "sha256-dkxKC0WAgfDvUD9YktRrNCgXpw2+6apfsMVqStZICII=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index 0dbcd6bddc49a..ab2315c1d9c84 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -17,23 +17,23 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "3.10.1";
-  format = "pyproject";
+  version = "3.10.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "zabuldon";
-    repo = pname;
+    repo = "teslajsonpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Eez8ktPhbWauFNsIuwoxMkGpI7hnYsBwStmU80IDFw4=";
+    hash = "sha256-M3/1J73C3gUqyZYsu10O6FnACKYVbGuMH+8Ns0s2Rwc=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     authcaptureproxy
     aiohttp
     backoff
diff --git a/pkgs/development/python-modules/tesserocr/default.nix b/pkgs/development/python-modules/tesserocr/default.nix
index 7959d38d2d3c5..95b5ced2a7d35 100644
--- a/pkgs/development/python-modules/tesserocr/default.nix
+++ b/pkgs/development/python-modules/tesserocr/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "tesserocr";
-  version = "2.6.2";
+  version = "2.6.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RVJfocGjVvnRVanekbN1nKRECEr9hTVE9aKaqFizA5A=";
+    sha256 = "sha256-RMHE73vcKGz6FEzhoJfoHDMp9KQ1CbyElKGrhSM4xuE=";
   };
 
   # https://github.com/sirfz/tesserocr/issues/314
diff --git a/pkgs/development/python-modules/tilequant/default.nix b/pkgs/development/python-modules/tilequant/default.nix
index 064b73707ad0e..c25c9ff2659c6 100644
--- a/pkgs/development/python-modules/tilequant/default.nix
+++ b/pkgs/development/python-modules/tilequant/default.nix
@@ -1,13 +1,14 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , click
+, fetchPypi
 , ordered-set
+, pillow
 , pythonOlder
 , pythonRelaxDepsHook
-, pillow
-, sortedcollections
+, setuptools
 , setuptools-dso
+, sortedcollections
 }:
 
 buildPythonPackage rec {
@@ -22,15 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-uW1g3nlT6Y+1beifo/MOlGxsGL7on/jcAROxSddySHk=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
-
   pythonRelaxDeps = [
     "pillow"
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  dependencies = [
     click
     ordered-set
     pillow
@@ -46,9 +48,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool for quantizing image colors using tile-based palette restrictions";
-    mainProgram = "tilequant";
     homepage = "https://github.com/SkyTemple/tilequant";
+    changelog = "https://github.com/SkyTemple/tilequant/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marius851000 xfix ];
+    mainProgram = "tilequant";
   };
 }
diff --git a/pkgs/development/python-modules/torch/bin.nix b/pkgs/development/python-modules/torch/bin.nix
index bee32b6163453..bc0e36ba553c2 100644
--- a/pkgs/development/python-modules/torch/bin.nix
+++ b/pkgs/development/python-modules/torch/bin.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , buildPythonPackage
+, autoAddDriverRunpath
 , fetchurl
 , python
 , pythonAtLeast
@@ -40,7 +41,7 @@ in buildPythonPackage {
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     addOpenGLRunpath
     autoPatchelfHook
-    cudaPackages.autoAddDriverRunpath
+    autoAddDriverRunpath
   ];
 
   buildInputs = lib.optionals stdenv.isLinux (with cudaPackages; [
diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix
index 10eecd1de99b7..620b8a3581e4f 100644
--- a/pkgs/development/python-modules/torch/default.nix
+++ b/pkgs/development/python-modules/torch/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, buildPythonPackage, python,
   config, cudaSupport ? config.cudaSupport, cudaPackages,
+  autoAddDriverRunpath,
   effectiveMagma ?
   if cudaSupport then magma-cuda-static
   else if rocmSupport then magma-hip
@@ -52,7 +53,7 @@
 
   # ROCm dependencies
   rocmSupport ? config.rocmSupport,
-  rocmPackages,
+  rocmPackages_5,
   gpuTargets ? [ ]
 }:
 
@@ -60,6 +61,8 @@ let
   inherit (lib) attrsets lists strings trivial;
   inherit (cudaPackages) cudaFlags cudnn nccl;
 
+  rocmPackages = rocmPackages_5;
+
   setBool = v: if v then "1" else "0";
 
   # https://github.com/pytorch/pytorch/blob/v2.0.1/torch/utils/cpp_extension.py#L1744
diff --git a/pkgs/development/python-modules/tox/default.nix b/pkgs/development/python-modules/tox/default.nix
index 28176021d3bf7..e130ff0698636 100644
--- a/pkgs/development/python-modules/tox/default.nix
+++ b/pkgs/development/python-modules/tox/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "4.14.1";
+  version = "4.14.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "tox-dev";
     repo = "tox";
     rev = "refs/tags/${version}";
-    hash = "sha256-b+HOv0xMIE3k0u39YAAyVbiJPnOAamATZeZYTBUyAZM=";
+    hash = "sha256-+ed47GK76Wn8PwXsd0qo1xYWJTcZ5wNXnFEEQEZ7CMM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tplink-omada-client/default.nix b/pkgs/development/python-modules/tplink-omada-client/default.nix
index 82150d9e05183..d7636d44e9a0e 100644
--- a/pkgs/development/python-modules/tplink-omada-client/default.nix
+++ b/pkgs/development/python-modules/tplink-omada-client/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tplink-omada-client";
-  version = "1.3.12";
+  version = "1.3.13";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -18,14 +18,14 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "tplink_omada_client";
     inherit version;
-    hash = "sha256-ND+n2KCj5g1KdSWf/MxJwzprLZOkSUUC4Sp9Z51Tzkw=";
+    hash = "sha256-hienEkaqy16HmeF1z8MslGb4es7OAvhh1XRTen/Q08c=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
   ];
@@ -39,10 +39,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for the TP-Link Omada SDN Controller API";
-    mainProgram = "omada";
     homepage = "https://github.com/MarkGodwin/tplink-omada-api";
     changelog = "https://github.com/MarkGodwin/tplink-omada-api/releases/tag/release%2Fv${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "omada";
   };
 }
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index ac2af381ff028..86f39fff7938f 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -53,7 +53,7 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.39.1";
+  version = "4.39.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OzuiKzhgI9eRTPq3l7x4aw3fxvCe4080pK1RKzcC1RQ=";
+    hash = "sha256-eOtXHKTGVV3hYdSK+p2mTgCaG4akivnuMnB/lSh8Lxc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/typing-validation/default.nix b/pkgs/development/python-modules/typing-validation/default.nix
new file mode 100644
index 0000000000000..975119b3be1bd
--- /dev/null
+++ b/pkgs/development/python-modules/typing-validation/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+, pytestCheckHook
+
+, pythonOlder
+
+, setuptools
+, setuptools-scm
+, wheel
+
+, numpy
+
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "typing-validation";
+  version = "1.2.11";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "hashberg-io";
+    repo = "typing-validation";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-0scXoAPkx/VBIbNRMtFoRRbmGpC2RzNRmQG4mRXSxrs=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  dependencies = [
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    numpy
+  ];
+
+  pythonImportsCheck = [
+    "typing_validation"
+  ];
+
+  meta = with lib; {
+    description = "A simple library for runtime type-checking";
+    homepage = "https://github.com/hashberg-io/typing-validation";
+    changelog = "https://github.com/hashberg-io/typing-validation/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
+}
diff --git a/pkgs/development/python-modules/unique-log-filter/default.nix b/pkgs/development/python-modules/unique-log-filter/default.nix
index 07b2a9a305e07..2b91ab437adfb 100644
--- a/pkgs/development/python-modules/unique-log-filter/default.nix
+++ b/pkgs/development/python-modules/unique-log-filter/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-av1pVPDsO2dto5fhBK74jKfVsVY2ChyUE5NNja2B1Qw=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     flit-core
   ];
 
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index faae85664bfb9..9c5a39aa71754 100644
--- a/pkgs/development/python-modules/unstructured/default.nix
+++ b/pkgs/development/python-modules/unstructured/default.nix
@@ -56,7 +56,7 @@
 , grpcio
 }:
 let
-  version = "0.12.6";
+  version = "0.13.0";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -90,7 +90,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-K2ilPDkxXICb66rOgz18AZ92u5VBgRh6bLiDVEgleDU=";
+    hash = "sha256-zRQOFYAh4QpDNlSPi1h70eOmw/8aTa6yAKBSgTuIhME=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/urwid/default.nix b/pkgs/development/python-modules/urwid/default.nix
index e6141601cbdd8..1d9a4bf166c01 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.6.8";
+  version = "2.6.10";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "urwid";
     repo = "urwid";
     rev = "refs/tags/${version}";
-    hash = "sha256-KtIcmAPOcxC9wTq6mKRZWcohH0skYMHlq4mehpn6raY=";
+    hash = "sha256-myweD5+FHhDpPvS+3sB9vfhsOfPVagtfVF5EY9uIGRo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/wsgidav/default.nix b/pkgs/development/python-modules/wsgidav/default.nix
index 132af924c3d25..db7e85e1937e2 100644
--- a/pkgs/development/python-modules/wsgidav/default.nix
+++ b/pkgs/development/python-modules/wsgidav/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "wsgidav";
-  version = "4.3.1";
+  version = "4.3.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "mar10";
     repo = "wsgidav";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jgn4bculVIXfMx3Or3pKF478UOzCL8nhEeNvOeGyjPI=";
+    hash = "sha256-93+8h+vRLnspQ/lmdjKYpzSEJSKcqCkB4qRqTuKHNRA=";
   };
 
   build-system = [
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 6a457c6051ed4..fbf1f89311ced 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "checkov";
-  version = "3.2.47";
+  version = "3.2.50";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = "checkov";
     rev = "refs/tags/${version}";
-    hash = "sha256-vwkTbHhgXaGeHrAkOM8gRDJ2VgbSmqt9Ia+qdOMxkko=";
+    hash = "sha256-XOH4RrkyjTZY1N5XSR71GEGofPgqI7XkE8c3/ojoHGI=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/analysis/snyk/default.nix b/pkgs/development/tools/analysis/snyk/default.nix
index 67f8516c49b9d..11ee2297e61d3 100644
--- a/pkgs/development/tools/analysis/snyk/default.nix
+++ b/pkgs/development/tools/analysis/snyk/default.nix
@@ -1,20 +1,27 @@
-{ buildNpmPackage, fetchFromGitHub, lib, stdenv, testers, snyk }:
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, stdenv
+, testers
+, snyk
+}:
 
 buildNpmPackage rec {
   pname = "snyk";
-  version = "1.1284.0";
+  version = "1.1286.0";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "cli";
-    rev = "v${version}";
-    hash = "sha256-CM9172gSeWf+12e6tsro6O1NtiZqUAT0EsA6LAhZ+8s=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-tckifLV+HC7NqTeBtZI+VjZveeVbRS5+63vL8k8qE4s=";
   };
 
-  npmDepsHash = "sha256-aode80HyGSyZoEiCdsnEPrVo8KSqTW0GxxsGdRyNdiQ=";
+  npmDepsHash = "sha256-deBtINc+P0NnCIb0jI0Mvn2zbWS6qLqCXL6nKSFGqOI=";
 
   postPatch = ''
-    substituteInPlace package.json --replace '"version": "1.0.0-monorepo"' '"version": "${version}"'
+    substituteInPlace package.json \
+      --replace-fail '"version": "1.0.0-monorepo"' '"version": "${version}"'
   '';
 
   env.NIX_CFLAGS_COMPILE =
@@ -29,9 +36,10 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Scans and monitors projects for security vulnerabilities";
-    mainProgram = "snyk";
     homepage = "https://snyk.io";
+    changelog = "https://github.com/snyk/cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "snyk";
   };
 }
diff --git a/pkgs/development/tools/analysis/stylelint/default.nix b/pkgs/development/tools/analysis/stylelint/default.nix
index 1149bed3fd5f5..fcaaa35fa401a 100644
--- a/pkgs/development/tools/analysis/stylelint/default.nix
+++ b/pkgs/development/tools/analysis/stylelint/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "stylelint";
-  version = "16.2.1";
+  version = "16.3.0";
 
   src = fetchFromGitHub {
     owner = "stylelint";
     repo = "stylelint";
     rev = version;
-    hash = "sha256-ncJ5oCXe23+an2nFOafMEypFUkwRVW3hZf5pWCKkBNE=";
+    hash = "sha256-N3M+PhoUjCB+5ouOPDI9m4vPnEoI6+Gk8DBNOquFCqY=";
   };
 
-  npmDepsHash = "sha256-0+jrfXoM6yqkd43lot3JPB+HBTz3XXzqAulGketRsxU=";
+  npmDepsHash = "sha256-GRGYDt/qkHZrr7tSM3mPAiBLqUZ0FN1DdDHeBAtNG5w=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index ed7db536bd838..b6074198be3ce 100644
--- a/pkgs/development/tools/azcopy/default.nix
+++ b/pkgs/development/tools/azcopy/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.23.0";
+  version = "10.24.0";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Df45DHGA7EM4hx3iAmYNNUHjrUrkW6QniJkHaN7wNZM=";
+    hash = "sha256-K/Q0vlcMX6YKjvdWNzsJe1uUSS9WY8pN6SD5yiVF1Sg=";
   };
 
   subPackages = [ "." ];
 
-  vendorHash = "sha256-afqDnrmbTR6yZHT7NysysORci4b0Oh0sjpftgAXJ5Uk=";
+  vendorHash = "sha256-VWSr7K2WrBY4jzFv8B9ocp7GdBxTBSePMX8mLeSbKow=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/backblaze-b2/default.nix b/pkgs/development/tools/backblaze-b2/default.nix
index 76301b5f4820a..1fd6333a3d506 100644
--- a/pkgs/development/tools/backblaze-b2/default.nix
+++ b/pkgs/development/tools/backblaze-b2/default.nix
@@ -1,32 +1,30 @@
-{ lib, python3Packages, fetchPypi, installShellFiles, testers, backblaze-b2
+{ lib
+, python3Packages
+, fetchFromGitHub
+, installShellFiles
+, testers
+, backblaze-b2
 # executable is renamed to backblaze-b2 by default, to avoid collision with boost's 'b2'
 , execName ? "backblaze-b2"
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "backblaze-b2";
-  version = "3.15.0";
-  format = "setuptools";
+  version = "3.17.0";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit version;
-    pname = "b2";
-    hash = "sha256-10c2zddALy7+CGxhjUC6tMLQcZ3WmLeRY1bNKWunAys=";
+  src = fetchFromGitHub {
+    owner = "Backblaze";
+    repo = "B2_Command_Line_Tool";
+    rev = "v${version}";
+    hash = "sha256-Xj7RNe6XM2atijhVasILWRdTzu6xuKBzMllM1z1mFLY=";
   };
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace 'phx-class-registry==4.0.5' 'phx-class-registry'
-    substituteInPlace requirements.txt \
-      --replace 'tabulate==0.8.10' 'tabulate'
-    substituteInPlace setup.py \
-      --replace 'setuptools_scm<6.0' 'setuptools_scm'
-  '';
-
   nativeBuildInputs = [
     installShellFiles
-    python3Packages.setuptools-scm
-  ];
+  ] ++ (with python3Packages; [
+    pdm-backend
+  ]);
 
   propagatedBuildInputs = with python3Packages; [
     argcomplete
@@ -47,28 +45,23 @@ python3Packages.buildPythonApplication rec {
     more-itertools
     pexpect
     pytestCheckHook
+    pytest-xdist
   ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    # require network
-    "test_files_headers"
-    "test_integration"
-
-    # fixed by https://github.com/Backblaze/B2_Command_Line_Tool/pull/915
-    "TestRmConsoleTool"
-  ];
-
   disabledTestPaths = [
     # requires network
     "test/integration/test_b2_command_line.py"
+    "test/integration/test_tqdm_closer.py"
 
     # it's hard to make it work on nix
     "test/integration/test_autocomplete.py"
-    "test/unit/console_tool"
+    "test/unit/test_console_tool.py"
+    # this one causes successive tests to fail
+    "test/unit/_cli/test_autocomplete_cache.py"
   ];
 
   postInstall = lib.optionalString (execName != "b2") ''
@@ -86,7 +79,9 @@ python3Packages.buildPythonApplication rec {
   }).overrideAttrs (old: {
     # workaround the error: Permission denied: '/homeless-shelter'
     # backblaze-b2 fails to create a 'b2' directory under the XDG config path
-    HOME = "$(mktemp -d)";
+    preHook = ''
+      export HOME=$(mktemp -d)
+    '';
   });
 
   meta = with lib; {
diff --git a/pkgs/development/tools/bacon/default.nix b/pkgs/development/tools/bacon/default.nix
index 8270e53493e7a..8e4816a859a39 100644
--- a/pkgs/development/tools/bacon/default.nix
+++ b/pkgs/development/tools/bacon/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bacon";
-  version = "2.15.0";
+  version = "2.16.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-NJ/izdvwTzKIVTymBsSzFUy5SX4Nhh4t/6QoMQWyvAM=";
+    hash = "sha256-lYj6WIb8HvOO/RlxeTzD3r7Jjfx4mDqZ9VKo0chvooU=";
   };
 
-  cargoHash = "sha256-RhEqEqHQrw1NO6k3acOtZmEFgu3FJ+/r154EfoM4uJI=";
+  cargoHash = "sha256-G3IfxIhQ1t47ZhndTBmcUZNXHYehaaMVgIjBuD71zHE=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreServices
diff --git a/pkgs/development/tools/biome/default.nix b/pkgs/development/tools/biome/default.nix
index dc49507bb96fb..2072adf226419 100644
--- a/pkgs/development/tools/biome/default.nix
+++ b/pkgs/development/tools/biome/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "biome";
-  version = "1.6.1";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "biomejs";
     repo = "biome";
     rev = "cli/v${version}";
-    hash = "sha256-JApGz2vDGU1IFmhyaT1noCRIP0YoucVvHq395/CJ1zA=";
+    hash = "sha256-DooUOp+fr5oOrx04SLlTGro8xc2LieVPNtdvDyTLL/s=";
   };
 
-  cargoHash = "sha256-4m2xtj3FHd8DTS3BeUMVoo8Pzjkol96B6tvNyzqPhEo=";
+  cargoHash = "sha256-zMMfLDhiqG8Ahe+7PFjpOtwaBXbKkLDIIoHS329/4uQ=";
 
   nativeBuildInputs = [
     pkg-config
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "-p=biome_cli" ];
   cargoTestFlags = cargoBuildFlags ++
-    # skip a broken test from v1.6.1 release
+    # skip a broken test from v1.6.3 release
     # this will be removed on the next version
     [ "-- --skip=diagnostics::test::termination_diagnostic_size" ];
 
diff --git a/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix b/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix
index bae57ea74d79e..709cd3e87fc70 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix
@@ -3,24 +3,27 @@
 , rustPlatform
 , stdenv
 , Security
+, nix-update-script
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "buildkite-test-collector-rust";
-  version = "0.1.0";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "buildkite";
     repo = "test-collector-rust";
     rev = "v${version}";
-    sha256 = "sha256-rY/+AwxO0+xcnRj0A8TRhCUJQ0ecosybI6It1mDOdQM=";
+    sha256 = "sha256-PF2TFfzWmHXLgTopzJ04dfnzd3Sc/A6Hduffz2guxmU=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Security
   ];
 
-  cargoSha256 = "sha256-qfJ0ROi0S0mmPl6kKrW3dp3VLjYqK+sBVj+iKDNTjyM=";
+  cargoSha256 = "sha256-4eaU6dOb97/vV3NSCCpdzK2oQUIHl4kdAtgWbGsY5LU=";
+
+  passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
     description = "Rust adapter for Buildkite Test Analytics";
diff --git a/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix b/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
index 997eff21adf6a..e6ae2f2f8ba6e 100644
--- a/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "cirrus-cli";
-  version = "0.113.0";
+  version = "0.113.1";
 
   src = fetchFromGitHub {
     owner = "cirruslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ws1OFcAz41uBgRIjLVU19nRdIIgdGnnBs6xthztyDmE=";
+    sha256 = "sha256-RAka5uYNsTq/zBT9sjdrZFY1CmJ5Vzdj1gfWvMERcPA=";
   };
 
   vendorHash = "sha256-NPtQM4nm8QiHY2wSd7VHx6T5LRb7EB39x+xFzHOUcNs=";
diff --git a/pkgs/development/tools/database/clickhouse-backup/default.nix b/pkgs/development/tools/database/clickhouse-backup/default.nix
index 79b4f6ea9dc5f..ca597e47f66f5 100644
--- a/pkgs/development/tools/database/clickhouse-backup/default.nix
+++ b/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "clickhouse-backup";
-  version = "2.4.34";
+  version = "2.4.35";
 
   src = fetchFromGitHub {
     owner = "AlexAkulov";
     repo = "clickhouse-backup";
     rev = "v${version}";
-    hash = "sha256-aRNPkgkWmVCzHaOHzIAPdZyofqIWX5w5U+bsO1MrKow=";
+    hash = "sha256-SE4+NUH1W0YPjx59yjOun1tLbn6Je2nG2wcfb8+YSfw=";
   };
 
   vendorHash = "sha256-5da3Tt4rKbzFPwYVhkkxCY/YpJePdE7WLDlTtPI8w1Q=";
diff --git a/pkgs/development/tools/database/dbmate/default.nix b/pkgs/development/tools/database/dbmate/default.nix
index e7d5be602cdcd..922f3c081d5d2 100644
--- a/pkgs/development/tools/database/dbmate/default.nix
+++ b/pkgs/development/tools/database/dbmate/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dbmate";
-  version = "2.13.0";
+  version = "2.14.0";
 
   src = fetchFromGitHub {
     owner = "amacneil";
     repo = "dbmate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4Ur9LGYcC9C2EUWLLppcVSf+PLgfPITbKGp2qLRnxVY=";
+    hash = "sha256-jShFLwoxZdUEHA+gd87n3R+faOdC6TboXuPvcZp89+Y=";
   };
 
-  vendorHash = "sha256-le2AWHqTElo95GQJ8jEk3jjNrxu63YyWVtq+CI6+SbY=";
+  vendorHash = "sha256-kBk2KhPDVYBGIUQpXq4ANA7WX+JUOxz7/Ad+4h2CD1c=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/database/litecli/default.nix b/pkgs/development/tools/database/litecli/default.nix
index 6b6125992b582..5179d245ebc2f 100644
--- a/pkgs/development/tools/database/litecli/default.nix
+++ b/pkgs/development/tools/database/litecli/default.nix
@@ -5,12 +5,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "litecli";
-  version = "1.10.0";
+  version = "1.10.1";
   disabled = python3Packages.pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-7p4qk9GTpVXA5mHtCDlDpvkyqcjowme2ibRp+ax6Pgw=";
+    sha256 = "sha256-N+aAH2vgDV1YU7iIHbH/276bCBfGxhuy2ceWL2z/oI8=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/development/tools/database/sqlc/default.nix b/pkgs/development/tools/database/sqlc/default.nix
index 68e75f6025498..ea65552bf3cfc 100644
--- a/pkgs/development/tools/database/sqlc/default.nix
+++ b/pkgs/development/tools/database/sqlc/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 let
-  version = "1.25.0";
+  version = "1.26.0";
 in
 buildGoModule {
   pname = "sqlc";
@@ -11,11 +11,11 @@ buildGoModule {
     owner = "sqlc-dev";
     repo = "sqlc";
     rev = "v${version}";
-    hash = "sha256-VrR/oSGyKtbKHfQaiLQ9oKyWC1Y7lTZO1aUSS5bCkKY=";
+    hash = "sha256-o23FQytw+zpkmTTxxxunHx3NvLF5q0ZSl1NV+D+XKww=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-C5OOTAYoSt4anz1B/NGDHY5NhxfyTZ6EHis04LFnMPM=";
+  vendorHash = "sha256-T4DUuZg1yVxSgw/SXgajpvYwzfYZYxzLE3F7U9bpUTw=";
 
   subPackages = [ "cmd/sqlc" ];
 
diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix
index 8db953a8dca58..dcea75d51071b 100644
--- a/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/pkgs/development/tools/database/sqlfluff/default.nix
@@ -5,21 +5,21 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "3.0.2";
+  version = "3.0.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "sqlfluff";
     repo = "sqlfluff";
     rev = "refs/tags/${version}";
-    hash = "sha256-GJpSBDxgI0UpIIVeF9dl9XzKJ2TuwWf/IOCzoTGJNRQ=";
+    hash = "sha256-/Zp/iAX6Y6MaXMjpk3dRYgZNhjJtl3cr/FiCyhGK9X4=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     setuptools
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     appdirs
     cached-property
     chardet
diff --git a/pkgs/development/tools/database/timescaledb-tune/default.nix b/pkgs/development/tools/database/timescaledb-tune/default.nix
index 444e947cdf4b7..b0737ce856843 100644
--- a/pkgs/development/tools/database/timescaledb-tune/default.nix
+++ b/pkgs/development/tools/database/timescaledb-tune/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "timescaledb-tune";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YgG8yuHnJrhrqJHNUkMjJvKNzEQ3ClY9OQzt+ET4LEk=";
+    sha256 = "sha256-rOAXCru3m31lVFUyxywkuyKWUOJneA7ECMPyvAfw4mg=";
   };
 
   vendorHash = "sha256-8Q+KMYu1yiHEYS035NmCvxSgIS/+oRhhcZa6SwmvGgk=";
diff --git a/pkgs/development/tools/database/vitess/default.nix b/pkgs/development/tools/database/vitess/default.nix
index aa0fa687fb822..6ace9ba59251a 100644
--- a/pkgs/development/tools/database/vitess/default.nix
+++ b/pkgs/development/tools/database/vitess/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vitess";
-  version = "18.0.2";
+  version = "19.0.1";
 
   src = fetchFromGitHub {
     owner = "vitessio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-CKhnP6sTw7rNzqMhJpwuYhoc5F3MNnL58JxnoKPHyl0=";
+    hash = "sha256-UDqSCAJObKh65/mDupuWzkYfqJyd6XZCi+qA7NwIO9M=";
   };
 
-  vendorHash = "sha256-FwgKsv5fQSWKa2K2djEwd7lnbE2qtADoiIokR9U5t1k=";
+  vendorHash = "sha256-YrgWrk+67Vx9L+uFLipyuousj5DQIleqyxbUSqalZyw=";
 
   buildInputs = [ sqlite ];
 
diff --git a/pkgs/development/tools/devbox/default.nix b/pkgs/development/tools/devbox/default.nix
index 3b25558a4266f..c035f1ad498c0 100644
--- a/pkgs/development/tools/devbox/default.nix
+++ b/pkgs/development/tools/devbox/default.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "devbox";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "jetpack-io";
     repo = pname;
     rev = version;
-    hash = "sha256-iKWOGp5Clk+YFXHv/5k+7DZMA9TQzyIQoTlQs4IMbu4=";
+    hash = "sha256-mZwvNNwB+btDbjVUQNucDXsBATGfjCvV1odAgkFkiSc=";
   };
 
   ldflags = [
diff --git a/pkgs/development/tools/firebase-tools/default.nix b/pkgs/development/tools/firebase-tools/default.nix
index 68968222bd3ea..ebcf8abf0feaa 100644
--- a/pkgs/development/tools/firebase-tools/default.nix
+++ b/pkgs/development/tools/firebase-tools/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "firebase-tools";
-  version = "13.5.2";
+  version = "13.6.0";
 
   src = fetchFromGitHub {
     owner = "firebase";
     repo = "firebase-tools";
     rev = "v${version}";
-    hash = "sha256-uHh9schpVs9PNivZkIp8geG60MrEDwrlo58WN3499OM=";
+    hash = "sha256-69fIejqLs/27nISW7b7+kPRoUiEGQF0DSGz5nkus6Us=";
   };
 
-  npmDepsHash = "sha256-O3+9qqXbNLVqMP6Grh7p5rHWjOc3stG1e6zBxZSt/5M=";
+  npmDepsHash = "sha256-m9mAuR0lqC83uHY+b1rOLuv6bRSl9eVnYVE7pvLi9+s=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix
index 148e814b5568a..7176bf7e3bd3b 100644
--- a/pkgs/development/tools/go-mockery/default.nix
+++ b/pkgs/development/tools/go-mockery/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "go-mockery";
-  version = "2.38.0";
+  version = "2.42.1";
 
   src = fetchFromGitHub {
     owner = "vektra";
     repo = "mockery";
     rev = "v${version}";
-    sha256 = "sha256-fWS4oF/CWlOX6XgeLxsmEfPDDgp1WBSDC4fx2Aid9p0=";
+    sha256 = "sha256-+D91qWXv+OAZKKXllCv6cpGppzmIlwUTweN2NR/nTqU=";
   };
 
   preCheck = ''
-    substituteInPlace ./pkg/generator_test.go --replace 0.0.0-dev ${version}
-    substituteInPlace ./pkg/logging/logging_test.go --replace v0.0 v${lib.versions.majorMinor version}
+    substituteInPlace ./pkg/generator_test.go --replace-fail 0.0.0-dev ${version}
+    substituteInPlace ./pkg/logging/logging_test.go --replace-fail v0.0 v${lib.versions.majorMinor version}
   '';
 
   ldflags = [
@@ -24,7 +24,9 @@ buildGoModule rec {
   CGO_ENABLED = false;
 
   proxyVendor = true;
-  vendorHash = "sha256-iAZjWRW2TWKqcs94lepkcIXUPyPl9qlGhxlX84rN3ok=";
+  vendorHash = "sha256-FCl17nywcMoXEA3l0rOzY66Pj51rEEGdK6Zo6Y3/n34=";
+
+  subPackages = [ "." ];
 
   passthru.tests = {
     generateMock = runCommand "${pname}-test" {
diff --git a/pkgs/development/tools/heroku/default.nix b/pkgs/development/tools/heroku/default.nix
index da7b0b1968930..aa9cc6b7eb750 100644
--- a/pkgs/development/tools/heroku/default.nix
+++ b/pkgs/development/tools/heroku/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "heroku";
-  version = "8.11.0";
+  version = "8.11.1";
 
   src = fetchzip {
-    url = "https://cli-assets.heroku.com/versions/8.11.0/a525d5e/heroku-v8.11.0-a525d5e-linux-x64.tar.xz";
-    hash = "sha256-0G/ZRffPUHQy5iU64x92pjLd6pFCfEABugnSfYiUXHQ=";
+    url = "https://cli-assets.heroku.com/versions/8.11.1/6dbf5e0/heroku-v8.11.1-6dbf5e0-linux-x64.tar.xz";
+    hash = "sha256-/gZnVxnWqxz1vp+FXpTnlqF8Z8mdkNbh/eUsJcIq+II=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/iferr/default.nix b/pkgs/development/tools/iferr/default.nix
index 9a7b25a4cb40a..bf970ce1e9de5 100644
--- a/pkgs/development/tools/iferr/default.nix
+++ b/pkgs/development/tools/iferr/default.nix
@@ -1,29 +1,28 @@
-{ buildGoPackage
+{ buildGoModule
 , lib
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
-  pname = "iferr-unstable";
-  version = "2018-06-15";
-  rev = "bb332a3b1d9129b6486c7ddcb7030c11b05cfc88";
-
-  goPackagePath = "github.com/koron/iferr";
+buildGoModule {
+  pname = "iferr";
+  version = "0-unstable-2024-01-22";
 
   src = fetchFromGitHub {
-    inherit rev;
-
     owner = "koron";
     repo = "iferr";
-    sha256 = "1nyqy1sgq2afiama4wy7wap8s03c0hiwwa0f6kwq3y59097rfc0c";
+    rev = "9c3e2fbe4bd19a7f0338e42bb483562ed4cf4d50";
+    hash = "sha256-qGuSsdQorb407rDl2o7w7kPCLng3W7YQsqo5JpoZFW8=";
   };
 
+  vendorHash = null;
+
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
     description = ''Generate "if err != nil {" block'';
-    mainProgram = "iferr";
     homepage = "https://github.com/koron/iferr";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "iferr";
   };
 }
diff --git a/pkgs/development/tools/language-servers/crystalline/default.nix b/pkgs/development/tools/language-servers/crystalline/default.nix
index 779bb27f99764..aaff50d67190b 100644
--- a/pkgs/development/tools/language-servers/crystalline/default.nix
+++ b/pkgs/development/tools/language-servers/crystalline/default.nix
@@ -7,7 +7,7 @@
 }:
 
 let
-  version = "0.12.1";
+  version = "0.12.2";
 in
 crystal.buildCrystalPackage {
   pname = "crystalline";
@@ -17,7 +17,7 @@ crystal.buildCrystalPackage {
     owner = "elbywan";
     repo = "crystalline";
     rev = "v${version}";
-    hash = "sha256-b/j1V5JlT+rjWYAA8nrE0PWHrzQq4rUZxZlADMmtpBk=";
+    hash = "sha256-9CXWw7Jye5XZzPdzz+Dnvyy7Wk1ENM0an8vOFrPbESA=";
   };
 
   format = "crystal";
diff --git a/pkgs/development/tools/language-servers/gopls/default.nix b/pkgs/development/tools/language-servers/gopls/default.nix
index 63937dbfe8651..509eb290c2e87 100644
--- a/pkgs/development/tools/language-servers/gopls/default.nix
+++ b/pkgs/development/tools/language-servers/gopls/default.nix
@@ -14,6 +14,9 @@ buildGoModule rec {
   modRoot = "gopls";
   vendorHash = "sha256-q7vWiXJAX4u8B4RyFc7kg1BvMCPaTBFOVkWXeE78Emo=";
 
+  # https://github.com/golang/tools/blob/9ed98faa/gopls/main.go#L27-L30
+  ldflags = [ "-X main.version=v${version}" ];
+
   doCheck = false;
 
   # Only build gopls, and not the integration tests or documentation generator.
diff --git a/pkgs/development/tools/language-servers/jq-lsp/default.nix b/pkgs/development/tools/language-servers/jq-lsp/default.nix
index 13f8527906625..6952bea00d63e 100644
--- a/pkgs/development/tools/language-servers/jq-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/jq-lsp/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
 
   # based on https://github.com/wader/jq-lsp/blob/master/.goreleaser.yml
   CGO_ENABLED = 0;
-  GOFLAGS = [ "-trimpath" ];
+
   ldflags = [
     "-s"
     "-w"
diff --git a/pkgs/development/tools/language-servers/postgres-lsp/default.nix b/pkgs/development/tools/language-servers/postgres-lsp/default.nix
index 6f9e41cb3c868..33855391ea5ab 100644
--- a/pkgs/development/tools/language-servers/postgres-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/postgres-lsp/default.nix
@@ -6,17 +6,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "postgres-lsp";
-  version = "unstable-2024-01-11";
+  version = "0-unstable-2024-03-24";
 
   src = fetchFromGitHub {
     owner = "supabase";
     repo = "postgres_lsp";
-    rev = "bbc24cc541cd1619997193ed81ad887252c7e467";
-    hash = "sha256-llVsHSEUDRsqjSTGr3hGUK6jYlKPX60rpjngBk1TG2Y=";
+    rev = "43ca9b675cb152ca7f38cfa6aff6dd2131dfa9a2";
+    hash = "sha256-n7Qbt9fGzC0CcleAtTWDInPz4oaPjI+pvIPrR5EYJ9U=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-Npx/sSbMr4PKnNPslvjpOyKH0bpQLzW6cLNW+7H/TQ0=";
+  cargoHash = "sha256-UEcHlkbYMA6xETMryWXsDHyAZYtLncRJn2jA6tvw7gQ=";
 
   nativeBuildInputs = [
     protobuf
diff --git a/pkgs/development/tools/language-servers/vhdl-ls/default.nix b/pkgs/development/tools/language-servers/vhdl-ls/default.nix
index 0090fc1523ffa..f0906c865987f 100644
--- a/pkgs/development/tools/language-servers/vhdl-ls/default.nix
+++ b/pkgs/development/tools/language-servers/vhdl-ls/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vhdl-ls";
-  version = "0.78.1";
+  version = "0.78.2";
 
   src = fetchFromGitHub {
     owner = "VHDL-LS";
     repo = "rust_hdl";
     rev = "v${version}";
-    hash = "sha256-LY9lFZe8MFuDwtNbi9D4JiYY+xKb5bGBHGnH951oRiQ=";
+    hash = "sha256-hg+OEB4V5kCpno7blMyE6jnDQPHds+BN+RZGG8oAoZU=";
   };
 
-  cargoHash = "sha256-LcMAau6fJimcyf4Iru5AvrjsSV3nfLPvNqXtyzVHWgc=";
+  cargoHash = "sha256-jX2vJdFTx0ELXqwMvoCILGvYrfAtL72lfI3KqWCZLYg=";
 
   postPatch = ''
     substituteInPlace vhdl_lang/src/config.rs \
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 7304aa9e3ddb7..a126ce98314c8 100644
--- a/pkgs/development/tools/micronaut/default.nix
+++ b/pkgs/development/tools/micronaut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "micronaut";
-  version = "4.3.6";
+  version = "4.3.7";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
-    sha256 = "sha256-iwV+yo9NkQr78ZMFiUAnFXPdK4ItB4o+75HNFpd7wpU=";
+    sha256 = "sha256-TP7Ccv/Krc5l35AxyrkRmeRMSgQP9Q3BpNiHxlqLD4I=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index 14b293b37e611..748a153624ab0 100644
--- a/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -14,47 +14,47 @@ assert lib.assertMsg (!php.ztsSupport) "blackfire only supports non zts versions
 let
   phpMajor = lib.versions.majorMinor php.version;
 
-  version = "1.92.10";
+  version = "1.92.13";
 
   hashes = {
     "x86_64-linux" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-U2vcgqnpz1+pS4aE3usj/ktrbnXw70+xpedx1LkbTvI=";
-        "8.2" = "sha256-rX57nPA6Fduzv5t/lGYnIPXSbW8ddlpQrDDqj3CUzQ0=";
-        "8.3" = "sha256-DXlMHZvGZMdzVRVe7Mv80sGHwUkWcr99hsWl7VnOrb0=";
+        "8.1" = "sha256-QpvnhIvjhm5tqOP72T2yVxV92M3ty/iDICaWsOVFpNg=";
+        "8.2" = "sha256-NhNbhOGRlhGvTcG4uZwTASWqLp7PQnfDW48GzROxkII=";
+        "8.3" = "sha256-Gn3M0ANj05QoAZB6W3HWj4zNCDya7lqa+OTv57fnEQ8=";
       };
     };
     "i686-linux" = {
       system = "i386";
       hash = {
-        "8.1" = "sha256-Czua15eOomeIwaVll6THoKWlg2KSoj8TZn/kmpik8no=";
-        "8.2" = "sha256-oFqbLJUD8IlhdM3qT1zZUqPs/eikDJB7UqEc5RdPWGk=";
-        "8.3" = "sha256-/ueCOSPGdLDUQpaPOkiOkk1+xKYAFQoRPVUjrbGjkgI=";
+        "8.1" = "sha256-zhCjSPTO/RGcc+qvkYlEeV+9ulIXpA0dCMRlSWwj8ys=";
+        "8.2" = "sha256-J+zdMC4q+MHmwADivqdEfSq8h/KeD5TAanCJKZLuEog=";
+        "8.3" = "sha256-GGNje7mg1uaLN3zrDXG/igLW9+nhxvPp7nIYW6aJBa4=";
       };
     };
     "aarch64-linux" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-F3bxCPvlXnBNXcp1ia47HdEfrronRqftTUQkvV2yeew=";
-        "8.2" = "sha256-dLUfo13RILacTgHhfLvzFOz8OvwO+Nv6L6hQ7XE2o5c=";
-        "8.3" = "sha256-NO6n3euYq0Ind6oxLaSRmj6FkmeWJme+ZcIfumQtEgE=";
+        "8.1" = "sha256-C2ie8tp3F0sr+edYbUBVw0b1YJtnjyneC8/+x6LWENg=";
+        "8.2" = "sha256-Ku1pulSErVMvBtiNvLgRw2NpE/bEOkjZ5TY7F/PYJto=";
+        "8.3" = "sha256-/U/qf7Aqxssvcnc06+K5JeG96Ab09zRvUYcwhSAW4b8=";
       };
     };
     "aarch64-darwin" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-DNkRaUD+/MsK8K1i48LnekooKjYen/SRMcYNgVTxRfU=";
-        "8.2" = "sha256-4MwsaqFozn6ybkjDIj+FUQv42I5YyV7gKXyTmNuLdRg=";
-        "8.3" = "sha256-KZR0oO53S1cdao6JQJKsNGIUk7bqR1xYcJeXUL7RW6g=";
+        "8.1" = "sha256-OdqG7G3TzuCVzBA0Xf+It05S6XaVlEd+ugM+gk70OiE=";
+        "8.2" = "sha256-/nCBQzimhcCrzNuwSVybHBmZZJImm75jKGqh2oXyyZA=";
+        "8.3" = "sha256-C2SxPYYXewU6PekQ3m1MBiPMPS5tE53gda2Qo7rZ1YQ=";
       };
     };
     "x86_64-darwin" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-6rglM9HYhNdN4kumAOQibYt95oa5imgnfkhYDuC3Iso=";
-        "8.2" = "sha256-+Mi+xWdWYFwrKPL9szo4C0jZn+FMPSmdKiVAiH9MxtY=";
-        "8.3" = "sha256-0CwhF/z0phPYuOSZ0PRTG90DjjXKFKFEtAovCHYtRFw=";
+        "8.1" = "sha256-W3reCFcN/bM3hrUeekJLG5qntH/Wvfb+JVly5+g2YEY=";
+        "8.2" = "sha256-d2YSmyV0mq7KBqoD4Bwdh3izh6hcKTBf6kP+q3QVnfI=";
+        "8.3" = "sha256-JiCw8Lew2laxOyb+2aSDqlZz2MafFwYwV46dqceEcBk=";
       };
     };
   };
diff --git a/pkgs/development/tools/misc/funzzy/default.nix b/pkgs/development/tools/misc/funzzy/default.nix
index cc70cbeaf9559..debb6f04fc1cd 100644
--- a/pkgs/development/tools/misc/funzzy/default.nix
+++ b/pkgs/development/tools/misc/funzzy/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "funzzy";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "cristianoliveira";
     repo = "funzzy";
     rev = "v${version}";
-    hash = "sha256-sgfMxSbOBn2Ps6hqrFDm3x9QOnMvtMgO7gAt6kk0cIs=";
+    hash = "sha256-YjA/XxVB8gGxyLovxTTatSC/ESBCkgz7Not0qfEPxtw=";
   };
 
-  cargoHash = "sha256-If8iBvwiaH1jK8z06ORY/lx+7HAT4InxbjoLe289kws=";
+  cargoHash = "sha256-eq5d6oHWKip9K+9yszLXW+JHtzYzrThXfqoZGMhnSHk=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
diff --git a/pkgs/development/tools/misc/grpc-client-cli/default.nix b/pkgs/development/tools/misc/grpc-client-cli/default.nix
index 5a337aafb9e9b..aac07b56e2d5b 100644
--- a/pkgs/development/tools/misc/grpc-client-cli/default.nix
+++ b/pkgs/development/tools/misc/grpc-client-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grpc-client-cli";
-  version = "1.20.0";
+  version = "1.20.1";
 
   src = fetchFromGitHub {
     owner = "vadimi";
     repo = "grpc-client-cli";
     rev = "v${version}";
-    sha256 = "sha256-MqzuVPY/IuJWfdzHvC/keTe5yi0aMhvq8SoKDlRAI0w=";
+    sha256 = "sha256-r3gbQntlWZ8Y2KiJOVkpzdakKnQUX2NIhk3eAyjnIV4=";
   };
 
-  vendorHash = "sha256-eRT1xMy9lsvF5sUF9jyDUWfNyLThIDTksaXff7xqyic=";
+  vendorHash = "sha256-23DdG/lLwzpgSRk9S6p1aNMh+AFzhO2qX2EE1EUovz8=";
 
   meta = with lib; {
     description = "generic gRPC command line client";
diff --git a/pkgs/development/tools/misc/netcoredbg/default.nix b/pkgs/development/tools/misc/netcoredbg/default.nix
index 180692e9932ff..b16c4718914e3 100644
--- a/pkgs/development/tools/misc/netcoredbg/default.nix
+++ b/pkgs/development/tools/misc/netcoredbg/default.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Samsung/netcoredbg";
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "netcoredbg";
     maintainers = with maintainers; [ leo60228 konradmalik ];
   };
 }
diff --git a/pkgs/development/tools/misc/opengrok/default.nix b/pkgs/development/tools/misc/opengrok/default.nix
index 88639c752faba..dec8b3fa8c3d9 100644
--- a/pkgs/development/tools/misc/opengrok/default.nix
+++ b/pkgs/development/tools/misc/opengrok/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "opengrok";
-  version = "1.13.6";
+  version = "1.13.7";
 
   # binary distribution
   src = fetchurl {
     url = "https://github.com/oracle/opengrok/releases/download/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-eCTqBdY2mALEo7dPQ7fDNaO2RcbbKIYSi9Y6nfRV1kc=";
+    hash = "sha256-vGzwXs4i9NiIz5M4JfoweJdpP5vbPKCdeUlE5xueYc4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/rsonpath/default.nix b/pkgs/development/tools/misc/rsonpath/default.nix
index 1d673ae35ded7..90c5d066aef81 100644
--- a/pkgs/development/tools/misc/rsonpath/default.nix
+++ b/pkgs/development/tools/misc/rsonpath/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsonpath";
-  version = "0.8.7";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "v0ldek";
     repo = "rsonpath";
     rev = "v${version}";
-    hash = "sha256-AMnUErmufHc05MxHru/b4mFHH+HF9jfhoNi8yIejc64=";
+    hash = "sha256-g6dBPW3iIRslzQUwcmx9Ube/Q3llp6Sstdihq9ExANU=";
   };
 
-  cargoHash = "sha256-flMzNxA1NWGy4ea7/dmPiEKspBmVuy82VPe5r8jaEGg=";
+  cargoHash = "sha256-byeMX4wKFQbOH9f89cWkrpKAbhThLlR12Xok7vn/hOw=";
 
   cargoBuildFlags = [ "-p=rsonpath" ];
   cargoTestFlags = cargoBuildFlags;
diff --git a/pkgs/development/tools/misc/terser/default.nix b/pkgs/development/tools/misc/terser/default.nix
index 2b9052ad79e63..ba30c6a4ffcd0 100644
--- a/pkgs/development/tools/misc/terser/default.nix
+++ b/pkgs/development/tools/misc/terser/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "terser";
-  version = "5.29.2";
+  version = "5.30.0";
 
   src = fetchFromGitHub {
     owner = "terser";
     repo = "terser";
     rev = "v${version}";
-    hash = "sha256-VGQ/mgMeeNA0koYgmb6PAZqBdVljgqY3MwuG0RLllCU=";
+    hash = "sha256-d3vnCEb9HzydpxsuoX66KqUtgYYt/+L2AcpZNFDleoY=";
   };
 
-  npmDepsHash = "sha256-8wKvV3vSzF6WdHzox1LXVi2FmeZf7qSo2rg93uCN3fI=";
+  npmDepsHash = "sha256-wrxa6/TKYb/pqT4zjTVbfONSYqko12pVzBQ9Ojm7H2o=";
 
   meta = with lib; {
     description = "JavaScript parser, mangler and compressor toolkit for ES6+";
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index afd4a23688ecb..6c3b1707a4056 100644
--- a/pkgs/development/tools/misc/texlab/default.nix
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -15,16 +15,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "5.14.0";
+  version = "5.14.1";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = "texlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/VXhL03wZz0B0qoQe7JqmtzN020LSmcWB5QOkZFboz0=";
+    hash = "sha256-OqnV0ZpriiH69cTlmqPxorCgeO3x5h15e5Crn7DPwBM=";
   };
 
-  cargoHash = "sha256-hIQeo4FCEbgpa99ho5cwJgiXtAYbqgzyj6kW8fNtTWA=";
+  cargoHash = "sha256-V5FP24Cz1umffFD1Am4/IG3c7zKpT7MdghLpKvDxZwA=";
 
   outputs = [ "out" ] ++ lib.optional (!isCross) "man";
 
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   # generate the man page
   postInstall = lib.optionalString (!isCross) ''
     # TexLab builds man page separately in CI:
-    # https://github.com/latex-lsp/texlab/blob/v5.13.1/.github/workflows/publish.yml#L117-L121
+    # https://github.com/latex-lsp/texlab/blob/v5.14.1/.github/workflows/publish.yml#L117-L121
     help2man --no-info "$out/bin/texlab" > texlab.1
     installManPage texlab.1
   '';
@@ -50,11 +50,11 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An implementation of the Language Server Protocol for LaTeX";
-    mainProgram = "texlab";
     homepage = "https://github.com/latex-lsp/texlab";
     changelog = "https://github.com/latex-lsp/texlab/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar kira-bruneau ];
     platforms = platforms.all;
+    mainProgram = "texlab";
   };
 }
diff --git a/pkgs/development/tools/mongosh/package-lock.json b/pkgs/development/tools/mongosh/package-lock.json
index f0fae4c8e2451..13dcac0bb5143 100644
--- a/pkgs/development/tools/mongosh/package-lock.json
+++ b/pkgs/development/tools/mongosh/package-lock.json
@@ -1,15 +1,15 @@
 {
   "name": "mongosh",
-  "version": "2.2.1",
+  "version": "2.2.2",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "mongosh",
-      "version": "2.2.1",
+      "version": "2.2.2",
       "license": "Apache-2.0",
       "dependencies": {
-        "@mongosh/cli-repl": "2.2.1"
+        "@mongosh/cli-repl": "2.2.2"
       },
       "bin": {
         "mongosh": "bin/mongosh.js"
@@ -122,22 +122,22 @@
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-sdk/client-cognito-identity": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.535.0.tgz",
-      "integrity": "sha512-7n9WAXAQzDgdaNkZlgdX+dmCW30tCrq3NpPs/f1WFWcF6g+s06ULkuWywTU+usG6ZTuRtajFKy2oMkMv9Wor0g==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.540.0.tgz",
+      "integrity": "sha512-03vUaIKjvdcOmjDi8Fv9JgY+VQrt9QBpRkI8A1lrdPNgWqTEZXZi/zBsFRsxTe6hgsrZtxVnxLu6krSRILuqtw==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/client-sts": "3.540.0",
         "@aws-sdk/core": "3.535.0",
-        "@aws-sdk/credential-provider-node": "3.535.0",
+        "@aws-sdk/credential-provider-node": "3.540.0",
         "@aws-sdk/middleware-host-header": "3.535.0",
         "@aws-sdk/middleware-logger": "3.535.0",
         "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.540.0",
         "@aws-sdk/region-config-resolver": "3.535.0",
         "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.540.0",
         "@aws-sdk/util-user-agent-browser": "3.535.0",
         "@aws-sdk/util-user-agent-node": "3.535.0",
         "@smithy/config-resolver": "^2.2.0",
@@ -172,9 +172,9 @@
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.535.0.tgz",
-      "integrity": "sha512-h9eQRdFnjDRVBnPJIKXuX7D+isSAioIfZPC4PQwsL5BscTRlk4c90DX0R0uk64YUtp7LZu8TNtrosFZ/1HtTrQ==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.540.0.tgz",
+      "integrity": "sha512-rrQZMuw4sxIo3eyAUUzPQRA336mPRnrAeSlSdVHBKZD8Fjvoy0lYry2vNhkPLpFZLso1J66KRyuIv4LzRR3v1Q==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
@@ -182,10 +182,10 @@
         "@aws-sdk/middleware-host-header": "3.535.0",
         "@aws-sdk/middleware-logger": "3.535.0",
         "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.540.0",
         "@aws-sdk/region-config-resolver": "3.535.0",
         "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.540.0",
         "@aws-sdk/util-user-agent-browser": "3.535.0",
         "@aws-sdk/util-user-agent-node": "3.535.0",
         "@smithy/config-resolver": "^2.2.0",
@@ -220,21 +220,21 @@
       }
     },
     "node_modules/@aws-sdk/client-sso-oidc": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.535.0.tgz",
-      "integrity": "sha512-M2cG4EQXDpAJQyq33ORIr6abmdX9p9zX0ssVy8XwFNB7lrgoIKxuVoGL+fX+XMgecl24x7ELz6b4QlILOevbCw==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.540.0.tgz",
+      "integrity": "sha512-LZYK0lBRQK8D8M3Sqc96XiXkAV2v70zhTtF6weyzEpgwxZMfSuFJjs0jFyhaeZBZbZv7BBghIdhJ5TPavNxGMQ==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/client-sts": "3.540.0",
         "@aws-sdk/core": "3.535.0",
         "@aws-sdk/middleware-host-header": "3.535.0",
         "@aws-sdk/middleware-logger": "3.535.0",
         "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.540.0",
         "@aws-sdk/region-config-resolver": "3.535.0",
         "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.540.0",
         "@aws-sdk/util-user-agent-browser": "3.535.0",
         "@aws-sdk/util-user-agent-node": "3.535.0",
         "@smithy/config-resolver": "^2.2.0",
@@ -268,13 +268,13 @@
         "node": ">=14.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/credential-provider-node": "^3.535.0"
+        "@aws-sdk/credential-provider-node": "^3.540.0"
       }
     },
     "node_modules/@aws-sdk/client-sts": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.535.0.tgz",
-      "integrity": "sha512-ii9OOm3TJwP3JmO1IVJXKWIShVKPl0VtdlgROc/SkDglO/kuAw9eDdlROgc+qbFl+gm6bBTguOVTUXt3tS3flw==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.540.0.tgz",
+      "integrity": "sha512-ITHUQxvpqfQX6obfpIi3KYGzZYfe/I5Ixjfxoi5lB7ISCtmxqObKB1fzD93wonkMJytJ7LUO8panZl/ojiJ1uw==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
@@ -282,10 +282,10 @@
         "@aws-sdk/middleware-host-header": "3.535.0",
         "@aws-sdk/middleware-logger": "3.535.0",
         "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.540.0",
         "@aws-sdk/region-config-resolver": "3.535.0",
         "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.540.0",
         "@aws-sdk/util-user-agent-browser": "3.535.0",
         "@aws-sdk/util-user-agent-node": "3.535.0",
         "@smithy/config-resolver": "^2.2.0",
@@ -319,7 +319,7 @@
         "node": ">=14.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/credential-provider-node": "^3.535.0"
+        "@aws-sdk/credential-provider-node": "^3.540.0"
       }
     },
     "node_modules/@aws-sdk/core": {
@@ -340,11 +340,11 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-cognito-identity": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.535.0.tgz",
-      "integrity": "sha512-Lc+RJTNzp22H31W/O7iSmCZUP+KYZMuzK8hKU4/RXo7D8t/cFLb4VpvvcCCa4UOZqdmxVqEhwc1oXyMkoszITQ==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.540.0.tgz",
+      "integrity": "sha512-XOTAIuVgticX+43GMpRbi5OHmJAhHfoHYsVGu0eRLhri1yFqUHXJgHUd51QQtlA8cFQN7JnFFM6sF5EDCPF49g==",
       "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.535.0",
+        "@aws-sdk/client-cognito-identity": "3.540.0",
         "@aws-sdk/types": "3.535.0",
         "@smithy/property-provider": "^2.2.0",
         "@smithy/types": "^2.12.0",
@@ -388,15 +388,15 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.535.0.tgz",
-      "integrity": "sha512-bm3XOYlyCjtAb8eeHXLrxqRxYVRw2Iqv9IufdJb4gM13TbNSYniUT1WKaHxGIZ5p+FuNlXVhvk1OpHFM13+gXA==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.540.0.tgz",
+      "integrity": "sha512-igN/RbsnulIBwqXbwsWmR3srqmtbPF1dm+JteGvUY31FW65fTVvWvSr945Y/cf1UbhPmIQXntlsqESqpkhTHwg==",
       "dependencies": {
-        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/client-sts": "3.540.0",
         "@aws-sdk/credential-provider-env": "3.535.0",
         "@aws-sdk/credential-provider-process": "3.535.0",
-        "@aws-sdk/credential-provider-sso": "3.535.0",
-        "@aws-sdk/credential-provider-web-identity": "3.535.0",
+        "@aws-sdk/credential-provider-sso": "3.540.0",
+        "@aws-sdk/credential-provider-web-identity": "3.540.0",
         "@aws-sdk/types": "3.535.0",
         "@smithy/credential-provider-imds": "^2.3.0",
         "@smithy/property-provider": "^2.2.0",
@@ -409,16 +409,16 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.535.0.tgz",
-      "integrity": "sha512-6JXp/EuL6euUkH5k4d+lQFF6gBwukrcCOWfNHCmq14mNJf/cqT3HAX1VMtWFRSK20am0IxfYQGccb0/nZykdKg==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.540.0.tgz",
+      "integrity": "sha512-HKQZJbLHlrHX9A0B1poiYNXIIQfy8whTjuosTCYKPDBhhUyVAQfxy/KG726j0v43IhaNPLgTGZCJve4hAsazSw==",
       "dependencies": {
         "@aws-sdk/credential-provider-env": "3.535.0",
         "@aws-sdk/credential-provider-http": "3.535.0",
-        "@aws-sdk/credential-provider-ini": "3.535.0",
+        "@aws-sdk/credential-provider-ini": "3.540.0",
         "@aws-sdk/credential-provider-process": "3.535.0",
-        "@aws-sdk/credential-provider-sso": "3.535.0",
-        "@aws-sdk/credential-provider-web-identity": "3.535.0",
+        "@aws-sdk/credential-provider-sso": "3.540.0",
+        "@aws-sdk/credential-provider-web-identity": "3.540.0",
         "@aws-sdk/types": "3.535.0",
         "@smithy/credential-provider-imds": "^2.3.0",
         "@smithy/property-provider": "^2.2.0",
@@ -446,12 +446,12 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.535.0.tgz",
-      "integrity": "sha512-2Dw0YIr8ETdFpq65CC4zK8ZIEbX78rXoNRZXUGNQW3oSKfL0tj8O8ErY6kg1IdEnYbGnEQ35q6luZ5GGNKLgDg==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.540.0.tgz",
+      "integrity": "sha512-tKkFqK227LF5ajc5EL6asXS32p3nkofpP8G7NRpU7zOEOQCg01KUc4JRX+ItI0T007CiN1J19yNoFqHLT/SqHg==",
       "dependencies": {
-        "@aws-sdk/client-sso": "3.535.0",
-        "@aws-sdk/token-providers": "3.535.0",
+        "@aws-sdk/client-sso": "3.540.0",
+        "@aws-sdk/token-providers": "3.540.0",
         "@aws-sdk/types": "3.535.0",
         "@smithy/property-provider": "^2.2.0",
         "@smithy/shared-ini-file-loader": "^2.4.0",
@@ -463,11 +463,11 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-web-identity": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.535.0.tgz",
-      "integrity": "sha512-t2/JWrKY0H66A7JW7CqX06/DG2YkJddikt5ymdQvx/Q7dRMJ3d+o/vgjoKr7RvEx/pNruCeyM1599HCvwrVMrg==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.540.0.tgz",
+      "integrity": "sha512-OpDm9w3A168B44hSjpnvECP4rvnFzD86rN4VYdGADuCvEa5uEcdA/JuT5WclFPDqdWEmFBqS1pxBIJBf0g2Q9Q==",
       "dependencies": {
-        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/client-sts": "3.540.0",
         "@aws-sdk/types": "3.535.0",
         "@smithy/property-provider": "^2.2.0",
         "@smithy/types": "^2.12.0",
@@ -478,21 +478,21 @@
       }
     },
     "node_modules/@aws-sdk/credential-providers": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.535.0.tgz",
-      "integrity": "sha512-rC3TguTFbeua3EyTwGm84xeARKE1RO0oIWdtuTmSS5ZCPwllcePGkOVg7gQiPRc01Ebj816S/6P2QbvAfSUxqA==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.535.0",
-        "@aws-sdk/client-sso": "3.535.0",
-        "@aws-sdk/client-sts": "3.535.0",
-        "@aws-sdk/credential-provider-cognito-identity": "3.535.0",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.540.0.tgz",
+      "integrity": "sha512-tAmvqdZngCrER5/AAwTmDSjO05LGIshKL+lwcJr2OUV5jtQVzfbFrorf+b5dnI+3i8+zGcEAV9omra4XGrO9Kg==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.540.0",
+        "@aws-sdk/client-sso": "3.540.0",
+        "@aws-sdk/client-sts": "3.540.0",
+        "@aws-sdk/credential-provider-cognito-identity": "3.540.0",
         "@aws-sdk/credential-provider-env": "3.535.0",
         "@aws-sdk/credential-provider-http": "3.535.0",
-        "@aws-sdk/credential-provider-ini": "3.535.0",
-        "@aws-sdk/credential-provider-node": "3.535.0",
+        "@aws-sdk/credential-provider-ini": "3.540.0",
+        "@aws-sdk/credential-provider-node": "3.540.0",
         "@aws-sdk/credential-provider-process": "3.535.0",
-        "@aws-sdk/credential-provider-sso": "3.535.0",
-        "@aws-sdk/credential-provider-web-identity": "3.535.0",
+        "@aws-sdk/credential-provider-sso": "3.540.0",
+        "@aws-sdk/credential-provider-web-identity": "3.540.0",
         "@aws-sdk/types": "3.535.0",
         "@smithy/credential-provider-imds": "^2.3.0",
         "@smithy/property-provider": "^2.2.0",
@@ -545,12 +545,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.535.0.tgz",
-      "integrity": "sha512-Uvb2WJ+zdHdCOtsWVPI/M0BcfNrjOYsicDZWtaljucRJKLclY5gNWwD+RwIC+8b5TvfnVOlH+N5jhvpi5Impog==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz",
+      "integrity": "sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ==",
       "dependencies": {
         "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.540.0",
         "@smithy/protocol-http": "^3.3.0",
         "@smithy/types": "^2.12.0",
         "tslib": "^2.6.2"
@@ -576,11 +576,11 @@
       }
     },
     "node_modules/@aws-sdk/token-providers": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.535.0.tgz",
-      "integrity": "sha512-4g+l/B9h1H/SiDtFRosW3pMwc+3PTXljZit+5NUBcET2XqcdUyHmgj3lBdu+CJ9CHdIMggRalYMAFXnRFe3Psg==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.540.0.tgz",
+      "integrity": "sha512-9BvtiVEZe5Ev88Wa4ZIUbtT6BVcPwhxmVInQ6c12MYNb0WNL54BN6wLy/eknAfF05gpX2/NDU2pUDOyMPdm/+g==",
       "dependencies": {
-        "@aws-sdk/client-sso-oidc": "3.535.0",
+        "@aws-sdk/client-sso-oidc": "3.540.0",
         "@aws-sdk/types": "3.535.0",
         "@smithy/property-provider": "^2.2.0",
         "@smithy/shared-ini-file-loader": "^2.4.0",
@@ -604,9 +604,9 @@
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.535.0.tgz",
-      "integrity": "sha512-c8TlaQsiPchOOmTTR6qvHCO2O7L7NJwlKWAoQJ2GqWDZuC5es/fyuF2rp1h+ZRrUVraUomS0YdGkAmaDC7hJQg==",
+      "version": "3.540.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz",
+      "integrity": "sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw==",
       "dependencies": {
         "@aws-sdk/types": "3.535.0",
         "@smithy/types": "^2.12.0",
@@ -690,12 +690,12 @@
       }
     },
     "node_modules/@babel/core": {
-      "version": "7.24.1",
-      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.1.tgz",
-      "integrity": "sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ==",
+      "version": "7.24.3",
+      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.3.tgz",
+      "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
-        "@babel/code-frame": "^7.24.1",
+        "@babel/code-frame": "^7.24.2",
         "@babel/generator": "^7.24.1",
         "@babel/helper-compilation-targets": "^7.23.6",
         "@babel/helper-module-transforms": "^7.23.3",
@@ -791,9 +791,9 @@
       }
     },
     "node_modules/@babel/helper-module-imports": {
-      "version": "7.24.1",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.1.tgz",
-      "integrity": "sha512-HfEWzysMyOa7xI5uQHc/OcZf67/jc+xe/RZlznWQHhbb8Pg1SkRdbK4yEi61aY8wxQA7PkSfoojtLQP/Kpe3og==",
+      "version": "7.24.3",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
+      "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
       "dependencies": {
         "@babel/types": "^7.24.0"
       },
@@ -1168,12 +1168,12 @@
       }
     },
     "node_modules/@mongosh/arg-parser": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.2.1.tgz",
-      "integrity": "sha512-qz/RDf0go1irs/c/B5ZjN1OwPNplm8cQJU8eB037NVg0jCuDn/V+ERw3cSkinYdN1iZgLDtE/l3rgmEvkxz9Yg==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.2.2.tgz",
+      "integrity": "sha512-jonJbUjRBmMTgd1y3loyG09GJoYRZW/heWCbRGq5K9Gc4QHYDKwWPS8yaGTaw168UaBkCoCsSySNRs9MI0wJWA==",
       "dependencies": {
-        "@mongosh/errors": "2.2.1",
-        "@mongosh/i18n": "2.2.1",
+        "@mongosh/errors": "2.2.2",
+        "@mongosh/i18n": "2.2.2",
         "mongodb-connection-string-url": "^3.0.0"
       },
       "engines": {
@@ -1181,9 +1181,9 @@
       }
     },
     "node_modules/@mongosh/async-rewriter2": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.2.1.tgz",
-      "integrity": "sha512-xlSoweQUlX5nwW2FTOssQPpoJGZX1gZhfkaZ8qoanUdUMGDN+FfwjhUxMf8vUlOP8s899PUqDktCfc4UYo31mQ==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.2.2.tgz",
+      "integrity": "sha512-9F/rVauIZlxMFtVzddW5fs2a8Sr5/54Bc4qoBbwUjkGkV/I62Zx2fwoUm/JUM8iwnJwmXbjA/z0aK7div1OOdg==",
       "dependencies": {
         "@babel/core": "^7.22.8",
         "@babel/plugin-transform-destructuring": "^7.22.5",
@@ -1200,12 +1200,12 @@
       }
     },
     "node_modules/@mongosh/autocomplete": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.2.1.tgz",
-      "integrity": "sha512-M02TfYQvIXy7HWWXT36aEvZ/LfkurET4F1M7y4J9aVb5GL6j3pkSmubOjJNzwkt9vEIJlHFlJFQfPDgq5DWFUA==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.2.2.tgz",
+      "integrity": "sha512-S7awMS1OBQHXyjpU7QglzwuzcYbkb+emFA+ox7rAEGUFfjxnHT+TN69SiNO6Hm63ryq+2w/lXyuAnLzml8ZdTA==",
       "dependencies": {
         "@mongodb-js/mongodb-constants": "^0.8.10",
-        "@mongosh/shell-api": "2.2.1",
+        "@mongosh/shell-api": "2.2.2",
         "semver": "^7.5.4"
       },
       "engines": {
@@ -1213,25 +1213,25 @@
       }
     },
     "node_modules/@mongosh/cli-repl": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.2.1.tgz",
-      "integrity": "sha512-KrnRS5IzdIvWG46n274Ay2c9ZhiMJqJryExNjs00H56VjepGq2HY7hop3U9vY31eQ/s+xLjzChR9qNJ+2E9WwA==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.2.1",
-        "@mongosh/autocomplete": "2.2.1",
-        "@mongosh/editor": "2.2.1",
-        "@mongosh/errors": "2.2.1",
-        "@mongosh/history": "2.2.1",
-        "@mongosh/i18n": "2.2.1",
-        "@mongosh/import-node-fetch": "2.2.1",
-        "@mongosh/js-multiline-to-singleline": "2.2.1",
-        "@mongosh/logging": "2.2.1",
-        "@mongosh/service-provider-core": "2.2.1",
-        "@mongosh/service-provider-server": "2.2.1",
-        "@mongosh/shell-api": "2.2.1",
-        "@mongosh/shell-evaluator": "2.2.1",
-        "@mongosh/snippet-manager": "2.2.1",
-        "@mongosh/types": "2.2.1",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.2.2.tgz",
+      "integrity": "sha512-dPzJ+PN+xFzJ+11iGSMwzeQRcm8i+gUicc+BH2Oj5Y6pw4/Zljuk7uycu6nf5MMqxgzVyozaHfEUocOox59+1g==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.2.2",
+        "@mongosh/autocomplete": "2.2.2",
+        "@mongosh/editor": "2.2.2",
+        "@mongosh/errors": "2.2.2",
+        "@mongosh/history": "2.2.2",
+        "@mongosh/i18n": "2.2.2",
+        "@mongosh/import-node-fetch": "2.2.2",
+        "@mongosh/js-multiline-to-singleline": "2.2.2",
+        "@mongosh/logging": "2.2.2",
+        "@mongosh/service-provider-core": "2.2.2",
+        "@mongosh/service-provider-server": "2.2.2",
+        "@mongosh/shell-api": "2.2.2",
+        "@mongosh/shell-evaluator": "2.2.2",
+        "@mongosh/snippet-manager": "2.2.2",
+        "@mongosh/types": "2.2.2",
         "@segment/analytics-node": "^1.3.0",
         "ansi-escape-sequences": "^5.1.2",
         "askcharacter": "^1.0.0",
@@ -1262,15 +1262,15 @@
       }
     },
     "node_modules/@mongosh/editor": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.2.1.tgz",
-      "integrity": "sha512-z0nxSIVvCiR+kG2md24diMNou/9NBQvhn5334OeGyNk6y3/EEp52VN9Grmk9HL70d1tfr0A8F7c3kUpwJ6Q3XQ==",
-      "dependencies": {
-        "@mongosh/js-multiline-to-singleline": "2.2.1",
-        "@mongosh/service-provider-core": "2.2.1",
-        "@mongosh/shell-api": "2.2.1",
-        "@mongosh/shell-evaluator": "2.2.1",
-        "@mongosh/types": "2.2.1",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.2.2.tgz",
+      "integrity": "sha512-loUUjTtUnzWo/LTRUrEdvENVTHXNS+ohhuKd65mbT/n5XciVamozYhuLuTTsrGUMbVpHeaPXquryIKLEOqgi6w==",
+      "dependencies": {
+        "@mongosh/js-multiline-to-singleline": "2.2.2",
+        "@mongosh/service-provider-core": "2.2.2",
+        "@mongosh/shell-api": "2.2.2",
+        "@mongosh/shell-evaluator": "2.2.2",
+        "@mongosh/types": "2.2.2",
         "js-beautify": "^1.14.0"
       },
       "engines": {
@@ -1278,17 +1278,17 @@
       }
     },
     "node_modules/@mongosh/errors": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.2.1.tgz",
-      "integrity": "sha512-pwBI8Bv1KWYUSBoY2gh48dzvabCH8WlWYfo3Kzci7DPVK1vOccZpzr4PZony6ajvJ0KUswGGSaRFVdS54lO9QA==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.2.2.tgz",
+      "integrity": "sha512-FA4xuRZrYiYl9MxNzwl1adXZqQGXDHrVZyrL8Qrz28mGpvhfaQCENkE11C3DOpT2G/bHIFfiCxsmKs3ko7rwXw==",
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/history": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.2.1.tgz",
-      "integrity": "sha512-AfqtzjrfvJl0EwM3co4fTYGs12E76WUOfJbRejaBI1aLZZ7h36cjQjOG0bAckEuPYRw0sygkql5X0DLjZHDB/A==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.2.2.tgz",
+      "integrity": "sha512-llgGAt9ErtutDo5bQAYw+bpN0mOUHwh4rztIs0wT5vNplIkTxPOQMRXCYe1naXjyUV+2cFZN9aoNV1BuIH/9Gw==",
       "dependencies": {
         "mongodb-connection-string-url": "^3.0.0",
         "mongodb-redact": "^0.2.2"
@@ -1298,21 +1298,20 @@
       }
     },
     "node_modules/@mongosh/i18n": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.2.1.tgz",
-      "integrity": "sha512-ZbWV4Sykz4WIsLLGq9MfKR5baNXo5caM2pdBFVF6fwJMOcR87meBFcQ3SkbI7ZKezrMaQi/o9l6o6amI0vr2Rg==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.2.2.tgz",
+      "integrity": "sha512-FHUbQ7W02uN0ZRM/5tW3v9H0khooJGoxh5i9RaKU1SD8MVeyVToWP5LMIRdD1VQqJhQrEo8lB9G6nOjkXBNrgw==",
       "dependencies": {
-        "@mongosh/errors": "2.2.1",
-        "mustache": "^4.0.0"
+        "@mongosh/errors": "2.2.2"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/import-node-fetch": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/import-node-fetch/-/import-node-fetch-2.2.1.tgz",
-      "integrity": "sha512-rN9BBe3Z/zhnNjTc4cBYpt4oDa+JS7Th5grg/rYurb6Bs8f68Rzn1BTDACix7jzzHM6pVtptuk+b2QXIb2sAlw==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/import-node-fetch/-/import-node-fetch-2.2.2.tgz",
+      "integrity": "sha512-jKLAj5uHGC0Znn/KYlkj18naeup0gJxAVz9wJ9qcw7Sjk+zFXix4FR7J4kFw4OvVRVli2+lrQJxqRNOWdSC9Pg==",
       "dependencies": {
         "node-fetch": "^3.3.2"
       },
@@ -1321,9 +1320,9 @@
       }
     },
     "node_modules/@mongosh/js-multiline-to-singleline": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.2.1.tgz",
-      "integrity": "sha512-e3F8ukzBfJibVaT22lqNdTKMW2UnOTGwEGmAgJC6MLElNjo+zR2z+OBWdLbuOdkY5nsXFDYB2IWgPYbKFiWu/A==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.2.2.tgz",
+      "integrity": "sha512-Bbjn2dkxuW1PETNZkPIE/vybNe1fiAAdY7Kp4zy+hExiPb0bxalJVhh91kX5tGllGtk4lhcXgNHVpQvn44+UCw==",
       "dependencies": {
         "@babel/core": "^7.16.12",
         "@babel/types": "^7.21.2"
@@ -1333,14 +1332,14 @@
       }
     },
     "node_modules/@mongosh/logging": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.2.1.tgz",
-      "integrity": "sha512-2YYLnBvx5GI4zof0sQw8bqLULGf/hOsn8rNIhosfbHKNUPrCCyWlPnjeFD3npaAt7zffkI7Acpev6hWlEDuulA==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.2.2.tgz",
+      "integrity": "sha512-q7YtlypGHFxvrTXc62elQXoQjcpUzTcEpldAtB3LyJ/q4Tw09+Fu4ypgLwXQ+sdFodd0qpAsk/EXJL79mGVokA==",
       "dependencies": {
         "@mongodb-js/devtools-connect": "^2.6.0",
-        "@mongosh/errors": "2.2.1",
-        "@mongosh/history": "2.2.1",
-        "@mongosh/types": "2.2.1",
+        "@mongosh/errors": "2.2.2",
+        "@mongosh/history": "2.2.2",
+        "@mongosh/types": "2.2.2",
         "mongodb-log-writer": "^1.4.0",
         "mongodb-redact": "^0.2.2"
       },
@@ -1349,12 +1348,12 @@
       }
     },
     "node_modules/@mongosh/service-provider-core": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.2.1.tgz",
-      "integrity": "sha512-D+sGmdKjeuTln5vTDqgg3Yx6DfidNuS/8keM14VGafRpVV8CEBD0My8F3kHpimV9w7xZnrAMKBqczcL1ZcJeww==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.2.2.tgz",
+      "integrity": "sha512-6E8qCRmV0lmO/9rRF6/L9zWt4XWbZuQWrh+xo3aceGD4jaBat16yZ0bqO+HTId7CxdZnOD9MqAXoBqXAWi4o3A==",
       "dependencies": {
         "@aws-sdk/credential-providers": "^3.525.0",
-        "@mongosh/errors": "2.2.1",
+        "@mongosh/errors": "2.2.2",
         "bson": "^6.5.0",
         "mongodb": "^6.5.0",
         "mongodb-build-info": "^1.7.1"
@@ -1367,15 +1366,15 @@
       }
     },
     "node_modules/@mongosh/service-provider-server": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.2.1.tgz",
-      "integrity": "sha512-dZ2YlTWANFnfwSjDNxpMbdbFDAqru2pMXoxIyPzEW3ISnathRfJjObiSO0+i56AoGPPG0lTFEdHAb0r9lPgxew==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.2.2.tgz",
+      "integrity": "sha512-Gaps3+FosBcVNW36KcLa6iQV0Ynbnq4Xw/0Eddd6IF2UZTrqyZDhl9pOicP5d1G6xjS833dlWy6cRSYki+rQIQ==",
       "dependencies": {
         "@mongodb-js/devtools-connect": "^2.6.0",
         "@mongodb-js/oidc-plugin": "^0.4.0",
-        "@mongosh/errors": "2.2.1",
-        "@mongosh/service-provider-core": "2.2.1",
-        "@mongosh/types": "2.2.1",
+        "@mongosh/errors": "2.2.2",
+        "@mongosh/service-provider-core": "2.2.2",
+        "@mongosh/types": "2.2.2",
         "@types/sinon-chai": "^3.2.4",
         "aws4": "^1.12.0",
         "mongodb": "^6.5.0",
@@ -1391,15 +1390,15 @@
       }
     },
     "node_modules/@mongosh/shell-api": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.2.1.tgz",
-      "integrity": "sha512-v7SNBBYms8SoHgDdDqN+jkG6V9GlpEJe5pY7tpLwlrQJ7ioBc8SOidsmHviStYP4oMzhkWQMXWETayWO92Fn+g==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.2.1",
-        "@mongosh/errors": "2.2.1",
-        "@mongosh/history": "2.2.1",
-        "@mongosh/i18n": "2.2.1",
-        "@mongosh/service-provider-core": "2.2.1",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.2.2.tgz",
+      "integrity": "sha512-VzgYSzcA6uceo3moQXchgpnbiY/ZVCOKqiJxRufPP9ALWmxvii7qnmIL1NjLZzqqYdeJ5ZReRqX8WWMOSZvLSg==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.2.2",
+        "@mongosh/errors": "2.2.2",
+        "@mongosh/history": "2.2.2",
+        "@mongosh/i18n": "2.2.2",
+        "@mongosh/service-provider-core": "2.2.2",
         "mongodb-redact": "^0.2.2"
       },
       "engines": {
@@ -1407,27 +1406,27 @@
       }
     },
     "node_modules/@mongosh/shell-evaluator": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.2.1.tgz",
-      "integrity": "sha512-drs0wUGjMwsh5RCcTatuUE+xOcggASmMnRfJTrCF/qq/Zvt4Jdx2g0VYfU6QjwPU7X1xqRC+0efMo9ixEVIDVQ==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.2.2.tgz",
+      "integrity": "sha512-38AegwWGi/6U51JJQWW8y2yfs0Tbr75BZFF7HeLwqGnf4ASpNdB/bVAaRxz5x7v/GcIBmPNcyj7zjLrq2IP2Cg==",
       "dependencies": {
-        "@mongosh/async-rewriter2": "2.2.1",
-        "@mongosh/history": "2.2.1",
-        "@mongosh/shell-api": "2.2.1"
+        "@mongosh/async-rewriter2": "2.2.2",
+        "@mongosh/history": "2.2.2",
+        "@mongosh/shell-api": "2.2.2"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/snippet-manager": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.2.1.tgz",
-      "integrity": "sha512-jjDAjaPCdWQAmlbWhZ1Jso7D19oKaxuEl3avn6vkxMIQIMML4IWrNOHoqWkfx5Z3NPteyx4grVfPyzjvipi94g==",
-      "dependencies": {
-        "@mongosh/errors": "2.2.1",
-        "@mongosh/import-node-fetch": "2.2.1",
-        "@mongosh/shell-api": "2.2.1",
-        "@mongosh/types": "2.2.1",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.2.2.tgz",
+      "integrity": "sha512-6ARX2s8XeieyLAh7ManT8e4f8CXj+copeMgNfgLR2KTsUVImHSaGk75rp1/haEed0NieHivPJnLjxdckhve3wA==",
+      "dependencies": {
+        "@mongosh/errors": "2.2.2",
+        "@mongosh/import-node-fetch": "2.2.2",
+        "@mongosh/shell-api": "2.2.2",
+        "@mongosh/types": "2.2.2",
         "bson": "^6.5.0",
         "cross-spawn": "^7.0.3",
         "escape-string-regexp": "^4.0.0",
@@ -1439,9 +1438,9 @@
       }
     },
     "node_modules/@mongosh/types": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.2.1.tgz",
-      "integrity": "sha512-lV1khTdJ8s3ldithGRa06nl4wlmKZm6eDnILPqW3QrZa0j6a2GBBe0GSUFo8kZkq4x3Y6SkT05ZHe1mnhh1gJQ==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.2.2.tgz",
+      "integrity": "sha512-nFJlltmiDXryIrsJUvYvoU69P38j5u0plOtsxjhi4zlghQVt9qgjycdAD5F8E2tlV+dKUvQD4vulU7lASQcrBg==",
       "dependencies": {
         "@mongodb-js/devtools-connect": "^2.6.0"
       },
@@ -2115,9 +2114,9 @@
       }
     },
     "node_modules/@types/chai": {
-      "version": "4.3.13",
-      "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.13.tgz",
-      "integrity": "sha512-+LxQEbg4BDUf88utmhpUpTyYn1zHao443aGnXIAQak9ZMt9Rtsic0Oig0OS1xyIqdDXc5uMekoC6NaiUlkT/qA=="
+      "version": "4.3.14",
+      "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.14.tgz",
+      "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w=="
     },
     "node_modules/@types/sinon": {
       "version": "17.0.3",
@@ -2508,9 +2507,9 @@
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001599",
-      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz",
-      "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA=="
+      "version": "1.0.30001600",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz",
+      "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ=="
     },
     "node_modules/chalk": {
       "version": "2.4.2",
@@ -2596,9 +2595,9 @@
       "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
     },
     "node_modules/cookie": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
-      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+      "version": "0.6.0",
+      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz",
+      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
       "engines": {
         "node": ">= 0.6"
       }
@@ -2775,9 +2774,9 @@
       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.4.711",
-      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.711.tgz",
-      "integrity": "sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w=="
+      "version": "1.4.717",
+      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.717.tgz",
+      "integrity": "sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A=="
     },
     "node_modules/emoji-regex": {
       "version": "9.2.2",
@@ -2959,16 +2958,16 @@
       }
     },
     "node_modules/express": {
-      "version": "4.18.3",
-      "resolved": "https://registry.npmmirror.com/express/-/express-4.18.3.tgz",
-      "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==",
+      "version": "4.19.2",
+      "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz",
+      "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
         "body-parser": "1.20.2",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
-        "cookie": "0.5.0",
+        "cookie": "0.6.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
@@ -3898,14 +3897,6 @@
       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
     },
-    "node_modules/mustache": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmmirror.com/mustache/-/mustache-4.2.0.tgz",
-      "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
-      "bin": {
-        "mustache": "bin/mustache"
-      }
-    },
     "node_modules/napi-build-utils": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
@@ -4805,9 +4796,9 @@
       }
     },
     "node_modules/tar": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.0.tgz",
-      "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+      "version": "6.2.1",
+      "resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.1.tgz",
+      "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
       "dependencies": {
         "chownr": "^2.0.0",
         "fs-minipass": "^2.0.0",
diff --git a/pkgs/development/tools/mongosh/source.json b/pkgs/development/tools/mongosh/source.json
index 8f771e9917ee9..3a9d6a9a0ab1d 100644
--- a/pkgs/development/tools/mongosh/source.json
+++ b/pkgs/development/tools/mongosh/source.json
@@ -1,6 +1,6 @@
 {
-  "version": "2.2.1",
-  "integrity": "sha512-jqgOlNl5ZE/jasl6LIDZ8lKP658I+XFZh1e16eYo+c9UfL+NqRXwVJCRWKaZ/tph9Hc3dzCd9dKCN7OC0T50iQ==",
-  "filename": "mongosh-2.2.1.tgz",
-  "deps": "sha256-sZ2zSFi2tuYhjLHHrewNHcmSxwIHggL+wbHvEScK38Y="
+  "version": "2.2.2",
+  "integrity": "sha512-IfPcqu5xPfNKGmrk+zprDhHkKzAeiyI4QjHbbmrVFiXFg6J2Dk7i25NvndNxOALRqxnQ/bWnfl1qrEZJmWerWQ==",
+  "filename": "mongosh-2.2.2.tgz",
+  "deps": "sha256-96EVcBanbCyNg18T3jgryhP2hA7Gmcmf2EiGfzIju28="
 }
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index 7346b9bea1d9d..c175d788b355f 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -11,13 +11,13 @@ assert enableWasmEval && stdenv.isDarwin -> builtins.throw "building with wasm o
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.62.1";
+  version = "0.63.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    hash = "sha256-iR3/6tqB6jwjy87D6xkKu/N61oenWzU3tEPTYTeEv7c=";
+    hash = "sha256-yXYyRl0ZDgS6eB2pB0Iqi3DiBGcIO3Vdet9RLSOczkU=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/refinery-cli/default.nix b/pkgs/development/tools/refinery-cli/default.nix
index 7e3f7c0f4c8df..e5d9abd12dbf3 100644
--- a/pkgs/development/tools/refinery-cli/default.nix
+++ b/pkgs/development/tools/refinery-cli/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "refinery-cli";
-  version = "0.8.12";
+  version = "0.8.13";
 
   src = fetchCrate {
     pname = "refinery_cli";
     inherit version;
-    sha256 = "sha256-ftti/+Zl9/8CsrlEI5gZQF0M33vzl5aK3X/EfCujtY4=";
+    sha256 = "sha256-5PncxxJ63WGwJk4MexqOJZQEhdoe4WMz8gsHZgjxBPM=";
   };
 
-  cargoHash = "sha256-KlZTgg/Y4cXy5DR8iT4olVTF0kq1g5AQm3Sjpmrl6lk=";
+  cargoHash = "sha256-C0/11Ky5mXcEFPxa72jkJLg/DDxPz/Jmmfa2oHpHF6k=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/reshape/default.nix b/pkgs/development/tools/reshape/default.nix
index 82eeb6e7b0b68..d7c4701b99831 100644
--- a/pkgs/development/tools/reshape/default.nix
+++ b/pkgs/development/tools/reshape/default.nix
@@ -1,8 +1,10 @@
 { lib
 , rustPlatform
 , fetchCrate
+, darwin
 , postgresqlTestHook
 , postgresql
+, stdenv
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -16,6 +18,9 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-VTJ3FNhVLgxo/VVBhk1yF9UUktLXcbrEkYwoyoWFhXA=";
 
+  buildInputs =
+    lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ];
+
   nativeCheckInputs = [
     postgresqlTestHook
     postgresql
diff --git a/pkgs/development/tools/rstfmt/default.nix b/pkgs/development/tools/rstfmt/default.nix
index e09b18a138d1a..25b20365a3097 100644
--- a/pkgs/development/tools/rstfmt/default.nix
+++ b/pkgs/development/tools/rstfmt/default.nix
@@ -5,17 +5,21 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "rstfmt";
-  version = "0.0.13";
-  format = "pyproject";
+  version = "0.0.14";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "dzhu";
     repo = "rstfmt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SJRA14CfoT8XMt3hMB7cLdmuLwsJnBSwhKkD1pJvQCI=";
+    hash = "sha256-zvmKgNzfxyWYHoaD+q84I48r1Mpp4kU4oIGAwMSRRlA=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = with python3.pkgs; [
     black
     docutils
     sphinx
@@ -31,6 +35,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "A formatter for reStructuredText";
     homepage = "https://github.com/dzhu/rstfmt";
+    changelog = "https://github.com/dzhu/rstfmt/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/tools/rust/cargo-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
index f4bdb252d4004..cfeec591f6729 100644
--- a/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.14.18";
+  version = "0.14.20";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-deny";
     rev = version;
-    hash = "sha256-aVWr7YXGpRDItub4CaUg9LYxj9Nf0Pe1L0FUr9bJoG0=";
+    hash = "sha256-KThJynV/LrT1CYHIs/B3yS6ylNr9AezoHhVPe1m/eiU=";
   };
 
-  cargoHash = "sha256-AD4WFM0yAIKgi9y8015qxukAa3YBJmPnkUhV7qp0quk=";
+  cargoHash = "sha256-S5aRucNq5vgUIsu4ToRqLVZZ8/IXkbniJXInhnybTNY=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-generate/default.nix b/pkgs/development/tools/rust/cargo-generate/default.nix
index 4cf34bbe6a3d5..dd6630d8d309c 100644
--- a/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-generate";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "cargo-generate";
     repo = "cargo-generate";
     rev = "v${version}";
-    sha256 = "sha256-OT2cjNYcEKk6Thnlq7SZvK2RJ6M1Zn62GrqpKbtrUdM=";
+    sha256 = "sha256-k4bTuTRZMWx8mMi/hdAr4YPCWqe39fG8nkmHH2D80ew=";
   };
 
-  cargoHash = "sha256-DAJsW3uKrSyIju7K13dMQFNOwE9WDuBuPx8imdPAxqk=";
+  cargoHash = "sha256-wi1Y1eU+v9Q/4nkLNCUluPlDGfz6ld8nuVWR9orkDV4=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/dioxus-cli/default.nix b/pkgs/development/tools/rust/dioxus-cli/default.nix
index 5243203f19263..ef1bcfee28523 100644
--- a/pkgs/development/tools/rust/dioxus-cli/default.nix
+++ b/pkgs/development/tools/rust/dioxus-cli/default.nix
@@ -3,6 +3,7 @@
 , fetchCrate
 , rustPlatform
 , pkg-config
+, rustfmt
 , cacert
 , openssl
 , darwin
@@ -12,38 +13,31 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dioxus-cli";
-  version = "0.4.3";
+  version = "0.5.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-TWcuEobYH2xpuwB1S63HoP/WjH3zHXTnlXXvOcYIZG8=";
+    hash = "sha256-iNlJLDxb8v7x19q0iaAnGmtmoPjMW8YXzbx5Fcf8Yws=";
   };
 
-  cargoHash = "sha256-ozbGK46uq3qXZifyTY7DDX1+vQuDJuSOJZw35vwcuxY=";
+  cargoHash = "sha256-6XKNBLDNWYd5+O7buHupXzVss2jCdh3wu9mXVLivH44=";
 
   nativeBuildInputs = [ pkg-config cacert ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   OPENSSL_NO_VENDOR = 1;
 
+  nativeCheckInputs = [ rustfmt ];
+
   checkFlags = [
     # requires network access
     "--skip=server::web::proxy::test::add_proxy"
     "--skip=server::web::proxy::test::add_proxy_trailing_slash"
   ];
 
-  # Omitted: --doc
-  # Can be removed after 0.4.3 or when https://github.com/DioxusLabs/dioxus/pull/1706 is resolved
-  # Matches upstream package test CI https://github.com/DioxusLabs/dioxus/blob/544ca5559654c8490ce444c3cbd85c1bfb8479da/Makefile.toml#L94-L108
-  cargoTestFlags = [
-    "--lib"
-    "--bins"
-    "--tests"
-    "--examples"
-  ];
-
   passthru.tests.version = testers.testVersion {
     package = dioxus-cli;
     command = "${meta.mainProgram} --version";
diff --git a/pkgs/development/tools/rust/svd2rust/default.nix b/pkgs/development/tools/rust/svd2rust/default.nix
index 095018c4e8629..8891b364b56c9 100644
--- a/pkgs/development/tools/rust/svd2rust/default.nix
+++ b/pkgs/development/tools/rust/svd2rust/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svd2rust";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-XA0zSMZTeEOiAKgzU6/znZIoJr4VtGjxWjOqDE7TFbk=";
+    hash = "sha256-EdU/Hr1OQ02Jeq4OgJPOS//4wltBPoYdUcFMvlOjIBY=";
   };
 
-  cargoHash = "sha256-94oSlnTZdGkYLAn5uShIDg2UAMPVu580ofVcgHZvI2M=";
+  cargoHash = "sha256-T4QRrSBjf47wGJIVfxZNGig8k7KWvQQIvV8zwRUP/38=";
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
diff --git a/pkgs/development/tools/sentry-cli/default.nix b/pkgs/development/tools/sentry-cli/default.nix
index 06b77135d4840..92711b2d72dfd 100644
--- a/pkgs/development/tools/sentry-cli/default.nix
+++ b/pkgs/development/tools/sentry-cli/default.nix
@@ -11,13 +11,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "sentry-cli";
-  version = "2.30.2";
+  version = "2.30.4";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-cli";
     rev = version;
-    sha256 = "sha256-ThZb6/Mprz9qgEGsJ+EbENvjmgehDsjVgFGBq4PZMRM=";
+    sha256 = "sha256-J+8/sCFSd2BYQgKOl8OZoxlFLB8scDY5Bl7GAQ54/RM=";
   };
   doCheck = false;
 
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  cargoHash = "sha256-yoBoPk5PvMLGvhU/kg+WwO5WgwEnfKQlnkCC6IctfAI=";
+  cargoHash = "sha256-622cEaHEMmVspabsIYgQ5ySbaDr9qB1FjxJ5NwbeGx8=";
 
   postInstall = ''
     installShellCompletion --cmd sentry-cli \
diff --git a/pkgs/development/tools/sq/default.nix b/pkgs/development/tools/sq/default.nix
index 97e31162b7730..2fe418b2ea49e 100644
--- a/pkgs/development/tools/sq/default.nix
+++ b/pkgs/development/tools/sq/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "sq";
-  version = "0.47.4";
+  version = "0.48.3";
 
   src = fetchFromGitHub {
     owner = "neilotoole";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vOp1F87kg9ydr9caGefcYrRJY5foEbKkpMK0eCUzQpQ=";
+    hash = "sha256-22N8DEaLmGBA3Rx6VzxplUK9UAydo/gx4EsQzzaRHNE=";
   };
 
-  vendorHash = "sha256-G623vH7pWpJbPvC8sR1xl6x3pcuBUvQwEj1RENuHnI8=";
+  vendorHash = "sha256-p0r7TuWFpV81Rnxqdj+UJec60EmvVQISURe43SpOpw0=";
 
   proxyVendor = true;
 
diff --git a/pkgs/development/tools/subxt/default.nix b/pkgs/development/tools/subxt/default.nix
index 2090fe1aacac6..e8ec817ffe575 100644
--- a/pkgs/development/tools/subxt/default.nix
+++ b/pkgs/development/tools/subxt/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "subxt";
-  version = "0.34.0";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "subxt";
     rev = "v${version}";
-    hash = "sha256-1SkAYJ6YdZeaD3c1pekd/nwTEI9Zt/2fmA3Y7PPLxoE=";
+    hash = "sha256-zNgk8muBxKA3YLP42EIuGSZOyUKRNTvzDvLks3IGHZk=";
   };
 
-  cargoHash = "sha256-a3LPvPCQklmrtC9XpxARgYeL4bmj2vFsLbiRGjNUGio=";
+  cargoHash = "sha256-2aekzHVmAVWfJH7dQOlyiR6r3NESsu5W7B6osAOBUWY=";
 
   # Only build the command line client
   cargoBuildFlags = [ "--bin" "subxt" ];
diff --git a/pkgs/development/tools/upbound/default.nix b/pkgs/development/tools/upbound/default.nix
index 6d91ea46a9694..ef01000065f84 100644
--- a/pkgs/development/tools/upbound/default.nix
+++ b/pkgs/development/tools/upbound/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "upbound";
-  version = "0.24.2";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "up";
     rev = "v${version}";
-    sha256 = "sha256-MDpe5CM5pgbrdVozh1yXiALLd8BkhrtNjL/su2JubcE=";
+    sha256 = "sha256-xlPBz0FVG/bAUGH/RlguVG5rDcKMty7rX8Y+1VBbEpI=";
   };
 
-  vendorHash = "sha256-jHVwI5fQbS/FhRptRXtNezG1djaZKHJgpPJfuEH/zO0=";
+  vendorHash = "sha256-1NhcP/iEfEMtPSBP6wbTKi/fznoJ8HjaH88BPzVnf7w=";
 
   subPackages = [ "cmd/docker-credential-up" "cmd/up" ];
 
diff --git a/pkgs/development/tools/wails/default.nix b/pkgs/development/tools/wails/default.nix
index 34c4ae6aa3711..660944b5bde2f 100644
--- a/pkgs/development/tools/wails/default.nix
+++ b/pkgs/development/tools/wails/default.nix
@@ -5,11 +5,11 @@
 , pkg-config
 , makeWrapper
 , go
-, gcc
-, gtk3
-, webkitgtk
 , nodejs
 , zlib
+  # Linux specific dependencies
+, gtk3
+, webkitgtk
 }:
 
 buildGoModule rec {
@@ -44,10 +44,11 @@ buildGoModule rec {
   propagatedBuildInputs = [
     pkg-config
     go
-    gcc
+    stdenv.cc
+    nodejs
+  ] ++ lib.optionals stdenv.isLinux [
     gtk3
     webkitgtk
-    nodejs
   ];
 
   ldflags = [
@@ -58,18 +59,18 @@ buildGoModule rec {
   # As Wails calls a compiler, certain apps and libraries need to be made available.
   postFixup = ''
     wrapProgram $out/bin/wails \
-      --prefix PATH : ${lib.makeBinPath [ pkg-config go gcc nodejs ]} \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gtk3 webkitgtk ]} \
+      --prefix PATH : ${lib.makeBinPath [ pkg-config go stdenv.cc nodejs ]} \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath (lib.optionals stdenv.isLinux [ gtk3 webkitgtk ])}" \
       --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH" \
       --set CGO_LDFLAGS "-L${lib.makeLibraryPath [ zlib ]}"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Build applications using Go + HTML + CSS + JS";
-    mainProgram = "wails";
     homepage = "https://wails.io";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ianmjones ];
-    platforms = platforms.linux;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ianmjones ];
+    mainProgram = "wails";
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 0d7f9f2c38f6b..84caa116eea47 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGo122Module rec {
   pname = "flyctl";
-  version = "0.2.17";
+  version = "0.2.25";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    hash = "sha256-XE1kZdR9ZbWMqp0neouZBvNtIJbOdzp/aMe+uA85zL8=";
+    hash = "sha256-yMkTLUM/1P9VrsYaF4m9YyRLV6qz6uMiYlhUN5S58uU=";
   };
 
-  vendorHash = "sha256-ZX7hcxQJdSLwY37DnV3vKcBW+K9F5RMPUeMtWzm48Dc=";
+  vendorHash = "sha256-TMlJbh9tMRNdeZlem27lgknuJ/YNFkVaWS9BNTTuXic=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/web/nodejs/v18.nix b/pkgs/development/web/nodejs/v18.nix
index 3fffdf909e6cf..a4121b9575fdd 100644
--- a/pkgs/development/web/nodejs/v18.nix
+++ b/pkgs/development/web/nodejs/v18.nix
@@ -19,8 +19,11 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "18.20.0";
-  sha256 = "sha256-BMhneaLMfu/fzzeanYWIOqHTsdyJCbYiGxY2hIF4VqQ=";
+  # The change to minor version 18.20.0 breaks compatibility with ffi-napi
+  # This breaks the compilation of some nix packages.
+  # While this is investigated and fixed, do not upgrade the minor version.
+  version = "18.19.1";
+  sha256 = "sha256-CQ+WouzeCAtrOCxtZCvKXQvkcCp4y1Vb578CsgvRbe0=";
   patches = [
     ./disable-darwin-v8-system-instrumentation.patch
     ./bypass-darwin-xcrun-node16.patch
diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix
index de597163a3d1e..334219a289012 100644
--- a/pkgs/games/arx-libertatis/default.nix
+++ b/pkgs/games/arx-libertatis/default.nix
@@ -8,7 +8,15 @@
 ,   gdb  ? null
 }:
 
-with lib;
+let
+  inherit (lib)
+    licenses
+    maintainers
+    optionals
+    optionalString
+    platforms
+    ;
+in
 
 stdenv.mkDerivation rec {
   pname = "arx-libertatis";
diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix
index 55157950c4f20..777866d8fb0e5 100644
--- a/pkgs/games/dwarf-fortress/default.nix
+++ b/pkgs/games/dwarf-fortress/default.nix
@@ -32,9 +32,16 @@
 # changes on later launches, but consider extending the wrapper with your
 # desired options instead.
 
-with lib;
-
 let
+  inherit (lib)
+    attrNames
+    getAttr
+    importJSON
+    listToAttrs
+    recurseIntoAttrs
+    replaceStrings
+    ;
+
   callPackage = newScope self;
 
   # The latest Dwarf Fortress version. Maintainers: when a new version comes
@@ -43,14 +50,14 @@ let
   latestVersion = "0.47.05";
 
   # Converts a version to a package name.
-  versionToName = version: "dwarf-fortress_${lib.replaceStrings ["."] ["_"] version}";
+  versionToName = version: "dwarf-fortress_${replaceStrings ["."] ["_"] version}";
 
   dwarf-therapist-original = libsForQt5.callPackage ./dwarf-therapist {
     texlive = texliveBasic.withPackages (ps: with ps; [ float caption wrapfig adjmulticol sidecap preprint enumitem ]);
   };
 
   # A map of names to each Dwarf Fortress package we know about.
-  df-games = lib.listToAttrs (map
+  df-games = listToAttrs (map
     (dfVersion: {
       name = versionToName dfVersion;
       value =
@@ -83,10 +90,10 @@ let
           jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
         };
     })
-    (lib.attrNames self.df-hashes));
+    (attrNames self.df-hashes));
 
   self = rec {
-    df-hashes = lib.importJSON ./game.json;
+    df-hashes = importJSON ./game.json;
 
     # Aliases for the latest Dwarf Fortress and the selected Therapist install
     dwarf-fortress = getAttr (versionToName latestVersion) df-games;
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix
index 914ccbb6ab334..12d097c714155 100644
--- a/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -18,9 +18,20 @@
 , dfVersion
 }:
 
-with lib;
-
 let
+  inherit (lib)
+    getAttr
+    hasAttr
+    isAttrs
+    licenses
+    maintainers
+    optional
+    optionals
+    optionalString
+    platforms
+    versionOlder
+    ;
+
   dfhack-releases = {
     "0.44.10" = {
       dfHackRelease = "0.44.10-r2";
@@ -62,7 +73,7 @@ let
   };
 
   release =
-    if lib.isAttrs dfVersion
+    if isAttrs dfVersion
     then dfVersion
     else if hasAttr dfVersion dfhack-releases
     then getAttr dfVersion dfhack-releases
@@ -112,20 +123,20 @@ in
       fetchSubmodules = true;
     };
 
-    patches = lib.optional (lib.versionOlder version "0.44.12-r3") (fetchpatch {
+    patches = optional (versionOlder version "0.44.12-r3") (fetchpatch {
       name = "fix-stonesense.patch";
       url = "https://github.com/DFHack/stonesense/commit/f5be6fe5fb192f01ae4551ed9217e97fd7f6a0ae.patch";
       extraPrefix = "plugins/stonesense/";
       stripLen = 1;
       hash = "sha256-wje6Mkct29eyMOcJnbdefwBOLJko/s4JcJe52ojuW+8=";
-    }) ++ lib.optional (lib.versionOlder version "0.47.04-r1") (fetchpatch {
+    }) ++ optional (versionOlder version "0.47.04-r1") (fetchpatch {
       name = "fix-protobuf.patch";
       url = "https://github.com/DFHack/dfhack/commit/7bdf958518d2892ee89a7173224a069c4a2190d8.patch";
       hash = "sha256-p+mKhmYbnhWKNiGPMjbYO505Gcg634n0nudqH0NX3KY=";
     });
 
     # gcc 11 fix
-    CXXFLAGS = lib.optionalString (lib.versionOlder version "0.47.05-r3") "-fpermissive";
+    CXXFLAGS = optionalString (versionOlder version "0.47.05-r3") "-fpermissive";
 
     # As of
     # https://github.com/DFHack/dfhack/commit/56e43a0dde023c5a4595a22b29d800153b31e3c4,
@@ -142,7 +153,7 @@ in
     nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
     # We don't use system libraries because dfhack needs old C++ ABI.
     buildInputs = [ zlib SDL ]
-      ++ lib.optionals enableStoneSense [ allegro5 libGLU libGL ];
+      ++ optionals enableStoneSense [ allegro5 libGLU libGL ];
 
     preConfigure = ''
       # Trick build system into believing we have .git
@@ -151,7 +162,7 @@ in
     '';
 
     cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ]
-      ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ];
+      ++ optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ];
 
     # dfhack expects an unversioned libruby.so to be present in the hack
     # subdirectory for ruby plugins to function.
@@ -161,7 +172,7 @@ in
 
     passthru = { inherit dfVersion; };
 
-    meta = with lib; {
+    meta = {
       description = "Memory hacking library for Dwarf Fortress and a set of tools that use it";
       homepage = "https://github.com/DFHack/dfhack/";
       license = licenses.zlib;
diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix
index 7ce837b7b0b55..8d351cdbbd0d1 100644
--- a/pkgs/games/dwarf-fortress/game.nix
+++ b/pkgs/games/dwarf-fortress/game.nix
@@ -13,9 +13,20 @@
 , df-hashes
 }:
 
-with lib;
-
 let
+  inherit (lib)
+    attrNames
+    elemAt
+    getAttr
+    getLib
+    hasAttr
+    licenses
+    maintainers
+    makeLibraryPath
+    optionalString
+    splitVersion
+    ;
+
   libpath = makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc dwarf-fortress-unfuck SDL ];
 
   # Map Dwarf Fortress platform names to Nixpkgs platform names.
diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix
index 17037dbdb278c..dcaa8102ae989 100644
--- a/pkgs/games/dwarf-fortress/lazy-pack.nix
+++ b/pkgs/games/dwarf-fortress/lazy-pack.nix
@@ -25,9 +25,16 @@
 , enableSound ? true
 }:
 
-with lib;
-
 let
+  inherit (lib)
+    getAttr
+    hasAttr
+    licenses
+    maintainers
+    optional
+    platforms
+    ;
+
   dfGame = versionToName dfVersion;
   dwarf-fortress =
     if hasAttr dfGame df-games
@@ -43,10 +50,10 @@ buildEnv {
         enableIntro enableTruetype enableFPS enableTextMode enableSound;
     })
   ]
-  ++ lib.optional enableDwarfTherapist dwarf-therapist
-  ++ lib.optional enableLegendsBrowser legends-browser;
+  ++ optional enableDwarfTherapist dwarf-therapist
+  ++ optional enableLegendsBrowser legends-browser;
 
-  meta = with lib; {
+  meta = {
     description = "An opinionated wrapper for Dwarf Fortress";
     maintainers = with maintainers; [ Baughn numinit ];
     license = licenses.mit;
diff --git a/pkgs/games/dwarf-fortress/themes/default.nix b/pkgs/games/dwarf-fortress/themes/default.nix
index d2e2ec5fd19b1..ad033b043a46b 100644
--- a/pkgs/games/dwarf-fortress/themes/default.nix
+++ b/pkgs/games/dwarf-fortress/themes/default.nix
@@ -1,6 +1,15 @@
 { lib, fetchFromGitHub, ... }:
 
-with builtins;
+let
+  inherit (lib)
+    importJSON
+    licenses
+    listToAttrs
+    maintainers
+    platforms
+    readFile
+    ;
+in
 
 listToAttrs (map
   (v: {
@@ -11,11 +20,11 @@ listToAttrs (map
       repo = v.name;
       rev = v.version;
       sha256 = v.sha256;
-      meta = with lib; {
+      meta = {
         platforms = platforms.all;
         maintainers = [ maintainers.matthewbauer maintainers.shazow ];
         license = licenses.free;
       };
     };
   })
-  (fromJSON (readFile ./themes.json)))
+  (importJSON ./themes.json))
diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix
index 68a5b923aaf4b..3c582a67770eb 100644
--- a/pkgs/games/dwarf-fortress/twbt/default.nix
+++ b/pkgs/games/dwarf-fortress/twbt/default.nix
@@ -5,9 +5,15 @@
 , dfVersion
 }:
 
-with lib;
-
 let
+  inherit (lib)
+    getAttr
+    hasAttr
+    licenses
+    maintainers
+    platforms
+    ;
+
   twbt-releases = {
     "0.44.10" = {
       twbtRelease = "6.49";
@@ -75,7 +81,7 @@ stdenvNoCC.mkDerivation rec {
     cp -a *.png $art/data/art/
   '';
 
-  meta = with lib; {
+  meta = {
     description = "A plugin for Dwarf Fortress / DFHack that improves various aspects the game interface";
     maintainers = with maintainers; [ Baughn numinit ];
     license = licenses.mit;
diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix
index 9b7de93ecd7d5..3aeee27d87a50 100644
--- a/pkgs/games/dwarf-fortress/unfuck.nix
+++ b/pkgs/games/dwarf-fortress/unfuck.nix
@@ -19,9 +19,16 @@
 , pkg-config
 }:
 
-with lib;
-
 let
+  inherit (lib)
+    getAttr
+    hasAttr
+    licenses
+    maintainers
+    platforms
+    versionOlder
+    ;
+
   unfuck-releases = {
     "0.43.05" = {
       unfuckRelease = "0.43.05";
@@ -106,7 +113,7 @@ stdenv.mkDerivation {
     libGL
   ]
   # switched to gtk3 in 0.47.05
-  ++ (if lib.versionOlder release.unfuckRelease "0.47.05" then [
+  ++ (if versionOlder release.unfuckRelease "0.47.05" then [
     gtk2
   ] else [
     gtk3
@@ -124,7 +131,7 @@ stdenv.mkDerivation {
 
   passthru = { inherit dfVersion; };
 
-  meta = with lib; {
+  meta = {
     description = "Unfucked multimedia layer for Dwarf Fortress";
     homepage = "https://github.com/svenstaro/dwarf_fortress_unfuck";
     license = licenses.free;
diff --git a/pkgs/games/factorio/mods.nix b/pkgs/games/factorio/mods.nix
index 7327b9e228700..9a06453ccce89 100644
--- a/pkgs/games/factorio/mods.nix
+++ b/pkgs/games/factorio/mods.nix
@@ -7,7 +7,7 @@
 , allRecommendedMods ? true
 , allOptionalMods ? false
 }:
-with lib;
+
 let
   modDrv = factorio-utils.modDrv { inherit allRecommendedMods allOptionalMods; };
 in
diff --git a/pkgs/games/factorio/utils.nix b/pkgs/games/factorio/utils.nix
index d2b52ae483660..b68cc921996e8 100644
--- a/pkgs/games/factorio/utils.nix
+++ b/pkgs/games/factorio/utils.nix
@@ -1,7 +1,18 @@
 # This file provides a top-level function that will be used by both nixpkgs and nixos
 # to generate mod directories for use at runtime by factorio.
 { lib, stdenv }:
-with lib;
+let
+  inherit (lib)
+    flatten
+    head
+    optionals
+    optionalString
+    removeSuffix
+    replaceStrings
+    splitString
+    unique
+    ;
+in
 {
   mkModDirDrv = mods: modsDatFile: # a list of mod derivations
     let
@@ -18,7 +29,7 @@ with lib;
           # NB: there will only ever be a single zip file in each mod derivation's output dir
           ln -s $modDrv/*.zip $out
         done
-      '' + (lib.optionalString (modsDatFile != null) ''
+      '' + (optionalString (modsDatFile != null) ''
        cp ${modsDatFile} $out/mod-settings.dat
       '');
     };
diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix
index 763dc3f63a6cf..ed800f9afb064 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, SDL2_image_2_6, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg_4, freeglut
+{ stdenv, SDL2_image_2_6, SDL2_ttf, SDL2_net, fpc, haskell, ffmpeg_4, freeglut
 , lib, fetchurl, cmake, pkg-config, lua5_1, SDL2, SDL2_mixer
 , zlib, libpng, libGL, libGLU, physfs
 , qtbase, qttools, wrapQtAppsHook
@@ -7,7 +7,7 @@
 }:
 
 let
-  ghc = ghcWithPackages (pkgs: with pkgs; [
+  ghc = haskell.packages.ghc94.ghcWithPackages (pkgs: with pkgs; [
           SHA bytestring entropy hslogger network pkgs.zlib random
           regex-tdfa sandi utf8-string vector
         ]);
diff --git a/pkgs/games/instawow/default.nix b/pkgs/games/instawow/default.nix
index d1ed292f377ca..57e0e5a72b4fe 100644
--- a/pkgs/games/instawow/default.nix
+++ b/pkgs/games/instawow/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "instawow";
-  version = "3.2.0";
+  version = "3.3.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "layday";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-eBpX+ojlrWwRXuMijnmb4lNlxIJ40Q9RUqS6txPBDiM=";
+    sha256 = "sha256-eBXUg5qLTmalWbTh5/iJ8yliTgv+HoTuGhGkd3y3CBA=";
   };
 
   extras = [ ];  # Disable GUI, most dependencies are not packaged.
@@ -25,6 +25,7 @@ python3.pkgs.buildPythonApplication rec {
     attrs
     cattrs
     click
+    diskcache
     iso8601
     loguru
     mako
diff --git a/pkgs/games/koboredux/default.nix b/pkgs/games/koboredux/default.nix
index 46db8b1da57a4..5eb482b09cb37 100644
--- a/pkgs/games/koboredux/default.nix
+++ b/pkgs/games/koboredux/default.nix
@@ -10,9 +10,16 @@
 , useProprietaryAssets ? true
 }:
 
-with lib;
-
 let
+  inherit (lib)
+    and
+    licenses
+    maintainers
+    optional
+    optionalString
+    platforms
+    ;
+
   pname = "koboredux";
   version = "0.7.5.1";
 
diff --git a/pkgs/games/libremines/default.nix b/pkgs/games/libremines/default.nix
index 9177e337593e1..f1a79e54bd62e 100644
--- a/pkgs/games/libremines/default.nix
+++ b/pkgs/games/libremines/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libremines";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "Bollos00";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-LejDXjli+AEVGp23y+ez/NyJY/8w7uHcOij6RsDwIH4=";
+    hash = "sha256-TQwjEgtqAvKnrpia6VloRgFwtq5TNDmxU+ZWjtEK/n8=";
   };
 
   nativeBuildInputs = [ cmake wrapQtAppsHook ];
diff --git a/pkgs/games/lugaru/default.nix b/pkgs/games/lugaru/default.nix
index b989195bd5a3b..ba8dcdebcec3c 100644
--- a/pkgs/games/lugaru/default.nix
+++ b/pkgs/games/lugaru/default.nix
@@ -1,7 +1,13 @@
 { lib, stdenv, fetchFromGitLab, cmake, openal, pkg-config, libogg,
   libvorbis, SDL2, makeWrapper, libpng, libjpeg_turbo, libGLU }:
 
-with lib;
+let
+  inherit (lib)
+    licenses
+    maintainers
+    platforms
+    ;
+in
 
 stdenv.mkDerivation rec {
 
@@ -27,6 +33,6 @@ stdenv.mkDerivation rec {
     homepage = "https://osslugaru.gitlab.io";
     maintainers = [ ];
     platforms = platforms.linux;
-    license = lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix
index e45862b3025b1..6d099cfcfe312 100644
--- a/pkgs/games/nethack/default.nix
+++ b/pkgs/games/nethack/default.nix
@@ -13,7 +13,7 @@ let
     if x11Mode then "linux-x11"
     else if qtMode then "linux-qt4"
     else if stdenv.hostPlatform.isLinux  then "linux"
-    else if stdenv.hostPlatform.isDarwin then "macosx10.10"
+    else if stdenv.hostPlatform.isDarwin then "macosx10.14"
     # We probably want something different for Darwin
     else "unix";
   userDir = "~/.config/nethack";
@@ -66,7 +66,7 @@ in stdenv.mkDerivation rec {
       -e 's,^HACKDIR=.*$,HACKDIR=\$(PREFIX)/games/lib/\$(GAME)dir,' \
       -e 's,^SHELLDIR=.*$,SHELLDIR=\$(PREFIX)/games,' \
       -e 's,^CFLAGS=-g,CFLAGS=,' \
-      -i sys/unix/hints/macosx10.10
+      -i sys/unix/hints/macosx10.14
     sed -e '/define CHDIR/d' -i include/config.h
     ${lib.optionalString qtMode ''
     sed \
diff --git a/pkgs/games/openra_2019/common.nix b/pkgs/games/openra_2019/common.nix
index 5932eeb6e6d04..091b56b3d1419 100644
--- a/pkgs/games/openra_2019/common.nix
+++ b/pkgs/games/openra_2019/common.nix
@@ -7,9 +7,16 @@
 , zenity
 }:
 
-with lib;
-
 let
+  inherit (lib)
+    licenses
+    maintainers
+    makeBinPath
+    makeLibraryPath
+    optional
+    platforms
+    ;
+
   path = makeBinPath ([ mono python3 ] ++ optional (zenity != null) zenity);
   rpath = makeLibraryPath [ lua freetype openal SDL2 ];
   mkdirp = makeSetupHook {
diff --git a/pkgs/games/path-of-building/default.nix b/pkgs/games/path-of-building/default.nix
index 2e996f9754870..1e2a2811769a1 100644
--- a/pkgs/games/path-of-building/default.nix
+++ b/pkgs/games/path-of-building/default.nix
@@ -2,13 +2,13 @@
 let
   data = stdenv.mkDerivation(finalAttrs: {
     pname = "path-of-building-data";
-    version = "2.41.0";
+    version = "2.42.0";
 
     src = fetchFromGitHub {
       owner = "PathOfBuildingCommunity";
       repo = "PathOfBuilding";
       rev = "v${finalAttrs.version}";
-      hash = "sha256-XoRoKvlfBtlKyur1AZ+VjYc5URyX2/fof05h6Vs+vok=";
+      hash = "sha256-OxAyB+tMszQktGvxlGL/kc+Wt0iInFYY0qHNjK6EnSg=";
     };
 
     nativeBuildInputs = [ unzip ];
diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix
index bd56416c59182..e5be3c4ae71ed 100644
--- a/pkgs/games/sgt-puzzles/default.nix
+++ b/pkgs/games/sgt-puzzles/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sgt-puzzles";
-  version = "20240302.80aac31";
+  version = "20240330.fd304c5";
 
   src = fetchurl {
     url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
-    hash = "sha256-0+bmGq4wM+0/ldQz8ieKdkuG0HHazctQr9ul/qLT0gg=";
+    hash = "sha256-usEgCfbeKOkAg/sHpRxuMcPGHxb+J5+r92aO4Ar7iUA=";
   };
 
   sgt-puzzles-menu = fetchurl {
diff --git a/pkgs/games/tinyfugue/default.nix b/pkgs/games/tinyfugue/default.nix
index d6b9647fcc021..e03364f4a1ad8 100644
--- a/pkgs/games/tinyfugue/default.nix
+++ b/pkgs/games/tinyfugue/default.nix
@@ -3,10 +3,17 @@
 , sslSupport ? true
 }:
 
-with lib;
-
 assert sslSupport -> openssl != null;
 
+let
+  inherit (lib)
+    licenses
+    maintainers
+    optional
+    platforms
+    ;
+in
+
 stdenv.mkDerivation rec {
   pname = "tinyfugue";
   version = "50b8";
diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix
index 182f0621bfed7..8b9468b81c761 100644
--- a/pkgs/games/vintagestory/default.nix
+++ b/pkgs/games/vintagestory/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vintagestory";
-  version = "1.19.4";
+  version = "1.19.5";
 
   src = fetchurl {
     url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz";
-    hash = "sha256-A5NIWy902a0W/Y/sJL+qPrEJwCiU/TNIm7G3BtU6gzM=";
+    hash = "sha256-noweIb+lZhme1kEjU2+tIc0E99iShNngxEEyDMKJcpk=";
   };
 
 
diff --git a/pkgs/kde/frameworks/extra-cmake-modules/ecm-hook.sh b/pkgs/kde/frameworks/extra-cmake-modules/ecm-hook.sh
index 9a4975da8e0d4..8f34f5f732e63 100644
--- a/pkgs/kde/frameworks/extra-cmake-modules/ecm-hook.sh
+++ b/pkgs/kde/frameworks/extra-cmake-modules/ecm-hook.sh
@@ -69,10 +69,7 @@ ecmPostHook() {
 }
 postHooks+=(ecmPostHook)
 
-xdgDataSubdirs=( \
-    "config.kcfg" "kconf_update" "knotifications6" "icons" "locale" "sounds" "templates" \
-    "wallpapers" "applications" "desktop-directories" "mime" "appdata" "dbus-1" \
-)
+xdgDataSubdirs=("config.kcfg" "kconf_update" "knotifications6" "icons" "locale" "mime")
 
 # ecmHostPathsSeen is an associative array of the paths that have already been
 # seen by ecmHostPathHook.
@@ -108,19 +105,7 @@ ecmHostPathHook() {
         fi
     done
 
-    local manDir="$1/man"
-    if [ -d "$manDir" ]
-    then
-        qtWrapperArgs+=(--prefix MANPATH : "$manDir")
-    fi
-
-    local infoDir="$1/info"
-    if [ -d "$infoDir" ]
-    then
-        qtWrapperArgs+=(--prefix INFOPATH : "$infoDir")
-    fi
-
-    if [ -d "$1/dbus-1" ]
+    if [ -d "$1/share/dbus-1" ]
     then
         propagatedUserEnvPkgs+=" $1"
     fi
diff --git a/pkgs/kde/gear/k3b/default.nix b/pkgs/kde/gear/k3b/default.nix
index 9eba27da8639c..ba4a1fc6aab4c 100644
--- a/pkgs/kde/gear/k3b/default.nix
+++ b/pkgs/kde/gear/k3b/default.nix
@@ -13,8 +13,10 @@
   libsamplerate,
   cdrdao,
   cdrtools,
+  cdparanoia,
   dvdplusrwtools,
   libburn,
+  libdvdcss,
   normalize,
   sox,
   transcode,
@@ -38,7 +40,7 @@ mkKdeDerivation {
   ];
 
   qtWrapperArgs = [
-    "--prefix PATH ':' ${lib.makeBinPath [
+    "--prefix PATH : ${lib.makeBinPath [
       cdrdao
       cdrtools
       dvdplusrwtools
@@ -49,6 +51,10 @@ mkKdeDerivation {
       vcdimager
       flac
     ]}"
+
+    # FIXME: this should really be done with patchelf --add-rpath, but it breaks the binary somehow
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ cdparanoia libdvdcss ]}"
   ];
+
   meta.mainProgram = "k3b";
 }
diff --git a/pkgs/kde/gear/partitionmanager/default.nix b/pkgs/kde/gear/partitionmanager/default.nix
index 3d0215cb5e641..68cb09a01a5ae 100644
--- a/pkgs/kde/gear/partitionmanager/default.nix
+++ b/pkgs/kde/gear/partitionmanager/default.nix
@@ -6,5 +6,10 @@ mkKdeDerivation {
   pname = "partitionmanager";
 
   propagatedUserEnvPkgs = [kpmcore];
+
+  passthru = {
+    inherit kpmcore;
+  };
+
   meta.mainProgram = "partitionmanager";
 }
diff --git a/pkgs/os-specific/darwin/grandperspective/default.nix b/pkgs/os-specific/darwin/grandperspective/default.nix
index 0d57d4f277144..d1f468b9806b8 100644
--- a/pkgs/os-specific/darwin/grandperspective/default.nix
+++ b/pkgs/os-specific/darwin/grandperspective/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, undmg }:
+{ stdenv, lib, fetchurl, undmg, makeWrapper }:
 
 stdenv.mkDerivation (finalAttrs: {
   version = "3.4.1";
@@ -12,9 +12,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   sourceRoot = "GrandPerspective.app";
   buildInputs = [ undmg ];
+  nativeBuildInputs = [ makeWrapper ];
+  # Create a trampoline script in $out/bin/ because a symlink doesn’t work for
+  # this app.
   installPhase = ''
-    mkdir -p "$out/Applications/GrandPerspective.app";
-    cp -R . "$out/Applications/GrandPerspective.app";
+    mkdir -p "$out/Applications/GrandPerspective.app" "$out/bin"
+    cp -R . "$out/Applications/GrandPerspective.app"
+    makeWrapper "$out/Applications/GrandPerspective.app/Contents/MacOS/GrandPerspective" "$out/bin/grandperspective"
   '';
 
   meta = with lib; {
@@ -25,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
       space. It uses a so called tree map for visualisation. Each file is shown as a rectangle with an area proportional to
       the file's size. Files in the same folder appear together, but their placement is otherwise arbitrary.
     '';
+    mainProgram = "grandperspective";
     homepage = "https://grandperspectiv.sourceforge.net";
     license = licenses.gpl2Only;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/os-specific/darwin/yabai/default.nix b/pkgs/os-specific/darwin/yabai/default.nix
index 8e2ff3b548e63..b7bc24c8ef46f 100644
--- a/pkgs/os-specific/darwin/yabai/default.nix
+++ b/pkgs/os-specific/darwin/yabai/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "yabai";
-  version = "7.0.3";
+  version = "7.0.4";
 
   src = finalAttrs.passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
@@ -85,14 +85,14 @@ stdenv.mkDerivation (finalAttrs: {
       # See the comments on https://github.com/NixOS/nixpkgs/pull/188322 for more information.
       "aarch64-darwin" = fetchzip {
         url = "https://github.com/koekeishiya/yabai/releases/download/v${finalAttrs.version}/yabai-v${finalAttrs.version}.tar.gz";
-        hash = "sha256-EvtKYYjEmLkJTnc9q6f37hMD1T3DBO+I1LfBvPjCgfc=";
+        hash = "sha256-eOgdCW3BEB9vn9lui7Ib6uWl5MSAnHh3ztqHCWshCv8=";
       };
       "x86_64-darwin" = fetchFromGitHub
         {
           owner = "koekeishiya";
           repo = "yabai";
           rev = "v${finalAttrs.version}";
-          hash = "sha256-oxQsCvTZqfKZoTuY1NC6h+Fzvyl0gJDhljFY2KrjRQ8=";
+          hash = "sha256-yj7ISrBzVIDGsDQ1D+vDm9PapsZmi5fk1m3cGuzBR7w=";
         };
     };
 
diff --git a/pkgs/os-specific/linux/akvcam/default.nix b/pkgs/os-specific/linux/akvcam/default.nix
index 2bfe82e70358e..3fdb247a33ebb 100644
--- a/pkgs/os-specific/linux/akvcam/default.nix
+++ b/pkgs/os-specific/linux/akvcam/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "akvcam";
-  version = "1.2.5";
+  version = "1.2.6";
 
   src = fetchFromGitHub {
     owner = "webcamoid";
     repo = "akvcam";
     rev = version;
-    sha256 = "sha256-SzyamP6kcJI/GEeFp3uf1APdoBtwoUj0/9Otwtmygvs=";
+    sha256 = "sha256-8jQxBvWRE9Bsh0oz76gO7o+ROm6Z5QGAIe3WERIouUw=";
   };
   sourceRoot = "${src.name}/src";
 
diff --git a/pkgs/os-specific/linux/cpustat/default.nix b/pkgs/os-specific/linux/cpustat/default.nix
index 3fb0e8e123a97..84a4fc53933e7 100644
--- a/pkgs/os-specific/linux/cpustat/default.nix
+++ b/pkgs/os-specific/linux/cpustat/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, lib, fetchFromGitHub, ncurses }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, ncurses
+}:
 
 stdenv.mkDerivation rec {
   pname = "cpustat";
-  version = "0.02.19";
+  version = "0.02.20";
 
   src = fetchFromGitHub {
     owner = "ColinIanKing";
-    repo = pname;
-    rev = "V${version}";
-    hash = "sha256-MujdgA+rFLrRc/N9yN7udnarA1TCzX//95hoXTUHG8Q=";
+    repo ="cpustat";
+    rev = "refs/tags/V${version}";
+    hash = "sha256-cdHoo2esm772q782kb7mwRwlPXGDNNLHJRbd2si5g7k=";
   };
 
-  buildInputs = [ ncurses ];
+  buildInputs = [
+    ncurses
+  ];
 
   installFlags = [
     "BINDIR=${placeholder "out"}/bin"
@@ -21,10 +27,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "CPU usage monitoring tool";
-    mainProgram = "cpustat";
     homepage = "https://github.com/ColinIanKing/cpustat";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "cpustat";
   };
 }
diff --git a/pkgs/os-specific/linux/dcgm/default.nix b/pkgs/os-specific/linux/dcgm/default.nix
index cc9e26d2b7073..a7f3511b3f4ba 100644
--- a/pkgs/os-specific/linux/dcgm/default.nix
+++ b/pkgs/os-specific/linux/dcgm/default.nix
@@ -1,6 +1,7 @@
 { lib
 , gcc11Stdenv
 , fetchFromGitHub
+, autoAddDriverRunpath
 , catch2
 , cmake
 , cudaPackages_10_2
@@ -108,7 +109,7 @@ in gcc11Stdenv.mkDerivation rec {
     # autoAddDriverRunpath does not actually depend on or incur any dependency
     # of cudaPackages. It merely adds an impure, non-Nix PATH to the RPATHs of
     # executables that need to use cuda at runtime.
-    cudaPackages_12.autoAddDriverRunpath
+    autoAddDriverRunpath
 
     cmake
     git
diff --git a/pkgs/os-specific/linux/fsverity-utils/default.nix b/pkgs/os-specific/linux/fsverity-utils/default.nix
index 232fc14704652..7d0f1f48e7e54 100644
--- a/pkgs/os-specific/linux/fsverity-utils/default.nix
+++ b/pkgs/os-specific/linux/fsverity-utils/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fsverity-utils";
-  version = "1.5";
+  version = "1.6";
 
   outputs = [ "out" "lib" "dev" ] ++ lib.optional enableManpages "man";
 
   src = fetchzip {
     url = "https://git.kernel.org/pub/scm/fs/fsverity/fsverity-utils.git/snapshot/fsverity-utils-v${version}.tar.gz";
-    sha256 = "sha256-ygBOkp2PBe8Z2ak6SXEJ6HHuT4NRKmIsbJDHcY+h8PQ=";
+    sha256 = "sha256-FZN4MKNmymIXZ2Q0woA0SLzPf4SaUJkj4ssKPsY4xXc=";
   };
 
   patches = lib.optionals (!enableShared) [
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index 053916a551a00..d0940be80ba3e 100644
--- a/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -4,35 +4,35 @@
         "hash": "sha256:05hi2vfmsjwl5yhqmy4h5a954090nv48z9gabhvh16xlaqlfh8nz"
     },
     "6.1": {
-        "version": "6.1.82",
-        "hash": "sha256:01pcrcjp5mifjjmfz7j1jb8nhq8nkxspavxmv1l7d1qnskcx4l6i"
+        "version": "6.1.83",
+        "hash": "sha256:145iw3wii7znhrqdmgnwhswk235g6gw8axjjji2cw4rn148rddl8"
     },
     "5.15": {
-        "version": "5.15.152",
-        "hash": "sha256:0zm4wkryj4mim4fr7pf5g9rlzh31yb1c40lkp85lvcm5yhjm507h"
+        "version": "5.15.153",
+        "hash": "sha256:1g44gjcwcdq5552vwinljqwiy90bxax72jjvdasp71x88khv3pfp"
     },
     "5.10": {
-        "version": "5.10.213",
-        "hash": "sha256:105df7w6m5a3fngi6ajqs5qblaq4lbxsgcppllrk7v1r68i31kw4"
+        "version": "5.10.214",
+        "hash": "sha256:0n7m82hw2rkw5mhdqw0vvmq7kq0s43jalr53sbv09wl17vai9w20"
     },
     "5.4": {
-        "version": "5.4.272",
-        "hash": "sha256:0rp3waqrm489crcrms2ls7fxcw5jdkjhazvx82z68gj0kaaxb69m"
+        "version": "5.4.273",
+        "hash": "sha256:0hs7af3mcnk5mmp3c5vjl187nva2kzsdx487nd12a8m7zb9wz84b"
     },
     "4.19": {
-        "version": "4.19.310",
-        "hash": "sha256:0sfy2g9jzxd8ia0idll72l7npi2kssdkz29h8jjxhilgmg299v4m"
+        "version": "4.19.311",
+        "hash": "sha256:10dww3cyazcf3wjzh8igpa0frb8gvl6amnksh42zfkji4mskh2r6"
     },
     "6.6": {
-        "version": "6.6.22",
-        "hash": "sha256:1x52c6ywmspp3naishzsknhy7i0b7mv9baxx25a0y987cjsygqr3"
+        "version": "6.6.23",
+        "hash": "sha256:1fd824ia3ngy65c5qaaln7m66ca4p80bwlnvvk76pw4yrccx23r0"
     },
     "6.7": {
-        "version": "6.7.10",
-        "hash": "sha256:00vw90mypcliq0d72jdh1ql2dfmm7gpswln2qycxdz7rfsrrzfd9"
+        "version": "6.7.11",
+        "hash": "sha256:0jhb175nlcncrp0y8md7p83yydlx6qqql6llav8djbv3f74rfr1c"
     },
     "6.8": {
-        "version": "6.8.1",
-        "hash": "sha256:0s7zgk9m545v8y7qjhv7cprrh58j46gpmb8iynyhy2hlwcv8j34d"
+        "version": "6.8.2",
+        "hash": "sha256:013xs37cnan72baqvmn2qrcbs5bbcv1gaafrcx3a166gbgc25hws"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
index 08e6f83a2ffe3..7477ba323ca7b 100644
--- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
@@ -6,14 +6,14 @@ let
   # NOTE: When updating these, please also take a look at the changes done to
   # kernel config in the xanmod version commit
   ltsVariant = {
-    version = "6.6.22";
-    hash = "sha256-vpWUdzgI8i/1r5nMp0tx+x67GDTnjQF5ueITIl36lvA=";
+    version = "6.6.23";
+    hash = "sha256-RaHM7eZDuOtEdISO6trTLE1QN91VFyXe0NuwLvvz9p4=";
     variant = "lts";
   };
 
   mainVariant = {
-    version = "6.7.10";
-    hash = "sha256-uwlvQh11uf1skSdlIz7XdjRkdI/wf3VqEeOP20JO5OU=";
+    version = "6.7.11";
+    hash = "sha256-QmboeWBdhAgesgYoVUbBWrP8toY6fMt9+FhzglEmtiE=";
     variant = "main";
   };
 
@@ -29,6 +29,10 @@ let
     };
 
     structuredExtraConfig = with lib.kernel; {
+      # CPUFreq governor Performance
+      CPU_FREQ_DEFAULT_GOV_PERFORMANCE = lib.mkOverride 60 yes;
+      CPU_FREQ_DEFAULT_GOV_SCHEDUTIL = lib.mkOverride 60 no;
+
       # Google's BBRv3 TCP congestion Control
       TCP_CONG_BBR = yes;
       DEFAULT_BBR = yes;
diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix
index d8261beb17641..25043ac7ff0a3 100644
--- a/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix
@@ -4,16 +4,16 @@ let
   # comments with variant added for update script
   # ./update-zen.py zen
   zenVariant = {
-    version = "6.8"; #zen
-    suffix = "zen1"; #zen
-    sha256 = "19rsi8747xw5lsq4pwizq2va6inmwrywgy8b5f2ppcd6ny0whn1i"; #zen
+    version = "6.8.2"; #zen
+    suffix = "zen2"; #zen
+    sha256 = "0v8y7d7mn0y5g8bbw2nm89a7jsvdwfjg6d3zqyga9mpr16xpsssa"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.7.9"; #lqx
+    version = "6.7.11"; #lqx
     suffix = "lqx1"; #lqx
-    sha256 = "0hhkn2098h69l8slz5f0krkckf3qm7hmh5z233j341jpc0qv8p6b"; #lqx
+    sha256 = "180a39qrpldq4y2gn12pynhk62w46bzqi7zgciawznxyp8rr673x"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
diff --git a/pkgs/os-specific/linux/nixos-rebuild/default.nix b/pkgs/os-specific/linux/nixos-rebuild/default.nix
index 4849ff75c54ab..17a9bc51732ca 100644
--- a/pkgs/os-specific/linux/nixos-rebuild/default.nix
+++ b/pkgs/os-specific/linux/nixos-rebuild/default.nix
@@ -1,5 +1,5 @@
 { callPackage
-, substituteAll
+, substitute
 , runtimeShell
 , coreutils
 , gnused
@@ -14,19 +14,25 @@
 let
   fallback = import ./../../../../nixos/modules/installer/tools/nix-fallback-paths.nix;
 in
-substituteAll {
+substitute {
   name = "nixos-rebuild";
   src = ./nixos-rebuild.sh;
   dir = "bin";
   isExecutable = true;
-  inherit runtimeShell nix;
-  nix_x86_64_linux = fallback.x86_64-linux;
-  nix_i686_linux = fallback.i686-linux;
-  nix_aarch64_linux = fallback.aarch64-linux;
-  path = lib.makeBinPath [ coreutils gnused gnugrep jq util-linux ];
+
+  substitutions = [
+    "--subst-var-by" "runtimeShell" runtimeShell
+    "--subst-var-by" "nix" nix
+    "--subst-var-by" "nix_x86_64_linux" fallback.x86_64-linux
+    "--subst-var-by" "nix_i686_linux" fallback.i686-linux
+    "--subst-var-by" "nix_aarch64_linux" fallback.aarch64-linux
+    "--subst-var-by" "path" (lib.makeBinPath [ coreutils gnused gnugrep jq util-linux ])
+  ];
+
   nativeBuildInputs = [
     installShellFiles
   ];
+
   postInstall = ''
     installManPage ${./nixos-rebuild.8}
 
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 1868f6b2af1bd..248dc72138883 100755
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -756,7 +756,7 @@ if [[ "$action" = switch || "$action" = boot || "$action" = test || "$action" =
         "-E" "NIXOS_INSTALL_BOOTLOADER=$installBootloader"
         "--collect"
         "--no-ask-password"
-        "--pty"
+        "--pipe"
         "--quiet"
         "--same-dir"
         "--service-type=exec"
diff --git a/pkgs/os-specific/linux/odp-dpdk/default.nix b/pkgs/os-specific/linux/odp-dpdk/default.nix
index bc8bf488def91..d48a87216d469 100644
--- a/pkgs/os-specific/linux/odp-dpdk/default.nix
+++ b/pkgs/os-specific/linux/odp-dpdk/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , autoreconfHook
 , pkg-config
 , dpdk
@@ -19,11 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "odp-dpdk";
-  version = "1.42.0.0_DPDK_22.11";
+  version = "1.44.0.0_DPDK_22.11";
 
-  src = fetchurl {
-    url = "https://git.linaro.org/lng/odp-dpdk.git/snapshot/${pname}-${version}.tar.gz";
-    hash = "sha256-qtdqYE4+ab6/9Z0YXXCItcfj+3+gyprcNMAnAZkl4GA=";
+  src = fetchFromGitHub {
+    owner = "OpenDataPlane";
+    repo = "odp-dpdk";
+    rev = "v${version}";
+    hash = "sha256-hYtQ7kKB08BImkTYXqtnv1Ny1SUPCs6GX7WOYks8iKA=";
   };
 
   nativeBuildInputs = [
@@ -46,12 +48,6 @@ stdenv.mkDerivation rec {
     libnl
   ];
 
-  env.NIX_CFLAGS_COMPILE = toString [
-    # Needed with GCC 12
-    "-Wno-error=maybe-uninitialized"
-    "-Wno-error=uninitialized"
-  ];
-
   # binaries will segfault otherwise
   dontStrip = true;
 
diff --git a/pkgs/servers/authelia/default.nix b/pkgs/servers/authelia/default.nix
index 2eb1b4f6ac785..fcde2aea451e7 100644
--- a/pkgs/servers/authelia/default.nix
+++ b/pkgs/servers/authelia/default.nix
@@ -72,7 +72,7 @@ buildGoModule rec {
       authentication.
     '';
     license = licenses.asl20;
-    maintainers = with maintainers; [ jk raitobezarius dit7ya ];
+    maintainers = with maintainers; [ jk dit7ya ];
     mainProgram = "authelia";
   };
 }
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 6a1afcf4adda0..ae7c511f84018 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "23.11.4.1";
+  version = "23.11.5.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    hash = "sha256-oUkFLw1vgPubsA2htzsJ5SfsL7UA6J0ufwjl7vWoX+s=";
+    hash = "sha256-YUsAPADRVf5JUd06DuSloeVNb8+3x7iwhFZ/JQyj0ZU=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/fastnetmon-advanced/default.nix b/pkgs/servers/fastnetmon-advanced/default.nix
index 2605bb0809c95..fe94cc4549cd0 100644
--- a/pkgs/servers/fastnetmon-advanced/default.nix
+++ b/pkgs/servers/fastnetmon-advanced/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fastnetmon-advanced";
-  version = "2.0.362";
+  version = "2.0.363";
 
   src = fetchurl {
     url = "https://repo.fastnetmon.com/fastnetmon_ubuntu_jammy/pool/fastnetmon/f/fastnetmon/fastnetmon_${version}_amd64.deb";
-    hash = "sha256-9RKZyFntv2LsVZbN4sgb3C35kkDvM6kN7WpqdwwxnsE=";
+    hash = "sha256-2AKUNPQ7OzuYOolJHwTnWHzB4Qpwun/77+dFCN/cE98=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index ebed5dab19890..ea09b5b8bf6a6 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -4193,7 +4193,8 @@
       rokuecp
     ];
     "romy" = ps: with ps; [
-    ]; # missing inputs: romy
+      romy
+    ];
     "roomba" = ps: with ps; [
       roombapy
     ];
@@ -6424,6 +6425,7 @@
     "rmvtransport"
     "roborock"
     "roku"
+    "romy"
     "roomba"
     "roon"
     "rpi_power"
diff --git a/pkgs/servers/home-assistant/custom-components/README.md b/pkgs/servers/home-assistant/custom-components/README.md
index ccb8062200f85..6b942df8b9429 100644
--- a/pkgs/servers/home-assistant/custom-components/README.md
+++ b/pkgs/servers/home-assistant/custom-components/README.md
@@ -37,7 +37,7 @@ buildHomeAssistantComponent {
 
   meta = with lib; {
     # changelog, description, homepage, license, maintainers
-  }
+  };
 }
 ```
 
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/README.md b/pkgs/servers/home-assistant/custom-lovelace-modules/README.md
index b67fd0fb91d84..72f979d07f951 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/README.md
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/README.md
@@ -9,5 +9,7 @@ configured.
 The entrypoint used can be overridden in `passthru` like this:
 
 ```nix
-passthru.entrypoint = "demo-card-bundle.js";
+{
+  passthru.entrypoint = "demo-card-bundle.js";
+}
 ```
diff --git a/pkgs/servers/invidious/versions.json b/pkgs/servers/invidious/versions.json
index 38a59c02413cb..76eb88aa6b5fb 100644
--- a/pkgs/servers/invidious/versions.json
+++ b/pkgs/servers/invidious/versions.json
@@ -1,8 +1,8 @@
 {
   "invidious": {
-    "rev": "e8a36985aff1a5b33ddf9abea85dd2c23422c2f7",
-    "hash": "sha256-3nU6z1rd1oiNmIz3Ok02xBsT4oNSGX/n+3/WbRVCbhI=",
-    "version": "0.20.1-unstable-2024-02-18"
+    "rev": "99a5e9cbc44daa4555f36b43bc4b7246aee454c9",
+    "hash": "sha256-ep/umuNxTvdPXtJgI3KNt0h5xc1O38wQz1+OsVYOzfE=",
+    "version": "0.20.1-unstable-2024-03-08"
   },
   "videojs": {
     "hash": "sha256-jED3zsDkPN8i6GhBBJwnsHujbuwlHdsVpVqa1/pzSH4="
diff --git a/pkgs/servers/jibri/default.nix b/pkgs/servers/jibri/default.nix
index 0898ba34a16b7..9f12ef0082516 100644
--- a/pkgs/servers/jibri/default.nix
+++ b/pkgs/servers/jibri/default.nix
@@ -13,10 +13,10 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jibri";
-  version = "8.0-160-g5af7dd7";
+  version = "8.0-169-g1258814";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "UuRGGbga7Yo/rp5PobOxhyUQ8FaZWnMsLL89vt9hKcA=";
+    sha256 = "MAZJq2v25XQE6nbaAHSuxeoZOBwlOxCOIJkzxQVlKog=";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/mail/mailpit/default.nix b/pkgs/servers/mail/mailpit/default.nix
index 55be7d208822d..e64e1c7fcbbbc 100644
--- a/pkgs/servers/mail/mailpit/default.nix
+++ b/pkgs/servers/mail/mailpit/default.nix
@@ -12,13 +12,13 @@
 }:
 
 let
-  version = "1.13.1";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "axllent";
     repo = "mailpit";
     rev = "v${version}";
-    hash = "sha256-50amJ4pFNVcV7WT303ObPJiCx6tNYWNks3oFnexHRoA=";
+    hash = "sha256-Gu2LKuXzJSOvLZZrxOKwusALkMmNOnb3gyBqxbmZbfI=";
   };
 
   # Separate derivation, because if we mix this in buildGoModule, the separate
@@ -30,7 +30,7 @@ let
 
     npmDeps = fetchNpmDeps {
       inherit src;
-      hash = "sha256-KleFztYmbgIPg/3acXJTg1J5uyWsVZUQ0caK+hT1uxQ=";
+      hash = "sha256-5F68ia2V8mw4iPAjSoz0b8z1lplWtAg98BgDXYOmMKs=";
     };
 
     env = lib.optionalAttrs (stdenv.isDarwin && stdenv.isx86_64) {
@@ -56,7 +56,7 @@ buildGoModule {
   pname = "mailpit";
   inherit src version;
 
-  vendorHash = "sha256-iNNs9vLvOKqVpLKt65wVmffgq1l/9KOtnbRPg+2kbsM=";
+  vendorHash = "sha256-e2mlOwGDU5NlKZSstHMdTidSfhNeeY6cBgtW+W9nwV8=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index ca152079e073c..78662d4b18cf4 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -12,13 +12,13 @@ buildGoModule rec {
   # See https://docs.mattermost.com/upgrade/extended-support-release.html
   # When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update
   # the version regex in passthru.updateScript as well.
-  version = "9.5.2";
+  version = "9.5.3";
 
   src = fetchFromGitHub {
     owner = "mattermost";
     repo = "mattermost";
     rev = "v${version}";
-    hash = "sha256-NYP0mhON+TCvNTSx4I4hddFGF9TWtnMAwyJvX8sEdWU=";
+    hash = "sha256-kqwRwo7eL9xfOyP54oS800L6bisVwJf9FpgTnwfmjAo=";
   };
 
   # Needed because buildGoModule does not support go workspaces yet.
@@ -34,7 +34,7 @@ buildGoModule rec {
 
   webapp = fetchurl {
     url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-    hash = "sha256-ogiowbNYHo9NTQLAg1OKXp8pV1Zn7kPcZR9ukaKvpKA=";
+    hash = "sha256-f2Zap/15TOyzCP97BGGmXimwAa1mTP42w37RToNkAsQ=";
   };
 
   vendorHash = "sha256-TJCtgNf56A1U0EbV5gXjTro+YudVBRWiSZoBC3nJxnE=";
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index e36a1662907dc..fd69e00271598 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-03-10T02-53-48Z";
+  version = "2024-03-26T22-10-45Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    hash = "sha256-XcJm5FcX0NNjjY/WDQyR2RF8J3GkqEvpAhFDZj9ztks=";
+    hash = "sha256-JdmeURCci8deQH4+7HCHkMbUzhjZBGi3dm3IHkp3XRE=";
   };
 
-  vendorHash = "sha256-0W2D5CQkrZMPlehvmExeQ6txwEyRe3XZl0Bv0Ww5COs=";
+  vendorHash = "sha256-oQatc6/s1kGOZI3XetID0xmABG5XrpD0cW7aWJxWK84=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/misc/oven-media-engine/default.nix b/pkgs/servers/misc/oven-media-engine/default.nix
index 35db446c70a25..c5e2d181c1cba 100644
--- a/pkgs/servers/misc/oven-media-engine/default.nix
+++ b/pkgs/servers/misc/oven-media-engine/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oven-media-engine";
-  version = "0.15.14";
+  version = "0.16.5";
 
   src = fetchFromGitHub {
     owner = "AirenSoft";
     repo = "OvenMediaEngine";
     rev = "v${version}";
-    sha256 = "sha256-pLLnk0FXJ6gb0WSdWGEzJSEbKdOpjdWECIRzrHvi8HQ=";
+    sha256 = "sha256-hkLIJ3vGpnywcOw+bfEsQESGFe1FUcCVJlMlVgGsrNs=";
   };
 
   sourceRoot = "${src.name}/src";
@@ -40,10 +40,6 @@ stdenv.mkDerivation rec {
     patchShebangs core/colorgcc
     patchShebangs projects/main/update_git_info.sh
 
-    sed -i -e 's/const AVOutputFormat /AVOutputFormat /g' \
-      projects/modules/mpegts/mpegts_writer.cpp \
-      projects/modules/file/file_writer.cpp \
-      projects/modules/rtmp/rtmp_writer.cpp
     sed -i -e '/^CC =/d' -e '/^CXX =/d' -e '/^AR =/d' projects/third_party/pugixml-1.9/scripts/pugixml.make
   '';
 
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 759cab18aa221..dd44fa6017c05 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -21,7 +21,7 @@ let
 in
 buildGoModule rec {
   pname = "grafana";
-  version = "10.4.0";
+  version = "10.4.1";
 
   subPackages = [ "pkg/cmd/grafana" "pkg/cmd/grafana-server" "pkg/cmd/grafana-cli" ];
 
@@ -29,7 +29,7 @@ buildGoModule rec {
     owner = "grafana";
     repo = "grafana";
     rev = "v${version}";
-    hash = "sha256-Rp2jGspbmqJFzSbiVy2/5oqQJnAdGG/T+VNBHVsHSwg=";
+    hash = "sha256-wKYn6EcfQlWj/6rKnGYphzq3IThRj6qCjpqwllNPht8=";
   };
 
   # borrowed from: https://github.com/NixOS/nixpkgs/blob/d70d9425f49f9aba3c49e2c389fe6d42bac8c5b0/pkgs/development/tools/analysis/snyk/default.nix#L20-L22
diff --git a/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix b/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix
index 7c4d2cfae06e1..f71cd1776bd44 100644
--- a/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix
+++ b/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, cudaPackages
+, autoAddDriverRunpath
 , dcgm
 , linuxPackages
 }:
@@ -48,7 +48,7 @@ buildGoModule rec {
   vendorHash = "sha256-Fjvx15e/psxoqoS6c6GhiQfe7g2aI40EmPR26xLhrzg=";
 
   nativeBuildInputs = [
-    cudaPackages.autoAddDriverRunpath
+    autoAddDriverRunpath
   ];
 
   # Tests try to interact with running DCGM service.
diff --git a/pkgs/servers/monitoring/prometheus/ping-exporter.nix b/pkgs/servers/monitoring/prometheus/ping-exporter.nix
index 6abe6ed605bf8..2c42dbdfa5aaf 100644
--- a/pkgs/servers/monitoring/prometheus/ping-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/ping-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ping-exporter";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "czerwonk";
     repo = "ping_exporter";
     rev = version;
-    hash = "sha256-ttlsz0yS4vIfQLTKQ/aiIm/vg6bwnbUlM1aku9RMXXU=";
+    hash = "sha256-3q9AFvtjCSQyqX+LV1MEFHJVPBHtG304zuPHJ12XteE=";
   };
 
-  vendorHash = "sha256-ZTrQNtpXTf+3oPv8zoVm6ZKWzAvRsAj96csoKJKxu3k=";
+  vendorHash = "sha256-v1WSx93MHVJZllp4MjTg4G9yqHD3CAiVReZ5Qu1Xv6E=";
 
   meta = with lib; {
     description = "Prometheus exporter for ICMP echo requests";
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 6745fc87dda8f..3b549e194d88b 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -43,20 +43,20 @@ let
   };
 in {
   nextcloud26 = generic {
-    version = "26.0.12";
-    hash = "sha256-fuTAIAJB9pRfMd0Ewh19FmY0Vj4MuH1iMkkS1BiTI0w=";
+    version = "26.0.13";
+    hash = "sha256-CjYt96EjM0j5nRhT/X558GZ7VSwUXcRQEvq1SsMcea4=";
     packages = nextcloud26Packages;
   };
 
   nextcloud27 = generic {
-    version = "27.1.7";
-    hash = "sha256-hEPi0bsojcQU+q0Kb+/i41uznt0359pcXzTexsDdG+s=";
+    version = "27.1.8";
+    hash = "sha256-Ciy5vRKCnlOq8XNUPsrQFPCeganXL6YeTEYNhOO47fs=";
     packages = nextcloud27Packages;
   };
 
   nextcloud28 = generic {
-    version = "28.0.3";
-    hash = "sha256-ntQTwN4W9bAzzu/8ypnA1h/GmNvrjbhRrJrfnu+VGQY=";
+    version = "28.0.4";
+    hash = "sha256-m/7O4eEvukjEnppxyqgcS6ELKIR4f6t11kzP0SKhMBk=";
     packages = nextcloud28Packages;
   };
 
diff --git a/pkgs/servers/nextcloud/notify_push.nix b/pkgs/servers/nextcloud/notify_push.nix
index f94449d87b16b..3d92584d2f937 100644
--- a/pkgs/servers/nextcloud/notify_push.nix
+++ b/pkgs/servers/nextcloud/notify_push.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "notify_push";
-  version = "0.6.9";
+  version = "0.6.10";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Bwneum3X4Gttb5fFhWyCIchGebxH9Rp0Dg10f0NkKCY=";
+    hash = "sha256-Kk9l9jowerxh5nsKQ5TOaijSJbs0DgJKaRl9tlAttzI=";
   };
 
-  cargoHash = "sha256-HIt56r2sox9LD6kyJxyGFt9mrH/wrC7QkiycLdUDbPo=";
+  cargoHash = "sha256-wtmYWQOYy8JmbSxgrXkFtDe6KmJJIMVpcELQj06II4k=";
 
   passthru = rec {
     test_client = rustPlatform.buildRustPackage {
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
       buildAndTestSubdir = "test_client";
 
-      cargoHash = "sha256-OUALNd64rr2qXyRNV/O+pi+dE0HYogwlbWx5DCACzyk=";
+      cargoHash = "sha256-sPUlke8KI6sX2HneeoZh8RMG7aydC43c37V179ipukU=";
 
       meta = meta // {
         mainProgram = "test_client";
diff --git a/pkgs/servers/nextcloud/packages/26.json b/pkgs/servers/nextcloud/packages/26.json
index 99fd50c6bff59..d795245939dff 100644
--- a/pkgs/servers/nextcloud/packages/26.json
+++ b/pkgs/servers/nextcloud/packages/26.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "18mi6ccq640jq21hmir35v2967h07bjv226072d9qz5qkzkmrhss",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.5/calendar-v4.6.5.tar.gz",
-    "version": "4.6.5",
+    "sha256": "18hlk6j3dzpcd61sgn8r8zmcc9d1bklq030kwyn4mzr20dcf75w5",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.7/calendar-v4.6.7.tar.gz",
+    "version": "4.6.7",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -20,9 +20,9 @@
     ]
   },
   "contacts": {
-    "sha256": "0g6pbzm7bxllpkf9jqkrb3ys8xvbmayxc3rqwspalzckayjbz98m",
-    "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.2/contacts-v5.5.2.tar.gz",
-    "version": "5.5.2",
+    "sha256": "0xyrkr5p7xa8cn33kgx1hyblpbsdzaakpfm5bk6w9sm71a42688w",
+    "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.3/contacts-v5.5.3.tar.gz",
+    "version": "5.5.3",
     "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
     "homepage": "https://github.com/nextcloud/contacts#readme",
     "licenses": [
@@ -110,9 +110,9 @@
     ]
   },
   "groupfolders": {
-    "sha256": "19j2iqn3fjlzcswgbxwvxggzqc3aili8br4vjpr8dd9h1rzm453y",
-    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v14.0.7/groupfolders-v14.0.7.tar.gz",
-    "version": "14.0.7",
+    "sha256": "1icpj855ib6cx7b57njvhdkcwgd4jmndm3gwh8qgq0mvdlkqpmd0",
+    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v14.0.8/groupfolders-v14.0.8.tar.gz",
+    "version": "14.0.8",
     "description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
     "homepage": "https://github.com/nextcloud/groupfolders",
     "licenses": [
@@ -160,9 +160,9 @@
     ]
   },
   "memories": {
-    "sha256": "1j3296d3arkr9344zzv6ynhg842ym36a1bp1r3y6m8wp552m5gay",
-    "url": "https://github.com/pulsejet/memories/releases/download/v6.2.2/memories.tar.gz",
-    "version": "6.2.2",
+    "sha256": "0638120x6byp35gslcr2yg4rswihjjdssnjw87fxx7q41sd02vsz",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.0.2/memories.tar.gz",
+    "version": "7.0.2",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -190,9 +190,9 @@
     ]
   },
   "notes": {
-    "sha256": "02893azzq507frb3x7h13ypx09yn9rx740hgfw7q1a2il2ixww5f",
-    "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.2/notes.tar.gz",
-    "version": "4.9.2",
+    "sha256": "1ii3ii2062wklss3mxsfbvqi4hvi96a20i20lbwm6z2x6q7fqqi3",
+    "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.4/notes-v4.9.4.tar.gz",
+    "version": "4.9.4",
     "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
     "homepage": "https://github.com/nextcloud/notes",
     "licenses": [
@@ -200,9 +200,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "1inq39kdfynip4j9hfrgybiscgii7r0wkjb5pssvmqknbpqf7x4g",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.9/notify_push-v0.6.9.tar.gz",
-    "version": "0.6.9",
+    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
+    "version": "0.6.10",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -290,9 +290,9 @@
     ]
   },
   "twofactor_nextcloud_notification": {
-    "sha256": "0gaqgzbryim580dxarak7p4g3wd8wp3w6lw9jhl84jh46wrsbrj8",
-    "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.8.0/twofactor_nextcloud_notification-v3.8.0.tar.gz",
-    "version": "3.8.0",
+    "sha256": "0qpg6i6iw6ldnryf0p56kd7fgs5vyckw9m6yjcf8r4j3mwfka273",
+    "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.9.0/twofactor_nextcloud_notification-v3.9.0.tar.gz",
+    "version": "3.9.0",
     "description": "Allows using any of your logged in devices as second factor",
     "homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification",
     "licenses": [
@@ -300,9 +300,9 @@
     ]
   },
   "twofactor_webauthn": {
-    "sha256": "1p4ng7nprlcgw7sdfd7wqx5az86a856f1v470lahg2nfbx3fg296",
-    "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.3.2/twofactor_webauthn-v1.3.2.tar.gz",
-    "version": "1.3.2",
+    "sha256": "0llxakzcdcy9hscyzw3na5zp1p57h03w5fmm0gs9g62k1b88k6kw",
+    "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.4.0/twofactor_webauthn-v1.4.0.tar.gz",
+    "version": "1.4.0",
     "description": "A two-factor provider for WebAuthn devices",
     "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
     "licenses": [
@@ -320,9 +320,9 @@
     ]
   },
   "user_oidc": {
-    "sha256": "06w6r1cmrahh9kr6rxc3nmy9q4m8fmf6afwgkvah3xixqnq04iwb",
-    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.1/user_oidc-v5.0.1.tar.gz",
-    "version": "5.0.1",
+    "sha256": "0nl716c8jx6hhpkxjdpbldlnqhh6jsm6xx1zmcmvkzkdr9pjkggj",
+    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.2/user_oidc-v5.0.2.tar.gz",
+    "version": "5.0.2",
     "description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
     "homepage": "https://github.com/nextcloud/user_oidc",
     "licenses": [
@@ -330,9 +330,9 @@
     ]
   },
   "user_saml": {
-    "sha256": "0rsrbbdvf8kb9l6afz86af33ri0ng9yj7d4xw28j50mfcx3kifg3",
-    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.6/user_saml-v5.2.6.tar.gz",
-    "version": "5.2.6",
+    "sha256": "0cvlspkrcm3anxpz4lca464d66672slqq2laa7gn7sd1b9yl9nx8",
+    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.7/user_saml-v5.2.7.tar.gz",
+    "version": "5.2.7",
     "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
     "homepage": "https://github.com/nextcloud/user_saml",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/27.json b/pkgs/servers/nextcloud/packages/27.json
index 9d29448b95282..acf8763b62d2f 100644
--- a/pkgs/servers/nextcloud/packages/27.json
+++ b/pkgs/servers/nextcloud/packages/27.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "18mi6ccq640jq21hmir35v2967h07bjv226072d9qz5qkzkmrhss",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.5/calendar-v4.6.5.tar.gz",
-    "version": "4.6.5",
+    "sha256": "18hlk6j3dzpcd61sgn8r8zmcc9d1bklq030kwyn4mzr20dcf75w5",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.7/calendar-v4.6.7.tar.gz",
+    "version": "4.6.7",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -20,9 +20,9 @@
     ]
   },
   "contacts": {
-    "sha256": "0g6pbzm7bxllpkf9jqkrb3ys8xvbmayxc3rqwspalzckayjbz98m",
-    "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.2/contacts-v5.5.2.tar.gz",
-    "version": "5.5.2",
+    "sha256": "0xyrkr5p7xa8cn33kgx1hyblpbsdzaakpfm5bk6w9sm71a42688w",
+    "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.3/contacts-v5.5.3.tar.gz",
+    "version": "5.5.3",
     "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
     "homepage": "https://github.com/nextcloud/contacts#readme",
     "licenses": [
@@ -40,9 +40,9 @@
     ]
   },
   "cospend": {
-    "sha256": "1wxhhyd47gw14y3wl7c41agwa29k0nymys91p24x3dhd0nm61h1y",
-    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.0/cospend-1.6.0.tar.gz",
-    "version": "1.6.0",
+    "sha256": "04cpsd638p8midpznbz0nhdmcm5zfgq9n6yh1xifnvmfkd5k2wj0",
+    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.1/cospend-1.6.1.tar.gz",
+    "version": "1.6.1",
     "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
     "homepage": "https://github.com/julien-nc/cospend-nc",
     "licenses": [
@@ -110,9 +110,9 @@
     ]
   },
   "groupfolders": {
-    "sha256": "0p3g19cmfjn1zql6cr3bv0cvfj078vh6ian024iwvc6ir8fmsni0",
-    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v15.3.5/groupfolders-v15.3.5.tar.gz",
-    "version": "15.3.5",
+    "sha256": "00pjva8hc36mnawvbpsi6lizzdhclp30z92vaz8j24xmhf21yvh9",
+    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v15.3.6/groupfolders-v15.3.6.tar.gz",
+    "version": "15.3.6",
     "description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
     "homepage": "https://github.com/nextcloud/groupfolders",
     "licenses": [
@@ -160,9 +160,9 @@
     ]
   },
   "memories": {
-    "sha256": "1j3296d3arkr9344zzv6ynhg842ym36a1bp1r3y6m8wp552m5gay",
-    "url": "https://github.com/pulsejet/memories/releases/download/v6.2.2/memories.tar.gz",
-    "version": "6.2.2",
+    "sha256": "0638120x6byp35gslcr2yg4rswihjjdssnjw87fxx7q41sd02vsz",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.0.2/memories.tar.gz",
+    "version": "7.0.2",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -190,9 +190,9 @@
     ]
   },
   "notes": {
-    "sha256": "02893azzq507frb3x7h13ypx09yn9rx740hgfw7q1a2il2ixww5f",
-    "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.2/notes.tar.gz",
-    "version": "4.9.2",
+    "sha256": "1ii3ii2062wklss3mxsfbvqi4hvi96a20i20lbwm6z2x6q7fqqi3",
+    "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.4/notes-v4.9.4.tar.gz",
+    "version": "4.9.4",
     "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
     "homepage": "https://github.com/nextcloud/notes",
     "licenses": [
@@ -200,9 +200,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "1inq39kdfynip4j9hfrgybiscgii7r0wkjb5pssvmqknbpqf7x4g",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.9/notify_push-v0.6.9.tar.gz",
-    "version": "0.6.9",
+    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
+    "version": "0.6.10",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -290,9 +290,9 @@
     ]
   },
   "twofactor_nextcloud_notification": {
-    "sha256": "0gaqgzbryim580dxarak7p4g3wd8wp3w6lw9jhl84jh46wrsbrj8",
-    "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.8.0/twofactor_nextcloud_notification-v3.8.0.tar.gz",
-    "version": "3.8.0",
+    "sha256": "0qpg6i6iw6ldnryf0p56kd7fgs5vyckw9m6yjcf8r4j3mwfka273",
+    "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.9.0/twofactor_nextcloud_notification-v3.9.0.tar.gz",
+    "version": "3.9.0",
     "description": "Allows using any of your logged in devices as second factor",
     "homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification",
     "licenses": [
@@ -300,9 +300,9 @@
     ]
   },
   "twofactor_webauthn": {
-    "sha256": "1p4ng7nprlcgw7sdfd7wqx5az86a856f1v470lahg2nfbx3fg296",
-    "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.3.2/twofactor_webauthn-v1.3.2.tar.gz",
-    "version": "1.3.2",
+    "sha256": "0llxakzcdcy9hscyzw3na5zp1p57h03w5fmm0gs9g62k1b88k6kw",
+    "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.4.0/twofactor_webauthn-v1.4.0.tar.gz",
+    "version": "1.4.0",
     "description": "A two-factor provider for WebAuthn devices",
     "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
     "licenses": [
@@ -320,9 +320,9 @@
     ]
   },
   "user_oidc": {
-    "sha256": "06w6r1cmrahh9kr6rxc3nmy9q4m8fmf6afwgkvah3xixqnq04iwb",
-    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.1/user_oidc-v5.0.1.tar.gz",
-    "version": "5.0.1",
+    "sha256": "0nl716c8jx6hhpkxjdpbldlnqhh6jsm6xx1zmcmvkzkdr9pjkggj",
+    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.2/user_oidc-v5.0.2.tar.gz",
+    "version": "5.0.2",
     "description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
     "homepage": "https://github.com/nextcloud/user_oidc",
     "licenses": [
@@ -330,9 +330,9 @@
     ]
   },
   "user_saml": {
-    "sha256": "0rsrbbdvf8kb9l6afz86af33ri0ng9yj7d4xw28j50mfcx3kifg3",
-    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.6/user_saml-v5.2.6.tar.gz",
-    "version": "5.2.6",
+    "sha256": "0cvlspkrcm3anxpz4lca464d66672slqq2laa7gn7sd1b9yl9nx8",
+    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.7/user_saml-v5.2.7.tar.gz",
+    "version": "5.2.7",
     "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
     "homepage": "https://github.com/nextcloud/user_saml",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/28.json b/pkgs/servers/nextcloud/packages/28.json
index 3fba36b2d64ca..ef885c7b7a0ec 100644
--- a/pkgs/servers/nextcloud/packages/28.json
+++ b/pkgs/servers/nextcloud/packages/28.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "18mi6ccq640jq21hmir35v2967h07bjv226072d9qz5qkzkmrhss",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.5/calendar-v4.6.5.tar.gz",
-    "version": "4.6.5",
+    "sha256": "18hlk6j3dzpcd61sgn8r8zmcc9d1bklq030kwyn4mzr20dcf75w5",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.7/calendar-v4.6.7.tar.gz",
+    "version": "4.6.7",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -20,9 +20,9 @@
     ]
   },
   "contacts": {
-    "sha256": "0g6pbzm7bxllpkf9jqkrb3ys8xvbmayxc3rqwspalzckayjbz98m",
-    "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.2/contacts-v5.5.2.tar.gz",
-    "version": "5.5.2",
+    "sha256": "0xyrkr5p7xa8cn33kgx1hyblpbsdzaakpfm5bk6w9sm71a42688w",
+    "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.3/contacts-v5.5.3.tar.gz",
+    "version": "5.5.3",
     "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
     "homepage": "https://github.com/nextcloud/contacts#readme",
     "licenses": [
@@ -40,9 +40,9 @@
     ]
   },
   "cospend": {
-    "sha256": "1wxhhyd47gw14y3wl7c41agwa29k0nymys91p24x3dhd0nm61h1y",
-    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.0/cospend-1.6.0.tar.gz",
-    "version": "1.6.0",
+    "sha256": "04cpsd638p8midpznbz0nhdmcm5zfgq9n6yh1xifnvmfkd5k2wj0",
+    "url": "https://github.com/julien-nc/cospend-nc/releases/download/v1.6.1/cospend-1.6.1.tar.gz",
+    "version": "1.6.1",
     "description": "# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)",
     "homepage": "https://github.com/julien-nc/cospend-nc",
     "licenses": [
@@ -60,9 +60,9 @@
     ]
   },
   "end_to_end_encryption": {
-    "sha256": "1ih44vrgm3fsm4xk3sz9b5rxf54dva01cfy18gw4lpgn60c63isq",
-    "url": "https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v1.14.1/end_to_end_encryption-v1.14.1.tar.gz",
-    "version": "1.14.1",
+    "sha256": "04b2hj96gpb4sf1w5r1sxa4fmxrk36vr3pia8i5w2pfi6fbhd9mc",
+    "url": "https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v1.14.5/end_to_end_encryption-v1.14.5.tar.gz",
+    "version": "1.14.5",
     "description": "Provides the necessary endpoint to enable end-to-end encryption.\n\n**Notice:** E2EE is currently not compatible to be used together with server-side encryption",
     "homepage": "https://github.com/nextcloud/end_to_end_encryption",
     "licenses": [
@@ -90,9 +90,9 @@
     ]
   },
   "groupfolders": {
-    "sha256": "00237wdfn7yj31mjpv6crnk0lrazy9iljfcpxjhy4g91d8sc3f5d",
-    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.4/groupfolders-v16.0.4.tar.gz",
-    "version": "16.0.4",
+    "sha256": "0cg81d75dg96zp09jy4yzg65v14wf99c2snnj304v4dia410c8a3",
+    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.5/groupfolders-v16.0.5.tar.gz",
+    "version": "16.0.5",
     "description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
     "homepage": "https://github.com/nextcloud/groupfolders",
     "licenses": [
@@ -110,9 +110,9 @@
     ]
   },
   "integration_openai": {
-    "sha256": "0qk0w5xiy9jrk29mpmzfsp0jya6i4si8n3m03kb05r225n4ya9ig",
-    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v1.2.0/integration_openai-v1.2.0.tar.gz",
-    "version": "1.2.0",
+    "sha256": "0v8bpd74mvkc87jbqjkxcfhb728l0r85fsqjn1ahaj2g9xql07f6",
+    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v1.2.1/integration_openai-v1.2.1.tar.gz",
+    "version": "1.2.1",
     "description": "This app includes 3 custom smart pickers for Nextcloud:\n* ChatGPT-like answers\n* Image generation (with DALL·E 2 or LocalAI)\n* Whisper dictation\n\nIt also implements\n\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance.\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/integration_openai",
     "licenses": [
@@ -140,9 +140,9 @@
     ]
   },
   "memories": {
-    "sha256": "1j3296d3arkr9344zzv6ynhg842ym36a1bp1r3y6m8wp552m5gay",
-    "url": "https://github.com/pulsejet/memories/releases/download/v6.2.2/memories.tar.gz",
-    "version": "6.2.2",
+    "sha256": "0638120x6byp35gslcr2yg4rswihjjdssnjw87fxx7q41sd02vsz",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.0.2/memories.tar.gz",
+    "version": "7.0.2",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -160,9 +160,9 @@
     ]
   },
   "notes": {
-    "sha256": "02893azzq507frb3x7h13ypx09yn9rx740hgfw7q1a2il2ixww5f",
-    "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.2/notes.tar.gz",
-    "version": "4.9.2",
+    "sha256": "1ii3ii2062wklss3mxsfbvqi4hvi96a20i20lbwm6z2x6q7fqqi3",
+    "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.4/notes-v4.9.4.tar.gz",
+    "version": "4.9.4",
     "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
     "homepage": "https://github.com/nextcloud/notes",
     "licenses": [
@@ -170,9 +170,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "1inq39kdfynip4j9hfrgybiscgii7r0wkjb5pssvmqknbpqf7x4g",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.9/notify_push-v0.6.9.tar.gz",
-    "version": "0.6.9",
+    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
+    "version": "0.6.10",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -200,9 +200,9 @@
     ]
   },
   "polls": {
-    "sha256": "1a5fyx1wvgwm2mjqmg5kah3x2y77zw8ly1zvcx6m4x50s113rkbi",
-    "url": "https://github.com/nextcloud/polls/releases/download/v6.1.6/polls.tar.gz",
-    "version": "6.1.6",
+    "sha256": "0gym2sx9lx6nvyby9pj1xml4n9fa7q91rl1i33kb70fclv622ca3",
+    "url": "https://github.com/nextcloud/polls/releases/download/v7.0.0/polls.tar.gz",
+    "version": "7.0.0",
     "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
     "homepage": "https://github.com/nextcloud/polls",
     "licenses": [
@@ -230,9 +230,9 @@
     ]
   },
   "registration": {
-    "sha256": "1bcvc1vmvgr21slx2bk5idagkvvkcglkjbrs3ki5y7w3ls0my4al",
-    "url": "https://github.com/nextcloud-releases/registration/releases/download/v2.3.0/registration-v2.3.0.tar.gz",
-    "version": "2.3.0",
+    "sha256": "1ih7nfswskzpgbqfjsn4lym4cwyq4kbjv9m9cmy4g4nx44gr0dkl",
+    "url": "https://github.com/nextcloud-releases/registration/releases/download/v2.4.0/registration-v2.4.0.tar.gz",
+    "version": "2.4.0",
     "description": "User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically",
     "homepage": "https://github.com/nextcloud/registration",
     "licenses": [
@@ -240,9 +240,9 @@
     ]
   },
   "spreed": {
-    "sha256": "1kjlrjgclmz39a0zdjr6863cipv5i5fwaigasd2cfxx1r7zrd7sx",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.4/spreed-v18.0.4.tar.gz",
-    "version": "18.0.4",
+    "sha256": "1irkfcyv07ij564aigsrrg1glw78v9lm09126qwmbs6fbz1acxl2",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.5/spreed-v18.0.5.tar.gz",
+    "version": "18.0.5",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -260,9 +260,9 @@
     ]
   },
   "twofactor_nextcloud_notification": {
-    "sha256": "0gaqgzbryim580dxarak7p4g3wd8wp3w6lw9jhl84jh46wrsbrj8",
-    "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.8.0/twofactor_nextcloud_notification-v3.8.0.tar.gz",
-    "version": "3.8.0",
+    "sha256": "0qpg6i6iw6ldnryf0p56kd7fgs5vyckw9m6yjcf8r4j3mwfka273",
+    "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.9.0/twofactor_nextcloud_notification-v3.9.0.tar.gz",
+    "version": "3.9.0",
     "description": "Allows using any of your logged in devices as second factor",
     "homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification",
     "licenses": [
@@ -270,9 +270,9 @@
     ]
   },
   "twofactor_webauthn": {
-    "sha256": "1p4ng7nprlcgw7sdfd7wqx5az86a856f1v470lahg2nfbx3fg296",
-    "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.3.2/twofactor_webauthn-v1.3.2.tar.gz",
-    "version": "1.3.2",
+    "sha256": "0llxakzcdcy9hscyzw3na5zp1p57h03w5fmm0gs9g62k1b88k6kw",
+    "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.4.0/twofactor_webauthn-v1.4.0.tar.gz",
+    "version": "1.4.0",
     "description": "A two-factor provider for WebAuthn devices",
     "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
     "licenses": [
@@ -280,9 +280,9 @@
     ]
   },
   "user_oidc": {
-    "sha256": "06w6r1cmrahh9kr6rxc3nmy9q4m8fmf6afwgkvah3xixqnq04iwb",
-    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.1/user_oidc-v5.0.1.tar.gz",
-    "version": "5.0.1",
+    "sha256": "0nl716c8jx6hhpkxjdpbldlnqhh6jsm6xx1zmcmvkzkdr9pjkggj",
+    "url": "https://github.com/nextcloud-releases/user_oidc/releases/download/v5.0.2/user_oidc-v5.0.2.tar.gz",
+    "version": "5.0.2",
     "description": "Allows flexible configuration of an OIDC server as Nextcloud login user backend.",
     "homepage": "https://github.com/nextcloud/user_oidc",
     "licenses": [
@@ -290,9 +290,9 @@
     ]
   },
   "user_saml": {
-    "sha256": "122bj8hqd4c554n07wjnwmqd4lp1j3440jbdjg45hwpnw2s8wlr5",
-    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v6.1.1/user_saml-v6.1.1.tar.gz",
-    "version": "6.1.1",
+    "sha256": "112nmngl99vfiqx39zbz6n8ajaifr02y5p0kcd5iz60qnf8za3kk",
+    "url": "https://github.com/nextcloud-releases/user_saml/releases/download/v6.1.2/user_saml-v6.1.2.tar.gz",
+    "version": "6.1.2",
     "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.",
     "homepage": "https://github.com/nextcloud/user_saml",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/README.md b/pkgs/servers/nextcloud/packages/README.md
index 469b80ef694dc..0b325848f2ed1 100644
--- a/pkgs/servers/nextcloud/packages/README.md
+++ b/pkgs/servers/nextcloud/packages/README.md
@@ -24,17 +24,19 @@ After that you can commit and submit the changes.
 The apps will be available in the namespace `nextcloud25Packages.apps`.
 Using it together with the Nextcloud module could look like this:
 
-```
-services.nextcloud = {
-  enable = true;
-  package = pkgs.nextcloud25;
-  hostName = "localhost";
-  config.adminpassFile = "${pkgs.writeText "adminpass" "hunter2"}";
-  extraApps = with pkgs.nextcloud25Packages.apps; {
-    inherit mail calendar contact;
+```nix
+{
+  services.nextcloud = {
+    enable = true;
+    package = pkgs.nextcloud25;
+    hostName = "localhost";
+    config.adminpassFile = "${pkgs.writeText "adminpass" "hunter2"}";
+    extraApps = with pkgs.nextcloud25Packages.apps; {
+      inherit mail calendar contact;
+    };
+    extraAppsEnable = true;
   };
-  extraAppsEnable = true;
-};
+}
 ```
 
 Adapt the version number in the Nextcloud package and nextcloudPackages set
diff --git a/pkgs/servers/nosql/questdb/default.nix b/pkgs/servers/nosql/questdb/default.nix
index 01d86bdb02ef6..45a94eef2b3be 100644
--- a/pkgs/servers/nosql/questdb/default.nix
+++ b/pkgs/servers/nosql/questdb/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "questdb";
-  version = "7.3.10";
+  version = "7.4.0";
 
   src = fetchurl {
     url = "https://github.com/questdb/questdb/releases/download/${finalAttrs.version}/questdb-${finalAttrs.version}-no-jre-bin.tar.gz";
-    hash = "sha256-diltorfAnyrXZwohrsZHA91AXuSZolxDUajfmOaD5lM=";
+    hash = "sha256-XpMLT6oBoZv7V69l7XLm7B/ioeNHSqKkl+4UAsMcYao=";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     description = "high-performance, open-source SQL database for applications in financial services, IoT, machine learning, DevOps and observability";
     homepage = "https://questdb.io/";
+    sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.jacfal ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/servers/peertube/default.nix b/pkgs/servers/peertube/default.nix
index bc8dbde498454..871f9abb74b87 100644
--- a/pkgs/servers/peertube/default.nix
+++ b/pkgs/servers/peertube/default.nix
@@ -17,27 +17,27 @@ let
     x86_64-linux = {
       arch = "linux-x64";
       libc = "glibc";
-      hash = "sha256-I1ceMi7h6flvKBmMIU1qjAU1S6z5MzguHDul3g1zMKw=";
+      hash = "sha256-C5N6VgFtXPLLjZt0ZdRTX095njRIT+12ONuUaBBj7fQ=";
     };
     aarch64-linux = {
       arch = "linux-arm64";
       libc = "glibc";
-      hash = "sha256-q8BR7kILYV8i8ozDkpcuKarf4s1TgRqOrUeLqjdWEQ0=";
+      hash = "sha256-TerDujO+IkSRnHYlSbAKSP9IS7AT7XnQJsZ8D8pCoGc=";
     };
     x86_64-darwin = {
       arch = "darwin-x64";
       libc = "unknown";
-      hash = "sha256-ONnXtRxcYFuFz+rmVTg+yEKe6J/vfKahX2i6k8dQStg=";
+      hash = "sha256-gphOONWujbeCCr6dkmMRJP94Dhp1Jvp2yt+g7n1HTv0=";
     };
     aarch64-darwin = {
       arch = "darwin-arm64";
       libc = "unknown";
-      hash = "sha256-VesAcT/IF2cvJVncJoqZcAvFxw32SN70C60GLU2kmVI=";
+      hash = "sha256-JMnELVUxoU1C57Tzue3Sg6OfDFAjfCnzgDit0BWzmlo=";
     };
   };
   bcryptAttrs = bcryptHostPlatformAttrs."${stdenv.hostPlatform.system}" or
     (throw "Unsupported architecture: ${stdenv.hostPlatform.system}");
-  bcryptVersion = "5.1.0";
+  bcryptVersion = "5.1.1";
   bcryptLib = fetchurl {
     url = "https://github.com/kelektiv/node.bcrypt.js/releases/download/v${bcryptVersion}/bcrypt_lib-v${bcryptVersion}-napi-v3-${bcryptAttrs.arch}-${bcryptAttrs.libc}.tar.gz";
     inherit (bcryptAttrs) hash;
@@ -45,51 +45,61 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "peertube";
-  version = "5.2.1";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "Chocobozzz";
     repo = "PeerTube";
     rev = "v${version}";
-    hash = "sha256-8JzU0JVb+JQCNiro8hPHBwkofNTUy90YkSCzTOoB+/A=";
+    hash = "sha256-Pskxfi+qqVk75hu22niLNFsToCJks1k8w8mTnXjr6jg=";
   };
 
   yarnOfflineCacheServer = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    hash = "sha256-pzXH6hdDf8O6Kr12Xw0jRcnPRD2TrDGdiEfxVr3KmwY=";
-  };
-
-  yarnOfflineCacheTools = fetchYarnDeps {
-    yarnLock = "${src}/server/tools/yarn.lock";
-    hash = "sha256-maPR8OCiuNlle0JQIkZSgAqW+BrSxPwVm6CkxIrIg5k=";
+    hash = "sha256-RJX92EgEIXWB1wNFRl8FvseOqBT+7m6gs+pMyoodruk=";
   };
 
   yarnOfflineCacheClient = fetchYarnDeps {
     yarnLock = "${src}/client/yarn.lock";
-    hash = "sha256-Ejzk/VEx7YtJpsrkHcXAZnJ+yRx1VhBJGpqquHYULNU=";
+    hash = "sha256-vr9xn5NXwiUS59Kgl8olCtkMgxnI1TKQzibKbb8RNXA=";
+  };
+
+  yarnOfflineCacheAppsCli = fetchYarnDeps {
+    yarnLock = "${src}/apps/peertube-cli/yarn.lock";
+    hash = "sha256-xsB71bnaPn/9/f1KHyU3TTwx+Q+1dLjWmNK2aVJgoRY=";
   };
 
-  nativeBuildInputs = [ brotli prefetch-yarn-deps jq nodejs which yarn ];
+  yarnOfflineCacheAppsRunner = fetchYarnDeps {
+    yarnLock = "${src}/apps/peertube-runner/yarn.lock";
+    hash = "sha256-9w3aLuiLs7SU00YwuE0ixfiD77gCakXT4YeRpfsgGz0=";
+  };
+
+  outputs = [ "out" "cli" "runner" ];
+
+  nativeBuildInputs = [ brotli prefetch-yarn-deps jq which yarn ];
+
+  buildInputs = [ nodejs ];
 
   buildPhase = ''
     # Build node modules
     export HOME=$PWD
     fixup-yarn-lock ~/yarn.lock
-    fixup-yarn-lock ~/server/tools/yarn.lock
     fixup-yarn-lock ~/client/yarn.lock
+    fixup-yarn-lock ~/apps/peertube-cli/yarn.lock
+    fixup-yarn-lock ~/apps/peertube-runner/yarn.lock
     yarn config --offline set yarn-offline-mirror $yarnOfflineCacheServer
     yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
-    cd ~/server/tools
-    yarn config --offline set yarn-offline-mirror $yarnOfflineCacheTools
-    yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
     cd ~/client
     yarn config --offline set yarn-offline-mirror $yarnOfflineCacheClient
     yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
+    cd ~/apps/peertube-cli
+    yarn config --offline set yarn-offline-mirror $yarnOfflineCacheAppsCli
+    yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
+    cd ~/apps/peertube-runner
+    yarn config --offline set yarn-offline-mirror $yarnOfflineCacheAppsRunner
+    yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
 
-    patchShebangs ~/node_modules
-    patchShebangs ~/server/tools/node_modules
-    patchShebangs ~/client/node_modules
-    patchShebangs ~/scripts
+    patchShebangs ~/{node_modules,client/node_modules,/apps/peertube-cli/node_modules,apps/peertube-runner/node_modules,scripts}
 
     # Fix bcrypt node module
     cd ~/node_modules/bcrypt
@@ -103,28 +113,52 @@ stdenv.mkDerivation rec {
     cd ~
 
     # Build PeerTube server
-    npm run tsc -- --build ./tsconfig.json
-    npm run resolve-tspaths:server
-    cp -r "./server/static" "./server/assets" "./dist/server"
-    cp -r "./server/lib/emails" "./dist/server/lib"
-
-    # Build PeerTube tools
-    cp -r "./server/tools/node_modules" "./dist/server/tools"
-    npm run tsc -- --build ./server/tools/tsconfig.json
-    npm run resolve-tspaths:server
+    npm run build:server
 
     # Build PeerTube client
     npm run build:client
+
+    # Build PeerTube cli
+    npm run build:peertube-cli
+    patchShebangs ~/apps/peertube-cli/dist/peertube.js
+
+    # Build PeerTube runner
+    npm run build:peertube-runner
+    patchShebangs ~/apps/peertube-runner/dist/peertube-runner.js
+
+    # Clean up declaration files
+    find ~/dist/ \
+      ~/packages/core-utils/dist/ \
+      ~/packages/ffmpeg/dist/ \
+      ~/packages/models/dist/ \
+      ~/packages/node-utils/dist/ \
+      ~/packages/server-commands/dist/ \
+      ~/packages/typescript-utils/dist/ \
+      \( -name '*.d.ts' -o -name '*.d.ts.map' \) -type f -delete
   '';
 
   installPhase = ''
     mkdir -p $out/dist
     mv ~/dist $out
     mv ~/node_modules $out/node_modules
-    mv ~/server/tools/node_modules $out/dist/server/tools/node_modules
     mkdir $out/client
     mv ~/client/{dist,node_modules,package.json,yarn.lock} $out/client
-    mv ~/{config,scripts,support,CREDITS.md,FAQ.md,LICENSE,README.md,package.json,tsconfig.json,yarn.lock} $out
+    mkdir -p $out/packages/{core-utils,ffmpeg,models,node-utils,server-commands,typescript-utils}
+    mv ~/packages/core-utils/{dist,package.json} $out/packages/core-utils
+    mv ~/packages/ffmpeg/{dist,package.json} $out/packages/ffmpeg
+    mv ~/packages/models/{dist,package.json} $out/packages/models
+    mv ~/packages/node-utils/{dist,package.json} $out/packages/node-utils
+    mv ~/packages/server-commands/{dist,package.json} $out/packages/server-commands
+    mv ~/packages/typescript-utils/{dist,package.json} $out/packages/typescript-utils
+    mv ~/{config,support,CREDITS.md,FAQ.md,LICENSE,README.md,package.json,yarn.lock} $out
+
+    mkdir -p $cli/bin
+    mv ~/apps/peertube-cli/{dist,node_modules,package.json,yarn.lock} $cli
+    ln -s $cli/dist/peertube.js $cli/bin/peertube-cli
+
+    mkdir -p $runner/bin
+    mv ~/apps/peertube-runner/{dist,node_modules,package.json,yarn.lock} $runner
+    ln -s $runner/dist/peertube-runner.js $runner/bin/peertube-runner
 
     # Create static gzip and brotli files
     find $out/client/dist -type f -regextype posix-extended -iregex '.*\.(css|eot|html|js|json|svg|webmanifest|xlf)' | while read file; do
diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix
index e99593bd88836..603b8332776aa 100644
--- a/pkgs/servers/redpanda/default.nix
+++ b/pkgs/servers/redpanda/default.nix
@@ -7,12 +7,12 @@
 , stdenv
 }:
 let
-  version = "23.3.9";
+  version = "23.3.10";
   src = fetchFromGitHub {
     owner = "redpanda-data";
     repo = "redpanda";
     rev = "v${version}";
-    sha256 = "sha256-CvHAjUwW1pkagebZQRXY51DazFCWRCD1seB46AwDVX8=";
+    sha256 = "sha256-PW1L+JwKnfeGFqXo+PTuzJS2FfkcoCU+xFjIt6zhn/M=";
   };
   server = callPackage ./server.nix { inherit src version; };
 in
@@ -21,7 +21,7 @@ buildGoModule rec {
   inherit doCheck src version;
   modRoot = "./src/go/rpk";
   runVend = false;
-  vendorHash = "sha256-qjX0DVAZqr7Ec1dFs4zBlDpu69IkhgLkvy4FA7br7bk=";
+  vendorHash = "sha256-sN21Y1e08gG8z/RfYIPGEeWW58YH66uB+16b2Bzb/3I=";
 
   ldflags = [
     ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"''
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index 0ffa7871bd88d..ea8715fa1da6a 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -15,7 +15,7 @@
 , stdenv
 }:
 let
-  version = "2.0-1382";
+  version = "2.0-1388";
   urlVersion = builtins.replaceStrings [ "." "-" ] [ "00" "0" ] version;
 in
 stdenv.mkDerivation {
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download.roonlabs.com/updates/production/RoonServer_linuxx64_${urlVersion}.tar.bz2";
-    hash = "sha256-KOZkTsQrUYh3geezsA1h2ZcU3Ns/v67iD1QNWalA6H4=";
+    hash = "sha256-FH5edAtPS7qPtShGz1paEmL1O5xDmCLTRvEWFPiiVjg=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/servers/search/quickwit/default.nix b/pkgs/servers/search/quickwit/default.nix
index f4d75be434ecb..5e205b40bac5d 100644
--- a/pkgs/servers/search/quickwit/default.nix
+++ b/pkgs/servers/search/quickwit/default.nix
@@ -10,7 +10,7 @@
 
 let
   pname = "quickwit";
-  version = "0.6.4";
+  version = "0.8.0";
 in
 rustPlatform.buildRustPackage rec {
   inherit pname version;
@@ -19,16 +19,16 @@ rustPlatform.buildRustPackage rec {
     owner = "quickwit-oss";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-stlm3oDMQVoMza3s4JApynXbzhrarfXw3uAxGMZQJqs=";
+    hash = "sha256-FZVGQfDuQYIdRnCsBZvXeLbJBdcLugZeHNm+kf6L9SY=";
   };
 
   postPatch = ''
     substituteInPlace ./quickwit-ingest/build.rs \
-      --replace '&[]' '&["."]'
+      --replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
     substituteInPlace ./quickwit-codegen/example/build.rs \
-      --replace '&[]' '&["."]'
+      --replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
     substituteInPlace ./quickwit-proto/build.rs \
-      --replace '&[]' '&["."]'
+      --replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
   '';
 
   sourceRoot = "${src.name}/quickwit";
@@ -40,9 +40,9 @@ rustPlatform.buildRustPackage rec {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "chitchat-0.5.0" = "sha256-gGWMzTzQNb9JXSbPIanMJpEKhKen1KsIrWQz6wvypDY=";
-      "ownedbytes-0.5.0" = "sha256-ZuWwj5EzDm4YOUU/MhmR7CBOHM444ljBFSkC+wLBia4=";
-      "path-0.1.0" = "sha256-f+Iix+YuKy45zoQXH7ctzANaL96s7HNUBOhcM1ZV0Ko=";
+      "chitchat-0.8.0" = "sha256-cjwKaBXoztYUXgnJvtFH+OSQU6tl2U3zKFWX324+9wo=";
+      "mrecordlog-0.4.0" = "sha256-9LIVs+BqK9FLSfHL3vm9LL+/FXIXJ6v617QLv4luQik=";
+      "ownedbytes-0.6.0" = "sha256-in18/NYYIgUiZ9sm8NgJlebWidRp34DR7AhOD1Nh0aw=";
       "pulsar-5.0.2" = "sha256-j7wpsAro6x4fk3pvSL4fxLkddJFq8duZ7jDj0Edf3YQ=";
       "sasl2-sys-0.1.20+2.1.28" = "sha256-u4BsfmTDFxuY3i1amLCsr7MDv356YPThMHclura0Sxs=";
       "whichlang-0.1.0" = "sha256-7AvLGjtWHjG0TnZdg9p5D+O0H19uo2sqPxJMn6mOU0k=";
diff --git a/pkgs/servers/search/weaviate/default.nix b/pkgs/servers/search/weaviate/default.nix
index 75f9e700cc0fd..c465125cb0b8c 100644
--- a/pkgs/servers/search/weaviate/default.nix
+++ b/pkgs/servers/search/weaviate/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "weaviate";
-  version = "1.24.4";
+  version = "1.24.6";
 
   src = fetchFromGitHub {
     owner = "weaviate";
     repo = "weaviate";
     rev = "v${version}";
-    hash = "sha256-kovhusZ/4/wLr8FeBY6jBPdD1V718yI41fTjbtjGleM=";
+    hash = "sha256-1IwLHSQxCSGLnva37JNIfaSzVBRAPNw/RYvx6ksFEFU=";
   };
 
-  vendorHash = "sha256-0CPdBrEjBJiX/Fv0DhFaZqkixuEPW2Pttl5wCNxieYc=";
+  vendorHash = "sha256-DMzwIxtF267C2OLyVdZ6CrCz44sy6ZeKL2qh8AkhS2I=";
 
   subPackages = [ "cmd/weaviate-server" ];
 
diff --git a/pkgs/servers/snac2/default.nix b/pkgs/servers/snac2/default.nix
index 72a06dc0dfc25..5b0b09afda8eb 100644
--- a/pkgs/servers/snac2/default.nix
+++ b/pkgs/servers/snac2/default.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "snac2";
-  version = "2.49";
+  version = "2.50";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "grunfink";
     repo = pname;
     rev = version;
-    hash = "sha256-8hIwm/CCghzbLtHhCqnnc3HELJ8KYwFlICqBTKaUb6U=";
+    hash = "sha256-FtSJVqbzUG4XYmfpeZ1tNwudcUfvLF426cTRXpqy5BQ=";
   };
 
   buildInputs = [ curl openssl ];
diff --git a/pkgs/servers/sql/postgresql/ext/lantern.nix b/pkgs/servers/sql/postgresql/ext/lantern.nix
index bd5f1098f8d66..2d30227ed5a5d 100644
--- a/pkgs/servers/sql/postgresql/ext/lantern.nix
+++ b/pkgs/servers/sql/postgresql/ext/lantern.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lantern";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "lanterndata";
     repo = "lantern";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-UP3txEBBJV/iOOBDVpRCrsoiAp6QEOHTomlLmbeTQdU=";
+    hash = "sha256-crN1KEzhiRLhQbv2O1vvjtHDV41yLyrwDpHa7mUFW64=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
index 323f8a4ec0901..d0a69d524c83f 100644
--- a/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "pgrouting";
-  version = "3.6.1";
+  version = "3.6.2";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ postgresql boost ];
 
   src = fetchFromGitHub {
     owner  = "pgRouting";
-    repo   = pname;
+    repo   = "pgrouting";
     rev    = "v${version}";
-    hash   = "sha256-DyrBVGBLUkg0ODuHV3mCkyod2/hEtpZfLSvnrEQObaI=";
+    hash   = "sha256-r+OkhieKTiOfYSnDbiy3p8V8cgb8I1+bneFwItDfDYo=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
index ac6f0e9487228..9b990d7048e79 100644
--- a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
+++ b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plpgsql-check";
-  version = "2.7.4";
+  version = "2.7.5";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = "plpgsql_check";
     rev = "v${version}";
-    hash = "sha256-qPYH6i8XJZVH+5zM/gozf+0Kts/Tzv6fRWkayGEe+5U=";
+    hash = "sha256-CD/G/wX6o+mC6gowlpFe1DdJWyh3cB9wxSsW2GXrENE=";
   };
 
   buildInputs = [ postgresql ];
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 4e6976d5310d3..7da355cf4a92f 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -12,7 +12,7 @@
 }:
 
 let
-  version = "1.62.0";
+  version = "1.62.1";
 in
 buildGoModule {
   pname = "tailscale";
@@ -22,7 +22,7 @@ buildGoModule {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    hash = "sha256-qotoCKUb5INgdSELvJpDaDvCuzVqet5zeIazzRnYoqo=";
+    hash = "sha256-gV1k+8n6vuL9q4hNaMdQLf6083Em+CC7/uTdUpehbUU=";
   };
   vendorHash = "sha256-jyRjT/CQBlmjHzilxJvMuzZQlGyJB4X/yISgWjBVDxc=";
 
diff --git a/pkgs/servers/web-apps/mediawiki/default.nix b/pkgs/servers/web-apps/mediawiki/default.nix
index 23f0e6c2153c7..bab57f2576833 100644
--- a/pkgs/servers/web-apps/mediawiki/default.nix
+++ b/pkgs/servers/web-apps/mediawiki/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "mediawiki";
-  version = "1.41.0";
+  version = "1.41.1";
 
   src = fetchurl {
     url = "https://releases.wikimedia.org/mediawiki/${lib.versions.majorMinor version}/mediawiki-${version}.tar.gz";
-    hash = "sha256-84Qrcqp6JYiPHsYyMj3YkEF3OaEg2VHEhfhQ4MzLQhs=";
+    hash = "sha256-TguqlTuF6U0xBAyyUSCrxgb6hpsuMxJr37t/xhPoxLI=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/web-apps/wordpress/packages/README.md b/pkgs/servers/web-apps/wordpress/packages/README.md
index 6ca50e1d9c4af..814ed8d0468eb 100644
--- a/pkgs/servers/web-apps/wordpress/packages/README.md
+++ b/pkgs/servers/web-apps/wordpress/packages/README.md
@@ -29,18 +29,20 @@ After that you can commit and submit the changes.
 The plugins will be available in the namespace `wordpressPackages.plugins`.
 Using it together with the Wordpress module could look like this:
 
-```
-services.wordpress = {
-  sites."blog.${config.networking.domain}" = {
-    plugins = with pkgs.wordpressPackages.plugins; [
-      anti-spam-bee
-      code-syntax-block
-      cookie-notice
-      lightbox-with-photoswipe
-      wp-gdpr-compliance
-    ];
+```nix
+{
+  services.wordpress = {
+    sites."blog.${config.networking.domain}" = {
+      plugins = with pkgs.wordpressPackages.plugins; [
+        anti-spam-bee
+        code-syntax-block
+        cookie-notice
+        lightbox-with-photoswipe
+        wp-gdpr-compliance
+      ];
+    };
   };
-};
+}
 ```
 
 The same scheme applies to `themes` and `languages`.
diff --git a/pkgs/shells/fish/plugins/wakatime-fish.nix b/pkgs/shells/fish/plugins/wakatime-fish.nix
index 3bd6585d19cae..70dcb140970a8 100644
--- a/pkgs/shells/fish/plugins/wakatime-fish.nix
+++ b/pkgs/shells/fish/plugins/wakatime-fish.nix
@@ -6,13 +6,13 @@
 
 buildFishPlugin rec {
   pname = "wakatime-fish";
-  version = "0.0.3";
+  version = "0.0.5";
 
   src = fetchFromGitHub {
     owner = "ik11235";
     repo = "wakatime.fish";
     rev = "v${version}";
-    hash = "sha256-t0b8jvkNU7agF0A8YkwQ57qGGqcYJF7l9eNr12j2ZQ0=";
+    hash = "sha256-BYDff4OP4Sg5I7p0GviZKSDulx468ePZigigyTdtkqM=";
   };
 
   preFixup = ''
diff --git a/pkgs/shells/fzf-git-sh/default.nix b/pkgs/shells/fzf-git-sh/default.nix
index 8d7ce5d1e0f70..e9cda521fb1db 100644
--- a/pkgs/shells/fzf-git-sh/default.nix
+++ b/pkgs/shells/fzf-git-sh/default.nix
@@ -39,12 +39,12 @@ stdenv.mkDerivation rec {
       -e "s,\buniq\b,${coreutils}/bin/uniq," \
       -e "s,\bcolumn\b,${util-linux}/bin/column," \
       -e "s,\bfzf-tmux\b,${fzf}/bin/fzf-tmux," \
-      -e "/display-message/!s,\bgit\b,${git}/bin/git,g" \
       -e "s,\bgrep\b,${gnugrep}/bin/grep," \
       -e "s,\bsed\b,${gnused}/bin/sed," \
       -e "/fzf-tmux/!s,\btmux\b,${tmux}/bin/tmux," \
       -e "s,\bxargs\b,${findutils}/bin/xargs," \
       -e "s,\bxdg-open\b,${xdg-utils}/bin/xdg-open," \
+      -e "/display-message\|fzf-git-\$o-widget\|\burl=\|\$remote_url =~ /!s,\bgit\b,${git}/bin/git,g" \
       -e "s,__fzf_git=.*BASH_SOURCE.*,__fzf_git=$out/share/${pname}/fzf-git.sh," \
       -e "/__fzf_git=.*readlink.*/d" \
       fzf-git.sh
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index 63c853e3dc317..1cd1ae6dd72e4 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -29,6 +29,14 @@ let
     toList
     isList
     elem
+    ;
+
+  inherit (lib.meta)
+    availableOn
+  ;
+
+  inherit (lib.generators)
+    toPretty
   ;
 
   # If we're in hydra, we can dispense with the more verbose error
@@ -84,7 +92,7 @@ let
     # was `licenses: lib.lists.any (l: !l.free or true) licenses;`
     # which always evaluates to `!true` for strings.
     else if isString licenses then false
-    else lib.lists.any (l: !l.free or true) licenses;
+    else any (l: !l.free or true) licenses;
 
   hasUnfreeLicense = attrs: hasLicense attrs && isUnfree attrs.meta.license;
 
@@ -94,7 +102,7 @@ let
   isMarkedBroken = attrs: attrs.meta.broken or false;
 
   hasUnsupportedPlatform =
-    pkg: !(lib.meta.availableOn hostPlatform pkg);
+    pkg: !(availableOn hostPlatform pkg);
 
   isMarkedInsecure = attrs: (attrs.meta.knownVulnerabilities or []) != [];
 
@@ -360,7 +368,7 @@ let
         [ ]
       else
         [ "key 'meta.${k}' has invalid value; expected ${metaTypes.${k}.name}, got\n    ${
-          lib.generators.toPretty { indent = "    "; } v
+          toPretty { indent = "    "; } v
         }" ]
     else
       [ "key 'meta.${k}' is unrecognized; expected one of: \n  [${concatMapStringsSep ", " (x: "'${x}'") (attrNames metaTypes)}]" ];
@@ -410,7 +418,7 @@ let
     else if !allowBroken && attrs.meta.broken or false then
       { valid = "no"; reason = "broken"; errormsg = "is marked as broken"; }
     else if !allowUnsupportedSystem && hasUnsupportedPlatform attrs then
-      let toPretty = lib.generators.toPretty {
+      let toPretty' = toPretty {
             allowPrettyValues = true;
             indent = "  ";
           };
@@ -418,8 +426,8 @@ let
            errormsg = ''
              is not available on the requested hostPlatform:
                hostPlatform.config = "${hostPlatform.config}"
-               package.meta.platforms = ${toPretty (attrs.meta.platforms or [])}
-               package.meta.badPlatforms = ${toPretty (attrs.meta.badPlatforms or [])}
+               package.meta.platforms = ${toPretty' (attrs.meta.platforms or [])}
+               package.meta.badPlatforms = ${toPretty' (attrs.meta.badPlatforms or [])}
             '';
          }
     else if !(hasAllowedInsecure attrs) then
@@ -443,6 +451,7 @@ let
   commonMeta = { validity, attrs, pos ? null, references ? [ ] }:
     let
       outputs = attrs.outputs or [ "out" ];
+      hasOutput = out: builtins.elem out outputs;
     in
     {
       # `name` derivation attribute includes cross-compilation cruft,
@@ -461,10 +470,13 @@ let
       #   Services and users should specify outputs explicitly,
       #   unless they are comfortable with this default.
       outputsToInstall =
-        let
-          hasOutput = out: builtins.elem out outputs;
-        in
-        [ (findFirst hasOutput null ([ "bin" "out" ] ++ outputs)) ]
+        [
+          (
+            if hasOutput "bin" then "bin"
+            else if hasOutput "out" then "out"
+            else findFirst hasOutput null outputs
+          )
+        ]
         ++ optional (hasOutput "man") "man";
     }
     // attrs.meta or { }
diff --git a/pkgs/test/texlive/default.nix b/pkgs/test/texlive/default.nix
index 5f70675439323..e363b5776e890 100644
--- a/pkgs/test/texlive/default.nix
+++ b/pkgs/test/texlive/default.nix
@@ -81,6 +81,14 @@ rec {
     name = "texlive-test-context";
     format = "context";
     texLive = texliveConTeXt;
+    # check that the PDF has been created: we have hit cases of context
+    # failing with exit status 0 due to a misconfigured texlive
+    postTest = ''
+      if [[ ! -f "$name".pdf ]] ; then
+        echo "ConTeXt test failed: file '$name.pdf' not found"
+        exit 1
+      fi
+    '';
     text = ''
       \starttext
       \startsection[title={ConTeXt test document}]
@@ -333,18 +341,6 @@ rec {
     done
   '';
 
-  # test that fmtutil.cnf is fully regenerated on scheme-full
-  fmtutilCnf = runCommand "texlive-test-fmtutil.cnf" {
-    kpathsea = texlive.pkgs.kpathsea.tex;
-    schemeFull = texliveFull;
-  } ''
-    mkdir -p "$out"
-
-    diff --ignore-matching-lines='^# Generated by ' -u \
-      {"$kpathsea","$schemeFull"/share/texmf-var}/web2c/fmtutil.cnf \
-      | tee "$out/fmtutil.cnf.patch"
-  '';
-
   # verify that the restricted mode gets enabled when
   # needed (detected by checking if it disallows --gscmd)
   repstopdf = runCommand "texlive-test-repstopdf" {
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 78a7c62e9f776..e4ca2a611c3fc 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.200";
+  version = "3.0.201";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-xUP7zEWq5zTNzDaazmsL2h4QznsE5K3Rzo08qctCA3M=";
+    sha256 = "sha256-gI+D65wBnuexSJF89KjWJ5p4RJXs64Zg23V9RGwUTws=";
   };
 
   vendorHash = "sha256-t9ukiREUEmW6KK7m5Uv5Ce6n/1GsBLom9H35eEyOBys=";
diff --git a/pkgs/tools/admin/fits-cloudctl/default.nix b/pkgs/tools/admin/fits-cloudctl/default.nix
index 0bdfbacab571c..2e508323d75ec 100644
--- a/pkgs/tools/admin/fits-cloudctl/default.nix
+++ b/pkgs/tools/admin/fits-cloudctl/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "fits-cloudctl";
-  version = "0.12.16";
+  version = "0.12.17";
 
   src = fetchFromGitHub {
     owner = "fi-ts";
     repo = "cloudctl";
     rev = "v${version}";
-    hash = "sha256-5Uf4glKRbxlC7ZdBW51Ter9SBt5rwas+eD4KYWOqPss=";
+    hash = "sha256-nKVCYgecrjCfAx+9aiFJYq2m/E1yFh1Ie2vK4HqusUo=";
   };
 
-  vendorHash = "sha256-GFMnBd5HmjFcMhayL1enQuNxXyVdLb6RLakHNxguXks=";
+  vendorHash = "sha256-xcwJ1tEOCF9BGjcWZPVY/IZkNc2TUtufa7zQfIU4CQQ=";
 
   meta = with lib; {
     description = "Command-line client for FI-TS Finance Cloud Native services";
diff --git a/pkgs/tools/admin/granted/default.nix b/pkgs/tools/admin/granted/default.nix
index 4761d49e8becd..5b428505f82bc 100644
--- a/pkgs/tools/admin/granted/default.nix
+++ b/pkgs/tools/admin/granted/default.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.21.1";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aHqMsEqlD/a/qQEjRKQU/+9Ov5BTnptExuO0eEXvf9k=";
+    sha256 = "sha256-cN7c5oJAP6ZHjq8o6PZHv40fdjCJtkGbPS2Vh+EWDHw=";
   };
 
-  vendorHash = "sha256-I4sds5r61oGop+EtOpDgTYwLbSVBBSBmNbRU56sCYjo=";
+  vendorHash = "sha256-lVP32y+XCPaVp8FtnN/13wBXTPQDHupaVw0T/nWtmYo=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/admin/pulumi-bin/data.nix b/pkgs/tools/admin/pulumi-bin/data.nix
index fa059873593ff..2c55ebde5b818 100644
--- a/pkgs/tools/admin/pulumi-bin/data.nix
+++ b/pkgs/tools/admin/pulumi-bin/data.nix
@@ -1,36 +1,36 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.111.1";
+  version = "3.112.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-linux-x64.tar.gz";
-        sha256 = "1hkj2dkpxp2migg1xh3vk42k1yq7y1bhchvkjd3vxbsd86llkwjz";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.112.0-linux-x64.tar.gz";
+        sha256 = "1nlah21z2jm4yq3irqa1py9chwklzxdinpvlnhavnfh94rfrfanf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-linux-amd64.tar.gz";
-        sha256 = "1d6ipvy3s98ac92np4s5czqbsxv9pvzw2nv4wgix01lc9ayd9x77";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.13.0-linux-amd64.tar.gz";
+        sha256 = "1brj8br2xwbsc36vzwq43rznic9v7jy5m16f4l5knisxxjlizp0v";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.4.0-linux-amd64.tar.gz";
         sha256 = "17c5960kcjzz3hl4nwh41qkpj67072cfs2bxbqin9b2b33x9bfvy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-linux-amd64.tar.gz";
-        sha256 = "10i4fw6f21mf0mrmhjmjhbf03p5lqp8lvdkasnmdkq52j0s1qrr2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.51.0-linux-amd64.tar.gz";
+        sha256 = "0jcamc1askkwnml9f6nhvxaqjs23cxgzpy1vvpfywlz0sn87fdxc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-linux-amd64.tar.gz";
-        sha256 = "19c63g7nahvpr73js9r3f4n6y7j3zxywrbzhnvnzysix05c23n3z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.4.2-linux-amd64.tar.gz";
+        sha256 = "1n4k7ni6bqc0vlk04sswp9zc3sgy3bxzrj060hwssq9c2nkzlf1d";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-linux-amd64.tar.gz";
         sha256 = "0984gpc5ds1bycvl1jwd3ifl6933vkd32w2mbyn3ik13wzxqm3q0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-linux-amd64.tar.gz";
-        sha256 = "0dcyg4d50x5fkzqmnhw7mm8bgcs2zxph6bdjfdq2cxi28nzzg1ac";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.28.2-linux-amd64.tar.gz";
+        sha256 = "1bdig7fc2dh5rc1m1i7q74m1kpal8cykhifxp71pg9qx3ddck8sf";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-linux-amd64.tar.gz";
@@ -41,16 +41,16 @@
         sha256 = "1d6i9p3lw2hzn2q7ja3cqh00vx7ihm5lhs6pg9468hag8wvk230g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-linux-amd64.tar.gz";
-        sha256 = "04jvyc63r7lxiy55nvh06ma8ndrv0b4kb3lbzz4djdfa613xzwjd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.70.0-linux-amd64.tar.gz";
+        sha256 = "10ijjwqabigr00qmzks4b4d5h8vq0w7w718gy2m5cpx9qm2yfmpy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-linux-amd64.tar.gz";
-        sha256 = "04b5b2dykbmm35j4vkqczh2pbcsq7lby905a14f73fh69lscs00x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.24.0-linux-amd64.tar.gz";
+        sha256 = "0ag8iqb9qd9wsm5kna9q8na12bz1zs4bpznbfs2sl8br26mvjwsr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-linux-amd64.tar.gz";
-        sha256 = "1rjh73d5jq2p9ll6xann3mns4dsnb8jgnkndjxbgcpv45i0k1ih6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-amd64.tar.gz";
+        sha256 = "13gbn5jslqcm43ppp4015f7gcqpcvv7bqxydg41zq4xchiqrbwh9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-linux-amd64.tar.gz";
@@ -61,8 +61,8 @@
         sha256 = "1p2xh52nrgkxzdg7pyyylf4zkh8cyn1663mdb8n93rx8fczq0cpl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-linux-amd64.tar.gz";
-        sha256 = "15alxvj14xwbwrds9sc4pjycjrm4bivxjlby8ja34jqw0rzfafm0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-amd64.tar.gz";
+        sha256 = "1bdmyrfgszqb9rmacq3bj0qqybi4ck336cgdhg8bk4dbjx0x4sah";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-amd64.tar.gz";
@@ -73,44 +73,44 @@
         sha256 = "0vjd2y8h4m4j7v61wqwzrdgchqpz1nlbrvvrah06k8l9ci2hpml1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-linux-amd64.tar.gz";
-        sha256 = "1wjhym8mz2nbw458g72zwsnm078iwyvcidx38wpc4y32nfx07082";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.16.0-linux-amd64.tar.gz";
+        sha256 = "0lr317d9qyp86sqwwipm65v2zjd9yffxwpwdjp5wvnq6z9simwq1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-linux-amd64.tar.gz";
-        sha256 = "1mixfyimim13iwf17rrf76bh7jjr64n58sbcnaikpg2kq63ab2v2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-amd64.tar.gz";
+        sha256 = "00qdx09p6lh91ib99g54jk8sfy48f71j98gkqsjaipf2x7bl9g8j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-linux-amd64.tar.gz";
-        sha256 = "1bl8idjznas3srl8hbw28ffv0pz6fzkg0vkllpgc0xnjggy52bba";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.10.0-linux-amd64.tar.gz";
+        sha256 = "0akczw3im97wr92n7mhaswjmm21hdllzkaax1dj3992x261phmxz";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-amd64.tar.gz";
         sha256 = "1zra1ck64gs4nwqf62ksfmpbx24lxw6vsgi47j4v8q051m89fgq3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-linux-amd64.tar.gz";
-        sha256 = "1i4hgvx94jdx5np5cy7pm36vz8l6hkn90pnhi1knwmak63mf4i0i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.18.0-linux-amd64.tar.gz";
+        sha256 = "0amqssx1kr1744fr07pjyj374zlx9i2i0b28ylivwxmw0h739zys";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-linux-amd64.tar.gz";
         sha256 = "037ryw3w82pg9jvym5ha2l65gx693mn42ffqg3nb1bh8pc5m688d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-linux-amd64.tar.gz";
-        sha256 = "08r17092rcvpqsmi6s2khjql71fbgrwyslknirdyh77ix7486kgm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.17.0-linux-amd64.tar.gz";
+        sha256 = "159smvq9yscs3ks0f32rq4ff257ym7n47pn0vqhdsyndiy7qsly8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-linux-amd64.tar.gz";
-        sha256 = "1k2pa1wbh49qkg99khdyzj1qfjld74ijzn4y94c27vjsm9wmn7ka";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.2-linux-amd64.tar.gz";
+        sha256 = "1p4wmjlcds0pa1gylw9xrl39msk91crkk20nr7n3mldd9zar2njg";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.3-linux-amd64.tar.gz";
         sha256 = "010x3wa1c3cjccli0b1y25xd6jkvhdcxahfwda8jv31b5ilsv3zx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.1-linux-amd64.tar.gz";
-        sha256 = "135br9q8f1ic0xvrhx9yii5giq1h5qzlyb5kyvnyb3hwx49f1ik6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-amd64.tar.gz";
+        sha256 = "1cw4ajl3h9xxysgyf9n1n8n9cdzwc7kpb263hs7k8i0yk1vfvcsx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.0-linux-amd64.tar.gz";
@@ -125,8 +125,8 @@
         sha256 = "1fihr9kilipd3lycl5m0vrf8l8658b1pm8mywsnk5wlksk1bf665";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-linux-amd64.tar.gz";
-        sha256 = "0qmh81kvqprmp1shml183qc6mdq76p6an7cm0b1qg7zyabg7qbrz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.71.0-linux-amd64.tar.gz";
+        sha256 = "00j57x7rap6fbc9h67f44jjnds7asrlb3lqxwcfis77wwpxlz7dm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-linux-amd64.tar.gz";
@@ -137,49 +137,58 @@
         sha256 = "19z0adq7dy7cvfkbi8xl3wq1shm4rjswjslnfq5fflyky8pgjyy3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.1-linux-amd64.tar.gz";
-        sha256 = "1d4qdrbqsn62116lg0j82andxdrcdrcambahxp3084b6icacx3l9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.2-linux-amd64.tar.gz";
+        sha256 = "03gwkywb9gb9456mfm1rp690g44rhk3w4awr4hb0bl7m8ky8h6id";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.20.0-linux-amd64.tar.gz";
-        sha256 = "1nc72m6d0kixs0mih83f6bad2dwwmwz89r6w8dkhi0071bg28lgc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.0.0-linux-amd64.tar.gz";
+        sha256 = "11d2i915z91rzh42pk9j7dvri3f00ck65p2fy8l5kicvalfnhfi2";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-linux-amd64.tar.gz";
         sha256 = "0w7cgafkz1r55bz8n51v2rqhmmxzrf7ma60awzlfd2apyihghxyp";
       }
-      # pulumi-resource-vsphere skipped (does not exist on remote)
-      # pulumi-resource-wavefront skipped (does not exist on remote)
-      # pulumi-resource-yandex skipped (does not exist on remote)
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.0-linux-amd64.tar.gz";
+        sha256 = "0j3g5d94x5hawlrvr2iya4l0lsqjvszkgrgwppna6cn5mqjpx7v0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.1-linux-amd64.tar.gz";
+        sha256 = "0ghxcipyz6j3fmawi5bpkz1mdpcdg046nib2w90r26dbidi4l3f3";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-amd64.tar.gz";
+        sha256 = "14qsnjafhd8ppachxr7j9541p5rbf1cakqlr7mra86fli1r49z9p";
+      }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-darwin-x64.tar.gz";
-        sha256 = "0vqwgx29z4rpmlxjqjxaixhijha6si0y01ibnr4wiwmm4y6ls578";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.112.0-darwin-x64.tar.gz";
+        sha256 = "1bzifd8482saq8gb35qq8375dwwxqwdvc7wdqw3gvzkn6zhx1gf8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-darwin-amd64.tar.gz";
-        sha256 = "1jddh0c5h0br89vzdhb93rcxdilis79z1p303l886y8l5sdlbk9d";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.13.0-darwin-amd64.tar.gz";
+        sha256 = "10n8lw5m8b8q3d1isldqbq2525la170s0qs260j8nhf1dwyvryhm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.4.0-darwin-amd64.tar.gz";
         sha256 = "05x8allllb6spjkjf9lchk1pyprj356s0kgy2rdz24knvr2rxr3r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-darwin-amd64.tar.gz";
-        sha256 = "1mpvr73nnaznm79by25za2lg6yqr25kz888fsyr0f26fjg1pyayz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.51.0-darwin-amd64.tar.gz";
+        sha256 = "1wwpg5fgvd9g374m24ihqvqcya6a86jc8z5avc72maw22039430p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-darwin-amd64.tar.gz";
-        sha256 = "0zdvggqmg6ddgyhnb88w97c53kh5mc885478g1ckbryxzsqhasi0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.4.2-darwin-amd64.tar.gz";
+        sha256 = "0kzi2w364jjqfkbag8n045ahzl2ls9dlwb3j3rsxbh857yzybj45";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-darwin-amd64.tar.gz";
         sha256 = "0369vlly2x6sl59b4qha55yhhyjjpx38vlkmsbbqzla3da7zabf0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-darwin-amd64.tar.gz";
-        sha256 = "0xx4yw5zl4lnswnz4w4qrxgdiy400c8p7bsr1rqz1zmc9bqm43ng";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.28.2-darwin-amd64.tar.gz";
+        sha256 = "1fxffr1gs79q7jzm1280hl9bjvn0lj3xvism9hg1245n9az3ja3z";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-darwin-amd64.tar.gz";
@@ -190,16 +199,16 @@
         sha256 = "1gzb7srxdzz1vhrzzzfxahkzr26b3smd62l70dwn605cich3vwyw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-darwin-amd64.tar.gz";
-        sha256 = "0iffp6czzks4ak979dcgg8cjvvhv5mh57cplk0aq79ssjhppsbcj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.70.0-darwin-amd64.tar.gz";
+        sha256 = "0cdywjswf5mzlf079pvjy51qhxcc2sajpz3i7s4y047sbw6b5k8m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-darwin-amd64.tar.gz";
-        sha256 = "1a5i65hnssnpz7w6wwpljyjx55rc99ycn0ygswl56mfg2sv2yk0n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.24.0-darwin-amd64.tar.gz";
+        sha256 = "1d5pgj8bq7psia93ks99wwqdkgv8xjb8ilx0fyl54z4bywzdhz8k";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-darwin-amd64.tar.gz";
-        sha256 = "1bvwgn823zwqs8wmzwsxc0zf0pdmk7ykh5qvnffwrixvhmdx68a0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-amd64.tar.gz";
+        sha256 = "0ldyy3c6qapha189jpb0lrmwq8brz9hip3lkl16xihmwgxpakqv3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-darwin-amd64.tar.gz";
@@ -210,8 +219,8 @@
         sha256 = "1r09n56kc0ada99n1g93i23shi2csjia5jiq5jkzkb5wr0wg4syb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-darwin-amd64.tar.gz";
-        sha256 = "11ljzm0alsrz0y9kihw0rd62hpi68ka0n6b8c52rg3sv672acnb7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-amd64.tar.gz";
+        sha256 = "00x85ppnc8z44npvp8h0n86839vilwyvr33dcx2zbq26d5g8dln4";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-amd64.tar.gz";
@@ -222,44 +231,44 @@
         sha256 = "1c5wf2ksp7f02x82swjd7gq1d072j4zsyiyllrrazyvv8310zyig";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-darwin-amd64.tar.gz";
-        sha256 = "1gl8f08mgar8sr94nxarnpd6iyg1xkkdmrvzzpxiz5dr2lxw8nig";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.16.0-darwin-amd64.tar.gz";
+        sha256 = "025j84z08lj6y79rl0lzrdnjc258kr9klwv37n4bv6m8zwc5lq8n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-darwin-amd64.tar.gz";
-        sha256 = "17d2x277i779cympfk2gafn6725q77lbxkj3naymhipix57ii5za";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-amd64.tar.gz";
+        sha256 = "0qp2mva4rqrahpb5bx02grxly9zq8s676hin2r161y0wy7afdgih";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-darwin-amd64.tar.gz";
-        sha256 = "028085idjq4023j91j4pwdvrn7nak5hw76sy22fahp59my6lj3d8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.10.0-darwin-amd64.tar.gz";
+        sha256 = "09bi9dfa8snfsn9r5a62vqxffsb6gaz8yccb91xr44dq4jmm1f44";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-amd64.tar.gz";
         sha256 = "0ddd0pgpyywq291r9q8w6bn41r2px595017iihx4n2cnb1c4v6d5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-darwin-amd64.tar.gz";
-        sha256 = "1agjwhpn7mkz1gynb4a58q66xcbqnyh79b0cj4l7xpmnv6xs7vv3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.18.0-darwin-amd64.tar.gz";
+        sha256 = "0k1f4rimh8j725yv6nfvgm41lgkmmpf932kpkas6g3wiqks6fdpj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-darwin-amd64.tar.gz";
         sha256 = "0zydvslq83rr4ihrpxp7gyks08cgmdqwhxcjfyrr1yc24vcscg8x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-darwin-amd64.tar.gz";
-        sha256 = "0c0ns6r3m2s6ibw4bis9wxbg4wx2l3c87wbxlss7dfv9li32ryln";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.17.0-darwin-amd64.tar.gz";
+        sha256 = "1yrcg8wrr0ikpg2za2a4l8zcix4r5kwbqhcw3v65saydlwqa29ny";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-darwin-amd64.tar.gz";
-        sha256 = "063jm09bpshlc86svwacafjbc6iv09n81jx4hmcwwgcic6pwb1ic";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.2-darwin-amd64.tar.gz";
+        sha256 = "1qbxbnp0yxw2w5pgpci9v991xa9zj3xsk93a31hdpnkxfz9aw8l4";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.3-darwin-amd64.tar.gz";
         sha256 = "1hrc3lrn7ry6p44f0d287z5nw754rwk0xlhr8zj5vx3xyx8jws34";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.1-darwin-amd64.tar.gz";
-        sha256 = "1wcripnsgxwlj7s6mv726kxrf689xlc7zxqmra5a1zdmfqskmq4k";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-amd64.tar.gz";
+        sha256 = "0h71g1mmmz70bx5zs4jryngm2nghi5fjbp4ldwjhx4ymbf7ksm2w";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.0-darwin-amd64.tar.gz";
@@ -274,8 +283,8 @@
         sha256 = "0n0yd8hg10qfxvb6y5hci60n3520w5pidjzw43ih35dj84f0y23s";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-darwin-amd64.tar.gz";
-        sha256 = "0mjcsgcwb8mqy5si5kj8l96ig6ccjwfplmr8kwrg22bj7g7vidlz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.71.0-darwin-amd64.tar.gz";
+        sha256 = "02bj73adinnqxinnsdkncvc3yh95lax96n2g8fdammn06y718xsk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-darwin-amd64.tar.gz";
@@ -286,49 +295,58 @@
         sha256 = "10skdrdb9dsd4pkamwihf73laaif90dkfl8ixi6irf30rqihc2nf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.1-darwin-amd64.tar.gz";
-        sha256 = "1lcpc72bwxgqkzy26j1pr6774x3kqsxpfcimls1m54wq8ranlii7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.2-darwin-amd64.tar.gz";
+        sha256 = "0fqi83drpj5k5snms8863k4by9g7nl14zpvmjmriyjmmcd145f7a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.20.0-darwin-amd64.tar.gz";
-        sha256 = "1wgdn8zv3q4fn6730jfyb5x7rmb460plc4iddlsibnwnx0w5c3s5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.0.0-darwin-amd64.tar.gz";
+        sha256 = "1qcv4i37by3c9f8lbrzhakmx5r1dkkh6iqnzx9v550vbmnlaa40d";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-darwin-amd64.tar.gz";
         sha256 = "1pvbcyw1l2b27hn48klc2fj3is2y3z1dj90ac4kkqi2ag4xj45vx";
       }
-      # pulumi-resource-vsphere skipped (does not exist on remote)
-      # pulumi-resource-wavefront skipped (does not exist on remote)
-      # pulumi-resource-yandex skipped (does not exist on remote)
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.0-darwin-amd64.tar.gz";
+        sha256 = "0yfk80y2dm0rk06q5m5sc159gryxbxp1gmbi4iwjcrpdra6vbm9v";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.1-darwin-amd64.tar.gz";
+        sha256 = "1lypf3yisnf19ygkjy6fmdbzf4i4mi5jzq7yc16hrg3aq2g75rr5";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-amd64.tar.gz";
+        sha256 = "11wm9c125154brisncm9cgb41nbjl9q9h4bq6z0ym8v681qq0fc4";
+      }
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-linux-arm64.tar.gz";
-        sha256 = "0nahz89vw9gkgszdcv9v9d658x43jzvk547kq6jpsgnzjligf41q";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.112.0-linux-arm64.tar.gz";
+        sha256 = "05k0z838nf5c6g9cb5ydc1j3dsphj7w39nk59r6lnpb1c5zb2z6z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-linux-arm64.tar.gz";
-        sha256 = "0i6bp2i5h5yy3fwcq4rnjyl3mw4hj7wy5a99dxh0svqw0x30my4x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.13.0-linux-arm64.tar.gz";
+        sha256 = "0i58mkl9y2hygfdcw1z0fzi7g2h8mpyq2sv1p6a1wpzwsd939yjn";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.4.0-linux-arm64.tar.gz";
         sha256 = "0kb7hdciy8i91kmfndriav7sm05r1jkam7i634b5r6d7agdlvr2h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-linux-arm64.tar.gz";
-        sha256 = "0l34v4r0m8agc8iz06p5gdziavq6n6y8lzrhcs5pdawapynrll6r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.51.0-linux-arm64.tar.gz";
+        sha256 = "1y02q2sqqaf73rjvmw72izzvks99h6521dwcdp6ir2i9klyj6air";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-linux-arm64.tar.gz";
-        sha256 = "06sdqjplsqwspdx9b587ify0fsb2sgz2fcpf5ssmvv2ky0ng2mcc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.4.2-linux-arm64.tar.gz";
+        sha256 = "06l0wv1cwxvfkz1srh0q10s1gx21h4vb6r9a0qbwd19hh4wzkd0l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-linux-arm64.tar.gz";
         sha256 = "10iaa1w7a0xbp15hyfl3slksg7rss04jcchws1z3lqddfn5xdcf2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-linux-arm64.tar.gz";
-        sha256 = "1v3h9j9bxqnjg8fj4k75p96sglnnkw5jziyfvbzhcbd11fcvaffs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.28.2-linux-arm64.tar.gz";
+        sha256 = "1vhgh9k4fqvh513fdmfy2n0lrp93nvrri7x7gnx70y559pykq8ym";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-linux-arm64.tar.gz";
@@ -339,16 +357,16 @@
         sha256 = "0s4pxkj1fni8c0r8v8kqzl7agcy93m71l8kpmb3630q4syddzmqb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-linux-arm64.tar.gz";
-        sha256 = "0wak5h81wbjg7v5pjsj9614c0263a94qhhajfvk260m31xm34drc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.70.0-linux-arm64.tar.gz";
+        sha256 = "021ph400xrim7ksqg1677gx04kms0nffrr7bz396rmkwj97qhajh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-linux-arm64.tar.gz";
-        sha256 = "16alhhxl11xaygjsignk7qzq1vn7fi7vj0nxn5w9m9bsl74f6iak";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.24.0-linux-arm64.tar.gz";
+        sha256 = "0h0vl84lpjfrlzqf8dqwhwiimhl6y1lhp51lizwzfw3kyj7slc1g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-linux-arm64.tar.gz";
-        sha256 = "0jranh92131jny1s261flc19a30rgc0hf0xkz0k51cs713k3h6pn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-arm64.tar.gz";
+        sha256 = "03dx7sabps5dy79fwgp0msjbigaijxxjabdk2sprig6z25mvk91s";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-linux-arm64.tar.gz";
@@ -359,8 +377,8 @@
         sha256 = "1z0z7ksxbc8gil60c336hlpn13gxj49s9fcjsr1b4qx130ldccv3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-linux-arm64.tar.gz";
-        sha256 = "11qk7sgwm2pn906nimj3zn0wlskvn5356zqfchrww9f9xxrnqg1k";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-arm64.tar.gz";
+        sha256 = "1bs2mcfg99an9bvv77vzh0m32dbs7x79dncgqk1dyvzq2z3d44p4";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-arm64.tar.gz";
@@ -371,44 +389,44 @@
         sha256 = "1cx7b7nxmjng8pff84yf0jhdmnmld5g09a80999ah90p54xy4zww";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-linux-arm64.tar.gz";
-        sha256 = "1y8ky2ymrw6d71zqd61c2nn07qb3sc7vrksk6n1jpbpnn0rl0v99";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.16.0-linux-arm64.tar.gz";
+        sha256 = "108nrkskwl85jpppinx90zajd90zr5vqjpgi48jrihihwbfvxpms";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-linux-arm64.tar.gz";
-        sha256 = "1qs4lfis06wqmss27b3q68d76g3lxx0c1ipsg33lvmbqvyrxd18w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-arm64.tar.gz";
+        sha256 = "1495j84c92840h6w2rapag5698r6bm2mbcrwxgdnmnvc87r5kjms";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-linux-arm64.tar.gz";
-        sha256 = "186fjml7qwcw2rxgpw8ybazai6xsa574syd4xzg3y8p2sdv76018";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.10.0-linux-arm64.tar.gz";
+        sha256 = "0fbcms2vbx27sjr1qfr3qgdbipmqd5k6s52xfxkfwkys2lwq4xfr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-arm64.tar.gz";
         sha256 = "0d8m2krbzxjhfm82dgf8p4vm3kk9gk98l798q4ayjrddqqb4mxq4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-linux-arm64.tar.gz";
-        sha256 = "06a6iwc2xcppp26bmyxi0cxswmpxkpkk93zx4qcq9vhx2228fiq9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.18.0-linux-arm64.tar.gz";
+        sha256 = "1lhzfvnxlqzpmzwlnxk5j4zcf2n71igfb3i4f29yszg74a55ki5x";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-linux-arm64.tar.gz";
         sha256 = "1r8ld65774vm1gacbf26alin9pa0c69gj2829gvv8ihhfavrqnyi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-linux-arm64.tar.gz";
-        sha256 = "057gwjac2lkgrnpm0vg8z8dzg7n0jhyrdmq4c6djympc0hd6m20z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.17.0-linux-arm64.tar.gz";
+        sha256 = "0fpz717a4w72yx15w00s3li96l7s2fjwx2q1vd9f87zya1flpfhx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-linux-arm64.tar.gz";
-        sha256 = "1cz4xvvdj0kr63a2x21zbjm4viw92k2920ljnqsfv2wr2f03yk6s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.2-linux-arm64.tar.gz";
+        sha256 = "0i2kbzxf6dm7znn6h6hjshvrvj4gp1sl8rh3zb8cn2pz23vk34c6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.3-linux-arm64.tar.gz";
         sha256 = "1czrp700a4sdlxij8xgsl595fzg1s0k3pwnrwa2bl41xws9p65zy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.1-linux-arm64.tar.gz";
-        sha256 = "17gbazfqs1f2m0h9awwqw14amxlxvl3zwhx3nbzh86my7gn3kjmv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-arm64.tar.gz";
+        sha256 = "0a0v0yj14fslncisvhfn8mlk009h7adkcszv6dlbzha46p4fl32a";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.0-linux-arm64.tar.gz";
@@ -423,8 +441,8 @@
         sha256 = "1ssm84izdqzaymw1w3q9b2lkw35brysii73xhw7dgcazhgagfd1w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-linux-arm64.tar.gz";
-        sha256 = "0ns90ky01kys22dwhkmb4dwax1gzyr8jclczx1fc5d9xvl5cssiy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.71.0-linux-arm64.tar.gz";
+        sha256 = "1qziz9la211x57018a89i5mfcripd2nb9kvykkvi9239xf0hjsml";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-linux-arm64.tar.gz";
@@ -435,49 +453,58 @@
         sha256 = "12b7k1d3jl2s6lg5izr38yaf8n1k7hd76pdy1d09wrv5l2hbn8zh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.1-linux-arm64.tar.gz";
-        sha256 = "17aqa1hy8ca0kdc6kljb76zk6fhxbh57v2k4jshj3jcgv6p4b4dg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.2-linux-arm64.tar.gz";
+        sha256 = "060pq8gygw0qikxvp2if46mdndnxlj9x0x81sw77hf43kn4llbnn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.20.0-linux-arm64.tar.gz";
-        sha256 = "0irp9vqikmmgcgzkca2z9nnak8ih73bbhs5576sf7y4132f4wvjj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.0.0-linux-arm64.tar.gz";
+        sha256 = "1c8p1jy7020nkvqf1xsai0ywbjz380clvfhhysjm87a4gw0k458n";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-linux-arm64.tar.gz";
         sha256 = "017ff9x7s4yvsrf4ypsyaz934r9jm954080gn5535w1694k96wbn";
       }
-      # pulumi-resource-vsphere skipped (does not exist on remote)
-      # pulumi-resource-wavefront skipped (does not exist on remote)
-      # pulumi-resource-yandex skipped (does not exist on remote)
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.0-linux-arm64.tar.gz";
+        sha256 = "0sgrb6h7d5myp1cy4i7fhhx718n4qx83hj561z98y5hvipg16bcx";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.1-linux-arm64.tar.gz";
+        sha256 = "08mxk5rccxsgvjcnfxwzcr8980gkg7mxfrzx3fyvcxmgvf3ykcn8";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-arm64.tar.gz";
+        sha256 = "0fd3hgvkr3ch2r5hpmi7h70w4hkbjdyc7z534h151pyc5ssxw8bd";
+      }
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-darwin-arm64.tar.gz";
-        sha256 = "0vs7mnp16bc9zj74v2ibn4nsjp43hjqpsdkgx3xhvb021b6lvnh0";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.112.0-darwin-arm64.tar.gz";
+        sha256 = "0zlxpyxfy0j9p8pxq9gkbfyzry239225pmasrmc8nkl9g1g6rr4y";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-darwin-arm64.tar.gz";
-        sha256 = "0y1nc5cgqpjwssprdjh9d1q07j9d3b3vgafbmc7jgd81hybwid1h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.13.0-darwin-arm64.tar.gz";
+        sha256 = "1bph419xgrrnld89xd1pkbayjxkv2l76npqw7y5rzanx77yzyq34";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v6.4.0-darwin-arm64.tar.gz";
         sha256 = "1b47n69nc5nicagwdxq793a6nmbrg15690i8q40nixcf7k48krai";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-darwin-arm64.tar.gz";
-        sha256 = "1jsngq7jaknkrpyb3qgpz0vbdq62js4rjd26qrdag9r69swc3wkb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.51.0-darwin-arm64.tar.gz";
+        sha256 = "062gz9rdnlkarl3zpv6d54wkmwgc52aci0ghfvi3h32jr3l658kr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-darwin-arm64.tar.gz";
-        sha256 = "1hdw3bx61mjxa83arfj7vnqkkq3mzka5g04xg7vjq81z348q9b8y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.4.2-darwin-arm64.tar.gz";
+        sha256 = "100j7cb2w7mg1nwbb602j531sf0wsvh7jwyhw8kgx5j2dp0vkdwn";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-darwin-arm64.tar.gz";
         sha256 = "0ja508z0r4gbg2zdyrjb7gq8kn1brrx5q6am5dvwaikqs6i6vxrm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-darwin-arm64.tar.gz";
-        sha256 = "0y0qha8d0dsjnqjaipn6i3csda4cl13zq0mqd8jpda127c3jzzxv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.28.2-darwin-arm64.tar.gz";
+        sha256 = "09kss0vaw0zs1lp51hzx25xc232l9644bfx644lk0i8bb2bffpcr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-darwin-arm64.tar.gz";
@@ -488,16 +515,16 @@
         sha256 = "1pjcbk8lsqpdw12mp07czf8gzam7dhak3zb4zcd0z9xp3fj0qvgd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-darwin-arm64.tar.gz";
-        sha256 = "0h1n4rw5x98vhvz71fh92hlc48l7xcs90p18slmlnaia5fjs01gg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.70.0-darwin-arm64.tar.gz";
+        sha256 = "0wxv0z4wff5hya8m8ah22468zfgqn86aj2y7692az4jaz543p4xm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-darwin-arm64.tar.gz";
-        sha256 = "17xzrs9ymxrmfvj3s0f1dfnmbpflvariah5krvmn7ylcxl7xvbqw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.24.0-darwin-arm64.tar.gz";
+        sha256 = "04h4h2zn8gqfsb98lal8j4bxqyr9zqynm3q722a0v8a8i58wzdhx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-darwin-arm64.tar.gz";
-        sha256 = "19wi1jq077da10c1z2z4rzw0x7rjdv77fk9djzk627w75bha1xac";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-arm64.tar.gz";
+        sha256 = "1zjggbm0cas99vzh98yld7af93bamzb7492612a1bdk1x30w46jn";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-darwin-arm64.tar.gz";
@@ -508,8 +535,8 @@
         sha256 = "176vnb1khfrnwd4xipirp0hwjl4q9mgmw5r4b00jvxy55h8mr1qs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-darwin-arm64.tar.gz";
-        sha256 = "17pdc068n81savb6ccmmjgbl1mla9asa59q2iz7clggxw6rsiv26";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-arm64.tar.gz";
+        sha256 = "0kk3pg793ikq5qn0z1yqg6viddcs35lzyzyly95jhh2v2154arbm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-arm64.tar.gz";
@@ -520,44 +547,44 @@
         sha256 = "18985l0djz592235y2brxncpaky850qyr0xa23aflm07wdh7fc3n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-darwin-arm64.tar.gz";
-        sha256 = "0nr19205zvrm1nczc3f6sjdxhi83jcs6spy9y1q55kmd5lq3hgsx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.16.0-darwin-arm64.tar.gz";
+        sha256 = "0pbja02n216hwlifnnw5aisca1kk35p0sz3v36kq30qcn1ywmdjz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-darwin-arm64.tar.gz";
-        sha256 = "14237rakfdn78x5xi6p7svl7yzvmi27vvicn7dizyy8w5p6g3zbd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-arm64.tar.gz";
+        sha256 = "0whmhq9vks8yni96b7d4kavr2mlbhxvlbjmwvdp0nvwpaa36wkk0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-darwin-arm64.tar.gz";
-        sha256 = "04n5x1l8fnswdpmr3hc9g71cq2cp14ga4k8438py0kk6askaxxm2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.10.0-darwin-arm64.tar.gz";
+        sha256 = "1jiy5j51v2ac4kf0dsn61404373jdls9jm5d1xjincdiykd57g75";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-arm64.tar.gz";
         sha256 = "0caz4kgnnrmdr7n571xc7yqscac9jnjwwpjzbnvx4ib6a91wvsdn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-darwin-arm64.tar.gz";
-        sha256 = "1hxl3jrijw3jjmampf879q1h3ya4baag9fva0b5n1sn4r7d7w3kd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.18.0-darwin-arm64.tar.gz";
+        sha256 = "0frjmc256760j48cq2liwasdv3b4vznsvmik9hp81zwbla7jk4f7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-darwin-arm64.tar.gz";
         sha256 = "14j27fy3i718k5svb8cznf4py3pypwxac4db3qs2mz0lhffja3ha";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-darwin-arm64.tar.gz";
-        sha256 = "08ar565hpk6x9kfjj56nqfs4ah2128m4l4qfzpmpzzpad61aa6fa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.17.0-darwin-arm64.tar.gz";
+        sha256 = "0rxf8d3x3d31lc6mf9fi9svixm2fw1qyq3v4mics0gsxq2jibynq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-darwin-arm64.tar.gz";
-        sha256 = "1d90jmcm98nlagaqlnjk8kz5dn35yp682rxkps5w0m2x2k48hqxm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.2-darwin-arm64.tar.gz";
+        sha256 = "1cslfvb3q89vqxs0w6xwfc0pvv81rl9mrdd7mwysmgjc78qk6aaw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.3-darwin-arm64.tar.gz";
         sha256 = "1ss909lscg6diphzpgxkm2gylvj0nkyf4jzp422m94g6xcinfwhy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.1-darwin-arm64.tar.gz";
-        sha256 = "0dqvgmcpvv3h86licnmlswlj2dklj2sqr02wyc10srw8gddvysx5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-arm64.tar.gz";
+        sha256 = "05qzgzp2dcm3p3s6jz14pjxhgiid9wj000glyrfl07g9cf6xa95a";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.0-darwin-arm64.tar.gz";
@@ -572,8 +599,8 @@
         sha256 = "1qr6qh4323d6n7f56lixdrph5cb5qby4q2f3l8l4l6n8s345v9kr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-darwin-arm64.tar.gz";
-        sha256 = "0rjb8pbxrp0djvjmxqvivd3jyy9r1iflp6i5a7mzad825g7gzczb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.71.0-darwin-arm64.tar.gz";
+        sha256 = "104izxqq5vq4dppc12ijiln7khjnyp00rw5ckd3myb33ywl2j6vh";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-darwin-arm64.tar.gz";
@@ -584,20 +611,29 @@
         sha256 = "1mrjn3g55h77rjni6v2v0hz4csclfiy2wdx7gllnwbpgfcchlqr2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.1-darwin-arm64.tar.gz";
-        sha256 = "0x01k5sjmy9365pwi6gqhvw5jr6ansg5zj0anl869dyaag4kgzks";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.2-darwin-arm64.tar.gz";
+        sha256 = "17nwqs1qnjyx0pbsc0iak1vygil7z8l6ygay87yrac5pgxyj9dcr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.20.0-darwin-arm64.tar.gz";
-        sha256 = "0aidg913j23b7i018yqwgz1pcssgyrvyfhlwh0jbdxay66v8cdi9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.0.0-darwin-arm64.tar.gz";
+        sha256 = "0g34d4013mn6sq0abvmkc5mbvbms59rwp963ss41r52cab6gqh28";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-darwin-arm64.tar.gz";
         sha256 = "00qq53wirdjm8zqqisad34fzx70m96dwg0dqysz6nqikq620h7dp";
       }
-      # pulumi-resource-vsphere skipped (does not exist on remote)
-      # pulumi-resource-wavefront skipped (does not exist on remote)
-      # pulumi-resource-yandex skipped (does not exist on remote)
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.0-darwin-arm64.tar.gz";
+        sha256 = "1562pylmy4i109wwpn0lqb11m3ajwlswn5f76ni0cq4sw0iips4l";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.1-darwin-arm64.tar.gz";
+        sha256 = "09k9px0pm55jf3kxq1xc37li34mdv96sgcg89wmmm7spwl8q48m1";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-arm64.tar.gz";
+        sha256 = "1qaccfqw24g862ij2p49m78hnymg0j2nghshszqrg45v0d0qnknm";
+      }
     ];
   };
 }
diff --git a/pkgs/tools/admin/pulumi-bin/default.nix b/pkgs/tools/admin/pulumi-bin/default.nix
index 7fde0591597ec..2515af2bacbb0 100644
--- a/pkgs/tools/admin/pulumi-bin/default.nix
+++ b/pkgs/tools/admin/pulumi-bin/default.nix
@@ -4,13 +4,13 @@ let
   data = import ./data.nix {};
 in stdenv.mkDerivation {
   pname = "pulumi";
-  version = data.version;
+  inherit (data) version;
 
   postUnpack = ''
     mv pulumi-* pulumi
   '';
 
-  srcs = map (x: fetchurl x) data.pulumiPkgs.${stdenv.hostPlatform.system};
+  srcs = map fetchurl data.pulumiPkgs.${stdenv.hostPlatform.system};
 
   installPhase = ''
     install -D -t $out/bin/ *
diff --git a/pkgs/tools/admin/qovery-cli/default.nix b/pkgs/tools/admin/qovery-cli/default.nix
index 5c380c92720cc..bbfcbbe6548a9 100644
--- a/pkgs/tools/admin/qovery-cli/default.nix
+++ b/pkgs/tools/admin/qovery-cli/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "qovery-cli";
-  version = "0.85.0";
+  version = "0.86.2";
 
   src = fetchFromGitHub {
     owner = "Qovery";
     repo = "qovery-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-peIbzUDP6vJneeFkvIUXuMzOQJKZ602dIzRnSf/7HAI=";
+    hash = "sha256-AUrN5T6Z4T0WLsBwv/zXb9CSrwGCAV5nh+42MktRxvo=";
   };
 
-  vendorHash = "sha256-3UsHxBIJpmga3Hjtwx4cZ45xY52RVMdPS/DAgTBYmuw=";
+  vendorHash = "sha256-Lwg3PFmSipaaYtu88c1qI/Ws50TQOqEu4mSuxcpx3zI=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/admin/stripe-cli/default.nix b/pkgs/tools/admin/stripe-cli/default.nix
index 9adb2d326e0bf..c42d4f348c0c8 100644
--- a/pkgs/tools/admin/stripe-cli/default.nix
+++ b/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.19.2";
+  version = "1.19.3";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ohxTEHm5qGFQ1mJNL/Fh5qNc/De1TUtsEcuOIaJvGLc=";
+    hash = "sha256-VHTr/+sc34Z9WazURXNq7EXKPbpf08cQ0FI98OV7CAA=";
   };
   vendorHash = "sha256-DYA6cu2KzEBZ4wsT7wjcdY1endQQOZlj2aOwu6iGLew=";
 
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 428f3703e47b0..ade905ec189e3 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -10,19 +10,19 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.50.0";
+  version = "0.50.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-gRePoEfUqTWSalUaCROEsZcgxXOFGe0AukyoaDlKAsM=";
+    hash = "sha256-TcSWgEdk0hjckY5ZGm2/jg9C4yiTTtgQjZEihXBi+fA=";
   };
 
   # Hash mismatch on across Linux and Darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-i+FgfYdfhuS4utcHDWI1QofBysiU6tV9Y7b2SE0jnVA=";
+  vendorHash = "sha256-FkyGqZSEKWCI7tRmTBI+dmiqZPPPMUlqbCxs59N1syY=";
 
   subPackages = [ "cmd/trivy" ];
 
diff --git a/pkgs/tools/archivers/innoextract/default.nix b/pkgs/tools/archivers/innoextract/default.nix
index 7c66dcb84d00d..470cde6eb426f 100644
--- a/pkgs/tools/archivers/innoextract/default.nix
+++ b/pkgs/tools/archivers/innoextract/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     homepage = "https://constexpr.org/innoextract/";
     license = licenses.zlib;
     maintainers = with maintainers; [ abbradar ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     mainProgram = "innoextract";
   };
 }
diff --git a/pkgs/tools/audio/catnip/default.nix b/pkgs/tools/audio/catnip/default.nix
index de8a609dfd618..fea82e71cd865 100644
--- a/pkgs/tools/audio/catnip/default.nix
+++ b/pkgs/tools/audio/catnip/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "catnip";
-  version = "1.8.0";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "noriah";
     repo = "catnip";
     rev = "v${version}";
-    hash = "sha256-eVEoQrI8NycEV/dPUNFqkzgjOYaGmH1+lLRRkOybXDU=";
+    hash = "sha256-9gneteQIzbMNjg/08uq+pCbs2a32He2gL+hovxcJFzE=";
   };
 
   vendorHash = "sha256-Hj453+5fhbUL6YMeupT5D6ydaEMe+ZQNgEYHtCUtTx4=";
diff --git a/pkgs/tools/backup/autorestic/default.nix b/pkgs/tools/backup/autorestic/default.nix
index 1fcb2dbccc858..5c718603fa981 100644
--- a/pkgs/tools/backup/autorestic/default.nix
+++ b/pkgs/tools/backup/autorestic/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "autorestic";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "cupcakearmy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-e/OBu1tcIxr/ddKhbFyOtvU8Oqr0gpBRNpHRyoFKw6M=";
+    sha256 = "sha256-g7P/q29LMZEibEP6Pmve2WwuxdmSpdqQpwG6/RPDMAM=";
   };
 
-  vendorHash = "sha256-K3+5DRXcx56sJ4XHikVtmoxmpJbBeAgPkN9KtHVgvYA=";
+  vendorHash = "sha256-1ya1h/v5uEVoZpPVugxXQC3FCH5GKPhcHIDm8rSY9OU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix
index c75312606550a..f8ec672710f5b 100644
--- a/pkgs/tools/backup/bacula/default.nix
+++ b/pkgs/tools/backup/bacula/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bacula";
-  version = "13.0.4";
+  version = "15.0.2";
 
   src = fetchurl {
     url    = "mirror://sourceforge/bacula/${pname}-${version}.tar.gz";
-    sha256 = "sha256-FOTGLTgaEAhCLj/RSq0ZsmFBA9iQeJJtczf4UOO0c9w=";
+    sha256 = "sha256-VVFcKmavmoa5VdrqQIk3i4ZNBRsubjA4O+825pOs6no=";
   };
 
   # libtool.m4 only matches macOS 10.*
diff --git a/pkgs/tools/backup/pgbackrest/default.nix b/pkgs/tools/backup/pgbackrest/default.nix
index a2c7273325540..02933fcc63ef9 100644
--- a/pkgs/tools/backup/pgbackrest/default.nix
+++ b/pkgs/tools/backup/pgbackrest/default.nix
@@ -1,32 +1,59 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, meson
+, ninja
+, python3
 , pkg-config
-, postgresql
-, openssl
-, lz4
+, libbacktrace
 , bzip2
+, lz4
+, postgresql
 , libxml2
+, libyaml
 , zlib
+, libssh2
 , zstd
-, libyaml
 }:
+
 stdenv.mkDerivation rec {
   pname = "pgbackrest";
-  version = "2.50";
+  version = "2.51";
 
   src = fetchFromGitHub {
     owner = "pgbackrest";
     repo = "pgbackrest";
     rev = "release/${version}";
-    sha256 = "sha256-RjkTg80LAUndSVfTrol9hvgNOG6PMC+OkMVjdtjpdbI=";
+    sha256 = "sha256-o6UROI+t35lHSFeRMLh0nIkmLMdcclpkKNzjkw/z56Q=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ postgresql openssl lz4 bzip2 libxml2 zlib zstd libyaml ];
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    python3
+    pkg-config
+  ];
+
+  buildInputs = [
+    libbacktrace
+    bzip2
+    lz4
+    postgresql
+    libxml2
+    libyaml
+    zlib
+    libssh2
+    zstd
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm555 -t "$out/bin" src/pgbackrest
 
-  postUnpack = ''
-    sourceRoot+=/src
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/backup/ugarit-manifest-maker/default.nix b/pkgs/tools/backup/ugarit-manifest-maker/default.nix
index 10f397df6b2a6..2a7aca1eeab8e 100644
--- a/pkgs/tools/backup/ugarit-manifest-maker/default.nix
+++ b/pkgs/tools/backup/ugarit-manifest-maker/default.nix
@@ -1,7 +1,10 @@
 { pkgs, lib, eggDerivation, fetchegg }:
+
 let
   eggs = import ./eggs.nix { inherit eggDerivation fetchegg; };
-in with pkgs; eggDerivation rec {
+in
+
+eggDerivation rec {
   pname = "ugarit-manifest-maker";
   version = "0.1";
   name = "${pname}-${version}";
diff --git a/pkgs/tools/backup/ugarit/default.nix b/pkgs/tools/backup/ugarit/default.nix
index 39c11cc0c91a1..c7b3c40284daa 100644
--- a/pkgs/tools/backup/ugarit/default.nix
+++ b/pkgs/tools/backup/ugarit/default.nix
@@ -1,7 +1,10 @@
-{ pkgs, lib, eggDerivation, fetchegg }:
+{ lib, eggDerivation, fetchegg, z3 }:
+
 let
   eggs = import ./eggs.nix { inherit eggDerivation fetchegg; };
-in with pkgs; eggDerivation rec {
+in
+
+eggDerivation rec {
   pname = "ugarit";
   version = "2.0";
   name = "${pname}-${version}";
diff --git a/pkgs/tools/compression/upx/default.nix b/pkgs/tools/compression/upx/default.nix
index c9a516705b0ea..3a2c6394f90a9 100644
--- a/pkgs/tools/compression/upx/default.nix
+++ b/pkgs/tools/compression/upx/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "upx";
-  version = "4.2.2";
+  version = "4.2.3";
   src = fetchFromGitHub {
     owner = "upx";
     repo = "upx";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-0x7SUW+rB5HNRoRkCQIwfOIMpu+kOifxA7Z3SUlY/ME=";
+    hash = "sha256-3+aOadTqQ1apnrXt2I27j8P6iJF96W90YjxVTPmRhs0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 6f154f7aeeca7..cd8bf05ab6dfc 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "6.7.1";
+  version = "6.8";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    hash = "sha256-JNx7l08KV7oOyoD5dEC4QN+oWw8cssAb39l2WaSAsgA=";
+    hash = "sha256-nCFkX+rBgmEeKLR3adX2E8ueLsq1js5gsQ5sVanq1XU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/mount-zip/default.nix b/pkgs/tools/filesystems/mount-zip/default.nix
index bda3381080511..362ca4e2743e3 100644
--- a/pkgs/tools/filesystems/mount-zip/default.nix
+++ b/pkgs/tools/filesystems/mount-zip/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mount-zip";
-  version = "1.0.12";
+  version = "1.0.13";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mount-zip";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-bsuGEgCrU7Gxd9oAiI39AYT9aiXufrI9CniTCfa6LCY=";
+    hash = "sha256-/iPq/v7ap5livYR5tA90JiaGxQfR9VG+FONECeCFdOQ=";
   };
 
   nativeBuildInputs = [ boost gcc icu pandoc pkg-config ];
diff --git a/pkgs/tools/filesystems/stratisd/default.nix b/pkgs/tools/filesystems/stratisd/default.nix
index ebe7c9f14ba8a..0f585f631878e 100644
--- a/pkgs/tools/filesystems/stratisd/default.nix
+++ b/pkgs/tools/filesystems/stratisd/default.nix
@@ -27,30 +27,30 @@
 
 stdenv.mkDerivation rec {
   pname = "stratisd";
-  version = "3.6.5";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "stratis-storage";
     repo = pname;
     rev = "refs/tags/stratisd-v${version}";
-    hash = "sha256-qgf5Q2MAY8PAYlplvTX+YjYfDFLfddpyIG4S/IIYbsU=";
+    hash = "sha256-zksMYPvbFKKYaLqdZql56D5rG+IBDMBJTTQK1RMyj4Q=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit pname version src;
-    hash = "sha256-Bu87uHEcMKB+TX8gWHD1vRazOkqJSZKQcsPiaKXrGFE=";
+    hash = "sha256-red7cjNwZrhQzfvh6Lev5CPWj8QihuVr7fIiHo9D3Jg=";
   };
 
   postPatch = ''
     substituteInPlace udev/61-stratisd.rules \
-      --replace stratis-base32-decode "$out/lib/udev/stratis-base32-decode" \
-      --replace stratis-str-cmp       "$out/lib/udev/stratis-str-cmp"
+      --replace-fail stratis-base32-decode "$out/lib/udev/stratis-base32-decode" \
+      --replace-fail stratis-str-cmp       "$out/lib/udev/stratis-str-cmp"
 
     substituteInPlace systemd/stratis-fstab-setup \
-      --replace stratis-min           "$out/bin/stratis-min" \
-      --replace systemd-ask-password  "${systemd}/bin/systemd-ask-password" \
-      --replace sleep                 "${coreutils}/bin/sleep" \
-      --replace udevadm               "${systemd}/bin/udevadm"
+      --replace-fail stratis-min           "$out/bin/stratis-min" \
+      --replace-fail systemd-ask-password  "${systemd}/bin/systemd-ask-password" \
+      --replace-fail sleep                 "${coreutils}/bin/sleep" \
+      --replace-fail udevadm               "${systemd}/bin/udevadm"
   '';
 
   nativeBuildInputs = [
@@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
     mkdir -p "$initrd/lib/systemd/system"
     substitute "$out/lib/dracut/modules.d/90stratis/stratisd-min.service" \
       "$initrd/lib/systemd/system/stratisd-min.service" \
-      --replace mkdir "${coreutils}/bin/mkdir"
+      --replace-fail mkdir "${coreutils}/bin/mkdir"
     mkdir -p "$initrd/lib/udev/rules.d"
     cp udev/61-stratisd.rules "$initrd/lib/udev/rules.d"
     rm -r "$out/lib/dracut"
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index 5a7022ee6a13a..327d1e74f7c5b 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "6.4.0";
+  version = "6.6.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
-    hash = "sha256-wxhoQYv79Jo6nEf8cM3/3p2W9P8AUb0EoIgeZlRkgQQ=";
+    hash = "sha256-UMovRnbfj6tMtMPvPdUS1VUeaETUCmWjHVuOA1k9It8=";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/pkgs/tools/games/dualsensectl/default.nix b/pkgs/tools/games/dualsensectl/default.nix
index 24c2c2940a7ad..12b3a8492f621 100644
--- a/pkgs/tools/games/dualsensectl/default.nix
+++ b/pkgs/tools/games/dualsensectl/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dualsensectl";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchFromGitHub {
     owner = "nowrep";
     repo = "dualsensectl";
     rev = "v${version}";
-    hash = "sha256-DrPVzbaLO2NgjNcEFyCs2W+dlbdpBeRX1ZfFenqz7IY=";
+    hash = "sha256-+OSp9M0A0J4nm7ViDXG63yrUZuZxR7gyckwSCdy3qm0=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/graphics/astc-encoder/default.nix b/pkgs/tools/graphics/astc-encoder/default.nix
index 0a227a1781aea..463f7e85e7eae 100644
--- a/pkgs/tools/graphics/astc-encoder/default.nix
+++ b/pkgs/tools/graphics/astc-encoder/default.nix
@@ -5,11 +5,20 @@
 , simdExtensions ? null
 }:
 
-with rec {
+let
+  inherit (lib)
+    head
+    licenses
+    maintainers
+    platforms
+    replaceStrings
+    toList
+    ;
+
   # SIMD instruction sets to compile for. If none are specified by the user,
   # an appropriate one is selected based on the detected host system
   isas = with stdenv.hostPlatform;
-    if simdExtensions != null then lib.toList simdExtensions
+    if simdExtensions != null then toList simdExtensions
     else if avx2Support then [ "AVX2" ]
     else if sse4_1Support then [ "SSE41" ]
     else if isx86_64 then [ "SSE2" ]
@@ -21,11 +30,11 @@ with rec {
   isaFlags = map ( isa: "-DASTCENC_ISA_${isa}=ON" ) isas;
 
   # The suffix of the binary to link as 'astcenc'
-  mainBinary = builtins.replaceStrings
+  mainBinary = replaceStrings
     [ "AVX2" "SSE41"  "SSE2" "NEON" "NONE" "NATIVE" ]
     [ "avx2" "sse4.1" "sse2" "neon" "none" "native" ]
-    ( builtins.head isas );
-};
+    ( head isas );
+in
 
 stdenv.mkDerivation rec {
   pname = "astc-encoder";
@@ -57,7 +66,7 @@ stdenv.mkDerivation rec {
     ln -s $out/bin/astcenc-${mainBinary} $out/bin/astcenc
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/ARM-software/astc-encoder";
     description = "An encoder for the ASTC texture compression format";
     longDescription = ''
diff --git a/pkgs/tools/graphics/vulkan-cts/default.nix b/pkgs/tools/graphics/vulkan-cts/default.nix
index 497fd13df341a..58444354666fe 100644
--- a/pkgs/tools/graphics/vulkan-cts/default.nix
+++ b/pkgs/tools/graphics/vulkan-cts/default.nix
@@ -39,13 +39,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "vulkan-cts";
-  version = "1.3.7.3";
+  version = "1.3.8.1";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "VK-GL-CTS";
     rev = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-YtfUnrqWZwPMkLr3ovJz8Xr2ES1piW0yB+rBAaiQKoQ=";
+    hash = "sha256-lDMaJjAusK+Hva4BZnrXNmuGdSL04rh1W9PYsjxF3c8=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/graphics/vulkan-cts/sources.nix b/pkgs/tools/graphics/vulkan-cts/sources.nix
index 3e42e9c4ed7a9..e0a197188d66d 100644
--- a/pkgs/tools/graphics/vulkan-cts/sources.nix
+++ b/pkgs/tools/graphics/vulkan-cts/sources.nix
@@ -1,25 +1,18 @@
 # Autogenerated from vk-cts-sources.py
 { fetchurl, fetchFromGitHub }:
 rec {
-  ESExtractor = fetchFromGitHub {
-    owner = "Igalia";
-    repo = "ESExtractor";
-    rev = "v0.3.3";
-    hash = "sha256-qqhDv08cLQlLaEj0qfghByK+IohdvQdI2ePfUNFEArQ=";
-  };
-
   amber = fetchFromGitHub {
     owner = "google";
     repo = "amber";
-    rev = "933ecb4d6288675a92eb1650e0f52b1d7afe8273";
-    hash = "sha256-v9z4gv/mTjaCkByZn6uDpMteQuIf0FzZXeKyoXfFjXo=";
+    rev = "8e90b2d2f532bcd4a80069e3f37a9698209a21bc";
+    hash = "sha256-LuNCND/NXoNbbTWv7RYQUkq2QXL1qXR27uHwFIz0DXg=";
   };
 
   glslang = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "glslang";
-    rev = "c5117b328afc86e16edff6ed6afe0fe7872a7cf3";
-    hash = "sha256-4SoET76fCfutttK00JGCKVQUn0ivGdTw6GhndvxbIDU=";
+    rev = "9fd0fcd737f1369e89fb3aa8b2e62bad57ac46c6";
+    hash = "sha256-A3IFW3kOuOGj4AfpdDfAHIySDLdIB9IK+wk8TSBcPrk=";
   };
 
   jsoncpp = fetchFromGitHub {
@@ -32,36 +25,35 @@ rec {
   nvidia-video-samples = fetchFromGitHub {
     owner = "Igalia";
     repo = "vk_video_samples";
-    rev = "138bbe048221d315962ddf8413aa6a08cc62a381";
-    hash = "sha256-ftHhb5u3l7WbgEu6hHynBnvNbVOn5TFne915M17jiAQ=";
+    rev = "ce80453dadeea7b1a6409434f3358ef1e46e4ae7";
+    hash = "sha256-zgHMaUA7rdLbmkX8lr4p2TW9g1RDyBmUs5rK++wmUjE=";
   };
 
   spirv-headers = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Headers";
-    rev = "b8b9eb8640c8c0107ba580fbcb10f969022ca32c";
-    hash = "sha256-gcKwML5ItccAhX+QtR9G86h0JnaiVQEmOQzQpL005dg=";
+    rev = "d3c2a6fa95ad463ca8044d7fc45557db381a6a64";
+    hash = "sha256-POd/TnbVzq/Xyi0O4hU24Qk4LDD5Af2kHJgQ+wPVDsg=";
   };
 
   spirv-tools = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Tools";
-    rev = "bfc94f63a7adbcf8ae166f5f108ac9f69079efc0";
-    hash = "sha256-gju6hJSIWOswGnRxKeJZsU1jgp3HSZAf7wFRxswY+Js=";
+    rev = "f9184c6501f7e349e0664d281ac93b1db9c1e5ad";
+    hash = "sha256-BDnKOUIWZVGPPwmQsMqF1yWy80dl75kdaoztUMnlrqc=";
   };
 
   vulkan-docs = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Docs";
-    rev = "b9aad705f0d9e5e6734ac2ad671d5d1de57b05e0";
-    hash = "sha256-bJ2C1+zjvLiYp5A5AHTevFPU9Yka99imqLwH+uApuoY=";
+    rev = "d99193d3fcc4b2a0dacc0a9d7e4951ea611a3e96";
+    hash = "sha256-pfPErjZ4jSxEg+OgFcELyvqrS0Hm3QWQ3WhQ9T3rJbQ=";
   };
 
 
   prePatch = ''
-    mkdir -p external/ESExtractor external/amber external/glslang external/jsoncpp external/nvidia-video-samples external/spirv-headers external/spirv-tools external/vulkan-docs
+    mkdir -p external/amber external/glslang external/jsoncpp external/nvidia-video-samples external/spirv-headers external/spirv-tools external/vulkan-docs
 
-    cp -r ${ESExtractor} external/ESExtractor/src
     cp -r ${amber} external/amber/src
     cp -r ${glslang} external/glslang/src
     cp -r ${jsoncpp} external/jsoncpp/src
diff --git a/pkgs/tools/graphics/vulkan-cts/update.sh b/pkgs/tools/graphics/vulkan-cts/update.sh
index 300fe230264ed..11081d8708dc9 100755
--- a/pkgs/tools/graphics/vulkan-cts/update.sh
+++ b/pkgs/tools/graphics/vulkan-cts/update.sh
@@ -3,7 +3,7 @@
 
 set -euo pipefail
 
-rawVersion="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/KhronosGroup/VK-GL-CTS/releases" | jq -r  'map(select(.tag_name | startswith("vulkan-cts-"))) | .[0].tag_name')"
+rawVersion="$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -s "https://api.github.com/repos/KhronosGroup/VK-GL-CTS/releases" | jq -r  'map(select(.tag_name | startswith("vulkan-cts-"))) | .[0].tag_name')"
 basedir="$(git rev-parse --show-toplevel)"
 
 cd "$basedir"
diff --git a/pkgs/tools/misc/android-tools/default.nix b/pkgs/tools/misc/android-tools/default.nix
index 891bea3fe4744..ed0acaff3a5e9 100644
--- a/pkgs/tools/misc/android-tools/default.nix
+++ b/pkgs/tools/misc/android-tools/default.nix
@@ -9,11 +9,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "android-tools";
-  version = "34.0.4";
+  version = "34.0.5";
 
   src = fetchurl {
     url = "https://github.com/nmeum/android-tools/releases/download/${version}/android-tools-${version}.tar.xz";
-    hash = "sha256-eiL/nOqB/0849WBoeFjo+PtzNiRBJZfjzBqwJi+No6E=";
+    hash = "sha256-+wnP8Sz7gqz0Ko6+u8A0JnG/zQIRdxY2i9xz/dpgMEo=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config perl go ];
diff --git a/pkgs/tools/misc/bartib/default.nix b/pkgs/tools/misc/bartib/default.nix
index 893fbe7b58a3f..0719f8a168bba 100644
--- a/pkgs/tools/misc/bartib/default.nix
+++ b/pkgs/tools/misc/bartib/default.nix
@@ -2,16 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bartib";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "nikolassv";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ph3rsrhcyi272bv5018pw185zn7fvp5fqj24yh9rjrz8x7iawib";
+    sha256 = "sha256-eVLacxKD8seD8mxVN1D3HhKZkIDXsEsSisZnFbmhpSk=";
   };
 
-  cargoSha256 = "sha256-1ZFwX7NKIainer7o9dIMxwyycdGW8K9euLHad/tF95w=";
+  cargoSha256 = "sha256-s/oGv7/0LgNpdGu6dnvvbxDgFDvcvcHL01dSPxhMVWE=";
+  preConfigure = ''
+    cargo metadata --offline
+  '';
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/bepasty/default.nix b/pkgs/tools/misc/bepasty/default.nix
index c38963ade2f3d..1e3f226423212 100644
--- a/pkgs/tools/misc/bepasty/default.nix
+++ b/pkgs/tools/misc/bepasty/default.nix
@@ -2,6 +2,7 @@
 , python3
 , fetchPypi
 }:
+
 let
   # bepasty 1.2 needs xstatic-font-awesome < 5, see
   # https://github.com/bepasty/bepasty-server/issues/305
@@ -17,16 +18,18 @@ let
       });
     };
   };
+in
+
+# We need to use buildPythonPackage here to get the PYTHONPATH build correctly.
+# This is needed for services.bepasty
+# https://github.com/NixOS/nixpkgs/pull/38300
 
-#We need to use buildPythonPackage here to get the PYTHONPATH build correctly.
-#This is needed for services.bepasty
-#https://github.com/NixOS/nixpkgs/pull/38300
-in with bepastyPython.pkgs; buildPythonPackage rec {
+bepastyPython.pkgs.buildPythonPackage rec {
   pname = "bepasty";
   version = "1.2.1";
   format = "pyproject";
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with bepastyPython.pkgs; [
     flask
     markupsafe
     pygments
@@ -42,14 +45,14 @@ in with bepastyPython.pkgs; buildPythonPackage rec {
     xstatic-pygments
   ];
 
-  buildInputs = [ setuptools-scm ];
+  buildInputs = with bepastyPython.pkgs; [ setuptools-scm ];
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-08cyr2AruGAfHAwHHS8WMfJh7DBKymaYyz4AxI/ubkE=";
   };
 
-  nativeCheckInputs = [
+  nativeCheckInputs = with bepastyPython.pkgs; [
     build
     codecov
     flake8
@@ -70,10 +73,10 @@ in with bepastyPython.pkgs; buildPythonPackage rec {
     "src/bepasty/tests/test_website.py"
   ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/bepasty/bepasty-server";
     description = "Binary pastebin server";
-    license = lib.licenses.bsd2;
-    maintainers = with lib.maintainers; [ aither64 makefu ];
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ aither64 makefu ];
   };
 }
diff --git a/pkgs/tools/misc/coreboot-utils/default.nix b/pkgs/tools/misc/coreboot-utils/default.nix
index 5af1d23c5442c..50045b7855741 100644
--- a/pkgs/tools/misc/coreboot-utils/default.nix
+++ b/pkgs/tools/misc/coreboot-utils/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchgit, pkg-config, zlib, pciutils, openssl, coreutils, acpica-tools, makeWrapper, gnugrep, gnused, file, buildEnv }:
 
 let
-  version = "4.21";
+  version = "24.02";
 
   commonMeta = with lib; {
     description = "Various coreboot-related tools";
@@ -16,8 +16,8 @@ let
 
     src = fetchgit {
       url = "https://review.coreboot.org/coreboot";
-      rev = "c1386ef6128922f49f93de5690ccd130a26eecf2";
-      sha256 = "sha256-n/bo3hoY7DEP103ftWu3uCLFXEsz+F9rWS22kcF7Ah8=";
+      rev = "4845b69db29107ce8d9cd2969b4aad5c7daa6399";
+      sha256 = "sha256-whALKP9MetyMJSmXVf0WYd9dP8AGa+ADAB8cmIqt4HU=";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/cyberchef/default.nix b/pkgs/tools/misc/cyberchef/default.nix
index 588df6403bb28..3fc4aab54dc69 100644
--- a/pkgs/tools/misc/cyberchef/default.nix
+++ b/pkgs/tools/misc/cyberchef/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cyberchef";
-  version = "10.8.2";
+  version = "10.9.0";
 
   src = fetchzip {
     url = "https://github.com/gchq/CyberChef/releases/download/v${version}/CyberChef_v${version}.zip";
-    sha256 = "sha256-CD09gve4QEkCBKZoNtTdSPOfGSogGoGwWMYWGzMHowg=";
+    sha256 = "sha256-lsQC86gTfDQy7wonoYdQitdF+4hn8qyFpXKg+AL5TnU=";
     stripRoot = false;
   };
 
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 102c97b464f79..80c5de0d5c946 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -19,14 +19,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2024.3.0";
+  version = "2024.3.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-ha15MLTScFmgYjIRwCQ46DD+Zm64r+KReJTS8jfZX0o=";
+    hash = "sha256-lWDQp3I8AJT5iTT8wMj/ZL6ykw2NNeLXdq1obnMP7Ao=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/pkgs/tools/misc/fend/default.nix b/pkgs/tools/misc/fend/default.nix
index 774fe78ec6056..9b977f6d0d470 100644
--- a/pkgs/tools/misc/fend/default.nix
+++ b/pkgs/tools/misc/fend/default.nix
@@ -18,16 +18,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fend";
-  version = "1.4.5";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "printfn";
     repo = "fend";
     rev = "v${version}";
-    hash = "sha256-l4AZpvLMmNuUWHqm5b0ngBxSHh5CV0SMOyKSF4LaxSI=";
+    hash = "sha256-xqWAL1xMUUL2AtxnZ4oXWmNoks0pL63uqKoNc0Vvw/4=";
   };
 
-  cargoHash = "sha256-mx0KXGbSxn54JUyLVJms/AdPseKA9QH1Ixi7XKydf2w=";
+  cargoHash = "sha256-0ov/uzBEa8Wzw5T0mSMnnmJYucBLUe0Qlwel6pVRorc=";
 
   nativeBuildInputs = [ pandoc installShellFiles pkg-config copyDesktopItems ];
   buildInputs = [ pkg-config openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
diff --git a/pkgs/tools/misc/graylog/plugins.nix b/pkgs/tools/misc/graylog/plugins.nix
index e25aeb39f7aac..7907a4c9a2256 100644
--- a/pkgs/tools/misc/graylog/plugins.nix
+++ b/pkgs/tools/misc/graylog/plugins.nix
@@ -1,8 +1,13 @@
 { lib, stdenv, fetchurl, unzip, graylog-5_1 }:
 
-with lib;
-
 let
+  inherit (lib)
+    licenses
+    maintainers
+    platforms
+    sourceTypes
+    ;
+
   glPlugin = a@{
     pluginName,
     version,
@@ -78,7 +83,7 @@ in {
     meta = {
       homepage = "https://docs.graylog.org/en/3.3/pages/integrations.html#enterprise";
       description = "Integrations are tools that help Graylog work with external systems (unfree enterprise integrations)";
-      license = lib.licenses.unfree;
+      license = licenses.unfree;
     };
   };
   filter-messagesize = glPlugin rec {
@@ -227,7 +232,7 @@ in {
     meta = {
       homepage = "https://bitbucket.org/proximus/smseagle-graylog/";
       description = "Alert/notification callback plugin for integrating the SMSEagle into Graylog";
-      license = lib.licenses.gpl3Only;
+      license = licenses.gpl3Only;
     };
   };
   snmp = glPlugin rec {
@@ -267,7 +272,7 @@ in {
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-splunk";
       description = "Graylog output plugin that forwards one or more streams of data to Splunk via TCP";
-      license = lib.licenses.gpl3Only;
+      license = licenses.gpl3Only;
     };
   };
   twiliosms = glPlugin rec {
diff --git a/pkgs/tools/misc/latex2html/default.nix b/pkgs/tools/misc/latex2html/default.nix
index 79b80eb3e55eb..f3cca8872b238 100644
--- a/pkgs/tools/misc/latex2html/default.nix
+++ b/pkgs/tools/misc/latex2html/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "latex2html";
-  version = "2023.2";
+  version = "2024";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fn9Td4IVqlON93p3xPpQuurFQR8Rjp/sHoQG33O5GkI=";
+    sha256 = "sha256-MF+S6x+k+lkutJQ60HCxFpdR96K3AFZcP/4guK9RvsA=";
   };
 
   buildInputs = [ ghostscript netpbm perl ];
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index 10c5a0371d543..e4dd016bcd65c 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , rustPlatform
 , installShellFiles
 , darwin
@@ -11,16 +12,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lsd";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "lsd-rs";
     repo = "lsd";
     rev = "v${version}";
-    hash = "sha256-pPCcKEmB1/BS6Q2j1fytwpZa/5KXIJu0ip0Zq97m6uw=";
+    hash = "sha256-ZMaI0Q/xmYJHWvU4Tha+XVV55zKLukrqkROfBzu/JsQ=";
   };
 
-  cargoHash = "sha256-E0ui9cmuSqUMTkKvNNuEPOVd/gs4O2oW0aPxlyI9qoA=";
+  cargoPatches = [
+    # fix cargo lock file
+    (fetchpatch {
+      url = "https://github.com/lsd-rs/lsd/pull/1021/commits/7593fd7ea0985e273c82b6e80e66a801772024de.patch";
+      hash = "sha256-ykKLVSM6FbL4Jt5Zk7LuPKcYw/wrpiwU8vhuGz8Pbi0=";
+    })
+  ];
+
+  cargoHash = "sha256-TDHHY5F4lVrKd7r0QfrfUV2xzT6HMA/PtOIStMryaBA=";
 
   nativeBuildInputs = [ installShellFiles pandoc ];
 
diff --git a/pkgs/tools/misc/mise/default.nix b/pkgs/tools/misc/mise/default.nix
index c08de9afd8f1f..3321f40b95184 100644
--- a/pkgs/tools/misc/mise/default.nix
+++ b/pkgs/tools/misc/mise/default.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mise";
-  version = "2024.3.7";
+  version = "2024.3.10";
 
   src = fetchFromGitHub {
     owner = "jdx";
     repo = "mise";
     rev = "v${version}";
-    hash = "sha256-vwbg/OY7w9+5KvLp+BN2Ive9khVTUnWgnWD1T09iVR8=";
+    hash = "sha256-Vx6BI2GmnyvBlDGAkNDJaEMXBphbaIxB5npD/o5c48M=";
   };
 
-  cargoHash = "sha256-su8kyq+H42cYcQcoDYaTKAhLSykYOTXdkDQeCgScnp0=";
+  cargoHash = "sha256-uhpF5jKWtwEx2HkkHd+88HIao4rqvnSQblinVc4ip44=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
diff --git a/pkgs/tools/misc/ntfy-sh/default.nix b/pkgs/tools/misc/ntfy-sh/default.nix
index 114038dd01f7b..44a82b4253cc1 100644
--- a/pkgs/tools/misc/ntfy-sh/default.nix
+++ b/pkgs/tools/misc/ntfy-sh/default.nix
@@ -5,21 +5,21 @@
 
 buildGoModule rec {
   pname = "ntfy-sh";
-  version = "2.9.0";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "binwiederhier";
     repo = "ntfy";
     rev = "v${version}";
-    hash = "sha256-nCW7D2iQEv9NeIvVn1+REacspchzJ7SJgl0glEWkAoE=";
+    hash = "sha256-Ns73kZ7XJKj93fhTDQ3L5hk4NZVEcKysJVEZk6jX7KE=";
   };
 
-  vendorHash = "sha256-nnAw3BIiPMNa/7WSH8vurt8GUFM7Bf80CmtH4WjfC6Q=";
+  vendorHash = "sha256-c7fOSI+BPF3lwAJEftZHk9o/97T9kntgSsXoko3AYtQ=";
 
   ui = buildNpmPackage {
     inherit src version;
     pname = "ntfy-sh-ui";
-    npmDepsHash = "sha256-+4VL+bY3Nz5LT5ZyW9aJlrl3NsfOGv6CaiwLqpC5ywo=";
+    npmDepsHash = "sha256-nU5atvqyt5U7z8XB0+25uF+7tWPW2yYnkV/124fKoPE=";
 
     prePatch = ''
       cd web/
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index 2238cafe69839..b79d6b7d8e35d 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "panoply";
-  version = "5.3.3";
+  version = "5.3.4";
 
   src = fetchurl {
     url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
-    sha256 = "sha256-h2MJqbouPSciOdChLNIskYm3YLpJYK9gjTDB8StmBqg=";
+    sha256 = "sha256-v7ieTtm2W8Sc/zhQ7QPh8rkMUgaqgfGYYXc6Ly+9iMg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/remind/default.nix b/pkgs/tools/misc/remind/default.nix
index d3ac44b713649..00daec1e49132 100644
--- a/pkgs/tools/misc/remind/default.nix
+++ b/pkgs/tools/misc/remind/default.nix
@@ -15,11 +15,11 @@ let
 in
 tcl.mkTclDerivation rec {
   pname = "remind";
-  version = "04.03.03";
+  version = "04.03.04";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "sha256-+/vX6Nu0F84mZcEnd9jFlaVKbJIQQOJiPsxspKF+klQ=";
+    sha256 = "sha256-XkF/silBwDlQt9T2wmUMPh7MiE9yB+vXrSQmEnBEpC8=";
   };
 
   propagatedBuildInputs = tclLibraries;
diff --git a/pkgs/tools/misc/shim/default.nix b/pkgs/tools/misc/shim/default.nix
index 0b8f6dbe5a9f6..e4220cf5cc8ec 100644
--- a/pkgs/tools/misc/shim/default.nix
+++ b/pkgs/tools/misc/shim/default.nix
@@ -6,9 +6,9 @@ let
   inherit (stdenv.hostPlatform) system;
   throwSystem = throw "Unsupported system: ${system}";
 
-  target = {
-    x86_64-linux = "shimx64.efi";
-    aarch64-linux = "shimaa64.efi";
+  archSuffix = {
+    x86_64-linux = "x64";
+    aarch64-linux = "aa64";
   }.${system} or throwSystem;
 in stdenv.mkDerivation rec {
   pname = "shim";
@@ -28,19 +28,21 @@ in stdenv.mkDerivation rec {
 
   makeFlags =
     lib.optional (vendorCertFile != null) "VENDOR_CERT_FILE=${vendorCertFile}"
-    ++ lib.optional (defaultLoader != null) "DEFAULT_LOADER=${defaultLoader}"
-    ++ [ target ];
+    ++ lib.optional (defaultLoader != null) "DEFAULT_LOADER=${defaultLoader}";
 
-  installPhase = ''
-    mkdir -p $out/share/shim
-    install -m 644 ${target} $out/share/shim/
-  '';
+  installTargets = ["install-as-data"];
+  installFlags = [
+    "DATATARGETDIR=$(out)/share/shim"
+  ];
 
   passthru = {
-    # Expose the target file name so that consumers
+    # Expose the arch suffix and target file names so that consumers
     # (e.g. infrastructure for signing this shim) don't need to
     # duplicate the logic from here
-    inherit target;
+    inherit archSuffix;
+    target = "shim${archSuffix}.efi";
+    mokManagerTarget = "mm${archSuffix}.efi";
+    fallbackTarget = "fb${archSuffix}.efi";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/star-history/default.nix b/pkgs/tools/misc/star-history/default.nix
index 5c98e8a94419e..0588301a521ef 100644
--- a/pkgs/tools/misc/star-history/default.nix
+++ b/pkgs/tools/misc/star-history/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "star-history";
-  version = "1.0.20";
+  version = "1.0.21";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-1mAEDcg25v47zKSYbL0w6KX56ZIti6NcpnQKUyrtybg=";
+    sha256 = "sha256-jBeV5iZUKE70n/GTV+Bu9dy7B4pPmPhi5LHqw+YXJE0=";
   };
 
-  cargoHash = "sha256-qkIHNFCGLtQ1uO0Y3vKR3zBtKj8Cq0ptgQcqeGvG5qs=";
+  cargoHash = "sha256-oHAHYNJZuD8j/VLmCwcLxv9FkfZdXnxI8cQsJ8sFmZA=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index c970e19a6b896..1d2f484d34e42 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "1.18.0";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = "starship";
     rev = "v${version}";
-    hash = "sha256-f9alFoTH461y1EYnhxnnPN98ujLTnlVBJa8lEp8t44Y=";
+    hash = "sha256-84FyKhSP2EZZkQJRhNPTYs2BYppylk50GiIck8pN3l4=";
   };
 
   nativeBuildInputs = [ installShellFiles cmake ];
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
     cp docs/public/presets/toml/*.toml $presetdir
   '';
 
-  cargoHash = "sha256-7k7qb5jLz2mk27ayYYE5uFXYgQkjbIIwdppJxM8YgtY=";
+  cargoHash = "sha256-Fu8KfWHCQUPSiT1aMSS0Il/S02YXdEqKMA2nsliUu8E=";
 
   nativeCheckInputs = [ git ];
 
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index 37faf47f02a97..2522fc1952c48 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.43.0";
+  version = "1.45.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SbMZpMrcOGNzEqa/2x0OtgC2/fhKp8Prs8Hspy3I3tA=";
+    hash = "sha256-I7P/CohipEwrxoelU/ePSv2PHgM3HXdVVadpntVFcrQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/vector/Cargo.lock b/pkgs/tools/misc/vector/Cargo.lock
index 6bc92235ea6cb..155a138284865 100644
--- a/pkgs/tools/misc/vector/Cargo.lock
+++ b/pkgs/tools/misc/vector/Cargo.lock
@@ -227,9 +227,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "apache-avro"
@@ -274,9 +274,9 @@ dependencies = [
 
 [[package]]
 name = "arc-swap"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
 
 [[package]]
 name = "arr_macro"
@@ -333,12 +333,12 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.13"
+version = "2.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
+checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
 dependencies = [
  "anstyle",
- "bstr 1.9.0",
+ "bstr 1.9.1",
  "doc-comment",
  "predicates",
  "predicates-core",
@@ -426,22 +426,22 @@ dependencies = [
 
 [[package]]
 name = "async-graphql"
-version = "7.0.1"
+version = "7.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b16926f97f683ff3b47b035cc79622f3d6a374730b07a5d9051e81e88b5f1904"
+checksum = "261fa27d5bff5afdf7beff291b3bc73f99d1529804c70e51b0fbc51e70b1c6a9"
 dependencies = [
  "async-graphql-derive",
  "async-graphql-parser",
  "async-graphql-value",
  "async-stream",
  "async-trait",
- "base64 0.13.1",
+ "base64 0.21.7",
  "bytes 1.5.0",
  "chrono",
  "fnv",
  "futures-util",
  "http 1.0.0",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "mime",
  "multer",
  "num-traits",
@@ -457,26 +457,26 @@ dependencies = [
 
 [[package]]
 name = "async-graphql-derive"
-version = "7.0.1"
+version = "7.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6a7349168b79030e3172a620f4f0e0062268a954604e41475eff082380fe505"
+checksum = "3188809947798ea6db736715a60cf645ba3b87ea031c710130e1476b48e45967"
 dependencies = [
  "Inflector",
  "async-graphql-parser",
- "darling 0.20.5",
+ "darling 0.20.8",
  "proc-macro-crate 1.3.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "strum 0.25.0",
- "syn 2.0.48",
+ "strum 0.26.1",
+ "syn 2.0.53",
  "thiserror",
 ]
 
 [[package]]
 name = "async-graphql-parser"
-version = "7.0.1"
+version = "7.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fdc0adf9f53c2b65bb0ff5170cba1912299f248d0e48266f444b6f005deb1d"
+checksum = "d4e65a0b83027f35b2a5d9728a098bc66ac394caa8191d2c65ed9eb2985cf3d8"
 dependencies = [
  "async-graphql-value",
  "pest",
@@ -486,21 +486,21 @@ dependencies = [
 
 [[package]]
 name = "async-graphql-value"
-version = "7.0.1"
+version = "7.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cf4d4e86208f4f9b81a503943c07e6e7f29ad3505e6c9ce6431fe64dc241681"
+checksum = "68e40849c29a39012d38bff87bfed431f1ed6c53fbec493294c1045d61a7ae75"
 dependencies = [
  "bytes 1.5.0",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "serde",
  "serde_json",
 ]
 
 [[package]]
 name = "async-graphql-warp"
-version = "7.0.1"
+version = "7.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d906b817c1499c0a814ea62b2a9cc03726e50d694d7e8cad3fcc1b24e8b62883"
+checksum = "e901ea60bac5613a1c824da04c8e72906cf79efde5c56f657e3a4ac89624b0a5"
 dependencies = [
  "async-graphql",
  "futures-util",
@@ -586,10 +586,10 @@ dependencies = [
  "rand 0.8.5",
  "regex",
  "ring",
- "rustls",
- "rustls-native-certs",
- "rustls-pemfile",
- "rustls-webpki",
+ "rustls 0.21.8",
+ "rustls-native-certs 0.6.3",
+ "rustls-pemfile 1.0.3",
+ "rustls-webpki 0.101.7",
  "serde",
  "serde_json",
  "serde_nanos",
@@ -598,7 +598,7 @@ dependencies = [
  "time",
  "tokio",
  "tokio-retry",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tracing 0.1.40",
  "url",
 ]
@@ -645,13 +645,13 @@ dependencies = [
 
 [[package]]
 name = "async-recursion"
-version = "1.0.5"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -689,9 +689,9 @@ version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -702,16 +702,22 @@ checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
+name = "atomic"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
+
+[[package]]
 name = "atomic-waker"
 version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -754,7 +760,7 @@ dependencies = [
  "bytes 1.5.0",
  "fastrand 2.0.1",
  "http 0.2.9",
- "hyper",
+ "hyper 0.14.28",
  "time",
  "tokio",
  "tracing 0.1.40",
@@ -762,9 +768,9 @@ dependencies = [
 
 [[package]]
 name = "aws-credential-types"
-version = "1.1.5"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d56f287a9e65e4914bfedb5b22c056b65e4c232fca512d5509a9df36386759f"
+checksum = "fa8587ae17c8e967e4b05a62d495be2fb7701bec52a97f7acfe8a29f938384c8"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-runtime-api",
@@ -783,7 +789,7 @@ dependencies = [
  "aws-types",
  "bytes 1.5.0",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "pin-project-lite",
  "tracing 0.1.40",
 ]
@@ -924,9 +930,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-s3"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "859a207781360445504b89e790aebf682d80883280aa0d9b6e2e67740a733147"
+checksum = "9dcafc2fe52cc30b2d56685e2fa6a879ba50d79704594852112337a472ddbd24"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -944,7 +950,7 @@ dependencies = [
  "aws-types",
  "bytes 1.5.0",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "once_cell",
  "percent-encoding",
  "regex",
@@ -999,9 +1005,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-sts"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5700da387716ccfc30b27f44b008f457e1baca5b0f05b6b95455778005e3432a"
+checksum = "798c8d82203af9e15a8b406574e0b36da91dd6db533028b74676489a1bc8bc7d"
 dependencies = [
  "aws-credential-types",
  "aws-http",
@@ -1022,9 +1028,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sigv4"
-version = "1.1.4"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c371c6b0ac54d4605eb6f016624fb5c7c2925d315fdf600ac1bf21b19d5f1742"
+checksum = "11d6f29688a4be9895c0ba8bef861ad0c0dac5c15e9618b9b7a6c233990fc263"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-eventstream",
@@ -1046,9 +1052,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-async"
-version = "1.1.5"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "426a5bc369ca7c8d3686439e46edc727f397a47ab3696b13f3ae8c81b3b36132"
+checksum = "d26ea8fa03025b2face2b3038a63525a10891e3d8829901d502e5384a0d8cd46"
 dependencies = [
  "futures-util",
  "pin-project-lite",
@@ -1068,7 +1074,7 @@ dependencies = [
  "crc32fast",
  "hex",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "md-5",
  "pin-project-lite",
  "sha1",
@@ -1089,9 +1095,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-http"
-version = "0.60.5"
+version = "0.60.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85d6a0619f7b67183067fa3b558f94f90753da2df8c04aeb7336d673f804b0b8"
+checksum = "3f10fa66956f01540051b0aa7ad54574640f748f9839e843442d99b970d3aff9"
 dependencies = [
  "aws-smithy-eventstream",
  "aws-smithy-runtime-api",
@@ -1100,7 +1106,7 @@ dependencies = [
  "bytes-utils",
  "futures-core",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
@@ -1129,9 +1135,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime"
-version = "1.1.5"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4cb6b3afa5fc9825a75675975dcc3e21764b5476bc91dbc63df4ea3d30a576e"
+checksum = "ec81002d883e5a7fd2bb063d6fb51c4999eb55d404f4fff3dd878bf4733b9f01"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-http",
@@ -1141,44 +1147,45 @@ dependencies = [
  "fastrand 2.0.1",
  "h2 0.3.24",
  "http 0.2.9",
- "http-body",
- "hyper",
- "hyper-rustls",
+ "http-body 0.4.5",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "once_cell",
  "pin-project-lite",
  "pin-utils",
- "rustls",
+ "rustls 0.21.8",
  "tokio",
  "tracing 0.1.40",
 ]
 
 [[package]]
 name = "aws-smithy-runtime-api"
-version = "1.1.5"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23165433e80c04e8c09cee66d171292ae7234bae05fa9d5636e33095eae416b2"
+checksum = "9acb931e0adaf5132de878f1398d83f8677f90ba70f01f65ff87f6d7244be1c5"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-types",
  "bytes 1.5.0",
  "http 0.2.9",
+ "http 1.0.0",
  "pin-project-lite",
  "tokio",
  "tracing 0.1.40",
+ "zeroize",
 ]
 
 [[package]]
 name = "aws-smithy-types"
-version = "1.1.5"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c94a5bec34850b92c9a054dad57b95c1d47f25125f55973e19f6ad788f0381ff"
+checksum = "abe14dceea1e70101d38fbf2a99e6a34159477c0fb95e68e05c66bd7ae4c3729"
 dependencies = [
  "base64-simd",
  "bytes 1.5.0",
  "bytes-utils",
- "futures-core",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "itoa",
  "num-integer",
  "pin-project-lite",
@@ -1199,9 +1206,9 @@ dependencies = [
 
 [[package]]
 name = "aws-types"
-version = "1.1.4"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "789bbe008e65636fe1b6dbbb374c40c8960d1232b96af5ff4aec349f9c4accf4"
+checksum = "0dbf2f3da841a8930f159163175cf6a3d16ddde517c1b0fba7aa776822800f40"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-async",
@@ -1224,8 +1231,8 @@ dependencies = [
  "bytes 1.5.0",
  "futures-util",
  "http 0.2.9",
- "http-body",
- "hyper",
+ "http-body 0.4.5",
+ "hyper 0.14.28",
  "itoa",
  "matchit",
  "memchr",
@@ -1251,7 +1258,7 @@ dependencies = [
  "bytes 1.5.0",
  "futures-util",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "mime",
  "rustversion",
  "tower-layer",
@@ -1274,7 +1281,7 @@ dependencies = [
  "log",
  "paste",
  "pin-project",
- "quick-xml 0.31.0",
+ "quick-xml",
  "rand 0.8.5",
  "reqwest",
  "rustc_version 0.4.0",
@@ -1417,6 +1424,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
 name = "base64-simd"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1466,7 +1479,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9990737a6d5740ff51cdbbc0f0503015cb30c390f6623968281eb214a520cfc0"
 dependencies = [
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1526,9 +1539,9 @@ dependencies = [
 
 [[package]]
 name = "bollard"
-version = "0.15.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f03db470b3c0213c47e978da93200259a1eb4dae2e5512cba9955e2b540a6fc6"
+checksum = "83545367eb6428eb35c29cdec3a1f350fa8d6d9085d59a7d7bcb637f2e38db5a"
 dependencies = [
  "base64 0.21.7",
  "bollard-stubs",
@@ -1538,16 +1551,19 @@ dependencies = [
  "futures-util",
  "hex",
  "home",
- "http 0.2.9",
- "hyper",
- "hyper-rustls",
- "hyperlocal",
+ "http 1.0.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-named-pipe",
+ "hyper-rustls 0.26.0",
+ "hyper-util",
+ "hyperlocal-next",
  "log",
  "pin-project-lite",
- "rustls",
- "rustls-native-certs",
- "rustls-pemfile",
- "rustls-webpki",
+ "rustls 0.22.2",
+ "rustls-native-certs 0.7.0",
+ "rustls-pemfile 2.1.0",
+ "rustls-pki-types",
  "serde",
  "serde_derive",
  "serde_json",
@@ -1556,21 +1572,21 @@ dependencies = [
  "thiserror",
  "tokio",
  "tokio-util",
+ "tower-service",
  "url",
- "webpki-roots",
  "winapi",
 ]
 
 [[package]]
 name = "bollard-stubs"
-version = "1.43.0-rc.2"
+version = "1.44.0-rc.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b58071e8fd9ec1e930efd28e3a90c1251015872a2ce49f81f36421b86466932e"
+checksum = "709d9aa1c37abb89d40f19f5d0ad6f0d88cb1581264e571c9350fc5bb89cf1c5"
 dependencies = [
  "chrono",
  "serde",
  "serde_repr",
- "serde_with 3.6.1",
+ "serde_with 3.7.0",
 ]
 
 [[package]]
@@ -1591,9 +1607,9 @@ checksum = "f404657a7ea7b5249e36808dff544bc88a28f26e0ac40009f674b7a009d14be3"
 dependencies = [
  "once_cell",
  "proc-macro-crate 2.0.0",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
  "syn_derive",
 ]
 
@@ -1631,9 +1647,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.9.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "regex-automata 0.4.4",
@@ -1663,18 +1679,12 @@ version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
-name = "bytemuck"
-version = "1.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
-
-[[package]]
 name = "byteorder"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1717,9 +1727,9 @@ checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
 
 [[package]]
 name = "cached"
-version = "0.48.1"
+version = "0.49.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "355face540df58778b96814c48abb3c2ed67c4878a8087ab1819c1fedeec505f"
+checksum = "f251fd1e72720ca07bf5d8e310f54a193fd053479a1f6342c6663ee4fa01cf96"
 dependencies = [
  "ahash 0.8.6",
  "cached_proc_macro",
@@ -1732,12 +1742,12 @@ dependencies = [
 
 [[package]]
 name = "cached_proc_macro"
-version = "0.19.1"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d52f526f7cbc875b296856ca8c964a9f6290556922c303a8a3883e3c676e6a1"
+checksum = "ad9f16c0d84de31a2ab7fdf5f7783c14631f7075cf464eb3bb43119f61c9cb2a"
 dependencies = [
  "darling 0.14.4",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -1750,9 +1760,9 @@ checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0"
 
 [[package]]
 name = "cargo_toml"
-version = "0.19.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dc9f7a067415ab5058020f04c60ec7b557084dbec0e021217bbabc7a8d38d14"
+checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be"
 dependencies = [
  "serde",
  "toml",
@@ -1876,9 +1886,9 @@ dependencies = [
 
 [[package]]
 name = "chrono-tz"
-version = "0.8.5"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d7b79e99bfaa0d47da0687c43aa3b7381938a62ad3a6498599039321f660b7"
+checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e"
 dependencies = [
  "chrono",
  "chrono-tz-build",
@@ -1982,9 +1992,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.18"
+version = "4.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1992,53 +2002,53 @@ dependencies = [
 
 [[package]]
 name = "clap-verbosity-flag"
-version = "2.1.2"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b57f73ca21b17a0352944b9bb61803b6007bd911b6cccfef7153f7f0600ac495"
+checksum = "bb9b20c0dd58e4c2e991c8d203bbeb76c11304d1011659686b5b644bc29aa478"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
  "log",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.4.18"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim 0.10.0",
+ "strsim 0.11.0",
  "terminal_size",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.4.10"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb745187d7f4d76267b37485a65e0149edd0e91a4cfcdd3f27524ad86cee9f3"
+checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
 dependencies = [
- "heck 0.4.1",
- "proc-macro2 1.0.78",
+ "heck 0.5.0",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clipboard-win"
@@ -2187,9 +2197,9 @@ dependencies = [
 
 [[package]]
 name = "confy"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15d296c475c6ed4093824c28e222420831d27577aaaf0a1163a3b7fc35b248a5"
+checksum = "45b1f4c00870f07dc34adcac82bb6a72cc5aabca8536ba1797e01df51d2ce9a0"
 dependencies = [
  "directories",
  "serde",
@@ -2340,9 +2350,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
@@ -2356,7 +2366,7 @@ dependencies = [
  "anes",
  "cast",
  "ciborium",
- "clap 4.4.18",
+ "clap 4.5.3",
  "criterion-plot",
  "futures 0.3.30",
  "is-terminal",
@@ -2557,9 +2567,9 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2584,12 +2594,12 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.5"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core 0.20.5",
- "darling_macro 0.20.5",
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -2600,7 +2610,7 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "strsim 0.10.0",
  "syn 1.0.109",
@@ -2614,7 +2624,7 @@ checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "strsim 0.10.0",
  "syn 1.0.109",
@@ -2622,16 +2632,16 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.5"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "strsim 0.10.0",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2658,13 +2668,13 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
-version = "0.20.5"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
- "darling_core 0.20.5",
+ "darling_core 0.20.8",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2756,7 +2766,7 @@ version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -2767,9 +2777,9 @@ version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2779,7 +2789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 dependencies = [
  "convert_case 0.4.0",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "rustc_version 0.4.0",
  "syn 1.0.109",
@@ -2859,7 +2869,7 @@ checksum = "e5766087c2235fec47fafa4cfecc81e494ee679d0fd4a59887ea0919bfb0e4fc"
 dependencies = [
  "cfg-if",
  "libc",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "windows-sys 0.48.0",
 ]
 
@@ -2913,9 +2923,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
 
 [[package]]
 name = "ecdsa"
@@ -3036,7 +3046,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -3048,9 +3058,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3060,29 +3070,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e"
 dependencies = [
  "once_cell",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
 ]
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3258,7 +3268,7 @@ checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7"
 name = "file-source"
 version = "0.1.0"
 dependencies = [
- "bstr 1.9.0",
+ "bstr 1.9.1",
  "bytes 1.5.0",
  "chrono",
  "crc",
@@ -3267,7 +3277,7 @@ dependencies = [
  "flate2",
  "futures 0.3.30",
  "glob",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "libc",
  "quickcheck",
  "scan_fmt",
@@ -3342,6 +3352,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "flume"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "spin 0.9.8",
+]
+
+[[package]]
 name = "fnv"
 version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3471,9 +3492,9 @@ version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3650,7 +3671,7 @@ dependencies = [
  "graphql-parser",
  "heck 0.4.1",
  "lazy_static",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "serde",
  "serde_json",
@@ -3664,7 +3685,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "00bda454f3d313f909298f626115092d348bc231025699f557b27e248475f48c"
 dependencies = [
  "graphql_client_codegen",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "syn 1.0.109",
 ]
 
@@ -3685,7 +3706,7 @@ dependencies = [
 [[package]]
 name = "greptimedb-client"
 version = "0.1.0"
-source = "git+https://github.com/GreptimeTeam/greptimedb-ingester-rust.git?rev=4cb19ec47eeaf634c451d9ae438dac445a8a3dce#4cb19ec47eeaf634c451d9ae438dac445a8a3dce"
+source = "git+https://github.com/GreptimeTeam/greptimedb-ingester-rust.git?rev=d21dbcff680139ed2065b62100bac3123da7c789#d21dbcff680139ed2065b62100bac3123da7c789"
 dependencies = [
  "dashmap",
  "enum_dispatch",
@@ -3736,7 +3757,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http 0.2.9",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "slab",
  "tokio",
  "tokio-util",
@@ -3745,9 +3766,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
+checksum = "51ee2dd2e4f378392eeff5d51618cd9a63166a2513846bbc55f21cfacd9199d4"
 dependencies = [
  "bytes 1.5.0",
  "fnv",
@@ -3755,7 +3776,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http 1.0.0",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "slab",
  "tokio",
  "tokio-util",
@@ -3856,6 +3877,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "heim"
 version = "0.1.0-rc.1"
 source = "git+https://github.com/vectordotdev/heim.git?branch=update-nix#a66c44074fb214e2b9355d7c407315f720664b18"
@@ -4096,6 +4123,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes 1.5.0",
+ "http 1.0.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+dependencies = [
+ "bytes 1.5.0",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "http-range-header"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4162,12 +4212,12 @@ dependencies = [
  "futures-util",
  "h2 0.3.24",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio",
  "tower-service",
  "tracing 0.1.40",
@@ -4175,13 +4225,47 @@ dependencies = [
 ]
 
 [[package]]
+name = "hyper"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
+dependencies = [
+ "bytes 1.5.0",
+ "futures-channel",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "httparse",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-named-pipe"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278"
+dependencies = [
+ "hex",
+ "hyper 1.2.0",
+ "hyper-util",
+ "pin-project-lite",
+ "tokio",
+ "tower-service",
+ "winapi",
+]
+
+[[package]]
 name = "hyper-openssl"
 version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b"
 dependencies = [
  "http 0.2.9",
- "hyper",
+ "hyper 0.14.28",
  "linked_hash_set",
  "once_cell",
  "openssl",
@@ -4202,7 +4286,7 @@ dependencies = [
  "futures 0.3.30",
  "headers",
  "http 0.2.9",
- "hyper",
+ "hyper 0.14.28",
  "openssl",
  "tokio",
  "tokio-openssl",
@@ -4217,12 +4301,31 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
  "http 0.2.9",
- "hyper",
+ "hyper 0.14.28",
  "log",
- "rustls",
- "rustls-native-certs",
+ "rustls 0.21.8",
+ "rustls-native-certs 0.6.3",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+dependencies = [
+ "futures-util",
+ "http 1.0.0",
+ "hyper 1.2.0",
+ "hyper-util",
+ "log",
+ "rustls 0.22.2",
+ "rustls-native-certs 0.7.0",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
 ]
 
 [[package]]
@@ -4231,7 +4334,7 @@ version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
 dependencies = [
- "hyper",
+ "hyper 0.14.28",
  "pin-project-lite",
  "tokio",
  "tokio-io-timeout",
@@ -4244,23 +4347,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
 dependencies = [
  "bytes 1.5.0",
- "hyper",
+ "hyper 0.14.28",
  "native-tls",
  "tokio",
  "tokio-native-tls",
 ]
 
 [[package]]
-name = "hyperlocal"
-version = "0.8.0"
+name = "hyper-util"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fafdf7b2b2de7c9784f76e02c0935e65a8117ec3b768644379983ab333ac98c"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
 dependencies = [
+ "bytes 1.5.0",
+ "futures-channel",
  "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "hyper 1.2.0",
+ "pin-project-lite",
+ "socket2 0.5.6",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing 0.1.40",
+]
+
+[[package]]
+name = "hyperlocal-next"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acf569d43fa9848e510358c07b80f4adf34084ddc28c6a4a651ee8474c070dcc"
+dependencies = [
  "hex",
- "hyper",
- "pin-project",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
+ "pin-project-lite",
  "tokio",
+ "tower-service",
 ]
 
 [[package]]
@@ -4336,9 +4461,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.3"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -4448,7 +4573,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "widestring 1.0.2",
  "windows-sys 0.48.0",
  "winreg",
@@ -4459,6 +4584,9 @@ name = "ipnet"
 version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "ipnetwork"
@@ -4704,8 +4832,8 @@ dependencies = [
  "either",
  "futures 0.3.30",
  "http 0.2.9",
- "http-body",
- "hyper",
+ "http-body 0.4.5",
+ "hyper 0.14.28",
  "hyper-openssl",
  "hyper-timeout",
  "jsonpath_lib",
@@ -4717,7 +4845,7 @@ dependencies = [
  "secrecy",
  "serde",
  "serde_json",
- "serde_yaml 0.9.31",
+ "serde_yaml 0.9.33",
  "thiserror",
  "tokio",
  "tokio-util",
@@ -4807,7 +4935,7 @@ dependencies = [
  "async-reactor-trait",
  "async-trait",
  "executor-trait",
- "flume",
+ "flume 0.10.14",
  "futures-core",
  "futures-io",
  "parking_lot",
@@ -4931,9 +5059,9 @@ checksum = "3a69c0481fc2424cb55795de7da41add33372ea75a94f9b6588ab6a2826dfebc"
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "logfmt"
@@ -4955,9 +5083,9 @@ dependencies = [
 
 [[package]]
 name = "lru"
-version = "0.12.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
 dependencies = [
  "hashbrown 0.14.3",
 ]
@@ -5161,9 +5289,9 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5246,11 +5374,11 @@ dependencies = [
 
 [[package]]
 name = "mlua"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d3561f79659ff3afad7b25e2bf2ec21507fe601ebecb7f81088669ec4bfd51e"
+checksum = "868d02cb5eb97761bbf6bd6922c1c7a88b8ea252bbf43bd8350a0bf8497a1fc0"
 dependencies = [
- "bstr 1.9.0",
+ "bstr 1.9.1",
  "mlua-sys",
  "mlua_derive",
  "num-traits",
@@ -5280,23 +5408,23 @@ dependencies = [
  "itertools 0.12.1",
  "once_cell",
  "proc-macro-error",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "regex",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "mock_instant"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c1a54de846c4006b88b1516731cc1f6026eb5dc4bcb186aa071ef66d40524ec"
+checksum = "9366861eb2a2c436c20b12c8dbec5f798cea6b47ad99216be0282942e2c81ea0"
 
 [[package]]
 name = "mongodb"
-version = "2.8.1"
+version = "2.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de59562e5c71656c098d8e966641b31da87b89dc3dcb6e761d3b37dcdfa0cb72"
+checksum = "ef206acb1b72389b49bc9985efe7eb1f8a9bb18e5680d262fac26c07f44025f1"
 dependencies = [
  "async-trait",
  "base64 0.13.1",
@@ -5317,8 +5445,8 @@ dependencies = [
  "percent-encoding",
  "rand 0.8.5",
  "rustc_version_runtime",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.8",
+ "rustls-pemfile 1.0.3",
  "serde",
  "serde_bytes",
  "serde_with 1.14.0",
@@ -5330,7 +5458,7 @@ dependencies = [
  "take_mut",
  "thiserror",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tokio-util",
  "trust-dns-proto",
  "trust-dns-resolver",
@@ -5457,12 +5585,13 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.27.1"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
  "bitflags 2.4.1",
  "cfg-if",
+ "cfg_aliases",
  "libc",
 ]
 
@@ -5718,7 +5847,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
 dependencies = [
  "proc-macro-crate 1.3.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -5730,9 +5859,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
 dependencies = [
  "proc-macro-crate 1.3.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5742,9 +5871,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
  "proc-macro-crate 2.0.0",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5851,9 +5980,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
 
 [[package]]
 name = "opendal"
-version = "0.45.0"
+version = "0.45.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3350be0d4ba326017ce22c98a9e94d21b069160fcd95bbe6c2555dac4e93c47a"
+checksum = "52c17c077f23fa2d2c25d9d22af98baa43b8bbe2ef0de80cf66339aa70401467"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5869,7 +5998,7 @@ dependencies = [
  "md-5",
  "once_cell",
  "percent-encoding",
- "quick-xml 0.30.0",
+ "quick-xml",
  "reqwest",
  "serde",
  "serde_json",
@@ -5902,7 +6031,7 @@ dependencies = [
  "serde_json",
  "serde_path_to_error",
  "serde_plain",
- "serde_with 3.6.1",
+ "serde_with 3.7.0",
  "sha2",
  "subtle",
  "thiserror",
@@ -5911,9 +6040,9 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.63"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
  "bitflags 2.4.1",
  "cfg-if",
@@ -5930,9 +6059,9 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5943,18 +6072,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.2.2+3.2.1"
+version = "300.2.3+3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.99"
+version = "0.9.101"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
 dependencies = [
  "cc",
  "libc",
@@ -6015,12 +6144,12 @@ dependencies = [
 
 [[package]]
 name = "os_info"
-version = "3.7.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
+checksum = "6cbb46d5d01695d7a1fb8be5f0d1968bd2b2b8ba1d1b3e7062ce2a0593e57af1"
 dependencies = [
  "log",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -6215,9 +6344,9 @@ checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e"
 dependencies = [
  "pest",
  "pest_meta",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -6238,7 +6367,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
 ]
 
 [[package]]
@@ -6290,22 +6419,22 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -6327,7 +6456,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d894b67aa7a4bf295db5e85349078c604edaa6fa5c8721e8eca3c7729a27f2ac"
 dependencies = [
  "doc-comment",
- "flume",
+ "flume 0.10.14",
  "parking_lot",
  "tracing 0.1.40",
 ]
@@ -6571,7 +6700,7 @@ version = "0.1.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "syn 1.0.109",
 ]
 
@@ -6581,8 +6710,8 @@ version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
 dependencies = [
- "proc-macro2 1.0.78",
- "syn 2.0.48",
+ "proc-macro2 1.0.79",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -6634,7 +6763,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 dependencies = [
  "proc-macro-error-attr",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
  "version_check",
@@ -6646,7 +6775,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "version_check",
 ]
@@ -6674,9 +6803,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -6685,7 +6814,7 @@ dependencies = [
 name = "prometheus-parser"
 version = "0.1.0"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "nom",
  "num_enum 0.7.2",
  "prost 0.12.3",
@@ -6721,7 +6850,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9cf16337405ca084e9c78985114633b6827711d22b9e6ef6c6c0d665eb3f0b6e"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -6785,7 +6914,7 @@ dependencies = [
  "prost 0.12.3",
  "prost-types 0.12.3",
  "regex",
- "syn 2.0.48",
+ "syn 2.0.53",
  "tempfile",
  "which 4.4.2",
 ]
@@ -6798,7 +6927,7 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
 dependencies = [
  "anyhow",
  "itertools 0.10.5",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -6811,9 +6940,9 @@ checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
 dependencies = [
  "anyhow",
  "itertools 0.11.0",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -6878,7 +7007,7 @@ version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -6967,16 +7096,6 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
-dependencies = [
- "memchr",
- "serde",
-]
-
-[[package]]
-name = "quick-xml"
 version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
@@ -7002,7 +7121,7 @@ version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -7022,7 +7141,7 @@ version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
 ]
 
 [[package]]
@@ -7139,9 +7258,9 @@ dependencies = [
 
 [[package]]
 name = "ratatui"
-version = "0.26.0"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "154b85ef15a5d1719bcaa193c3c81fe645cd120c156874cd660fe49fd21d1373"
+checksum = "bcb12f8fbf6c62614b0d56eb352af54f6a22410c3b079eb53ee93c7b97dd31d8"
 dependencies = [
  "bitflags 2.4.1",
  "cassowary",
@@ -7387,9 +7506,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.24"
+version = "0.11.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
+checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
 dependencies = [
  "base64 0.21.7",
  "bytes 1.5.0",
@@ -7398,9 +7517,9 @@ dependencies = [
  "futures-util",
  "h2 0.3.24",
  "http 0.2.9",
- "http-body",
- "hyper",
- "hyper-rustls",
+ "http-body 0.4.5",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "hyper-tls",
  "ipnet",
  "js-sys",
@@ -7410,8 +7529,8 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.8",
+ "rustls-pemfile 1.0.3",
  "serde",
  "serde_json",
  "serde_urlencoded",
@@ -7419,7 +7538,7 @@ dependencies = [
  "system-configuration",
  "tokio",
  "tokio-native-tls",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tokio-util",
  "tower-service",
  "url",
@@ -7495,7 +7614,7 @@ version = "0.7.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -7542,14 +7661,9 @@ dependencies = [
 
 [[package]]
 name = "roaring"
-version = "0.10.2"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6106b5cf8587f5834158895e9715a3c6c9716c8aefab57f1f7680917191c7873"
-dependencies = [
- "bytemuck",
- "byteorder",
- "retain_mut",
-]
+checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf"
 
 [[package]]
 name = "roxmltree"
@@ -7597,16 +7711,34 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
 dependencies = [
  "cfg-if",
  "glob",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "regex",
  "relative-path",
  "rustc_version 0.4.0",
- "syn 2.0.48",
+ "syn 2.0.53",
  "unicode-ident",
 ]
 
 [[package]]
+name = "rumqttc"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1568e15fab2d546f940ed3a21f48bbbd1c494c90c99c4481339364a497f94a9"
+dependencies = [
+ "bytes 1.5.0",
+ "flume 0.11.0",
+ "futures-util",
+ "log",
+ "rustls-native-certs 0.7.0",
+ "rustls-pemfile 2.1.0",
+ "rustls-webpki 0.102.2",
+ "thiserror",
+ "tokio",
+ "tokio-rustls 0.25.0",
+]
+
+[[package]]
 name = "rust_decimal"
 version = "1.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7649,7 +7781,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.21",
+ "semver 1.0.22",
 ]
 
 [[package]]
@@ -7697,18 +7829,45 @@ checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
 dependencies = [
  "log",
  "ring",
- "rustls-webpki",
+ "rustls-webpki 0.101.7",
  "sct",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.3",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 2.1.0",
+ "rustls-pki-types",
  "schannel",
  "security-framework",
 ]
@@ -7723,6 +7882,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b"
+dependencies = [
+ "base64 0.21.7",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7733,6 +7908,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7752,9 +7938,9 @@ dependencies = [
 
 [[package]]
 name = "rustyline"
-version = "13.0.0"
+version = "14.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86"
+checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63"
 dependencies = [
  "bitflags 2.4.1",
  "cfg-if",
@@ -7762,18 +7948,18 @@ dependencies = [
  "libc",
  "log",
  "memchr",
- "nix 0.27.1",
+ "nix 0.28.0",
  "unicode-segmentation",
  "unicode-width",
  "utf8parse",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "salsa20"
@@ -7910,9 +8096,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
@@ -7925,18 +8111,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-toml-merge"
-version = "0.3.4"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc6244d74ff29bd838ad4cfc9184e3f5d0011500acc8d3fb96708211d4edfb26"
+checksum = "88075e75b01384301454b1c188243552c674263c0c0c3c7ed5dd82291b20798f"
 dependencies = [
  "toml",
 ]
@@ -7953,9 +8139,9 @@ dependencies = [
 
 [[package]]
 name = "serde-wasm-bindgen"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132"
+checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"
 dependencies = [
  "js-sys",
  "serde",
@@ -7973,13 +8159,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -7988,18 +8174,18 @@ version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.113"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "itoa",
  "ryu",
  "serde",
@@ -8050,9 +8236,9 @@ version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -8088,19 +8274,19 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.6.1"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270"
+checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
 dependencies = [
  "base64 0.21.7",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "serde",
  "serde_derive",
  "serde_json",
- "serde_with_macros 3.6.1",
+ "serde_with_macros 3.7.0",
  "time",
 ]
 
@@ -8111,21 +8297,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
 dependencies = [
  "darling 0.13.4",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "serde_with_macros"
-version = "3.6.1"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d"
+checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655"
 dependencies = [
- "darling 0.20.5",
- "proc-macro2 1.0.78",
+ "darling 0.20.8",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -8142,11 +8328,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.31"
+version = "0.9.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e"
+checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "itoa",
  "ryu",
  "serde",
@@ -8322,9 +8508,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 dependencies = [
  "serde",
 ]
@@ -8390,7 +8576,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -8402,9 +8588,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "080c44971436b1af15d6f61ddd8b543995cf63ab8e677d46b00cc06f4ef267a0"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -8425,12 +8611,12 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -8537,6 +8723,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "structopt"
 version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8555,7 +8747,7 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
 dependencies = [
  "heck 0.3.3",
  "proc-macro-error",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -8565,9 +8757,6 @@ name = "strum"
 version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
-dependencies = [
- "strum_macros 0.25.3",
-]
 
 [[package]]
 name = "strum"
@@ -8585,10 +8774,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "rustversion",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -8598,10 +8787,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "rustversion",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -8637,18 +8826,18 @@ version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "unicode-ident",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "unicode-ident",
 ]
@@ -8660,9 +8849,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
 dependencies = [
  "proc-macro-error",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -8735,7 +8924,7 @@ checksum = "4da30af7998f51ee1aa48ab24276fe303a697b004e31ff542b192c088d5630a5"
 dependencies = [
  "cfg-if",
  "native-tls",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.3",
 ]
 
 [[package]]
@@ -8746,9 +8935,9 @@ checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "tempfile"
-version = "3.10.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
@@ -8815,22 +9004,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -8943,7 +9132,7 @@ dependencies = [
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio-macros",
  "tracing 0.1.40",
  "windows-sys 0.48.0",
@@ -8976,9 +9165,9 @@ version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -9023,7 +9212,7 @@ dependencies = [
  "postgres-protocol",
  "postgres-types",
  "rand 0.8.5",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio",
  "tokio-util",
  "whoami",
@@ -9046,15 +9235,26 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls",
+ "rustls 0.21.8",
+ "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.2",
+ "rustls-pki-types",
  "tokio",
 ]
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -9064,9 +9264,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-test"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719"
+checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7"
 dependencies = [
  "async-stream",
  "bytes 1.5.0",
@@ -9083,7 +9283,7 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
 dependencies = [
  "futures-util",
  "log",
- "rustls",
+ "rustls 0.21.8",
  "tokio",
  "tungstenite",
 ]
@@ -9105,14 +9305,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.4",
+ "toml_edit 0.22.8",
 ]
 
 [[package]]
@@ -9130,9 +9330,9 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.18",
 ]
 
 [[package]]
@@ -9141,22 +9341,22 @@ version = "0.20.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.18",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.22.4"
+version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
+checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -9173,17 +9373,17 @@ dependencies = [
  "flate2",
  "h2 0.3.24",
  "http 0.2.9",
- "http-body",
- "hyper",
+ "http-body 0.4.5",
+ "hyper 0.14.28",
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
  "prost 0.12.3",
- "rustls",
- "rustls-native-certs",
- "rustls-pemfile",
+ "rustls 0.21.8",
+ "rustls-native-certs 0.6.3",
+ "rustls-pemfile 1.0.3",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tokio-stream",
  "tower",
  "tower-layer",
@@ -9198,7 +9398,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07"
 dependencies = [
  "prettyplease 0.1.25",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "prost-build 0.11.9",
  "quote 1.0.35",
  "syn 1.0.109",
@@ -9211,10 +9411,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889"
 dependencies = [
  "prettyplease 0.2.15",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "prost-build 0.12.3",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -9250,7 +9450,7 @@ dependencies = [
  "futures-core",
  "futures-util",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "http-range-header",
  "mime",
  "pin-project-lite",
@@ -9315,9 +9515,9 @@ version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -9529,7 +9729,7 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "syn 1.0.109",
 ]
@@ -9549,9 +9749,9 @@ version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -9562,9 +9762,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "typetag"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c43148481c7b66502c48f35b8eef38b6ccdc7a9f04bd4cc294226d901ccc9bc7"
+checksum = "661d18414ec032a49ece2d56eee03636e43c4e8d577047ab334c0ba892e29aaf"
 dependencies = [
  "erased-serde",
  "inventory",
@@ -9575,13 +9775,13 @@ dependencies = [
 
 [[package]]
 name = "typetag-impl"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291db8a81af4840c10d636e047cac67664e343be44e24dfdbd1492df9a5d3390"
+checksum = "ac73887f47b9312552aa90ef477927ff014d63d1920ca8037c6c1951eab64bb1"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -9694,9 +9894,9 @@ dependencies = [
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
 
 [[package]]
 name = "untrusted"
@@ -9753,10 +9953,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
+ "atomic",
  "getrandom 0.2.12",
  "rand 0.8.5",
  "serde",
@@ -9782,7 +9983,7 @@ dependencies = [
  "anyhow",
  "cached",
  "chrono",
- "clap 4.4.18",
+ "clap 4.5.3",
  "clap-verbosity-flag",
  "clap_complete",
  "confy",
@@ -9790,7 +9991,7 @@ dependencies = [
  "dunce",
  "glob",
  "hex",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "indicatif",
  "itertools 0.12.1",
  "log",
@@ -9802,7 +10003,7 @@ dependencies = [
  "reqwest",
  "serde",
  "serde_json",
- "serde_yaml 0.9.31",
+ "serde_yaml 0.9.33",
  "sha2",
  "tempfile",
  "toml",
@@ -9816,7 +10017,7 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
 name = "vector"
-version = "0.36.1"
+version = "0.37.0"
 dependencies = [
  "apache-avro",
  "approx",
@@ -9852,7 +10053,7 @@ dependencies = [
  "azure_identity",
  "azure_storage",
  "azure_storage_blobs",
- "base64 0.21.7",
+ "base64 0.22.0",
  "bloomy",
  "bollard",
  "bytes 1.5.0",
@@ -9860,7 +10061,7 @@ dependencies = [
  "chrono",
  "chrono-tz",
  "cidr-utils 0.6.1",
- "clap 4.4.18",
+ "clap 4.5.3",
  "colored",
  "console-subscriber",
  "criterion",
@@ -9882,7 +10083,7 @@ dependencies = [
  "governor",
  "greptimedb-client",
  "grok",
- "h2 0.4.2",
+ "h2 0.4.3",
  "hash_hasher",
  "hashbrown 0.14.3",
  "headers",
@@ -9891,15 +10092,16 @@ dependencies = [
  "hickory-proto",
  "hostname",
  "http 0.2.9",
- "http-body",
+ "http-body 0.4.5",
  "http-serde",
- "hyper",
+ "hyper 0.14.28",
  "hyper-openssl",
  "hyper-proxy",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "indoc",
  "infer 0.15.0",
  "inventory",
+ "ipnet",
  "itertools 0.12.1",
  "k8s-openapi 0.18.0",
  "kube",
@@ -9950,21 +10152,22 @@ dependencies = [
  "rmpv",
  "roaring",
  "rstest",
+ "rumqttc",
  "seahash",
- "semver 1.0.21",
+ "semver 1.0.22",
  "serde",
  "serde-toml-merge",
  "serde_bytes",
  "serde_json",
- "serde_with 3.6.1",
- "serde_yaml 0.9.31",
+ "serde_with 3.7.0",
+ "serde_yaml 0.9.33",
  "sha2",
  "similar-asserts",
  "smallvec",
  "smpl_jwt",
  "snafu 0.7.5",
  "snap",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "stream-cancel",
  "strip-ansi-escapes",
  "syslog",
@@ -10009,7 +10212,7 @@ dependencies = [
  "anyhow",
  "async-trait",
  "chrono",
- "clap 4.4.18",
+ "clap 4.5.3",
  "futures 0.3.30",
  "graphql_client",
  "indoc",
@@ -10032,7 +10235,7 @@ dependencies = [
  "async-trait",
  "bytecheck",
  "bytes 1.5.0",
- "clap 4.4.18",
+ "clap 4.5.3",
  "crc32fast",
  "criterion",
  "crossbeam-queue",
@@ -10054,7 +10257,7 @@ dependencies = [
  "rand 0.8.5",
  "rkyv",
  "serde",
- "serde_yaml 0.9.31",
+ "serde_yaml 0.9.33",
  "snafu 0.7.5",
  "temp-dir",
  "tokio",
@@ -10080,7 +10283,7 @@ dependencies = [
  "crossbeam-utils",
  "derivative",
  "futures 0.3.30",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "metrics",
  "nom",
  "ordered-float 4.2.0",
@@ -10111,13 +10314,13 @@ dependencies = [
  "chrono-tz",
  "encoding_rs",
  "http 0.2.9",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "inventory",
  "no-proxy",
  "num-traits",
  "serde",
  "serde_json",
- "serde_with 3.6.1",
+ "serde_with 3.7.0",
  "snafu 0.7.5",
  "toml",
  "tracing 0.1.40",
@@ -10133,13 +10336,13 @@ name = "vector-config-common"
 version = "0.1.0"
 dependencies = [
  "convert_case 0.6.0",
- "darling 0.20.5",
+ "darling 0.20.8",
  "once_cell",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "serde",
  "serde_json",
- "syn 2.0.48",
+ "syn 2.0.53",
  "tracing 0.1.40",
 ]
 
@@ -10147,12 +10350,12 @@ dependencies = [
 name = "vector-config-macros"
 version = "0.1.0"
 dependencies = [
- "darling 0.20.5",
- "proc-macro2 1.0.78",
+ "darling 0.20.8",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
  "serde",
  "serde_derive_internals",
- "syn 2.0.48",
+ "syn 2.0.53",
  "vector-config",
  "vector-config-common",
 ]
@@ -10163,7 +10366,7 @@ version = "0.1.0"
 dependencies = [
  "async-graphql",
  "async-trait",
- "base64 0.21.7",
+ "base64 0.22.0",
  "bitmask-enum",
  "bytes 1.5.0",
  "chrono",
@@ -10181,7 +10384,8 @@ dependencies = [
  "headers",
  "http 0.2.9",
  "hyper-proxy",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
+ "ipnet",
  "metrics",
  "metrics-tracing-context",
  "metrics-util",
@@ -10210,12 +10414,12 @@ dependencies = [
  "security-framework",
  "serde",
  "serde_json",
- "serde_with 3.6.1",
- "serde_yaml 0.9.31",
+ "serde_with 3.7.0",
+ "serde_yaml 0.9.33",
  "similar-asserts",
  "smallvec",
  "snafu 0.7.5",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio",
  "tokio-openssl",
  "tokio-stream",
@@ -10291,7 +10495,7 @@ dependencies = [
 name = "vector-vrl-cli"
 version = "0.1.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.3",
  "vector-vrl-functions",
  "vrl",
 ]
@@ -10310,7 +10514,7 @@ dependencies = [
  "ansi_term",
  "chrono",
  "chrono-tz",
- "clap 4.4.18",
+ "clap 4.5.3",
  "enrichment",
  "glob",
  "prettydiff",
@@ -10352,15 +10556,15 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
 
 [[package]]
 name = "vrl"
-version = "0.11.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e125a431e61be8819cd967dce0b610290d51b30e287df9a0aeb07afa9a9a719"
+checksum = "81f1e48235e8db47d5010723fc32c38b09820a1a2a57eaea77b089493a375f52"
 dependencies = [
  "aes",
  "ansi_term",
  "arbitrary",
  "base16",
- "base64 0.21.7",
+ "base64 0.22.0",
  "bytes 1.5.0",
  "cbc",
  "cfb-mode",
@@ -10370,7 +10574,7 @@ dependencies = [
  "chrono",
  "chrono-tz",
  "cidr-utils 0.6.1",
- "clap 4.4.18",
+ "clap 4.5.3",
  "codespan-reporting",
  "community-id",
  "crypto_secretbox",
@@ -10388,7 +10592,7 @@ dependencies = [
  "hostname",
  "iana-time-zone",
  "idna 0.5.0",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "indoc",
  "itertools 0.12.1",
  "lalrpop",
@@ -10407,6 +10611,8 @@ dependencies = [
  "pest_derive",
  "prettydiff",
  "prettytable-rs",
+ "prost 0.12.3",
+ "prost-reflect",
  "psl",
  "quickcheck",
  "quoted_printable",
@@ -10459,7 +10665,7 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
 ]
 
@@ -10508,13 +10714,13 @@ dependencies = [
  "futures-util",
  "headers",
  "http 0.2.9",
- "hyper",
+ "hyper 0.14.28",
  "log",
  "mime",
  "mime_guess",
  "percent-encoding",
  "pin-project",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.3",
  "scoped-tls",
  "serde",
  "serde_json",
@@ -10547,9 +10753,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -10557,16 +10763,16 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
  "wasm-bindgen-shared",
 ]
 
@@ -10584,9 +10790,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote 1.0.35",
  "wasm-bindgen-macro-support",
@@ -10594,22 +10800,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-streams"
@@ -10964,6 +11170,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "winreg"
 version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10986,7 +11201,7 @@ dependencies = [
  "futures 0.3.30",
  "futures-timer",
  "http-types",
- "hyper",
+ "hyper 0.14.28",
  "log",
  "once_cell",
  "regex",
@@ -11044,9 +11259,9 @@ version = "0.7.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
 dependencies = [
- "proc-macro2 1.0.78",
+ "proc-macro2 1.0.79",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.53",
 ]
 
 [[package]]
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index 2a0b8dbba75f4..84b13c69e040e 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , rustPlatform
 , pkg-config
 , openssl
@@ -36,7 +37,7 @@
 
 let
   pname = "vector";
-  version = "0.36.1";
+  version = "0.37.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -45,14 +46,23 @@ rustPlatform.buildRustPackage {
     owner = "vectordotdev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-iY0Bi1FG3kEiZtPTXonoVGYiquZkTPF51PWEZEoxQSw=";
+    hash = "sha256-v93ZsNGoswPpey409V7qKqsBsfRt5pgY5PxGti4MlDg=";
   };
 
+  patches = [
+    # Enable LTO to bring down binary size
+    (fetchpatch {
+      name = "vector-20034-lto.patch";
+      url  = "https://patch-diff.githubusercontent.com/raw/vectordotdev/vector/pull/20034.diff";
+      hash = "sha256-X6YWnW0x5WpKAgyqIaLjKF1F1/G4JgvmNhAHtozXrPQ=";
+    })
+  ];
+
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "greptime-proto-0.1.0" = "sha256-Q8xr6qN6SAGGK0W96WuNRdQ5/8iNlruqzhXD6xq3Ua8=";
-      "greptimedb-client-0.1.0" = "sha256-l4r/2DGllXiFgOwpa83ZRiK9o0L4bokVltCGD1cp3NM=";
+      "greptimedb-client-0.1.0" = "sha256-evL8Q2Ikct9s0r4DWTgSP/8g4XTishuJHmwRoCfQFbU=";
       "heim-0.1.0-rc.1" = "sha256-TFgLR5zb/oqceVOH4mIOvFFY/HMOLSo8VI5Eh9KP60E=";
       "nix-0.26.2" = "sha256-uquYvRT56lhupkrESpxwKEimRFhmYvri10n3dj0f2yg=";
       "ntapi-0.3.7" = "sha256-G6ZCsa3GWiI/FeGKiK9TWkmTxen7nwpXvm5FtjNtjWU=";
@@ -60,6 +70,7 @@ rustPlatform.buildRustPackage {
       "tracing-0.2.0" = "sha256-YAxeEofFA43PX2hafh3RY+C81a2v6n1fGzYz2FycC3M=";
     };
   };
+
   nativeBuildInputs = [ pkg-config cmake perl git rustPlatform.bindgenHook ];
   buildInputs =
     [ oniguruma openssl protobuf rdkafka zstd ]
diff --git a/pkgs/tools/misc/vial/default.nix b/pkgs/tools/misc/vial/default.nix
index 613abcdf7dbf3..e4c2b2989394c 100644
--- a/pkgs/tools/misc/vial/default.nix
+++ b/pkgs/tools/misc/vial/default.nix
@@ -27,7 +27,7 @@ appimageTools.wrapType2 {
     description = "An Open-source GUI and QMK fork for configuring your keyboard in real time";
     homepage = "https://get.vial.today";
     license = lib.licenses.gpl2Plus;
-    mainProgram = "vial";
+    mainProgram = "Vial";
     maintainers = with lib.maintainers; [ kranzes ];
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/tools/misc/wasm-tools/default.nix b/pkgs/tools/misc/wasm-tools/default.nix
index 539850306bfe2..6b818f9e05fc1 100644
--- a/pkgs/tools/misc/wasm-tools/default.nix
+++ b/pkgs/tools/misc/wasm-tools/default.nix
@@ -5,19 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-tools";
-  version = "1.201.0";
+  version = "1.202.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-L3wo6a9rxqZ8Rjz8nejbfdTgQclFFp2ShdP6QECbrmg=";
+    hash = "sha256-7JH93VaRQTi2pcHYB+oDqe1FDiyNDWXwRnw5qZMEi7c=";
     fetchSubmodules = true;
   };
 
   # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
   auditable = false;
-  cargoHash = "sha256-XzU43bcoRGHhVmpkcKvdRH9UybjTkQWH8RKBqsM/31M=";
+  cargoHash = "sha256-8W2x9pbIu/9DXrRXo4IbSBSa8wAFj5djNpHq7gfa46E=";
   cargoBuildFlags = [ "--package" "wasm-tools" ];
   cargoTestFlags = [ "--all" ];
 
diff --git a/pkgs/tools/networking/boundary/default.nix b/pkgs/tools/networking/boundary/default.nix
index 44383586b3c8b..52771f68433ae 100644
--- a/pkgs/tools/networking/boundary/default.nix
+++ b/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.15.2";
+  version = "0.15.3";
 
   src =
     let
@@ -15,10 +15,10 @@ stdenv.mkDerivation rec {
         aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-X8bO4kV5+u093TyEFMiKn967U7AsesRzU5YHohWpEdQ=";
-        aarch64-linux = "sha256-qMu44ecBzSx3knsXIKfRrO0X1BE14FoVFq6Vgw3bD5o=";
-        x86_64-darwin = "sha256-g2aQc9NUUxTO0BEsg/w4h1tYTUrtXiau62nBj3OM3Is=";
-        aarch64-darwin = "sha256-w6Vwft5w+aYC7aBndSQia3i7CyTOYG6ln7G6D9b9J90=";
+        x86_64-linux = "sha256-dY55oJ8SVBuvKqxsJ6OMb7EbGBUNVYydHUX0ONZfW+0=";
+        aarch64-linux = "sha256-OvI9Ul1hWrZUM3Hbf/LbDPfXQgvArOPy7Umu58xQetU=";
+        x86_64-darwin = "sha256-sln0CD8o9rwdtnBS8V06p9TAF/XqZwhc+wsVRq1GJVE=";
+        aarch64-darwin = "sha256-7R6WVqn9FZH6Ss+QpCVHjUw1ASwV3rag76Wh5dC+JvA=";
       };
     in
     fetchzip {
diff --git a/pkgs/tools/networking/dd-agent/integrations-core.nix b/pkgs/tools/networking/dd-agent/integrations-core.nix
index e4ecdd2ad8508..39f3eb9fda4e8 100644
--- a/pkgs/tools/networking/dd-agent/integrations-core.nix
+++ b/pkgs/tools/networking/dd-agent/integrations-core.nix
@@ -35,9 +35,9 @@
 
 { pkgs, python, extraIntegrations ? {} }:
 
-with pkgs.lib;
-
 let
+  inherit (pkgs.lib) attrValues mapAttrs;
+
   src = pkgs.fetchFromGitHub {
     owner = "DataDog";
     repo = "integrations-core";
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 1c3cb3f0e592e..974fb371bab4e 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -28,11 +28,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "miniupnpd";
-  version = "2.3.5";
+  version = "2.3.6";
 
   src = fetchurl {
     url = "https://miniupnp.tuxfamily.org/files/miniupnpd-${version}.tar.gz";
-    sha256 = "sha256-ljekEsM9J3jNrlYQWJM7TgtnRl/xNOlnYaexl1Gy+g8=";
+    sha256 = "sha256-Ecp79NS6bGuhLHDDBBgH9Rb02fa2aXvqBOg3YmudZ5w=";
   };
 
   buildInputs = [ iptables-legacy libuuid openssl ]
diff --git a/pkgs/tools/networking/netbird/default.nix b/pkgs/tools/networking/netbird/default.nix
index 6349b170706da..bbd6f238000d5 100644
--- a/pkgs/tools/networking/netbird/default.nix
+++ b/pkgs/tools/networking/netbird/default.nix
@@ -31,16 +31,16 @@ let
 in
 buildGoModule rec {
   pname = "netbird";
-  version = "0.26.3";
+  version = "0.26.6";
 
   src = fetchFromGitHub {
     owner = "netbirdio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-StZDhCBuwmJk8VimbsVO9Sfxlv5NcpV689YPUZRgOLk=";
+    hash = "sha256-LsgkUQ6uYdd1qPaINeza4MDDG0ynGhJ7jiZoAy8pjEE=";
   };
 
-  vendorHash = "sha256-n5n9bIQ026WlvwatMmEIBaLGfquTgek1eiQDb0xDAdI=";
+  vendorHash = "sha256-SSTpXila4eze3XA3vrTczBwt5XEjtLDvaCiQ5oi4FXg=";
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config;
 
diff --git a/pkgs/tools/networking/ooniprobe-cli/default.nix b/pkgs/tools/networking/ooniprobe-cli/default.nix
index c7f00061382d5..0bddb69220df8 100644
--- a/pkgs/tools/networking/ooniprobe-cli/default.nix
+++ b/pkgs/tools/networking/ooniprobe-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ooniprobe-cli";
-  version = "3.20.1";
+  version = "3.21.0";
 
   src = fetchFromGitHub {
     owner = "ooni";
     repo = "probe-cli";
     rev = "v${version}";
-    hash = "sha256-XjIrae4HPFB1Rv8yIAUh6Xj9UVU55Wx7SuyKJ0BvmXY=";
+    hash = "sha256-bV1eEuHYaqDKRImEMX9LP/3R3/lVpKpBfweRjucKtTc=";
   };
 
-  vendorHash = "sha256-HYU+oS+iqdl2jQJc3h9T+MSc/Hq2W6UqP+oPSEyfcOU=";
+  vendorHash = "sha256-I88cALmc8iTaVJ36ntQLw+wRMM2GLWMWLhv8EDJDRgg=";
 
   subPackages = [ "cmd/ooniprobe" ];
 
diff --git a/pkgs/tools/networking/persepolis/default.nix b/pkgs/tools/networking/persepolis/default.nix
index 28d5b113c3363..b3b084c225964 100644
--- a/pkgs/tools/networking/persepolis/default.nix
+++ b/pkgs/tools/networking/persepolis/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , buildPythonApplication
 , fetchFromGitHub
-, aria
+, aria2
 , ffmpeg
 , libnotify
 , pulseaudio
@@ -67,7 +67,7 @@ buildPythonApplication rec {
 
   # feed args to wrapPythonApp
   makeWrapperArgs = [
-    "--prefix PATH : ${lib.makeBinPath [ aria ffmpeg libnotify ]}"
+    "--prefix PATH : ${lib.makeBinPath [ aria2 ffmpeg libnotify ]}"
     "\${qtWrapperArgs[@]}"
   ];
 
diff --git a/pkgs/tools/networking/subfinder/default.nix b/pkgs/tools/networking/subfinder/default.nix
index 3cc7c51199de4..1b4bb71f4ab5e 100644
--- a/pkgs/tools/networking/subfinder/default.nix
+++ b/pkgs/tools/networking/subfinder/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "subfinder";
-  version = "2.6.5";
+  version = "2.6.6";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-+Xw4fom7lNfVxbGGoeWG7f37Gk1Dic+jzozh6HodplE=";
+    repo = "subfinder";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-A9qSrgQB7AE+9S3SW1eXRGA65RfEzrjYR2XgU8e+zMk=";
   };
 
-  vendorHash = "sha256-n+FKmgluRfzhufia5rPqLKt4owCyWO4bP6Zgi+4Ax9w=";
+  vendorHash = "sha256-j2WO+LLvioBB2EU/6ahyTn9H614Dmiskm0p7GOgqYNY=";
 
   modRoot = "./v2";
 
@@ -22,6 +22,11 @@ buildGoModule rec {
     "cmd/subfinder/"
   ];
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
     description = "Subdomain discovery tool";
     longDescription = ''
diff --git a/pkgs/tools/networking/trippy/default.nix b/pkgs/tools/networking/trippy/default.nix
index 933150aebb9fe..e45122d53de09 100644
--- a/pkgs/tools/networking/trippy/default.nix
+++ b/pkgs/tools/networking/trippy/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "trippy";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "fujiapple852";
     repo = "trippy";
     rev = version;
-    hash = "sha256-Q5WPpCm1RNLlNX8G1U160O2wJz+y+KMScApjx6gIBCg=";
+    hash = "sha256-IKGtnWRjrVof+2cq41TPfjhFrkn10yhY6j63dYwTzPA=";
   };
 
-  cargoHash = "sha256-brvfAZZ3L0loZQowcRfkS7o7ZYQB9hr5o1rgMSWaljU=";
+  cargoHash = "sha256-OCbrg1uSot0uNFx7uSlN5Bh6bl34ng9xO6lo9wks6nY=";
 
   meta = with lib; {
     description = "A network diagnostic tool";
diff --git a/pkgs/tools/networking/veilid/Cargo.lock b/pkgs/tools/networking/veilid/Cargo.lock
index fbd257e1d69b5..835967588eb7f 100644
--- a/pkgs/tools/networking/veilid/Cargo.lock
+++ b/pkgs/tools/networking/veilid/Cargo.lock
@@ -41,42 +41,42 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.7.7"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
 dependencies = [
  "getrandom",
  "once_cell",
- "version_check 0.9.4",
+ "version_check",
 ]
 
 [[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if 1.0.0",
  "getrandom",
  "once_cell",
- "version_check 0.9.4",
+ "version_check",
  "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "allo-isolate"
-version = "0.1.20"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f56b7997817c178b853573e8bdfb6c3afe02810b43f17d766d6703560074b0c3"
+checksum = "f2f5a5fd28223e6f3cafb7d9cd685f51eafdd71d33ca1229f8316925d5957240"
 dependencies = [
  "atomic",
 ]
@@ -112,7 +112,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8619b80c242aa7bd638b5c7ddd952addeecb71f69c75e33f1d47b2804f8f883a"
 dependencies = [
  "android_log-sys 0.2.0",
- "env_logger 0.10.0",
+ "env_logger 0.10.2",
  "log",
  "once_cell",
 ]
@@ -124,7 +124,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c494134f746c14dc653a35a4ea5aca24ac368529da5370ecf41fe0341c35772f"
 dependencies = [
  "android_log-sys 0.3.1",
- "env_logger 0.10.0",
+ "env_logger 0.10.2",
  "log",
  "once_cell",
 ]
@@ -140,12 +140,11 @@ dependencies = [
 
 [[package]]
 name = "ansi-parser"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcb2392079bf27198570d6af79ecbd9ec7d8f16d3ec6b60933922fdb66287127"
+version = "0.9.0"
+source = "git+https://gitlab.com/davidbittner/ansi-parser.git#80b28ea6c42fc6ee7c9974aaa8059ae244032365"
 dependencies = [
  "heapless",
- "nom 4.2.3",
+ "nom",
 ]
 
 [[package]]
@@ -159,9 +158,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -173,49 +172,49 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.1"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "arboard"
-version = "3.2.1"
+version = "3.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac57f2b058a76363e357c056e4f74f1945bf734d37b8b3ef49066c4787dde0fc"
+checksum = "a2041f1943049c7978768d84e6d0fd95de98b76d6c4727b09e78ec253d29fa58"
 dependencies = [
  "clipboard-win",
  "core-graphics",
@@ -226,15 +225,15 @@ dependencies = [
  "objc_id",
  "parking_lot 0.12.1",
  "thiserror",
- "winapi",
+ "windows-sys 0.48.0",
  "x11rb",
 ]
 
 [[package]]
 name = "argon2"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ba4cac0a46bc1d2912652a751c47f2a9f3a7fe89bcae2275d418f5270402f9"
+checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
 dependencies = [
  "base64ct",
  "blake2",
@@ -243,12 +242,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "arraydeque"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0ffd3d69bd89910509a5d31d1f1353f38ccffdd116dd0099bbd6627f7bd8ad8"
-
-[[package]]
 name = "arrayref"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -294,31 +287,44 @@ dependencies = [
 ]
 
 [[package]]
+name = "async-channel"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "async-executor"
-version = "1.6.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock 2.8.0",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand 2.0.1",
- "futures-lite 1.13.0",
+ "fastrand 2.0.2",
+ "futures-lite 2.3.0",
  "slab",
 ]
 
 [[package]]
 name = "async-global-executor"
-version = "2.3.1"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
 dependencies = [
- "async-channel",
+ "async-channel 2.2.0",
  "async-executor",
- "async-io 1.13.0",
- "async-lock 2.8.0",
+ "async-io 2.3.2",
+ "async-lock 3.3.0",
  "blocking",
- "futures-lite 1.13.0",
+ "futures-lite 2.3.0",
  "once_cell",
 ]
 
@@ -344,22 +350,21 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.0"
+version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
- "async-lock 3.0.0",
+ "async-lock 3.3.0",
  "cfg-if 1.0.0",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.0.1",
+ "futures-lite 2.3.0",
  "parking",
- "polling 3.3.0",
- "rustix 0.38.21",
+ "polling 3.6.0",
+ "rustix 0.38.32",
  "slab",
  "tracing",
- "waker-fn",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -373,12 +378,12 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.0.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
- "event-listener 3.0.1",
- "event-listener-strategy",
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
@@ -393,9 +398,9 @@ dependencies = [
  "async-signal",
  "blocking",
  "cfg-if 1.0.0",
- "event-listener 3.0.1",
+ "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.21",
+ "rustix 0.38.32",
  "windows-sys 0.48.0",
 ]
 
@@ -405,13 +410,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.0",
+ "async-io 2.3.2",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if 1.0.0",
  "futures-core",
  "futures-io",
- "rustix 0.38.21",
+ "rustix 0.38.32",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -424,7 +429,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
 dependencies = [
  "async-attributes",
- "async-channel",
+ "async-channel 1.9.0",
  "async-global-executor",
  "async-io 1.13.0",
  "async-lock 2.8.0",
@@ -447,17 +452,17 @@ dependencies = [
 
 [[package]]
 name = "async-std-resolver"
-version = "0.23.2"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0928198152da571a19145031360f34fc7569ef2dc387681565f330c811a5ba9b"
+checksum = "3c0ed2b6671c13d2c28756c5a64e04759c1e0b5d3d7ac031f521c3561e21fbcb"
 dependencies = [
  "async-std",
  "async-trait",
  "futures-io",
  "futures-util",
+ "hickory-resolver",
  "pin-utils",
- "socket2 0.5.5",
- "trust-dns-resolver",
+ "socket2 0.5.6",
 ]
 
 [[package]]
@@ -479,36 +484,24 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.5.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
-
-[[package]]
-name = "async-tls"
-version = "0.12.0"
-source = "git+https://github.com/async-rs/async-tls?rev=c58588a#c58588a276e6180f3ef99f4ec3bf9176c5f0f58c"
-dependencies = [
- "futures-core",
- "futures-io",
- "rustls",
- "rustls-pemfile",
- "webpki-roots 0.22.6",
-]
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -517,7 +510,6 @@ version = "0.23.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a1e9efbe14612da0a19fb983059a0b621e9cf6225d7018ecab4f9988215540dc"
 dependencies = [
- "async-tls",
  "futures-io",
  "futures-util",
  "log",
@@ -590,9 +582,9 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "axum"
@@ -641,9 +633,9 @@ dependencies = [
 
 [[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
 dependencies = [
  "addr2line",
  "cc",
@@ -662,9 +654,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64ct"
@@ -703,9 +695,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "blake2"
@@ -718,9 +713,9 @@ dependencies = [
 
 [[package]]
 name = "blake3"
-version = "1.5.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87"
+checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -737,7 +732,7 @@ checksum = "e0b121a9fe0df916e362fb3271088d071159cdf11db0e4182d02152850756eff"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -782,16 +777,16 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
 
 [[package]]
 name = "blocking"
-version = "1.4.1"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel",
- "async-lock 2.8.0",
+ "async-channel 2.2.0",
+ "async-lock 3.3.0",
  "async-task",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "futures-io",
- "futures-lite 1.13.0",
+ "futures-lite 2.3.0",
  "piper",
  "tracing",
 ]
@@ -807,15 +802,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 
 [[package]]
 name = "byteorder"
@@ -825,36 +820,33 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "capnp"
-version = "0.18.3"
+version = "0.18.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "499cea1db22c19b7a823fa4876330700077b388cc7de2c5477028df00bcb4ae4"
+checksum = "384b671a5b39eadb909b0c2b81d22a400d446526e651e64be9eb6674b33644a4"
 dependencies = [
  "embedded-io",
 ]
 
 [[package]]
 name = "capnpc"
-version = "0.18.0"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5067f3c8ee94d993d03150153e9a57a6ff330127b1c1ad76475051e1cef79c2d"
+checksum = "a642faaaa78187e70bdcc0014c593c213553cfeda3b15054426d0d596048b131"
 dependencies = [
  "capnp",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cesu8"
@@ -868,7 +860,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
 dependencies = [
- "nom 7.1.3",
+ "nom",
 ]
 
 [[package]]
@@ -884,6 +876,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chacha20"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -909,16 +907,16 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -943,9 +941,9 @@ dependencies = [
 
 [[package]]
 name = "clang-sys"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
 dependencies = [
  "glob",
  "libc",
@@ -969,9 +967,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.7"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -979,44 +977,42 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.7"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim 0.10.0",
+ "strsim 0.11.0",
  "terminal_size",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
- "heck",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clipboard-win"
-version = "4.5.0"
+version = "5.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+checksum = "d517d4b86184dbb111d3556a10f1c8a04da7428d2987bf1081602bf11c3aa9ee"
 dependencies = [
  "error-code",
- "str-buf",
- "winapi",
 ]
 
 [[package]]
@@ -1030,9 +1026,9 @@ dependencies = [
 
 [[package]]
 name = "color-eyre"
-version = "0.6.2"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204"
+checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5"
 dependencies = [
  "backtrace",
  "eyre",
@@ -1065,26 +1061,26 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "config"
-version = "0.13.3"
+version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7"
+checksum = "23738e11972c7643e4ec947840fc463b6a571afcd3e735bdfce7d03c7a784aca"
 dependencies = [
  "async-trait",
  "json5",
  "lazy_static",
- "nom 7.1.3",
+ "nom",
  "pathdiff",
- "ron",
- "rust-ini",
+ "ron 0.7.1",
+ "rust-ini 0.18.0",
  "serde",
  "serde_json",
  "toml 0.5.11",
@@ -1092,13 +1088,46 @@ dependencies = [
 ]
 
 [[package]]
+name = "config"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7328b20597b53c2454f0b1919720c25c7339051c02b72b7e05409e00b14132be"
+dependencies = [
+ "async-trait",
+ "convert_case",
+ "json5",
+ "lazy_static",
+ "nom",
+ "pathdiff",
+ "ron 0.8.1",
+ "rust-ini 0.19.0",
+ "serde",
+ "serde_json",
+ "toml 0.8.12",
+ "yaml-rust",
+]
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "console-api"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787"
 dependencies = [
  "futures-core",
- "prost 0.12.1",
+ "prost 0.12.3",
  "prost-types",
  "tonic 0.10.2",
  "tracing-core",
@@ -1140,9 +1169,29 @@ dependencies = [
 
 [[package]]
 name = "const-oid"
-version = "0.9.5"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "const-random"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
+dependencies = [
+ "const-random-macro",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "tiny-keccak",
+]
 
 [[package]]
 name = "constant_time_eq"
@@ -1151,10 +1200,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
 
 [[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -1162,15 +1220,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "core-graphics"
-version = "0.22.3"
+version = "0.23.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -1181,9 +1239,9 @@ dependencies = [
 
 [[package]]
 name = "core-graphics-types"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -1192,49 +1250,65 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if 1.0.0",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if 1.0.0",
  "crossbeam-utils",
 ]
 
 [[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
+name = "crossbeam-deque"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if 1.0.0",
+ "crossbeam-epoch",
+ "crossbeam-utils",
 ]
 
 [[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
 name = "crossterm"
-version = "0.25.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
+checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "crossterm_winapi",
+ "futures-core",
  "libc",
  "mio",
  "parking_lot 0.12.1",
@@ -1253,6 +1327,12 @@ dependencies = [
 ]
 
 [[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"
@@ -1275,30 +1355,30 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.5"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
+checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "ctrlc"
-version = "3.4.1"
+version = "3.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf"
+checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
 dependencies = [
- "nix 0.27.1",
- "windows-sys 0.48.0",
+ "nix 0.28.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "cursive"
 version = "0.20.0"
-source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
+source = "git+https://gitlab.com/veilid/cursive.git#b518d61e61d75a70788b0f7f371cd846f1bef0eb"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.11",
  "async-std",
  "cfg-if 1.0.0",
  "crossbeam-channel",
@@ -1314,27 +1394,11 @@ dependencies = [
 ]
 
 [[package]]
-name = "cursive-flexi-logger-view"
-version = "0.5.0"
-source = "git+https://gitlab.com/veilid/cursive-flexi-logger-view.git#7c931536b8c57339011bbe2ee604e431c91c0aa8"
-dependencies = [
- "arraydeque",
- "cursive_core",
- "flexi_logger",
- "lazy_static",
- "log",
- "time",
- "unicode-width",
-]
-
-[[package]]
 name = "cursive-macros"
 version = "0.1.0"
-source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
+source = "git+https://gitlab.com/veilid/cursive.git#b518d61e61d75a70788b0f7f371cd846f1bef0eb"
 dependencies = [
  "proc-macro2",
- "quote",
- "syn 1.0.109",
 ]
 
 [[package]]
@@ -1353,9 +1417,9 @@ dependencies = [
 [[package]]
 name = "cursive_core"
 version = "0.3.7"
-source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
+source = "git+https://gitlab.com/veilid/cursive.git#b518d61e61d75a70788b0f7f371cd846f1bef0eb"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.11",
  "ansi-parser",
  "async-std",
  "crossbeam-channel",
@@ -1366,11 +1430,12 @@ dependencies = [
  "log",
  "num",
  "owning_ref",
+ "parking_lot 0.12.1",
  "serde_json",
  "serde_yaml",
  "time",
  "tokio",
- "toml 0.7.8",
+ "toml 0.8.12",
  "unicode-segmentation",
  "unicode-width",
  "xi-unicode",
@@ -1379,17 +1444,16 @@ dependencies = [
 [[package]]
 name = "cursive_table_view"
 version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8935dd87d19c54b7506b245bc988a7b4e65b1058e1d0d64c0ad9b3188e48060"
+source = "git+https://gitlab.com/veilid/cursive-table-view.git#5311a8aa0527b4619f7070b28a8418432c6918da"
 dependencies = [
  "cursive_core",
 ]
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.1.1"
+version = "4.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
 dependencies = [
  "cfg-if 1.0.0",
  "cpufeatures",
@@ -1410,7 +1474,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1434,12 +1498,12 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core 0.20.3",
- "darling_macro 0.20.3",
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -1458,15 +1522,15 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1482,13 +1546,13 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
- "darling_core 0.20.3",
+ "darling_core 0.20.8",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1498,7 +1562,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if 1.0.0",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
  "lock_api",
  "once_cell",
  "parking_lot_core 0.9.9",
@@ -1506,9 +1570,9 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "der"
@@ -1522,9 +1586,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
 ]
@@ -1588,10 +1652,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
 
 [[package]]
+name = "dlv-list"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
+
+[[package]]
 name = "dyn-clone"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
 
 [[package]]
 name = "ed25519"
@@ -1605,9 +1678,9 @@ dependencies = [
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"
+checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -1615,14 +1688,15 @@ dependencies = [
  "serde",
  "sha2 0.10.8",
  "signature",
+ "subtle",
  "zeroize",
 ]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "embedded-io"
@@ -1631,35 +1705,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "658bbadc628dc286b9ae02f0cb0f5411c056eb7487b72f0083203f115de94060"
 
 [[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
 name = "enum-as-inner"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "enum-map"
-version = "2.7.0"
+version = "2.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53337c2dbf26a3c31eccc73a37b10c1614e8d4ae99b6a50d553e8936423c1f16"
+checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
 dependencies = [
  "enum-map-derive",
 ]
 
 [[package]]
 name = "enum-map-derive"
-version = "0.14.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04d0b288e3bb1d861c4403c1774a6f7a798781dfc519b3647df2a3dd4ae95f25"
+checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1699,10 +1779,10 @@ version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af"
 dependencies = [
- "darling 0.20.3",
+ "darling 0.20.8",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -1720,9 +1800,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "log",
  "regex",
@@ -1736,23 +1816,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "error-code"
-version = "2.3.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 
 [[package]]
 name = "event-listener"
@@ -1762,9 +1838,31 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "3.0.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1773,19 +1871,29 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.3.0"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
 dependencies = [
- "event-listener 3.0.1",
+ "event-listener 5.2.0",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "eyre"
-version = "0.6.8"
+version = "0.6.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb"
+checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
 dependencies = [
  "indenter",
  "once_cell",
@@ -1814,15 +1922,15 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.1"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1839,9 +1947,21 @@ dependencies = [
 
 [[package]]
 name = "fiat-crypto"
-version = "0.2.2"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7"
+checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f"
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
+]
 
 [[package]]
 name = "flate2"
@@ -1897,24 +2017,36 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "foreign-types"
-version = "0.3.2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
 dependencies = [
+ "foreign-types-macros",
  "foreign-types-shared",
 ]
 
 [[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.55",
+]
+
+[[package]]
 name = "foreign-types-shared"
-version = "0.1.1"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -1925,15 +2057,15 @@ version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"
 dependencies = [
- "rustix 0.38.21",
+ "rustix 0.38.32",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1946,9 +2078,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1956,15 +2088,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1973,9 +2105,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
@@ -1994,42 +2126,45 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.0.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
+ "fastrand 2.0.2",
  "futures-core",
+ "futures-io",
+ "parking",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-timer"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
 dependencies = [
  "gloo-timers",
  "send_wrapper 0.4.0",
@@ -2037,9 +2172,9 @@ dependencies = [
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2084,24 +2219,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
- "version_check 0.9.4",
+ "version_check",
 ]
 
 [[package]]
 name = "gethostname"
-version = "0.2.3"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -2112,9 +2247,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -2193,9 +2328,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb"
 dependencies = [
  "bytes",
  "fnv",
@@ -2203,7 +2338,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -2212,9 +2347,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "1.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403"
 
 [[package]]
 name = "hash32"
@@ -2231,16 +2366,25 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash 0.7.7",
+ "ahash 0.7.8",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+dependencies = [
+ "ahash 0.8.11",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.11",
  "allocator-api2",
 ]
 
@@ -2250,30 +2394,30 @@ version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 dependencies = [
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
 name = "hdrhistogram"
-version = "7.5.2"
+version = "7.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8"
+checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.7",
  "byteorder",
  "flate2",
- "nom 7.1.3",
+ "nom",
  "num-traits",
 ]
 
 [[package]]
 name = "heapless"
-version = "0.5.6"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74911a68a1658cfcfb61bc0ccfbd536e3b6e906f8c2f7883ee50157e3e2184f1"
+checksum = "634bd4d29cbf24424d0a4bfcbf80c6960129dc24424752a7d1d1390607023422"
 dependencies = [
  "as-slice",
- "generic-array 0.13.3",
+ "generic-array 0.14.7",
  "hash32",
  "stable_deref_trait",
 ]
@@ -2285,6 +2429,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2295,9 +2445,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -2306,6 +2456,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
+name = "hickory-proto"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "091a6fbccf4860009355e3efc52ff4acf37a63489aad7435372d44ceeb6fbbcf"
+dependencies = [
+ "async-trait",
+ "cfg-if 1.0.0",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "hickory-resolver"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35b8f021164e6a984c9030023544c57789c51760065cd510572fedcfb04164e8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "futures-util",
+ "hickory-proto",
+ "ipconfig",
+ "lru-cache",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "rand",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
 name = "hkdf"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2327,11 +2522,11 @@ dependencies = [
 
 [[package]]
 name = "home"
-version = "0.5.5"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2347,9 +2542,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -2358,9 +2553,9 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
  "http",
@@ -2387,9 +2582,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -2402,7 +2597,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2 0.5.6",
  "tokio",
  "tower-service",
  "tracing",
@@ -2423,16 +2618,16 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows-core",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -2461,6 +2656,16 @@ dependencies = [
 ]
 
 [[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 = "ifstructs"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2472,14 +2677,13 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
- "num-rational",
  "num-traits",
  "png",
  "tiff",
@@ -2509,12 +2713,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -2541,7 +2745,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.9",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -2552,7 +2756,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "widestring",
  "windows-sys 0.48.0",
  "winreg",
@@ -2583,10 +2787,19 @@ dependencies = [
 ]
 
 [[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.9"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jni"
@@ -2612,15 +2825,15 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[package]]
 name = "js-sys"
-version = "0.3.65"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2644,9 +2857,9 @@ dependencies = [
 
 [[package]]
 name = "keyring-manager"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c023f807de9a2f26e86c6ec3b5a3e0ea5681301999dcda9e262069ab3efb63e"
+checksum = "9aed4aad1a5c0ae5cfd990fd8cb7e1e31d1742e04c964a62b6928962838c766d"
 dependencies = [
  "byteorder",
  "cfg-if 1.0.0",
@@ -2742,9 +2955,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libc-print"
@@ -2757,12 +2970,12 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if 1.0.0",
- "winapi",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -2771,7 +2984,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -2789,9 +3002,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
 dependencies = [
  "cc",
  "libc",
@@ -2813,9 +3026,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
@@ -2829,14 +3042,23 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 dependencies = [
  "value-bag",
 ]
 
 [[package]]
+name = "lru"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670"
+dependencies = [
+ "hashbrown 0.13.2",
+]
+
+[[package]]
 name = "lru-cache"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2847,9 +3069,9 @@ dependencies = [
 
 [[package]]
 name = "lz4_flex"
-version = "0.11.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ea9b256699eda7b0387ffbc776dd625e28bde3918446381781245b7a50349d8"
+checksum = "912b45c753ff5f7f5208307e8ace7d2a2e30d024e26d3509f3dce546c044ce15"
 
 [[package]]
 name = "malloc_buf"
@@ -2883,9 +3105,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
@@ -2916,9 +3138,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2926,9 +3148,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -3062,9 +3284,9 @@ dependencies = [
 
 [[package]]
 name = "netlink-proto"
-version = "0.11.2"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "842c6770fc4bb33dd902f41829c61ef872b8e38de1405aa0b938b27b8fba12c3"
+checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21"
 dependencies = [
  "bytes",
  "futures",
@@ -3104,18 +3326,6 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "nix"
 version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
@@ -3131,19 +3341,21 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "cfg-if 1.0.0",
  "libc",
 ]
 
 [[package]]
-name = "nom"
-version = "4.2.3"
+name = "nix"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "memchr",
- "version_check 0.1.5",
+ "bitflags 2.5.0",
+ "cfg-if 1.0.0",
+ "cfg_aliases",
+ "libc",
 ]
 
 [[package]]
@@ -3202,28 +3414,33 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 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.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3244,9 +3461,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -3257,7 +3474,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.9",
  "libc",
 ]
 
@@ -3284,9 +3501,9 @@ dependencies = [
 
 [[package]]
 name = "num_threads"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
 dependencies = [
  "libc",
 ]
@@ -3322,24 +3539,24 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "opentelemetry"
@@ -3457,11 +3674,21 @@ version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
 dependencies = [
- "dlv-list",
+ "dlv-list 0.3.0",
  "hashbrown 0.12.3",
 ]
 
 [[package]]
+name = "ordered-multimap"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e"
+dependencies = [
+ "dlv-list 0.5.2",
+ "hashbrown 0.13.2",
+]
+
+[[package]]
 name = "oslog"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3592,15 +3819,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.5"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
+checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8"
 dependencies = [
  "memchr",
  "thiserror",
@@ -3609,9 +3836,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.5"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
+checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026"
 dependencies = [
  "pest",
  "pest_generator",
@@ -3619,22 +3846,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.5"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
+checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.5"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
+checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293"
 dependencies = [
  "once_cell",
  "pest",
@@ -3653,22 +3880,22 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -3690,7 +3917,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
 dependencies = [
  "atomic-waker",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "futures-io",
 ]
 
@@ -3706,21 +3933,21 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "platforms"
-version = "3.2.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
+checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7"
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -3747,16 +3974,17 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.0"
+version = "3.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
 dependencies = [
  "cfg-if 1.0.0",
  "concurrent-queue",
+ "hermit-abi 0.3.9",
  "pin-project-lite",
- "rustix 0.38.21",
+ "rustix 0.38.32",
  "tracing",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3798,14 +4026,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "toml_edit",
+ "toml_edit 0.19.15",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -3822,12 +4050,12 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d"
+checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
 dependencies = [
  "bytes",
- "prost-derive 0.12.1",
+ "prost-derive 0.12.3",
 ]
 
 [[package]]
@@ -3845,24 +4073,24 @@ dependencies = [
 
 [[package]]
 name = "prost-derive"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32"
+checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
 dependencies = [
  "anyhow",
  "itertools 0.11.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "prost-types"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf"
+checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e"
 dependencies = [
- "prost 0.12.1",
+ "prost 0.12.3",
 ]
 
 [[package]]
@@ -3879,9 +4107,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -3918,12 +4146,12 @@ dependencies = [
 
 [[package]]
 name = "range-set-blaze"
-version = "0.1.9"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf36131a8443d1cda3cd66eeac16d60ce46aa7c415f71e12c28d95c195e3ff23"
+checksum = "8421b5d459262eabbe49048d362897ff3e3830b44eac6cfe341d6acb2f0f13d2"
 dependencies = [
  "gen_ops",
- "itertools 0.10.5",
+ "itertools 0.12.1",
  "num-integer",
  "num-traits",
 ]
@@ -3935,6 +4163,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3965,14 +4213,14 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.3",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -3986,13 +4234,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -4003,9 +4251,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "resolv-conf"
@@ -4019,16 +4267,17 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.5"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if 1.0.0",
  "getrandom",
  "libc",
  "spin",
  "untrusted",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4043,14 +4292,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "ron"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
+dependencies = [
+ "base64 0.21.7",
+ "bitflags 2.5.0",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
 name = "rpassword"
-version = "7.2.0"
+version = "7.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322"
+checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f"
 dependencies = [
  "libc",
  "rtoolbox",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -4074,12 +4335,12 @@ dependencies = [
 
 [[package]]
 name = "rtoolbox"
-version = "0.0.1"
+version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a"
+checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e"
 dependencies = [
  "libc",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -4088,7 +4349,7 @@ version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "fallible-iterator",
  "fallible-streaming-iterator",
  "hashlink",
@@ -4103,7 +4364,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
 dependencies = [
  "cfg-if 1.0.0",
- "ordered-multimap",
+ "ordered-multimap 0.4.3",
+]
+
+[[package]]
+name = "rust-ini"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091"
+dependencies = [
+ "cfg-if 1.0.0",
+ "ordered-multimap 0.6.0",
 ]
 
 [[package]]
@@ -4143,22 +4414,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.21"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.10",
- "windows-sys 0.48.0",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.8"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -4168,11 +4439,11 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
 ]
 
 [[package]]
@@ -4192,10 +4463,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
+name = "rustyline-async"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6eb06391513b2184f0a5405c11a4a0a5302e8be442f4c5c35267187c2b37d5"
+dependencies = [
+ "crossterm",
+ "futures-channel",
+ "futures-util",
+ "pin-project",
+ "thingbuf",
+ "thiserror",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
+[[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -4208,9 +4495,9 @@ dependencies = [
 
 [[package]]
 name = "schemars"
-version = "0.8.15"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c"
+checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
 dependencies = [
  "dyn-clone",
  "schemars_derive",
@@ -4220,9 +4507,9 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.15"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c"
+checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4297,9 +4584,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "send_wrapper"
@@ -4318,9 +4605,9 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.191"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a834c4821019838224821468552240d4d95d14e751986442c816572d39a080c9"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
@@ -4347,9 +4634,9 @@ dependencies = [
 
 [[package]]
 name = "serde-wasm-bindgen"
-version = "0.6.1"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d"
+checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"
 dependencies = [
  "js-sys",
  "serde",
@@ -4358,9 +4645,9 @@ dependencies = [
 
 [[package]]
 name = "serde_bytes"
-version = "0.11.12"
+version = "0.11.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
 dependencies = [
  "serde",
 ]
@@ -4377,13 +4664,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.191"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fa52d5646bce91b680189fe5b1c049d2ea38dabb4e2e7c8d00ca12cfbfbcfd"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -4405,14 +4692,14 @@ checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
 dependencies = [
  "itoa",
  "ryu",
@@ -4421,31 +4708,31 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.27"
+version = "0.9.34+deprecated"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "itoa",
  "ryu",
  "serde",
@@ -4474,7 +4761,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -4529,9 +4816,9 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
 
 [[package]]
 name = "shlex"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook"
@@ -4577,9 +4864,9 @@ dependencies = [
 
 [[package]]
 name = "signature"
-version = "2.0.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
 dependencies = [
  "digest 0.10.7",
 ]
@@ -4592,9 +4879,9 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
 name = "simplelog"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369"
+checksum = "16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0"
 dependencies = [
  "log",
  "termcolor",
@@ -4612,9 +4899,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "snailquote"
@@ -4638,12 +4925,12 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4657,9 +4944,9 @@ dependencies = [
 
 [[package]]
 name = "spki"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 dependencies = [
  "base64ct",
  "der",
@@ -4683,19 +4970,13 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "af91f480ee899ab2d9f8435bfdfc14d08a5754bd9d3fef1f1a1c23336aad6c8b"
 dependencies = [
- "async-channel",
+ "async-channel 1.9.0",
  "cfg-if 1.0.0",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
 name = "strsim"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4708,6 +4989,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "subtle"
 version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4726,9 +5013,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4743,23 +5030,24 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
 name = "sysinfo"
-version = "0.29.10"
+version = "0.30.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5"
+checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18"
 dependencies = [
  "cfg-if 1.0.0",
  "core-foundation-sys",
  "libc",
  "ntapi",
  "once_cell",
- "winapi",
+ "rayon",
+ "windows 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.1.3"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -4770,7 +5058,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.38.21",
+ "rustix 0.38.32",
  "windows-sys 0.48.0",
 ]
 
@@ -4784,30 +5072,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "thingbuf"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4706f1bfb859af03f099ada2de3cea3e515843c2d3e93b7893f16d94a37f9415"
+dependencies = [
+ "parking_lot 0.12.1",
+ "pin-project",
+]
+
+[[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if 1.0.0",
  "once_cell",
@@ -4815,9 +5113,9 @@ dependencies = [
 
 [[package]]
 name = "tiff"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
  "jpeg-decoder",
@@ -4826,13 +5124,14 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
  "serde",
@@ -4848,14 +5147,24 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 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.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4872,9 +5181,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.33.0"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4884,7 +5193,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio-macros",
  "tracing",
  "windows-sys 0.48.0",
@@ -4902,20 +5211,20 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -4948,14 +5257,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.8"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.22.9",
 ]
 
 [[package]]
@@ -4973,11 +5282,22 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
+dependencies = [
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -4988,7 +5308,7 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
 dependencies = [
  "async-trait",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "futures-core",
  "futures-util",
@@ -5017,7 +5337,7 @@ dependencies = [
  "async-stream",
  "async-trait",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "h2",
  "http",
@@ -5026,7 +5346,7 @@ dependencies = [
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
- "prost 0.12.1",
+ "prost 0.12.3",
  "tokio",
  "tokio-stream",
  "tower",
@@ -5081,11 +5401,12 @@ dependencies = [
 
 [[package]]
 name = "tracing-appender"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e"
+checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
 dependencies = [
  "crossbeam-channel",
+ "thiserror",
  "time",
  "tracing-subscriber",
 ]
@@ -5098,7 +5419,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -5144,6 +5465,17 @@ dependencies = [
 ]
 
 [[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.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5155,7 +5487,7 @@ dependencies = [
  "smallvec",
  "tracing",
  "tracing-core",
- "tracing-log",
+ "tracing-log 0.1.4",
  "tracing-subscriber",
 ]
 
@@ -5177,9 +5509,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -5190,7 +5522,7 @@ dependencies = [
  "thread_local",
  "tracing",
  "tracing-core",
- "tracing-log",
+ "tracing-log 0.2.0",
 ]
 
 [[package]]
@@ -5206,65 +5538,19 @@ dependencies = [
 
 [[package]]
 name = "triomphe"
-version = "0.1.9"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f"
+checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3"
 dependencies = [
  "serde",
  "stable_deref_trait",
 ]
 
 [[package]]
-name = "trust-dns-proto"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
-dependencies = [
- "async-trait",
- "cfg-if 1.0.0",
- "data-encoding",
- "enum-as-inner",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna",
- "ipnet",
- "once_cell",
- "rand",
- "smallvec",
- "thiserror",
- "tinyvec",
- "tokio",
- "tracing",
- "url",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
-dependencies = [
- "cfg-if 1.0.0",
- "futures-util",
- "ipconfig",
- "lru-cache",
- "once_cell",
- "parking_lot 0.12.1",
- "rand",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "tracing",
- "trust-dns-proto",
-]
-
-[[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "tsify"
@@ -5289,7 +5575,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals 0.28.0",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -5325,9 +5611,9 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -5337,18 +5623,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
@@ -5374,9 +5660,9 @@ dependencies = [
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
 
 [[package]]
 name = "untrusted"
@@ -5386,12 +5672,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna",
+ "idna 0.5.0",
  "percent-encoding",
 ]
 
@@ -5421,9 +5707,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "value-bag"
-version = "1.4.2"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
+checksum = "74797339c3b98616c009c7c3eb53a0ce41e85c8ec66bd3db96ed132d20cfdee8"
 
 [[package]]
 name = "vcpkg"
@@ -5438,25 +5724,55 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
+name = "veilid-async-tls"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f273e0e7f394ba1d52a1613411cb7442641f2625eb25cfd13d31965d8da558ee"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "rustls",
+ "rustls-pemfile",
+ "webpki-roots 0.22.6",
+]
+
+[[package]]
+name = "veilid-async-tungstenite"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ae5d6d02764ce82b7fdae4360bd497fe8df7a08a5901ef15a49e1ee2f734e2d"
+dependencies = [
+ "futures-io",
+ "futures-util",
+ "log",
+ "pin-project-lite",
+ "tungstenite",
+ "veilid-async-tls",
+]
+
+[[package]]
 name = "veilid-bugsalot"
-version = "0.1.0"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9ee584edf237fac328b891dd06c21e7914a1db3762907edc366a13803451fe3"
+checksum = "2836acd414bd560c55c906a636c3bca7f080a8fc21802f18616d6be380819ddc"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "veilid-cli"
-version = "0.2.5"
+version = "0.3.0"
 dependencies = [
  "arboard",
  "async-std",
  "async-tungstenite",
  "cfg-if 1.0.0",
  "chrono",
- "clap 4.4.7",
- "config",
+ "clap 4.5.4",
+ "config 0.14.0",
+ "console",
  "crossbeam-channel",
  "cursive",
- "cursive-flexi-logger-view",
  "cursive_buffered_backend",
  "cursive_table_view",
  "data-encoding",
@@ -5468,7 +5784,10 @@ dependencies = [
  "indent",
  "json",
  "log",
+ "lru",
+ "owning_ref",
  "parking_lot 0.12.1",
+ "rustyline-async",
  "serde",
  "serde_derive",
  "serial_test",
@@ -5476,21 +5795,20 @@ dependencies = [
  "thiserror",
  "tokio",
  "tokio-util",
+ "unicode-width",
  "veilid-bugsalot",
  "veilid-tools",
 ]
 
 [[package]]
 name = "veilid-core"
-version = "0.2.5"
+version = "0.3.0"
 dependencies = [
  "argon2",
  "async-io 1.13.0",
  "async-lock 2.8.0",
  "async-std",
  "async-std-resolver",
- "async-tls",
- "async-tungstenite",
  "async_executors",
  "backtrace",
  "blake3",
@@ -5500,20 +5818,21 @@ dependencies = [
  "chacha20",
  "chacha20poly1305",
  "chrono",
- "config",
+ "config 0.13.4",
  "console_error_panic_hook",
  "curve25519-dalek",
  "data-encoding",
  "directories",
  "ed25519-dalek",
- "enum-as-inner",
  "enumset",
  "eyre",
+ "filetime",
  "flume",
  "futures-util",
  "getrandom",
  "glob",
  "hex",
+ "hickory-resolver",
  "jni",
  "jni-sys",
  "js-sys",
@@ -5531,7 +5850,6 @@ dependencies = [
  "nix 0.27.1",
  "num-traits",
  "once_cell",
- "owning_ref",
  "paranoid-android",
  "parking_lot 0.12.1",
  "paste",
@@ -5542,15 +5860,17 @@ dependencies = [
  "send_wrapper 0.6.0",
  "serde",
  "serde-big-array",
- "serde-wasm-bindgen 0.6.1",
+ "serde-wasm-bindgen 0.6.5",
  "serde_bytes",
  "serde_json",
  "serial_test",
+ "sha2 0.10.8",
  "shell-words",
  "simplelog",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "static_assertions",
  "stop-token",
+ "sysinfo",
  "thiserror",
  "tokio",
  "tokio-stream",
@@ -5560,8 +5880,9 @@ dependencies = [
  "tracing-oslog",
  "tracing-subscriber",
  "tracing-wasm",
- "trust-dns-resolver",
  "tsify",
+ "veilid-async-tls",
+ "veilid-async-tungstenite",
  "veilid-bugsalot",
  "veilid-hashlink",
  "veilid-igd",
@@ -5573,10 +5894,10 @@ dependencies = [
  "weak-table",
  "web-sys",
  "webpki",
- "webpki-roots 0.25.2",
+ "webpki-roots 0.25.4",
  "wee_alloc",
  "winapi",
- "windows",
+ "windows 0.51.1",
  "windows-permissions",
  "ws_stream_wasm",
  "x25519-dalek",
@@ -5584,7 +5905,7 @@ dependencies = [
 
 [[package]]
 name = "veilid-flutter"
-version = "0.2.5"
+version = "0.3.0"
 dependencies = [
  "allo-isolate",
  "android_log-sys 0.3.1",
@@ -5622,7 +5943,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a3dabbda02cfe176635dcaa18a021416ff2eb4d0b47a913e3fdc7f62049d7b1"
 dependencies = [
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
  "serde",
 ]
 
@@ -5641,16 +5962,15 @@ dependencies = [
 
 [[package]]
 name = "veilid-server"
-version = "0.2.5"
+version = "0.3.0"
 dependencies = [
  "ansi_term",
  "async-std",
- "async-tungstenite",
  "backtrace",
  "cfg-if 1.0.0",
- "clap 4.4.7",
+ "clap 4.5.4",
  "color-eyre",
- "config",
+ "config 0.14.0",
  "console-subscriber",
  "ctrlc",
  "daemonize",
@@ -5660,7 +5980,7 @@ dependencies = [
  "hostname",
  "json",
  "lazy_static",
- "nix 0.27.1",
+ "nix 0.28.0",
  "opentelemetry",
  "opentelemetry-otlp",
  "opentelemetry-semantic-conventions",
@@ -5683,6 +6003,7 @@ dependencies = [
  "tracing-opentelemetry",
  "tracing-subscriber",
  "url",
+ "veilid-async-tungstenite",
  "veilid-bugsalot",
  "veilid-core",
  "wg",
@@ -5691,7 +6012,7 @@ dependencies = [
 
 [[package]]
 name = "veilid-tools"
-version = "0.2.5"
+version = "0.3.0"
 dependencies = [
  "android_logger 0.13.3",
  "async-lock 2.8.0",
@@ -5733,6 +6054,7 @@ dependencies = [
  "stop-token",
  "thiserror",
  "tokio",
+ "tokio-stream",
  "tokio-util",
  "tracing",
  "tracing-oslog",
@@ -5748,7 +6070,7 @@ dependencies = [
 
 [[package]]
 name = "veilid-wasm"
-version = "0.2.5"
+version = "0.3.0"
 dependencies = [
  "cfg-if 1.0.0",
  "console_error_panic_hook",
@@ -5760,7 +6082,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "send_wrapper 0.6.0",
  "serde",
- "serde-wasm-bindgen 0.6.1",
+ "serde-wasm-bindgen 0.6.5",
  "serde_bytes",
  "serde_json",
  "tracing",
@@ -5776,12 +6098,6 @@ dependencies = [
 
 [[package]]
 name = "version_check"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
-
-[[package]]
-name = "version_check"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
@@ -5794,9 +6110,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -5819,9 +6135,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.88"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if 1.0.0",
  "serde",
@@ -5831,24 +6147,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.88"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.38"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -5858,9 +6174,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.88"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5868,28 +6184,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.88"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.88"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-bindgen-test"
-version = "0.3.38"
+version = "0.3.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6433b7c56db97397842c46b67e11873eda263170afeb3a2dc74a7cb370fee0d"
+checksum = "d9bf62a58e0780af3e852044583deee40983e5886da43a271dd772379987667b"
 dependencies = [
  "console_error_panic_hook",
  "js-sys",
@@ -5901,13 +6217,13 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-test-macro"
-version = "0.3.38"
+version = "0.3.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "493fcbab756bb764fa37e6bee8cec2dd709eb4273d06d0c282a5e74275ded735"
+checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
@@ -5929,9 +6245,9 @@ checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549"
 
 [[package]]
 name = "web-sys"
-version = "0.3.65"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -5958,9 +6274,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.2"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "wee_alloc"
@@ -5976,9 +6292,9 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wg"
@@ -6000,7 +6316,7 @@ dependencies = [
  "either",
  "home",
  "once_cell",
- "rustix 0.38.21",
+ "rustix 0.38.32",
 ]
 
 [[package]]
@@ -6035,15 +6351,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6055,11 +6362,21 @@ version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
 dependencies = [
- "windows-core",
+ "windows-core 0.51.1",
  "windows-targets 0.48.5",
 ]
 
 [[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
 name = "windows-core"
 version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6069,6 +6386,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
 name = "windows-permissions"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6108,6 +6434,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
 name = "windows-targets"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6138,6 +6473,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
 name = "windows_aarch64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6150,6 +6500,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6162,6 +6518,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6174,6 +6536,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6186,6 +6554,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6198,6 +6572,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6210,6 +6590,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6222,10 +6608,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
 name = "winnow"
-version = "0.5.19"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -6261,31 +6662,26 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.10.1"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 dependencies = [
  "gethostname",
- "nix 0.24.3",
- "winapi",
- "winapi-wsapoll",
+ "rustix 0.38.32",
  "x11rb-protocol",
 ]
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.10.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67"
-dependencies = [
- "nix 0.24.3",
-]
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
@@ -6360,29 +6756,29 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.25"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.25"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 dependencies = [
  "zeroize_derive",
 ]
@@ -6395,7 +6791,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.55",
 ]
 
 [[package]]
diff --git a/pkgs/tools/networking/veilid/default.nix b/pkgs/tools/networking/veilid/default.nix
index a787bb64517f5..bbeddca8b7cd7 100644
--- a/pkgs/tools/networking/veilid/default.nix
+++ b/pkgs/tools/networking/veilid/default.nix
@@ -10,22 +10,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "veilid";
-  version = "0.2.5";
+  version = "0.3.0";
 
   src = fetchFromGitLab {
     owner = "veilid";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jcSoZhAAoiKn3Jsov4Q0vunPRC+JwX8O0vYZDT5uO0I=";
+    sha256 = "sha256-Hwumwc6XHHCyjmOqIhhUzGEhah5ASrBZ8EYwYVag0Fo=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "async-tls-0.12.0" = "sha256-SAirarvQKsYLftr3u29czQFBwVZgl2cSCUqC0/Qgye0=";
-      "cursive-0.20.0" = "sha256-jETyRRnzt7OMkTo4LRfeRr37oPJpn9R2soxkH7tzGy8=";
-      "cursive-flexi-logger-view-0.5.0" = "sha256-zFpfVFNZNNdNMdpJbaT4O2pMYccGEAGnvYzpRziMwfQ=";
+      "ansi-parser-0.9.0" = "sha256-3qTJ4J3QE73ScDShnTFD4WPiZaDaiss0wqXmeRQEIt0=";
+      "cursive-0.20.0" = "sha256-EGKO7JVN9hIqADKKC3mUHHOCSxMjPoXzYBZujzdgk3E=";
       "cursive_buffered_backend-0.6.1" = "sha256-+sTJnp570HupwaJxV2x+oKyLwNmqQ4HqOH2P1s9Hhw8=";
+      "cursive_table_view-0.14.0" = "sha256-haos82qtobMsFCP3sNRu5u1mki4bsjrV+eqFxUGIHqk=";
     };
   };
 
diff --git a/pkgs/tools/networking/vopono/default.nix b/pkgs/tools/networking/vopono/default.nix
index d2bb8fec3aa08..9e62a465bb695 100644
--- a/pkgs/tools/networking/vopono/default.nix
+++ b/pkgs/tools/networking/vopono/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vopono";
-  version = "0.10.9";
+  version = "0.10.10";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-j8o9UxyBE7uML/7gw9UYbXLNYK9ka2jhUw5/v7pxIc8=";
+    hash = "sha256-HjubzbRsmRU33oI1p1kzCFUjC2YQJhVqljd/FHzAnMw=";
   };
 
-  cargoHash = "sha256-foJSaifllpGNMfxWMGm4BWwItOdtAmUcaOO1j1JMCpo=";
+  cargoHash = "sha256-YBDB1g8cUOo1hS8Fi03Bvpe63bolbPmhGbvT16G73js=";
 
   meta = with lib; {
     description = "Run applications through VPN connections in network namespaces";
diff --git a/pkgs/tools/networking/wormhole-william/default.nix b/pkgs/tools/networking/wormhole-william/default.nix
index e08c0e51a58aa..aeecc73e64d94 100644
--- a/pkgs/tools/networking/wormhole-william/default.nix
+++ b/pkgs/tools/networking/wormhole-william/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorHash = "sha256-oJz7HgtjuP4ooXdpofIKaDndGg4WqVZgbT8Yb1AyaMs=";
 
+  __darwinAllowLocalNetworking = true;
+
   preCheck = ''
     # wormhole_test.go:692: failed to establish connection
     substituteInPlace wormhole/wormhole_test.go \
diff --git a/pkgs/tools/networking/xh/default.nix b/pkgs/tools/networking/xh/default.nix
index a2cbf816fab7d..826987af508a1 100644
--- a/pkgs/tools/networking/xh/default.nix
+++ b/pkgs/tools/networking/xh/default.nix
@@ -59,6 +59,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ducaale/xh";
     changelog = "https://github.com/ducaale/xh/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ figsoda payas ];
+    maintainers = with maintainers; [ figsoda bhankas ];
   };
 }
diff --git a/pkgs/tools/networking/xray/default.nix b/pkgs/tools/networking/xray/default.nix
index 285b29f228851..e2ac3e2264b30 100644
--- a/pkgs/tools/networking/xray/default.nix
+++ b/pkgs/tools/networking/xray/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "xray";
-  version = "1.8.7";
+  version = "1.8.10";
 
   src = fetchFromGitHub {
     owner = "XTLS";
     repo = "Xray-core";
     rev = "v${version}";
-    hash = "sha256-yS2DsM9RVAHStoqWVns9GkoYuFS69v7S3uTbRaV9Aog=";
+    hash = "sha256-Pc3sWVUZTOyCxGHcfKJ3fc0vUKtymPTe5DOEP+dScwg=";
   };
 
-  vendorHash = "sha256-HRUUZjc0TcZ/fXTneG/h/m3QyesHL+/Nu1pFqZ3LUDI=";
+  vendorHash = "sha256-e+SJQBfwIkuzRblOQPt8ZKZgROBAZy2y5dyh6ykdFeg=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py
deleted file mode 100644
index d54392cca5531..0000000000000
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py
+++ /dev/null
@@ -1,247 +0,0 @@
-from collections.abc import Mapping, Sequence
-from typing import cast, Optional, NamedTuple
-
-from markdown_it.token import Token
-from xml.sax.saxutils import escape, quoteattr
-
-from .md import Renderer
-
-_xml_id_translate_table = {
-    ord('*'): ord('_'),
-    ord('<'): ord('_'),
-    ord(' '): ord('_'),
-    ord('>'): ord('_'),
-    ord('['): ord('_'),
-    ord(']'): ord('_'),
-    ord(':'): ord('_'),
-    ord('"'): ord('_'),
-}
-def make_xml_id(s: str) -> str:
-    return s.translate(_xml_id_translate_table)
-
-class Deflist:
-    has_dd = False
-
-class Heading(NamedTuple):
-    container_tag: str
-    level: int
-    # special handling for <part> titles: whether partinfo was already closed from elsewhere
-    # or still needs closing.
-    partintro_closed: bool = False
-
-class DocBookRenderer(Renderer):
-    _link_tags: list[str]
-    _deflists: list[Deflist]
-    _headings: list[Heading]
-    _attrspans: list[str]
-
-    def __init__(self, manpage_urls: Mapping[str, str]):
-        super().__init__(manpage_urls)
-        self._link_tags = []
-        self._deflists = []
-        self._headings = []
-        self._attrspans = []
-
-    def render(self, tokens: Sequence[Token]) -> str:
-        result = super().render(tokens)
-        result += self._close_headings(None)
-        return result
-    def renderInline(self, tokens: Sequence[Token]) -> str:
-        # HACK to support docbook links and xrefs. link handling is only necessary because the docbook
-        # manpage stylesheet converts - in urls to a mathematical minus, which may be somewhat incorrect.
-        for i, token in enumerate(tokens):
-            if token.type != 'link_open':
-                continue
-            token.tag = 'link'
-            # turn [](#foo) into xrefs
-            if token.attrs['href'][0:1] == '#' and tokens[i + 1].type == 'link_close': # type: ignore[index]
-                token.tag = "xref"
-            # turn <x> into links without contents
-            if tokens[i + 1].type == 'text' and tokens[i + 1].content == token.attrs['href']:
-                tokens[i + 1].content = ''
-
-        return super().renderInline(tokens)
-
-    def text(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return escape(token.content)
-    def paragraph_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<para>"
-    def paragraph_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</para>"
-    def hardbreak(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<literallayout>\n</literallayout>"
-    def softbreak(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        # should check options.breaks() and emit hard break if so
-        return "\n"
-    def code_inline(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return f"<literal>{escape(token.content)}</literal>"
-    def code_block(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return f"<programlisting>{escape(token.content)}</programlisting>"
-    def link_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        self._link_tags.append(token.tag)
-        href = cast(str, token.attrs['href'])
-        (attr, start) = ('linkend', 1) if href[0] == '#' else ('xlink:href', 0)
-        return f"<{token.tag} {attr}={quoteattr(href[start:])}>"
-    def link_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return f"</{self._link_tags.pop()}>"
-    def list_item_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<listitem>"
-    def list_item_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</listitem>\n"
-    # HACK open and close para for docbook change size. remove soon.
-    def bullet_list_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        spacing = ' spacing="compact"' if token.meta.get('compact', False) else ''
-        return f"<para><itemizedlist{spacing}>\n"
-    def bullet_list_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "\n</itemizedlist></para>"
-    def em_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<emphasis>"
-    def em_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</emphasis>"
-    def strong_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<emphasis role=\"strong\">"
-    def strong_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</emphasis>"
-    def fence(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        info = f" language={quoteattr(token.info)}" if token.info != "" else ""
-        return f"<programlisting{info}>{escape(token.content)}</programlisting>"
-    def blockquote_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<para><blockquote>"
-    def blockquote_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</blockquote></para>"
-    def note_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<para><note>"
-    def note_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</note></para>"
-    def caution_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<para><caution>"
-    def caution_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</caution></para>"
-    def important_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<para><important>"
-    def important_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</important></para>"
-    def tip_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<para><tip>"
-    def tip_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</tip></para>"
-    def warning_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<para><warning>"
-    def warning_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</warning></para>"
-    # markdown-it emits tokens based on the html syntax tree, but docbook is
-    # slightly different. html has <dl>{<dt/>{<dd/>}}</dl>,
-    # docbook has <variablelist>{<varlistentry><term/><listitem/></varlistentry>}<variablelist>
-    # we have to reject multiple definitions for the same term for time being.
-    def dl_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        self._deflists.append(Deflist())
-        return "<para><variablelist>"
-    def dl_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        self._deflists.pop()
-        return "</variablelist></para>"
-    def dt_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        self._deflists[-1].has_dd = False
-        return "<varlistentry><term>"
-    def dt_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</term>"
-    def dd_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        if self._deflists[-1].has_dd:
-            raise Exception("multiple definitions per term not supported")
-        self._deflists[-1].has_dd = True
-        return "<listitem>"
-    def dd_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</listitem></varlistentry>"
-    def myst_role(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        if token.meta['name'] == 'command':
-            return f"<command>{escape(token.content)}</command>"
-        if token.meta['name'] == 'file':
-            return f"<filename>{escape(token.content)}</filename>"
-        if token.meta['name'] == 'var':
-            return f"<varname>{escape(token.content)}</varname>"
-        if token.meta['name'] == 'env':
-            return f"<envar>{escape(token.content)}</envar>"
-        if token.meta['name'] == 'option':
-            return f"<option>{escape(token.content)}</option>"
-        if token.meta['name'] == 'manpage':
-            [page, section] = [ s.strip() for s in token.content.rsplit('(', 1) ]
-            section = section[:-1]
-            man = f"{page}({section})"
-            title = f"<refentrytitle>{escape(page)}</refentrytitle>"
-            vol = f"<manvolnum>{escape(section)}</manvolnum>"
-            ref = f"<citerefentry>{title}{vol}</citerefentry>"
-            if man in self._manpage_urls:
-                return f"<link xlink:href={quoteattr(self._manpage_urls[man])}>{ref}</link>"
-            else:
-                return ref
-        raise NotImplementedError("md node not supported yet", token)
-    def attr_span_begin(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        # we currently support *only* inline anchors and the special .keycap class to produce
-        # <keycap> docbook elements.
-        (id_part, class_part) = ("", "")
-        if s := token.attrs.get('id'):
-            id_part = f'<anchor xml:id={quoteattr(cast(str, s))} />'
-        if s := token.attrs.get('class'):
-            if s == 'keycap':
-                class_part = "<keycap>"
-                self._attrspans.append("</keycap>")
-            else:
-                return super().attr_span_begin(token, tokens, i)
-        else:
-            self._attrspans.append("")
-        return id_part + class_part
-    def attr_span_end(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return self._attrspans.pop()
-    def ordered_list_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        start = f' startingnumber="{token.attrs["start"]}"' if 'start' in token.attrs else ""
-        spacing = ' spacing="compact"' if token.meta.get('compact', False) else ''
-        return f"<orderedlist{start}{spacing}>"
-    def ordered_list_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</orderedlist>"
-    def heading_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        hlevel = int(token.tag[1:])
-        result = self._close_headings(hlevel)
-        (tag, attrs) = self._heading_tag(token, tokens, i)
-        self._headings.append(Heading(tag, hlevel))
-        attrs_str = "".join([ f" {k}={quoteattr(v)}" for k, v in attrs.items() ])
-        return result + f'<{tag}{attrs_str}>\n<title>'
-    def heading_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        heading = self._headings[-1]
-        result = '</title>'
-        if heading.container_tag == 'part':
-            # generate the same ids as were previously assigned manually. if this collides we
-            # rely on outside schema validation to catch it!
-            maybe_id = ""
-            assert tokens[i - 2].type == 'heading_open'
-            if id := cast(str, tokens[i - 2].attrs.get('id', "")):
-                maybe_id = " xml:id=" + quoteattr(id + "-intro")
-            result += f"<partintro{maybe_id}>"
-        return result
-    def example_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        if id := cast(str, token.attrs.get('id', '')):
-            id = f'xml:id={quoteattr(id)}' if id else ''
-        return f'<example {id}>'
-    def example_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</example>"
-    def example_title_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "<title>"
-    def example_title_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "</title>"
-
-    def _close_headings(self, level: Optional[int]) -> str:
-        # we rely on markdown-it producing h{1..6} tags in token.tag for this to work
-        result = []
-        while len(self._headings):
-            if level is None or self._headings[-1].level >= level:
-                heading = self._headings.pop()
-                if heading.container_tag == 'part' and not heading.partintro_closed:
-                    result.append("</partintro>")
-                result.append(f"</{heading.container_tag}>")
-            else:
-                break
-        return "\n".join(result)
-
-    def _heading_tag(self, token: Token, tokens: Sequence[Token], i: int) -> tuple[str, dict[str, str]]:
-        attrs = {}
-        if id := token.attrs.get('id'):
-            attrs['xml:id'] = cast(str, id)
-        return ("section", attrs)
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
index c72a9d53cd18d..c277d28ca5e47 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py
@@ -13,9 +13,8 @@ from typing import Any, Callable, cast, ClassVar, Generic, get_args, NamedTuple
 from markdown_it.token import Token
 
 from . import md, options
-from .docbook import DocBookRenderer, Heading, make_xml_id
 from .html import HTMLRenderer, UnresolvedXrefError
-from .manual_structure import check_structure, FragmentType, is_include, TocEntry, TocEntryType, XrefTarget
+from .manual_structure import check_structure, FragmentType, is_include, make_xml_id, TocEntry, TocEntryType, XrefTarget
 from .md import Converter, Renderer
 
 class BaseConverter(Converter[md.TR], Generic[md.TR]):
@@ -200,74 +199,6 @@ class RendererMixin(Renderer):
     def included_options(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         raise NotImplementedError()
 
-class ManualDocBookRenderer(RendererMixin, DocBookRenderer):
-    def __init__(self, toplevel_tag: str, revision: str, manpage_urls: Mapping[str, str]):
-        super().__init__(toplevel_tag, revision, manpage_urls)
-
-    def _render_book(self, tokens: Sequence[Token]) -> str:
-        assert tokens[1].children
-        assert tokens[4].children
-        if (maybe_id := cast(str, tokens[0].attrs.get('id', ""))):
-            maybe_id = "xml:id=" + xml.quoteattr(maybe_id)
-        return (f'<book xmlns="http://docbook.org/ns/docbook"'
-                f'      xmlns:xlink="http://www.w3.org/1999/xlink"'
-                f'      {maybe_id} version="5.0">'
-                f'  <title>{self.renderInline(tokens[1].children)}</title>'
-                f'  <subtitle>{self.renderInline(tokens[4].children)}</subtitle>'
-                f'  {super(DocBookRenderer, self).render(tokens[6:])}'
-                f'</book>')
-
-    def _heading_tag(self, token: Token, tokens: Sequence[Token], i: int) -> tuple[str, dict[str, str]]:
-        (tag, attrs) = super()._heading_tag(token, tokens, i)
-        # render() has already verified that we don't have supernumerary headings and since the
-        # book tag is handled specially we can leave the check this simple
-        if token.tag != 'h1':
-            return (tag, attrs)
-        return (self._toplevel_tag, attrs | {
-            'xmlns': "http://docbook.org/ns/docbook",
-            'xmlns:xlink': "http://www.w3.org/1999/xlink",
-        })
-
-    def _included_thing(self, tag: str, token: Token, tokens: Sequence[Token], i: int) -> str:
-        result = []
-        # close existing partintro. the generic render doesn't really need this because
-        # it doesn't have a concept of structure in the way the manual does.
-        if self._headings and self._headings[-1] == Heading('part', 1):
-            result.append("</partintro>")
-            self._headings[-1] = self._headings[-1]._replace(partintro_closed=True)
-        # must nest properly for structural includes. this requires saving at least
-        # the headings stack, but creating new renderers is cheap and much easier.
-        r = ManualDocBookRenderer(tag, self._revision, self._manpage_urls)
-        for (included, path) in token.meta['included']:
-            try:
-                result.append(r.render(included))
-            except Exception as e:
-                raise RuntimeError(f"rendering {path}") from e
-        return "".join(result)
-    def included_options(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        conv = options.DocBookConverter(self._manpage_urls, self._revision, 'fragment',
-                                        token.meta['list-id'], token.meta['id-prefix'])
-        conv.add_options(token.meta['source'])
-        return conv.finalize(fragment=True)
-
-    # TODO minimize docbook diffs with existing conversions. remove soon.
-    def paragraph_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return super().paragraph_open(token, tokens, i) + "\n "
-    def paragraph_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return "\n" + super().paragraph_close(token, tokens, i)
-    def code_block(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return f"<programlisting>\n{xml.escape(token.content)}</programlisting>"
-    def fence(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        info = f" language={xml.quoteattr(token.info)}" if token.info != "" else ""
-        return f"<programlisting{info}>\n{xml.escape(token.content)}</programlisting>"
-
-class DocBookConverter(BaseConverter[ManualDocBookRenderer]):
-    INCLUDE_ARGS_NS = "docbook"
-
-    def __init__(self, manpage_urls: Mapping[str, str], revision: str):
-        super().__init__()
-        self._renderer = ManualDocBookRenderer('book', revision, manpage_urls)
-
 
 class HTMLParameters(NamedTuple):
     generator: str
@@ -457,7 +388,7 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer):
                     f' </span>'
                     f'</dt>'
                 )
-                # we want to look straight through parts because docbook-xsl does too, but it
+                # we want to look straight through parts because docbook-xsl did too, but it
                 # also makes for more uesful top-level tocs.
                 next_level = walk_and_emit(child, depth - (0 if child.kind == 'part' else 1))
                 if next_level:
@@ -477,7 +408,7 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer):
                 '</div>'
             )
         # we don't want to generate the "Title of Contents" header for sections,
-        # docbook doesn't and it's only distracting clutter unless it's the main table.
+        # docbook didn't and it's only distracting clutter unless it's the main table.
         # we also want to generate tocs only for a top-level section (ie, one that is
         # not itself contained in another section)
         print_title = toc.kind != 'section'
@@ -506,12 +437,12 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer):
         ])
 
     def _make_hN(self, level: int) -> tuple[str, str]:
-        # for some reason chapters don't increase the hN nesting count in docbook xslts. duplicate
-        # this for consistency.
+        # for some reason chapters didn't increase the hN nesting count in docbook xslts.
+        # originally this was duplicated here for consistency with docbook rendering, but
+        # it could be reevaluated and changed now that docbook is gone.
         if self._toplevel_tag == 'chapter':
             level -= 1
-        # TODO docbook compat. these are never useful for us, but not having them breaks manual
-        # compare workflows while docbook is still allowed.
+        # this style setting is also for docbook compatibility only and could well go away.
         style = ""
         if level + self._hlevel_offset < 3 \
            and (self._toplevel_tag == 'section' or (self._toplevel_tag == 'chapter' and level > 0)):
@@ -537,7 +468,7 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer):
         if into:
             toc = TocEntry.of(fragments[0][0][0])
             inner.append(self._file_header(toc))
-            # we do not set _hlevel_offset=0 because docbook doesn't either.
+            # we do not set _hlevel_offset=0 because docbook didn't either.
         else:
             inner = outer
         in_dir = self._in_dir
@@ -742,12 +673,6 @@ class HTMLConverter(BaseConverter[ManualHTMLRenderer]):
 
 
 
-def _build_cli_db(p: argparse.ArgumentParser) -> None:
-    p.add_argument('--manpage-urls', required=True)
-    p.add_argument('--revision', required=True)
-    p.add_argument('infile', type=Path)
-    p.add_argument('outfile', type=Path)
-
 def _build_cli_html(p: argparse.ArgumentParser) -> None:
     p.add_argument('--manpage-urls', required=True)
     p.add_argument('--revision', required=True)
@@ -761,11 +686,6 @@ def _build_cli_html(p: argparse.ArgumentParser) -> None:
     p.add_argument('infile', type=Path)
     p.add_argument('outfile', type=Path)
 
-def _run_cli_db(args: argparse.Namespace) -> None:
-    with open(args.manpage_urls, 'r') as manpage_urls:
-        md = DocBookConverter(json.load(manpage_urls), args.revision)
-        md.convert(args.infile, args.outfile)
-
 def _run_cli_html(args: argparse.Namespace) -> None:
     with open(args.manpage_urls, 'r') as manpage_urls:
         md = HTMLConverter(
@@ -777,13 +697,10 @@ def _run_cli_html(args: argparse.Namespace) -> None:
 
 def build_cli(p: argparse.ArgumentParser) -> None:
     formats = p.add_subparsers(dest='format', required=True)
-    _build_cli_db(formats.add_parser('docbook'))
     _build_cli_html(formats.add_parser('html'))
 
 def run_cli(args: argparse.Namespace) -> None:
-    if args.format == 'docbook':
-        _run_cli_db(args)
-    elif args.format == 'html':
+    if args.format == 'html':
         _run_cli_html(args)
     else:
         raise RuntimeError('format not hooked up', args)
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual_structure.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual_structure.py
index c6e6bf4293706..724ca4b72707f 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual_structure.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual_structure.py
@@ -201,3 +201,20 @@ class TocEntry(Freezeable):
         while len(entries) > 1:
             entries[-2][1].children.append(entries.pop()[1])
         return (entries[0][1], examples, figures)
+
+_xml_id_translate_table = {
+    ord('*'): ord('_'),
+    ord('<'): ord('_'),
+    ord(' '): ord('_'),
+    ord('>'): ord('_'),
+    ord('['): ord('_'),
+    ord(']'): ord('_'),
+    ord(':'): ord('_'),
+    ord('"'): ord('_'),
+}
+# this function is needed to generate option id attributes in the same format as
+# the docbook toolchain did to not break existing links. we don't actually use
+# xml any more, that's just the legacy we're dealing with and part of our structure
+# now.
+def make_xml_id(s: str) -> str:
+    return s.translate(_xml_id_translate_table)
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
index 9a00da567fa9e..fcd5af4ffe31a 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
@@ -17,10 +17,9 @@ from . import md
 from . import parallel
 from .asciidoc import AsciiDocRenderer, asciidoc_escape
 from .commonmark import CommonMarkRenderer
-from .docbook import DocBookRenderer, make_xml_id
 from .html import HTMLRenderer
 from .manpage import ManpageRenderer, man_escape
-from .manual_structure import XrefTarget
+from .manual_structure import make_xml_id, XrefTarget
 from .md import Converter, md_escape, md_make_code
 from .types import OptionLoc, Option, RenderedOption
 
@@ -184,100 +183,6 @@ class OptionDocsRestrictions:
     def example_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         raise RuntimeError("md token not supported in options doc", token)
 
-class OptionsDocBookRenderer(OptionDocsRestrictions, DocBookRenderer):
-    # TODO keep optionsDocBook diff small. remove soon if rendering is still good.
-    def ordered_list_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        token.meta['compact'] = False
-        return super().ordered_list_open(token, tokens, i)
-    def bullet_list_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        token.meta['compact'] = False
-        return super().bullet_list_open(token, tokens, i)
-
-class DocBookConverter(BaseConverter[OptionsDocBookRenderer]):
-    __option_block_separator__ = ""
-
-    def __init__(self, manpage_urls: Mapping[str, str],
-                 revision: str,
-                 document_type: str,
-                 varlist_id: str,
-                 id_prefix: str):
-        super().__init__(revision)
-        self._renderer = OptionsDocBookRenderer(manpage_urls)
-        self._document_type = document_type
-        self._varlist_id = varlist_id
-        self._id_prefix = id_prefix
-
-    def _parallel_render_prepare(self) -> Any:
-        return (self._renderer._manpage_urls, self._revision, self._document_type,
-                self._varlist_id, self._id_prefix)
-    @classmethod
-    def _parallel_render_init_worker(cls, a: Any) -> DocBookConverter:
-        return cls(*a)
-
-    def _related_packages_header(self) -> list[str]:
-        return [
-            "<para>",
-            "  <emphasis>Related packages:</emphasis>",
-            "</para>",
-        ]
-
-    def _decl_def_header(self, header: str) -> list[str]:
-        return [
-            f"<para><emphasis>{header}:</emphasis></para>",
-            "<simplelist>"
-        ]
-
-    def _decl_def_entry(self, href: Optional[str], name: str) -> list[str]:
-        if href is not None:
-            href = " xlink:href=" + xml.quoteattr(href)
-        return [
-            f"<member><filename{href}>",
-            xml.escape(name),
-            "</filename></member>"
-        ]
-
-    def _decl_def_footer(self) -> list[str]:
-        return [ "</simplelist>" ]
-
-    def finalize(self, *, fragment: bool = False) -> str:
-        result = []
-
-        if not fragment:
-            result.append('<?xml version="1.0" encoding="UTF-8"?>')
-        if self._document_type == 'appendix':
-            result += [
-                '<appendix xmlns="http://docbook.org/ns/docbook"',
-                '          xml:id="appendix-configuration-options">',
-                '  <title>Configuration Options</title>',
-            ]
-        result += [
-            '<variablelist xmlns:xlink="http://www.w3.org/1999/xlink"',
-            '               xmlns:nixos="tag:nixos.org"',
-            '               xmlns="http://docbook.org/ns/docbook"',
-            f'              xml:id="{self._varlist_id}">',
-        ]
-
-        for (name, opt) in self._sorted_options():
-            id = make_xml_id(self._id_prefix + name)
-            result += [
-                "<varlistentry>",
-                # NOTE adding extra spaces here introduces spaces into xref link expansions
-                (f"<term xlink:href={xml.quoteattr('#' + id)} xml:id={xml.quoteattr(id)}>" +
-                 f"<option>{xml.escape(name)}</option></term>"),
-                "<listitem>"
-            ]
-            result += opt.lines
-            result += [
-                "</listitem>",
-                "</varlistentry>"
-            ]
-
-        result.append("</variablelist>")
-        if self._document_type == 'appendix':
-            result.append("</appendix>")
-
-        return "\n".join(result)
-
 class OptionsManpageRenderer(OptionDocsRestrictions, ManpageRenderer):
     pass
 
@@ -578,15 +483,6 @@ class HTMLConverter(BaseConverter[OptionsHTMLRenderer]):
 
         return "\n".join(result)
 
-def _build_cli_db(p: argparse.ArgumentParser) -> None:
-    p.add_argument('--manpage-urls', required=True)
-    p.add_argument('--revision', required=True)
-    p.add_argument('--document-type', required=True)
-    p.add_argument('--varlist-id', required=True)
-    p.add_argument('--id-prefix', required=True)
-    p.add_argument("infile")
-    p.add_argument("outfile")
-
 def _build_cli_manpage(p: argparse.ArgumentParser) -> None:
     p.add_argument('--revision', required=True)
     p.add_argument("--header", type=Path)
@@ -606,20 +502,6 @@ def _build_cli_asciidoc(p: argparse.ArgumentParser) -> None:
     p.add_argument("infile")
     p.add_argument("outfile")
 
-def _run_cli_db(args: argparse.Namespace) -> None:
-    with open(args.manpage_urls, 'r') as manpage_urls:
-        md = DocBookConverter(
-            json.load(manpage_urls),
-            revision = args.revision,
-            document_type = args.document_type,
-            varlist_id = args.varlist_id,
-            id_prefix = args.id_prefix)
-
-        with open(args.infile, 'r') as f:
-            md.add_options(json.load(f))
-        with open(args.outfile, 'w') as f:
-            f.write(md.finalize())
-
 def _run_cli_manpage(args: argparse.Namespace) -> None:
     header = None
     footer = None
@@ -663,15 +545,12 @@ def _run_cli_asciidoc(args: argparse.Namespace) -> None:
 
 def build_cli(p: argparse.ArgumentParser) -> None:
     formats = p.add_subparsers(dest='format', required=True)
-    _build_cli_db(formats.add_parser('docbook'))
     _build_cli_manpage(formats.add_parser('manpage'))
     _build_cli_commonmark(formats.add_parser('commonmark'))
     _build_cli_asciidoc(formats.add_parser('asciidoc'))
 
 def run_cli(args: argparse.Namespace) -> None:
-    if args.format == 'docbook':
-        _run_cli_db(args)
-    elif args.format == 'manpage':
+    if args.format == 'manpage':
         _run_cli_manpage(args)
     elif args.format == 'commonmark':
         _run_cli_commonmark(args)
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_headings.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_headings.py
index 8cbf3dabcea24..d2f7c5cbe69ec 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/tests/test_headings.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_headings.py
@@ -2,11 +2,11 @@ import nixos_render_docs as nrd
 
 from markdown_it.token import Token
 
-class Converter(nrd.md.Converter[nrd.docbook.DocBookRenderer]):
+class Converter(nrd.md.Converter[nrd.html.HTMLRenderer]):
     # actual renderer doesn't matter, we're just parsing.
     def __init__(self, manpage_urls: dict[str, str]) -> None:
         super().__init__()
-        self._renderer = nrd.docbook.DocBookRenderer(manpage_urls)
+        self._renderer = nrd.html.HTMLRenderer(manpage_urls, {})
 
 def test_heading_id_absent() -> None:
     c = Converter({})
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_lists.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_lists.py
index f53442a96d4cf..26632c276b96e 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/tests/test_lists.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_lists.py
@@ -3,11 +3,11 @@ import pytest
 
 from markdown_it.token import Token
 
-class Converter(nrd.md.Converter[nrd.docbook.DocBookRenderer]):
+class Converter(nrd.md.Converter[nrd.html.HTMLRenderer]):
     # actual renderer doesn't matter, we're just parsing.
     def __init__(self, manpage_urls: dict[str, str]) -> None:
         super().__init__()
-        self._renderer = nrd.docbook.DocBookRenderer(manpage_urls)
+        self._renderer = nrd.html.HTMLRenderer(manpage_urls, {})
 
 @pytest.mark.parametrize("ordered", [True, False])
 def test_list_wide(ordered: bool) -> None:
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_options.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_options.py
index fed0b1a17ac1a..9499f83df525e 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/tests/test_options.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_options.py
@@ -4,7 +4,7 @@ from markdown_it.token import Token
 import pytest
 
 def test_option_headings() -> None:
-    c = nixos_render_docs.options.DocBookConverter({}, 'local', 'none', 'vars', 'opt-')
+    c = nixos_render_docs.options.HTMLConverter({}, 'local', 'vars', 'opt-', {})
     with pytest.raises(RuntimeError) as exc:
         c._render("# foo")
     assert exc.value.args[0] == 'md token not supported in options doc'
diff --git a/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py b/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py
index 26fdcea907dd0..b46b0c2ceacf9 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/tests/test_plugins.py
@@ -3,11 +3,11 @@ import pytest
 
 from markdown_it.token import Token
 
-class Converter(nrd.md.Converter[nrd.docbook.DocBookRenderer]):
+class Converter(nrd.md.Converter[nrd.html.HTMLRenderer]):
     # actual renderer doesn't matter, we're just parsing.
     def __init__(self, manpage_urls: dict[str, str]) -> None:
         super().__init__()
-        self._renderer = nrd.docbook.DocBookRenderer(manpage_urls)
+        self._renderer = nrd.html.HTMLRenderer(manpage_urls, {})
 
 def test_attr_span_parsing() -> None:
     c = Converter({})
diff --git a/pkgs/tools/package-management/fortran-fpm/default.nix b/pkgs/tools/package-management/fortran-fpm/default.nix
index 0945b0c67e32c..40e92dd68e84a 100644
--- a/pkgs/tools/package-management/fortran-fpm/default.nix
+++ b/pkgs/tools/package-management/fortran-fpm/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
   pname = "fortran-fpm";
 
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchurl {
     url = "https://github.com/fortran-lang/fpm/releases/download/v${version}/fpm-${version}.F90";
-    sha256 = "sha256-SOVj23Sva5OW6+Sme9NxIQ4uqMbis8wjDmgYPOdQlCI=";
+    sha256 = "sha256-dVPQW2DCp+iJojuhCgeEFVFpugG/x+DKhG986QuE4co=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
index 9bce8a919db44..79fc38eaef33d 100644
--- a/pkgs/tools/package-management/libdnf/default.nix
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.73.0";
+  version = "0.73.1";
 
   outputs = [ "out" "dev" "py" ];
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "rpm-software-management";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-zduxlroqo7aeQYhiTWmEK47YG/ll8hLH/d3xtXdcYhk=";
+    hash = "sha256-mZCrJ1fXqKE1sMYKWHLLQEPkdLwPwqJz+8n+DlNmxvM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 96e91b000b402..75d1442bd38fc 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -261,8 +261,8 @@ in lib.makeExtensible (self: ({
   };
 
   nix_2_21 = common {
-    version = "2.21.0";
-    hash = "sha256-9b9qJ+7rGjLKbIswMf0/2pgUWH/xOlYLk7P4WYNcGDs=";
+    version = "2.21.1";
+    hash = "sha256-iRtvOcJbohyhav+deEajI/Ln/LU/6WqSfLyXDQaNEro=";
   };
 
   # The minimum Nix version supported by Nixpkgs
diff --git a/pkgs/tools/security/aws-iam-authenticator/default.nix b/pkgs/tools/security/aws-iam-authenticator/default.nix
index 3019a2593640e..5af095ae15560 100644
--- a/pkgs/tools/security/aws-iam-authenticator/default.nix
+++ b/pkgs/tools/security/aws-iam-authenticator/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "aws-iam-authenticator";
-  version = "0.6.18";
+  version = "0.6.19";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-QhtDfi6USazpPq+7VnJX9YqTxsm7y1CZpIXiZyHaGG4=";
+    hash = "sha256-wgMMa1PFKNArI4pk7gA2o8HHgF84Q+rga4j+UC1/Js8=";
   };
 
-  vendorHash = "sha256-TDsY05jnutNIKx0z6/8vGvsgYCIKBkTxh9mXqk4IR38=";
+  vendorHash = "sha256-wJqtIuLiidO3XFkvhSXRZcFR/31rR4U9BXjFilsr5a0=";
 
   ldflags = let PKG = "sigs.k8s.io/aws-iam-authenticator"; in [
     "-s"
diff --git a/pkgs/tools/security/badchars/default.nix b/pkgs/tools/security/badchars/default.nix
index a6e5666c189f8..4c4d566c9074e 100644
--- a/pkgs/tools/security/badchars/default.nix
+++ b/pkgs/tools/security/badchars/default.nix
@@ -1,33 +1,41 @@
 { lib
 , buildPythonApplication
 , fetchPypi
+, python3
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "badchars";
   version = "0.4.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xqki8qnfwl97d60xj69alyzwa1mnfbwki25j0vhvhb05varaxz2";
+    hash = "sha256-4neV1S5gwQ03kEXEyZezNSj+PVXJyA5MO4lyZzGKE/c=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "argparse" ""
+    substituteInPlace setup.py \
+      --replace-fail "argparse" ""
   '';
 
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
   # no tests are available and it can't be imported (it's only a script, not a module)
   doCheck = false;
 
   meta = with lib; {
     description = "HEX badchar generator for different programming languages";
-    mainProgram = "badchars";
     longDescription = ''
       A HEX bad char generator to instruct encoders such as shikata-ga-nai to
       transform those to other chars.
     '';
     homepage = "https://github.com/cytopia/badchars";
+    changelog = "https://github.com/cytopia/badchars/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "badchars";
   };
 }
diff --git a/pkgs/tools/security/bitwarden-directory-connector/default.nix b/pkgs/tools/security/bitwarden-directory-connector/default.nix
index 7f46b444b2e95..7bc4d9a1fe833 100644
--- a/pkgs/tools/security/bitwarden-directory-connector/default.nix
+++ b/pkgs/tools/security/bitwarden-directory-connector/default.nix
@@ -13,14 +13,14 @@
 let
   common = { name, npmBuildScript, installPhase }: buildNpmPackage rec {
     pname = name;
-    version = "2023.10.0";
+    version = "2024.3.1";
     nodejs = nodejs_18;
 
     src = fetchFromGitHub {
       owner = "bitwarden";
       repo = "directory-connector";
       rev = "v${version}";
-      hash = "sha256-PlOtTh+rpTxAv8ajHBDHZuL7yeeLVpbAfKEDPQlejIg=";
+      hash = "sha256-NbyjL6x/Ij5waYlIDNKrg7fDT+co/EcdCW4ZBJ6KV34=";
     };
 
     postPatch = ''
@@ -32,7 +32,7 @@ let
         --replace-fail "AppImage" "dir"
     '';
 
-    npmDepsHash = "sha256-jBAWWY12qeX2EDhUvT3TQpnQvYXRsIilRrXGpVzxYvw=";
+    npmDepsHash = "sha256-6WYNaF6z8OwWmi/Mv091LsuTUEUhWd8cDD11QKE8A5U=";
 
     env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
diff --git a/pkgs/tools/security/buttercup-desktop/default.nix b/pkgs/tools/security/buttercup-desktop/default.nix
index e38aaea42a4b2..3926a3ee81c3b 100644
--- a/pkgs/tools/security/buttercup-desktop/default.nix
+++ b/pkgs/tools/security/buttercup-desktop/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "buttercup-desktop";
-  version = "2.26.1";
+  version = "2.26.3";
   src = fetchurl {
     url = "https://github.com/buttercup/buttercup-desktop/releases/download/v${version}/Buttercup-linux-x86_64.AppImage";
-    sha256 = "sha256-usyq9qf6bBJHKreGzKzMdZYNmpZGtkUQScHyk1nvFQI=";
+    sha256 = "sha256-jX8U+DcuoYGfxQgYOIn03Vg/OesMVLHZ1gbGBSlgIbI=";
   };
   appimageContents = appimageTools.extractType2 { inherit pname src version; };
 
diff --git a/pkgs/tools/security/cloudlist/default.nix b/pkgs/tools/security/cloudlist/default.nix
index ab849a688a297..70e09efd747dd 100644
--- a/pkgs/tools/security/cloudlist/default.nix
+++ b/pkgs/tools/security/cloudlist/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "cloudlist";
-  version = "1.0.7";
+  version = "1.0.8";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "cloudlist";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F1oiatNP4tSRWI25r1uoiLT9Et+PyqU0p2HVICMBUNA=";
+    hash = "sha256-UyZ9KSjFu/NKiz4AZoKwHiWzh+KOARDmveCWcFbOS7A=";
   };
 
-  vendorHash = "sha256-3QS9YYypqEJhibfBFxFq1gxTVpTWBy35tXcO9+DBehY=";
+  vendorHash = "sha256-tMrTAbfD+ip/UxrGTaMswgqo94rJZ0lqqxPgYFhZoTY=";
 
   ldflags = [
     "-w"
diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix
index b37f05e779ccf..91fb3a554fd7e 100644
--- a/pkgs/tools/security/cnspec/default.nix
+++ b/pkgs/tools/security/cnspec/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "10.8.4";
+  version = "10.9.2";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-emY8y+OKk052o5LGhHMra7CTpbmS/U+5sjWIYR7DRsA=";
+    hash = "sha256-2Vy2IFsq9vbNECnf873FYcWiitnzsbxP8v2IwjE5j1I=";
   };
 
   proxyVendor = true;
 
-  vendorHash = "sha256-W39Ccc5UU+K+W/h/R1vrB1lcJXKZs8gbfxmb99vGEfM=";
+  vendorHash = "sha256-zGtvA1m6U55+0Toy5zvQeU0jkumQzPqle6rCfyg3aN0=";
 
   subPackages = [
     "apps/cnspec"
diff --git a/pkgs/tools/security/cryptomator/default.nix b/pkgs/tools/security/cryptomator/default.nix
index 39654ae0ceafe..2766a4e88ac27 100644
--- a/pkgs/tools/security/cryptomator/default.nix
+++ b/pkgs/tools/security/cryptomator/default.nix
@@ -14,13 +14,13 @@ in
 assert stdenv.isLinux; # better than `called with unexpected argument 'enableJavaFX'`
 mavenJdk.buildMavenPackage rec {
   pname = "cryptomator";
-  version = "1.12.3";
+  version = "1.12.4";
 
   src = fetchFromGitHub {
     owner = "cryptomator";
     repo = "cryptomator";
     rev = version;
-    hash = "sha256-pVQ3xlNgJIDz8dnNoiLJaG6y4kNHNLL7zYq1sl6rleY=";
+    hash = "sha256-i5TrWXOkRR+1iqSzMTJEe5xMJ3iM5kdI3fXb/Z5/Gb0=";
   };
 
   mvnParameters = "-Dmaven.test.skip=true -Plinux";
diff --git a/pkgs/tools/security/enum4linux-ng/default.nix b/pkgs/tools/security/enum4linux-ng/default.nix
index ee3ed2e8154d5..6c67773b6dd3d 100644
--- a/pkgs/tools/security/enum4linux-ng/default.nix
+++ b/pkgs/tools/security/enum4linux-ng/default.nix
@@ -1,36 +1,38 @@
 { lib
-, buildPythonApplication
 , fetchFromGitHub
-, impacket
-, ldap3
-, pyyaml
+, python3
 , samba
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "enum4linux-ng";
   version = "1.3.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "cddmp";
-    repo = pname;
+    repo = "enum4linux-ng";
     rev = "refs/tags/v${version}";
     hash = "sha256-O3TZcCn2kRLrMjQPVg8F5Q2ri968xRbXrdnfytfMkYM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = [
+    samba
+  ] ++ (with python3.pkgs; [
     impacket
     ldap3
     pyyaml
-    samba
-  ];
+  ]);
 
   # It's only a script and not a Python module. Project has no tests
   doCheck = false;
 
   meta = with lib; {
     description = "Windows/Samba enumeration tool";
-    mainProgram = "enum4linux-ng";
     longDescription = ''
       enum4linux-ng.py is a rewrite of Mark Lowe's enum4linux.pl, a tool for
       enumerating information from Windows and Samba systems.
@@ -39,5 +41,6 @@ buildPythonApplication rec {
     changelog = "https://github.com/cddmp/enum4linux-ng/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "enum4linux-ng";
   };
 }
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index 3db2051c8de08..333668fbfc9d5 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2024-03-26";
+  version = "2024-03-29";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-oZfo9p23uvDw2f7O5AnycVpE14Rul8ZIeQPojVGQCXI=";
+    hash = "sha256-SNgC7gMedVpy07PQTt5MfyxZdb5bN3tTDx72l/rusvw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/fido2luks/default.nix b/pkgs/tools/security/fido2luks/default.nix
deleted file mode 100644
index 123b73819bdc7..0000000000000
--- a/pkgs/tools/security/fido2luks/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, cryptsetup
-, pkg-config
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "fido2luks";
-  version = "0.2.21";
-
-  src = fetchFromGitHub {
-    owner = "shimunn";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-bXwaFiRHURvS5KtTqIj+3GlGNbEulDgMDP51ZiO1w9o=";
-  };
-
-  nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
-
-  buildInputs = [ cryptsetup ];
-
-  cargoSha256 = "sha256-MPji87jYJjYtDAXO+v/Z4XRtCKo+ftsNvmlBrM9iMTk=";
-
-  meta = with lib; {
-    description = "Decrypt your LUKS partition using a FIDO2 compatible authenticator";
-    homepage = "https://github.com/shimunn/fido2luks";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ prusnak mmahut ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/security/gpg-tui/default.nix b/pkgs/tools/security/gpg-tui/default.nix
index 64a2737845405..ba07ffb9e67f1 100644
--- a/pkgs/tools/security/gpg-tui/default.nix
+++ b/pkgs/tools/security/gpg-tui/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gpg-tui";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "gpg-tui";
     rev = "v${version}";
-    hash = "sha256-zTFWIIqIDMI77lg2CB1ug+GeKPVIT1OQ1p80x6tLgGg=";
+    hash = "sha256-aHmLcWiDy5GMbcKi285tfBggNmGkpVAoZMm4dt8LKak=";
   };
 
-  cargoHash = "sha256-5qLrmU/SfUfiQOOpECTEn8K142STnbhqE3XbJFxKPZg=";
+  cargoHash = "sha256-rtBvo2nX4A6K/TBl6xhW8huLXdR6xDUhzMB3KRXRYMs=";
 
   nativeBuildInputs = [
     gpgme # for gpgme-config
@@ -54,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orhun/gpg-tui/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda matthiasbeyer ];
+    mainProgram = "gpg-tui";
   };
 }
diff --git a/pkgs/tools/security/knockpy/default.nix b/pkgs/tools/security/knockpy/default.nix
index 6d4e80ec98c23..169165067c93d 100644
--- a/pkgs/tools/security/knockpy/default.nix
+++ b/pkgs/tools/security/knockpy/default.nix
@@ -18,15 +18,16 @@ python3.pkgs.buildPythonApplication rec {
   pythonRelaxDeps = [
     "beautifulsoup4"
     "dnspython"
+    "pyopenssl"
     "tqdm"
   ];
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     pythonRelaxDepsHook
     setuptools
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     beautifulsoup4
     dnspython
     pyopenssl
@@ -43,10 +44,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to scan subdomains";
-    mainProgram = "knockpy";
     homepage = "https://github.com/guelfoweb/knock";
     changelog = "https://github.com/guelfoweb/knock/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "knockpy";
   };
 }
diff --git a/pkgs/tools/security/ldeep/default.nix b/pkgs/tools/security/ldeep/default.nix
index 92d5ff106b6cd..0b3a2b47df4cf 100644
--- a/pkgs/tools/security/ldeep/default.nix
+++ b/pkgs/tools/security/ldeep/default.nix
@@ -19,13 +19,13 @@ python3.pkgs.buildPythonApplication rec {
     "cryptography"
   ];
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     cython
     pythonRelaxDepsHook
     setuptools
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     commandparse
     cryptography
     dnspython
@@ -39,7 +39,7 @@ python3.pkgs.buildPythonApplication rec {
     tqdm
   ];
 
-  # no tests are present
+  # Project has no tests
   doCheck = false;
 
   pythonImportsCheck = [
@@ -48,10 +48,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "In-depth LDAP enumeration utility";
-    mainProgram = "ldeep";
     homepage = "https://github.com/franc-pentest/ldeep";
     changelog = "https://github.com/franc-pentest/ldeep/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ldeep";
   };
 }
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 21f6f0ecbd2ad..cad0fef74f582 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.0"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.1"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index b58232b1e8ef1..9ec271d8b7e01 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: c82de1374a222da3ca6db840432a971cfd4e865e
-  ref: refs/tags/6.4.0
+  revision: 73d98ad0ca24cdd33bbb9dfb110f3b781c613b55
+  ref: refs/tags/6.4.1
   specs:
-    metasploit-framework (6.4.0)
+    metasploit-framework (6.4.1)
       actionpack (~> 7.0.0)
       activerecord (~> 7.0.0)
       activesupport (~> 7.0.0)
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index cacaf4ec0b0ed..0db72c46ae48f 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.4.0";
+  version = "6.4.1";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = "refs/tags/${version}";
-    hash = "sha256-1OWgQgnmsKxGHzX2ly/7xIJH4BcWUV6SjScxB5bMhu0=";
+    hash = "sha256-swKIiUgxsT6EnJV21sXOYU+s9fNTURLtJd1kjINyMd0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index a35e66a422228..fdaf84e0bb0e4 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -674,12 +674,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "c82de1374a222da3ca6db840432a971cfd4e865e";
-      sha256 = "1vc6rjb0fc97in95wl8n2zh4g0n4zcprgxim3x3arc76151a1rfl";
+      rev = "73d98ad0ca24cdd33bbb9dfb110f3b781c613b55";
+      sha256 = "1p9ifa1qqr6x4pni4lakygssqkv1rv2xcxlmkj23xc9i924qh0mk";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.4.0";
+    version = "6.4.1";
   };
   metasploit-model = {
     groups = ["default"];
diff --git a/pkgs/tools/security/pass/extensions/audit/default.nix b/pkgs/tools/security/pass/extensions/audit/default.nix
index 365f81759cce1..055af774a6245 100644
--- a/pkgs/tools/security/pass/extensions/audit/default.nix
+++ b/pkgs/tools/security/pass/extensions/audit/default.nix
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
     owner = "roddhjav";
     repo = "pass-audit";
     rev = "v${version}";
-    sha256 = "sha256-xigP8LxRXITLF3X21zhWx6ooFNSTKGv46yFSt1dd4vs=";
+    hash = "sha256-xigP8LxRXITLF3X21zhWx6ooFNSTKGv46yFSt1dd4vs=";
   };
 
   patches = [
@@ -21,9 +21,9 @@ in stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace audit.bash \
-      --replace 'python3' "${pythonEnv}/bin/python3"
+      --replace-fail 'python3' "${pythonEnv.interpreter}"
     substituteInPlace Makefile \
-      --replace "install --root" "install --prefix ''' --root"
+      --replace-fail "install --root" "install --prefix ''' --root"
   '';
 
   outputs = [ "out" "man" ];
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
   nativeCheckInputs = [ pythonPackages.green pass gnupg ];
   checkPhase = ''
-    ${pythonEnv}/bin/python3 setup.py green -q
+    ${pythonEnv.interpreter} -m green -q
   '';
 
   installFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ];
diff --git a/pkgs/tools/security/pass/extensions/default.nix b/pkgs/tools/security/pass/extensions/default.nix
index f7ac0a3d16ba0..b9c45a1096d3b 100644
--- a/pkgs/tools/security/pass/extensions/default.nix
+++ b/pkgs/tools/security/pass/extensions/default.nix
@@ -1,6 +1,8 @@
 { pkgs, ... }:
 
-with pkgs;
+let
+  inherit (pkgs) callPackage python3Packages;
+in
 
 {
   pass-audit = callPackage ./audit {
diff --git a/pkgs/tools/security/pinentry/mac.nix b/pkgs/tools/security/pinentry/mac.nix
index 4620aedecc75b..8e808e18edd32 100644
--- a/pkgs/tools/security/pinentry/mac.nix
+++ b/pkgs/tools/security/pinentry/mac.nix
@@ -5,6 +5,7 @@
 , libassuan
 , libgpg-error
 , libiconv
+, makeBinaryWrapper
 , texinfo
 , common-updater-scripts
 , writers
@@ -37,14 +38,17 @@ stdenv.mkDerivation rec {
     (allow process-exec (literal "/usr/libexec/PlistBuddy"))
   '';
 
-  nativeBuildInputs = [ autoreconfHook texinfo ];
+  nativeBuildInputs = [ autoreconfHook makeBinaryWrapper texinfo ];
   buildInputs = [ libassuan libgpg-error libiconv Cocoa ];
 
   configureFlags = [ "--enable-maintainer-mode" "--disable-ncurses" ];
 
   installPhase = ''
-    mkdir -p $out/Applications
+    mkdir -p $out/Applications $out/bin
     mv macosx/pinentry-mac.app $out/Applications
+
+    # Compatibility with `lib.getExe`
+    makeWrapper $out/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac $out/bin/pinentry-mac
   '';
 
   enableParallelBuilding = true;
@@ -85,6 +89,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     homepage = "https://github.com/GPGTools/pinentry-mac";
     platforms = lib.platforms.darwin;
-    mainProgram = passthru.binaryPath;
+    mainProgram = "pinentry-mac";
   };
 }
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 50b365a9070bf..7c61095cc3a97 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.36.14";
+  version = "2.36.15";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "sha256-0XI1G6ULsSuNPCqsX+A0yvUSkyxL8jvYSplmAKj9GNs=";
+    sha256 = "sha256-lfA+D3NsrnYwqX1hfC3TOQKEBW/65QGUjzYxe2RVVSM=";
   };
 
-  vendorHash = "sha256-SHi2yr/CR1n0/PnGifOlJkFD8ca0TTOTqMCo581a7hc=";
+  vendorHash = "sha256-3jne2an651tlyXgmmQ28R/bwsfaQzI4rC+4WJhyDA2E=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
 
diff --git a/pkgs/tools/security/semgrep/common.nix b/pkgs/tools/security/semgrep/common.nix
index 57f5163f4cbf3..3436d4267964f 100644
--- a/pkgs/tools/security/semgrep/common.nix
+++ b/pkgs/tools/security/semgrep/common.nix
@@ -1,9 +1,9 @@
 { lib }:
 
 rec {
-  version = "1.63.0";
+  version = "1.66.2";
 
-  srcHash = "sha256-VMB+slexCXxv9z6kOxbYQrnet6sb4ZKTATXWkLix9u4=";
+  srcHash = "sha256-xonZzZsAkAPMVINGEA10CvQ1diYgHBowNsR2pk4tYr8=";
 
   # submodule dependencies
   # these are fetched so we:
@@ -13,8 +13,8 @@ rec {
     "cli/src/semgrep/semgrep_interfaces" = {
       owner = "semgrep";
       repo = "semgrep-interfaces";
-      rev = "8751faab89f23f7af3a92f5d4d4e6451ccaa205a";
-      hash = "sha256-0Si4wUymwA2k/u953GifYgHKi6gvu3FiaDHm1Kj30sA=";
+      rev = "215a54782174de84f97188632b4a37e35ba0f827";
+      hash = "sha256-Q8E5LkC/NV0wvt9ZwhkoPGjPlDavVHHMnX0sVNK3dAM=";
     };
   };
 
@@ -25,15 +25,15 @@ rec {
   core = {
     x86_64-linux = {
       platform = "any";
-      hash = "sha256-KBiYd1zWDxs5T2AGR49o/X2J6espuqi7ykCh3Zsg8i4=";
+      hash = "sha256-f/RcuJyd8y2bMclMxZ1BdNTVixhjLz0UxSKGZm+H8yI=";
     };
     x86_64-darwin = {
       platform = "macosx_10_14_x86_64";
-      hash = "sha256-EfVpKdRE5qvEVMGu8QUM183YPNDjgxQlca3nUb3m1tw=";
+      hash = "sha256-4H9PT41lPydMFl51O2CgeMQiTE66fZ8RP26CVT7Y7Ok=";
     };
     aarch64-darwin = {
       platform = "macosx_11_0_arm64";
-      hash = "sha256-ksqkVdE7aIbeETSxLpDXef6Hmv7G5LxQ0+v+/G9OpKk=";
+      hash = "sha256-WxQ0ohojzhWmPo208xN98F5GwbNzQuxCjSwP7h3rBGA=";
     };
   };
 
diff --git a/pkgs/tools/security/semgrep/default.nix b/pkgs/tools/security/semgrep/default.nix
index 70e6b8641ee8c..6b62ab80e7ea6 100644
--- a/pkgs/tools/security/semgrep/default.nix
+++ b/pkgs/tools/security/semgrep/default.nix
@@ -27,14 +27,6 @@ buildPythonApplication rec {
     hash = common.srcHash;
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-test_dump_engine-test-for-nix-store-path.patch";
-      url = "https://github.com/semgrep/semgrep/commit/c7553c1a61251146773617f80a2d360e6b6ab3f9.patch";
-      hash = "sha256-A3QdL0DDh/pbDpRIBACUie7PEvC17iG4t6qTnmPIwA4=";
-    })
-  ];
-
   # prepare a subset of the submodules as we only need a handful
   # and there are many many submodules total
   postPatch = (lib.concatStringsSep "\n" (lib.mapAttrsToList
@@ -94,6 +86,12 @@ buildPythonApplication rec {
     types-freezegun
   ]);
 
+  disabledTestPaths = [
+    "tests/default/e2e"
+    "tests/default/e2e-pro"
+    "tests/default/e2e-pysemgrep"
+  ];
+
   disabledTests = [
     # requires networking
     "test_send"
@@ -117,14 +115,6 @@ buildPythonApplication rec {
     # replace old semgrep with wrapped one
     rm ./bin/semgrep
     ln -s $out/bin/semgrep ./bin/semgrep
-
-    # disabledTestPaths doesn't manage to avoid the e2e tests
-    # remove them from pyproject.toml
-    # and remove need for pytest-split
-    substituteInPlace pyproject.toml \
-      --replace '"tests/e2e",' "" \
-      --replace '"tests/e2e-pro",' "" \
-      --replace 'addopts = "--splitting-algorithm=least_duration"' ""
   '';
 
   postCheck = ''
diff --git a/pkgs/tools/security/sipvicious/default.nix b/pkgs/tools/security/sipvicious/default.nix
index 1167d40e43278..8b0fa05cf0b51 100644
--- a/pkgs/tools/security/sipvicious/default.nix
+++ b/pkgs/tools/security/sipvicious/default.nix
@@ -1,26 +1,46 @@
 { lib
-, buildPythonApplication
 , fetchFromGitHub
+, installShellFiles
+, python3
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "sipvicious";
   version = "0.3.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "EnableSecurity";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-O8/9Vz/u8BoF1dfGceOJdzPPYLfkdBp2DkwA5WQ3dgo=";
+    repo = "sipvicious";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-O8/9Vz/u8BoF1dfGceOJdzPPYLfkdBp2DkwA5WQ3dgo=";
   };
 
+  build-system = [
+    installShellFiles
+  ] ++ (with python3.pkgs; [
+    setuptools
+  ]);
+
+  dependencies = with python3.pkgs; [
+    scapy
+  ];
+
+  postInstall = ''
+    installManPage man1/*.1
+  '';
+
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "sipvicious" ];
+
+  pythonImportsCheck = [
+    "sipvicious"
+  ];
 
   meta = with lib; {
-    description = " Set of tools to audit SIP based VoIP systems";
+    description = "Set of tools to audit SIP based VoIP systems";
     homepage = "https://github.com/EnableSecurity/sipvicious";
+    changelog = "https://github.com/EnableSecurity/sipvicious/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/tools/security/slsa-verifier/default.nix b/pkgs/tools/security/slsa-verifier/default.nix
index 1ed192c732a15..0d261fc3a6fd3 100644
--- a/pkgs/tools/security/slsa-verifier/default.nix
+++ b/pkgs/tools/security/slsa-verifier/default.nix
@@ -5,20 +5,18 @@
 
 buildGoModule rec {
   pname = "slsa-verifier";
-  version = "2.4.1";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "slsa-framework";
     repo = "slsa-verifier";
     rev = "v${version}";
-    hash = "sha256-swyBDJTv6Sp65Q46QGm/N/kIfGfln+vBTYXVOI9CAOE=";
+    hash = "sha256-vDzgbE/Cl3TMVzf6H300EtDpGPYBkkSOJBu+0l2fPFw=";
   };
 
-  vendorHash = "sha256-rCGj2o59US2t/ckqXirEDgYn9dGvVSzMVcFEZosasBc=";
+  vendorHash = "sha256-NkEYr56Wb3EV7TI+0W7w7PdmbZpX3/yQ4TbOebqW9ng=";
 
   CGO_ENABLED = 0;
-  GO111MODULE = "on";
-  GOFLAGS = "-trimpath";
 
   subPackages = [ "cli/slsa-verifier" ];
 
diff --git a/pkgs/tools/security/spire/default.nix b/pkgs/tools/security/spire/default.nix
index 19e2704516da2..49d0b296fd52a 100644
--- a/pkgs/tools/security/spire/default.nix
+++ b/pkgs/tools/security/spire/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "spire";
-  version = "1.9.1";
+  version = "1.9.2";
 
   outputs = [ "out" "agent" "server" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "spiffe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+IIT2y4TJDhxxEFiaefgiHVSzO4sVQ3oPO1aMEoBQTU=";
+    sha256 = "sha256-Gbi6nM9tjH/bYOFwpBrjH/rFEtSs9ihxM3jDAt+5HTU=";
   };
 
-  vendorHash = "sha256-X8/R2u7mAJuwfltIZV5NrgbzR0U6Ty092Wlbs3u9oIw=";
+  vendorHash = "sha256-XYM6r/+31apm9Ygq3eMX5DRf8p7/jwkBNaE2OvooRwM=";
 
   subPackages = [ "cmd/spire-agent" "cmd/spire-server" ];
 
diff --git a/pkgs/tools/security/step-cli/default.nix b/pkgs/tools/security/step-cli/default.nix
index 4ba73b2ac2e54..32446eeaa75be 100644
--- a/pkgs/tools/security/step-cli/default.nix
+++ b/pkgs/tools/security/step-cli/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "step-cli";
-  version = "0.25.2";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-umo0f4cXxnxg3xH1aHeJE2brUT9w+Gp+0Qzq4zIQ8oI=";
+    hash = "sha256-B0LGedExlk9XllWilZ0QAwQHNyISAI2WJ48P2STbxSY=";
   };
 
   ldflags = [
@@ -25,7 +25,7 @@ buildGoModule rec {
     rm command/certificate/remote_test.go
   '';
 
-  vendorHash = "sha256-R9UJHXs35/yvwlqu1iR3lJN/w8DWMqw48Kc+7JKfD7I=";
+  vendorHash = "sha256-A38pmKRulvmxXbIaUsTiMWgq1MhUKkvuGp07H1rxCJg=";
 
   meta = with lib; {
     description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
diff --git a/pkgs/tools/security/trufflehog/default.nix b/pkgs/tools/security/trufflehog/default.nix
index c40f80b0caa54..205a94cd87f1d 100644
--- a/pkgs/tools/security/trufflehog/default.nix
+++ b/pkgs/tools/security/trufflehog/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.70.3";
+  version = "3.71.2";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eTxqNsTcdYqflY5i6tV/4uL9jV2MPwVeWspXfjX8Xmc=";
+    hash = "sha256-PxaZl3OV3bAbZzKVxHO8MuwqO2c16w4MNypsZpVOQTU=";
   };
 
-  vendorHash = "sha256-VYF9QIlshfFkNbfEQlJsp1SbGsGVTwnGLdKprKOeB74=";
+  vendorHash = "sha256-xU6mUhSgB9DMyVMo2tTd5uNyrDoFsY2zMaTKSPBcgwM=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/vals/default.nix b/pkgs/tools/security/vals/default.nix
index 0c43a0204bbb8..3822119bd04ba 100644
--- a/pkgs/tools/security/vals/default.nix
+++ b/pkgs/tools/security/vals/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vals";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "variantdev";
     repo = pname;
-    sha256 = "sha256-PH2R39bI357ND3Gf//Fe+xtMGVuqwggT9zZyy/OimmY=";
+    sha256 = "sha256-jD7fYvPOR6fwpCqNhxNXzjc8qtmjXkJy+f/L7t9Jlu4=";
   };
 
-  vendorHash = "sha256-oesPCwDZyJ1Q8LdyEnvAU5sdXFFHdxUP4jXltww8vuk=";
+  vendorHash = "sha256-b4GmDzRvWQzoKzQo7am/3M9cFqO+QNW4UxlWZrPswiA=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 6b5b0d595809d..d3a9b1a906e7d 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "vault";
-  version = "1.15.6";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    hash = "sha256-XqPuikUUm8C02Uv6qZHPz/KEmrvBrr8gOznQ7qbMKnU=";
+    hash = "sha256-nrpe7GyT2GpnCWdJhHefx1iAvJPzahv4wjQe0xTRSys=";
   };
 
-  vendorHash = "sha256-97/nNRwTJnoW1gRvWhdsO36TuLdGTX67o0oTiGMotrs=";
+  vendorHash = "sha256-Bxa0244qowVnFJb9AUdJTp6CRo+GZTswVLg6lF1QITo=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/security/vaultwarden/webvault.nix b/pkgs/tools/security/vaultwarden/webvault.nix
index 528ba9434c44d..cba624eb09823 100644
--- a/pkgs/tools/security/vaultwarden/webvault.nix
+++ b/pkgs/tools/security/vaultwarden/webvault.nix
@@ -8,13 +8,13 @@
 }:
 
 let
-  version = "2024.1.2b";
+  version = "2024.3.0";
 
   bw_web_builds = fetchFromGitHub {
     owner = "dani-garcia";
     repo = "bw_web_builds";
     rev = "v${version}";
-    hash = "sha256-p5UsI8T2cV5uQnQmOi5WBo2UirLLS83NHoaljxcRkqo=";
+    hash = "sha256-nlFs0cOehbGhk/XxWAuNJNhImHDZA3pvci1WdcBy6Ro=";
   };
 
 in buildNpmPackage rec {
@@ -25,10 +25,10 @@ in buildNpmPackage rec {
     owner = "bitwarden";
     repo = "clients";
     rev = "web-v${lib.removeSuffix "b" version}";
-    hash = "sha256-hzAkVzaCjwoZ/PMnsnSmsqUBWLhqfPWuWVujChy0V38=";
+    hash = "sha256-/YpqGyDesz4ZyIaLGWbxJZkEGFW7IsTfuy/74NuiOS0=";
   };
 
-  npmDepsHash = "sha256-KTqPf8jy8cgGz0+1GssSzEfPVSSQlLenLPgHggNoGfc=";
+  npmDepsHash = "sha256-iwYzxvLPebQiU20TafzdFgQXnNNHK8s0Jwo83VKy4u8=";
 
   postPatch = ''
     ln -s ${bw_web_builds}/{patches,resources} ..
diff --git a/pkgs/tools/system/mediawriter/default.nix b/pkgs/tools/system/mediawriter/default.nix
index bf2b4ce27ff47..8740a9b8a1e1b 100644
--- a/pkgs/tools/system/mediawriter/default.nix
+++ b/pkgs/tools/system/mediawriter/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mediawriter";
-  version = "5.0.9";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = "MediaWriter";
     rev = "refs/tags/${version}";
-    hash = "sha256-FmMiv78r95shCpqN5PV6Oxms/hQY9ycqRn9L61aR8n4=";
+    hash = "sha256-I4q9VARQiZf+Qz83EToyUj+eS3CTPsxEw0paACS8lmE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/text/comrak/default.nix b/pkgs/tools/text/comrak/default.nix
index e2a9633aa15a6..177951aa5f2fe 100644
--- a/pkgs/tools/text/comrak/default.nix
+++ b/pkgs/tools/text/comrak/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "comrak";
-  version = "0.21.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "kivikakk";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gYEq2kfSLaGdVQxmHTZ8O55f4Iwj9FKjUmlNq5+QtXI=";
+    sha256 = "sha256-4bTLyBa2hlFHSROEffsH6sv4Fu3pfh50zmYM1RUIRX4=";
   };
 
-  cargoHash = "sha256-rkSq18cFSlTJsZ7DvpJbXYUsg5k86Jk6bgpdO5nP6CE=";
+  cargoHash = "sha256-ti5jzFwr0GGpuFJmLxzJCwZkb6iekW83R6Z1iluDQyY=";
 
   meta = with lib; {
     description = "A CommonMark-compatible GitHub Flavored Markdown parser and formatter";
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index a640b11d38088..712da353282f1 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 = "3.19.0";
+  version = "3.19.1";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-E8I5yWOEGZwiM3oHhmZhvppuCAWLDFx7X7DVfo29W+U=";
+    hash = "sha256-ydkVdPhd9c5VPI6T9i+/yfbLHjOGNJbMw02AJCyuTGs=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/text/sad/default.nix b/pkgs/tools/text/sad/default.nix
index 9c04667abc545..94838c9a4d0ee 100644
--- a/pkgs/tools/text/sad/default.nix
+++ b/pkgs/tools/text/sad/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sad";
-  version = "0.4.25";
+  version = "0.4.27";
 
   src = fetchFromGitHub {
     owner = "ms-jpq";
     repo = "sad";
     rev = "refs/tags/v${version}";
-    hash = "sha256-G+Mkyw7TNx5+fhnaOe3Fsb1JuafqckcZ83BTnuWUZBU=";
+    hash = "sha256-hb09YwF59I8zQ6dIrGkCWJ98VeB5EYoNloTGg5v2BIs=";
   };
 
-  cargoHash = "sha256-PTldq13csCmQ3u+M+BTftmxpRh32Bw9ds6yx+pE7HRc=";
+  cargoHash = "sha256-wFmC19uGEaS8Rn+bKdljAZY24/AL9VDV183xXBjt79M=";
 
   nativeBuildInputs = [ python3 ];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 73e69578dc9f1..5497e6b6dd4bd 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -38,6 +38,12 @@ lib.fix (self: {
 }@args:
 
 let
+  ### buildEnv with custom attributes
+  buildEnv' = args: (buildEnv
+    ({ inherit (args) name paths; })
+      // lib.optionalAttrs (args ? extraOutputsToInstall) { inherit (args) extraOutputsToInstall; })
+    .overrideAttrs (removeAttrs args [ "extraOutputsToInstall" "name" "paths" "pkgs" ]);
+
   ### texlive.combine backward compatibility
   # if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets
   isOldPkgList = p: ! p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs;
@@ -78,7 +84,7 @@ let
     otherOutputs = lib.genAttrs otherOutputNames (n: builtins.catAttrs n specified.wrong);
     outputsToInstall = builtins.catAttrs "key" (builtins.genericClosure {
       startSet = map (key: { inherit key; })
-        ([ "out" ] ++ lib.optional (splitOutputs ? man) "man"
+        ([ "out" ] ++ lib.optional (otherOutputs ? man) "man"
           ++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong)));
       operator = _: [ ];
     });
@@ -103,6 +109,14 @@ let
 
     # outputs that do not become part of the environment
     nonEnvOutputs = lib.subtractLists [ "out" "tex" "texdoc" "texsource" "tlpkg" ] otherOutputNames;
+
+    # packages that contribute to config files and formats
+    fontMaps = lib.filter (p: p ? fontMaps && (p.tlOutputName or p.outputName == "tex")) nonbin;
+    sortedFontMaps = builtins.sort (a: b: a.pname < b.pname) fontMaps;
+    hyphenPatterns = lib.filter (p: p ? hyphenPatterns && (p.tlOutputName or p.outputName == "tex")) nonbin;
+    sortedHyphenPatterns = builtins.sort (a: b: a.pname < b.pname) hyphenPatterns;
+    formatPkgs = lib.filter (p: p ? formats && (p.outputSpecified or false -> p.tlOutputName or p.outputName == "tex") && builtins.any (f: f.enabled or true) p.formats) all;
+    sortedFormatPkgs = builtins.sort (a: b: a.pname < b.pname) formatPkgs;
   };
 
   # list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
@@ -113,7 +127,7 @@ let
   name = if __combine then "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name
     else "texlive-${bin.texliveYear}-env";
 
-  texmfdist = (buildEnv {
+  texmfdist = buildEnv' {
     name = "${name}-texmfdist";
 
     # remove fake derivations (without 'outPath') to avoid undesired build dependencies
@@ -126,14 +140,14 @@ let
     ''
       mktexlsr "$out"
     '';
-  }).overrideAttrs (_: { allowSubstitutes = true; });
+  };
 
-  tlpkg = (buildEnv {
+  tlpkg = buildEnv {
     name = "${name}-tlpkg";
 
     # remove fake derivations (without 'outPath') to avoid undesired build dependencies
     paths = builtins.catAttrs "outPath" pkgList.tlpkg;
-  }).overrideAttrs (_: { allowSubstitutes = true; });
+  };
 
   # the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist
   # and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both)
@@ -170,12 +184,10 @@ let
           (requiredTeXPackages tl);
   };
 
-  # emulate split output derivation
-  splitOutputs = {
-    texmfdist = texmfdist // { outputSpecified = true; };
-    texmfroot = texmfroot // { outputSpecified = true; };
-  } // (lib.genAttrs pkgList.nonEnvOutputs (outName: (buildEnv {
+  # other outputs
+  nonEnvOutputs = lib.genAttrs pkgList.nonEnvOutputs (outName: buildEnv' {
     inherit name;
+    outputs = [ outName ];
     paths = builtins.catAttrs "outPath"
       (pkgList.otherOutputs.${outName} or [ ] ++ pkgList.specifiedOutputs.${outName} or [ ]);
     # force the output to be ${outName} or nix-env will not work
@@ -183,11 +195,9 @@ let
       export out="''${${outName}-}"
     '') ];
     inherit meta passthru;
-  }).overrideAttrs { outputs = [ outName ]; } // { outputSpecified = true; }));
+  });
 
   passthru = {
-    # these are not part of pkgList.nonEnvOutputs and must be exported in passthru
-    inherit (splitOutputs) texmfdist texmfroot;
     # This is set primarily to help find-tarballs.nix to do its job
     requiredTeXPackages = builtins.filter lib.isDerivation (pkgList.bin ++ pkgList.nonbin
       ++ lib.optionals (! __fromCombineWrapper)
@@ -201,13 +211,57 @@ let
     withPackages = reqs: self (args // { requiredTeXPackages = ps: requiredTeXPackages ps ++ reqs ps; __fromCombineWrapper = false; });
   };
 
+  # TeXLive::TLOBJ::fmtutil_cnf_lines
+  fmtutilLine = { name, engine, enabled ? true, patterns ? [ "-" ], options ? "", ... }:
+    lib.optionalString (! enabled) "#! " + "${name} ${engine} ${lib.concatStringsSep "," patterns} ${options}";
+  fmtutilLines = { pname, formats, ...}:
+    [ "#" "# from ${pname}:" ] ++ map fmtutilLine formats;
+
+  # TeXLive::TLOBJ::language_dat_lines
+  langDatLine = { name, file, synonyms ? [ ], ... }:
+    [ "${name} ${file}" ] ++ map (s: "=" + s) synonyms;
+  langDatLines = { pname, hyphenPatterns, ... }:
+    [ "% from ${pname}:" ] ++ builtins.concatMap langDatLine hyphenPatterns;
+
+  # TeXLive::TLOBJ::language_def_lines
+  # see TeXLive::TLUtils::parse_AddHyphen_line for default values
+  langDefLine = { name, file, lefthyphenmin ? "", righthyphenmin ? "", synonyms ? [ ], ... }:
+    map (n: "\\addlanguage{${n}}{${file}}{}{${if lefthyphenmin == "" then "2" else lefthyphenmin}}{${if righthyphenmin ==  "" then "3" else righthyphenmin}}")
+    ([ name ] ++ synonyms);
+  langDefLines = { pname, hyphenPatterns, ... }:
+    [ "% from ${pname}:" ] ++ builtins.concatMap langDefLine hyphenPatterns;
+
+  # TeXLive::TLOBJ::language_lua_lines
+  # see TeXLive::TLUtils::parse_AddHyphen_line for default values
+  langLuaLine = { name, file, lefthyphenmin ? "", righthyphenmin ? "", synonyms ? [ ], ... }@args: ''
+      ''\t['${name}'] = {
+      ''\t''\tloader = '${file}',
+      ''\t''\tlefthyphenmin = ${if lefthyphenmin == "" then "2" else lefthyphenmin},
+      ''\t''\trighthyphenmin = ${if righthyphenmin ==  "" then "3" else righthyphenmin},
+      ''\t''\tsynonyms = { ${lib.concatStringsSep ", " (map (s: "'${s}'") synonyms)} },
+    ''
+    + lib.optionalString (args ? file_patterns) "\t\tpatterns = '${args.file_patterns}',\n"
+    + lib.optionalString (args ? file_exceptions) "\t\thyphenation = '${args.file_exceptions}',\n"
+    + lib.optionalString (args ? luaspecial) "\t\tspecial = '${args.luaspecial}',\n"
+    + "\t},";
+  langLuaLines = { pname, hyphenPatterns, ... }:
+    [ "-- from ${pname}:" ] ++ map langLuaLine hyphenPatterns;
+
+  assembleConfigLines = f: packages:
+    builtins.concatStringsSep "\n" (builtins.concatMap f packages);
+
+  updmapLines = { pname, fontMaps, ...}:
+    [ "# from ${pname}:" ] ++ fontMaps;
+
   out =
 # no indent for git diff purposes
-(buildEnv {
+buildEnv' {
 
   inherit name;
 
-  ignoreCollisions = false;
+  # use attrNames, attrValues to ensure the two lists are sorted in the same way
+  outputs = [ "out" ] ++ lib.optionals (! __combine) (builtins.attrNames nonEnvOutputs);
+  otherOutputs = lib.optionals (! __combine) (builtins.attrValues nonEnvOutputs);
 
   # remove fake derivations (without 'outPath') to avoid undesired build dependencies
   paths = builtins.catAttrs "outPath" pkgList.bin
@@ -230,219 +284,26 @@ let
     perl
   ];
 
+  buildInputs = [ coreutils gawk gnugrep gnused ] ++ lib.optional needsGhostscript ghostscript;
+
   inherit meta passthru;
 
-  postBuild =
-    # create outputs
-  lib.optionalString (! __combine) ''
-    for otherOutputName in $outputs ; do
-      if [[ "$otherOutputName" == 'out' ]] ; then continue ; fi
-      otherOutput="otherOutput_$otherOutputName"
-      ln -s "''${!otherOutput}" "''${!otherOutputName}"
-    done
-  '' +
-    # environment variables (note: only export the ones that are used in the wrappers)
-  ''
-    TEXMFROOT="${texmfroot}"
-    TEXMFDIST="${texmfdist}"
-    export PATH="$out/bin:$PATH"
-    TEXMFSYSCONFIG="$out/share/texmf-config"
-    TEXMFSYSVAR="$out/share/texmf-var"
-    export TEXMFCNF="$TEXMFSYSVAR/web2c"
-  '' +
-    # wrap executables with required env vars as early as possible
-    # 1. we use the wrapped binaries in the scripts below, to catch bugs
-    # 2. we do not want to wrap links generated by texlinks
-  ''
-    enable -f '${bash}/lib/bash/realpath' realpath
-    declare -i wrapCount=0
-    for link in "$out"/bin/*; do
-      target="$(realpath "$link")"
-      if [[ "''${target##*/}" != "''${link##*/}" ]] ; then
-        # detected alias with different basename, use immediate target of $link to preserve $0
-        # relevant for mktexfmt, repstopdf, ...
-        target="$(readlink "$link")"
-      fi
-
-      # skip non-executable files (such as context.lua)
-      if [[ ! -x "$target" ]] ; then continue ; fi
-
-      rm "$link"
-      makeWrapper "$target" "$link" \
-        --inherit-argv0 \
-        --prefix PATH : "${
-          # very common dependencies that are not detected by tests.texlive.binaries
-          lib.makeBinPath ([ coreutils gawk gnugrep gnused ] ++ lib.optional needsGhostscript ghostscript)}:$out/bin" \
-        --set-default TEXMFCNF "$TEXMFCNF" \
-        --set-default FONTCONFIG_FILE "${
-          # necessary for XeTeX to find the fonts distributed with texlive
-          makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; }
-        }"
-      wrapCount=$((wrapCount + 1))
-    done
-    echo "wrapped $wrapCount binaries and scripts"
-  '' +
-    # patch texmf-dist  -> $TEXMFDIST
-    # patch texmf-local -> $out/share/texmf-local
-    # patch texmf.cnf   -> $TEXMFSYSVAR/web2c/texmf.cnf
-    # TODO: perhaps do lua actions?
-    # tried inspiration from install-tl, sub do_texmf_cnf
-  ''
-    mkdir -p "$TEXMFCNF"
-    if [ -e "$TEXMFDIST/web2c/texmfcnf.lua" ]; then
-      sed \
-        -e "s,\(TEXMFOS[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFROOT\",g" \
-        -e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFDIST\",g" \
-        -e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSVAR\",g" \
-        -e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSCONFIG\",g" \
-        -e "s,\(TEXMFLOCAL[ ]*=[ ]*\)[^\,]*,\1\"$out/share/texmf-local\",g" \
-        -e "s,\$SELFAUTOLOC,$out,g" \
-        -e "s,selfautodir:/,$out/share/,g" \
-        -e "s,selfautodir:,$out/share/,g" \
-        -e "s,selfautoparent:/,$out/share/,g" \
-        -e "s,selfautoparent:,$out/share/,g" \
-        "$TEXMFDIST/web2c/texmfcnf.lua" > "$TEXMFCNF/texmfcnf.lua"
-    fi
-
-    sed \
-      -e "s,\(TEXMFROOT[ ]*=[ ]*\)[^\,]*,\1$TEXMFROOT,g" \
-      -e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1$TEXMFDIST,g" \
-      -e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSVAR,g" \
-      -e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSCONFIG,g" \
-      -e "s,\$SELFAUTOLOC,$out,g" \
-      -e "s,\$SELFAUTODIR,$out/share,g" \
-      -e "s,\$SELFAUTOPARENT,$out/share,g" \
-      -e "s,\$SELFAUTOGRANDPARENT,$out/share,g" \
-      -e "/^mpost,/d" `# CVE-2016-10243` \
-      "$TEXMFDIST/web2c/texmf.cnf" > "$TEXMFCNF/texmf.cnf"
-  '' +
-    # now filter hyphenation patterns and formats
-  (let
-    hyphens = lib.filter (p: p.hasHyphens or false && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
-    hyphenPNames = map (p: p.pname) hyphens;
-    formats = lib.filter (p: p ? formats && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
-    formatPNames = map (p: p.pname) formats;
-    # sed expression that prints the lines in /start/,/end/ except for /end/
-    section = start: end: "/${start}/,/${end}/{ /${start}/p; /${end}/!p; };\n";
-    script =
-      writeText "hyphens.sed" (
-        # document how the file was generated (for language.dat)
-        "1{ s/^(% Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
-        # pick up the header
-        + "2,/^% from/{ /^% from/!p; };\n"
-        # pick up all sections matching packages that we combine
-        + lib.concatMapStrings (pname: section "^% from ${pname}:$" "^% from|^%%% No changes may be made beyond this point.$") hyphenPNames
-        # pick up the footer (for language.def)
-        + "/^%%% No changes may be made beyond this point.$/,$p;\n"
-      );
-    scriptLua =
-      writeText "hyphens.lua.sed" (
-        "1{ s/^(-- Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
-        + "2,/^-- END of language.us.lua/p;\n"
-        + lib.concatMapStrings (pname: section "^-- from ${pname}:$" "^}$|^-- from") hyphenPNames
-        + "$p;\n"
-      );
-    # formats not being installed must be disabled by prepending #! (see man fmtutil)
-    # sed expression that enables the formats in /start/,/end/
-    enableFormats = pname: "/^# from ${pname}:$/,/^# from/{ s/^#! //; };\n";
-    fmtutilSed =
-      writeText "fmtutil.sed" (
-        # document how file was generated
-        "1{ s/^(# Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; }\n"
-        # disable all formats, even those already disabled
-        + "s/^([^#]|#! )/#! \\1/;\n"
-        # enable the formats from the packages being installed
-        + lib.concatMapStrings enableFormats formatPNames
-        # clean up formats that have been disabled twice
-        + "s/^#! #! /#! /;\n"
-      );
-  in ''
-    mkdir -p "$TEXMFSYSVAR/tex/generic/config"
-    for fname in tex/generic/config/language.{dat,def}; do
-      [[ -e "$TEXMFDIST/$fname" ]] && sed -E -n -f '${script}' "$TEXMFDIST/$fname" > "$TEXMFSYSVAR/$fname"
-    done
-    [[ -e "$TEXMFDIST"/tex/generic/config/language.dat.lua ]] && sed -E -n -f '${scriptLua}' \
-      "$TEXMFDIST"/tex/generic/config/language.dat.lua > "$TEXMFSYSVAR"/tex/generic/config/language.dat.lua
-    [[ -e "$TEXMFDIST"/web2c/fmtutil.cnf ]] && sed -E -f '${fmtutilSed}' "$TEXMFDIST"/web2c/fmtutil.cnf > "$TEXMFCNF"/fmtutil.cnf
-
-    # create $TEXMFSYSCONFIG database, make new $TEXMFSYSVAR files visible to kpathsea
-    mktexlsr "$TEXMFSYSCONFIG" "$TEXMFSYSVAR"
-  '') +
-    # generate format links (reads fmtutil.cnf to know which ones) *after* the wrappers have been generated
-  ''
-    texlinks --quiet "$out/bin"
-  '' +
-    # temporarily patch mtxrun.lua to generate uuid's deterministically from SOURCE_DATE_EPOCH
-  ''
-    if [[ -e "$out/bin/mtxrun" ]]; then
-      mv "$out"/bin/mtxrun.lua{,.orig}
-      substitute "$TEXMFDIST"/scripts/context/lua/mtxrun.lua "$out"/bin/mtxrun.lua \
-        --replace-fail 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
-    fi
-  '' +
-  # texlive postactions (see TeXLive::TLUtils::_do_postaction_script)
-  # this step includes generating the ConTeXt file databases since TL 2023
-  (lib.concatMapStrings (pkg: ''
-    postaction='${pkg.postactionScript}'
-    case "$postaction" in
-      *.pl) postInterp=perl ;;
-      *.texlua) postInterp=texlua ;;
-      *) postInterp= ;;
-    esac
-    echo "postaction install script for ${pkg.pname}: ''${postInterp:+$postInterp }$postaction install $TEXMFROOT"
-    FORCE_SOURCE_DATE=1 TZ= $postInterp "$TEXMFROOT"/$postaction install "$TEXMFROOT"
-  '') (lib.filter (pkg: pkg ? postactionScript) pkgList.tlpkg)) +
-  # restore the original mtxrun.lua
-  ''
-    if [[ -e "$out/bin/mtxrun" ]]; then
-      mv "$out"/bin/mtxrun.lua{.orig,}
-    fi
-  '' +
-    # generate formats
-    # TODO generate ConTeXt formats (based on fmtutil.cnf?)
-  ''
-    # many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1
-    # libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE
-    # we cannot fix further randomness caused by luatex; for further details, see
-    # https://salsa.debian.org/live-team/live-build/-/blob/master/examples/hooks/reproducible/2006-reproducible-texlive-binaries-fmt-files.hook.chroot#L52
-    # note that calling faketime and fmtutil is fragile (faketime uses LD_PRELOAD, fmtutil calls /bin/sh, causing potential glibc issues on non-NixOS)
-    # so we patch fmtutil to use faketime, rather than calling faketime fmtutil
-    substitute "$TEXMFDIST"/scripts/texlive/fmtutil.pl fmtutil \
-      --replace-fail 'my $cmdline = "$eng -ini ' 'my $cmdline = "faketime -f '"'"'\@1980-01-01 00:00:00 x0.001'"'"' $eng -ini '
-    FORCE_SOURCE_DATE=1 TZ= perl fmtutil --sys --all | grep '^fmtutil' # too verbose
-
-    # Disable unavailable map files
-    echo y | updmap --sys --syncwithtrees --force 2>&1 | grep '^\(updmap\|  /\)'
-    # Regenerate the map files (this is optional)
-    updmap --sys --force 2>&1 | grep '^\(updmap\|  /\)'
-
-    # sort entries to improve reproducibility
-    [[ -f "$TEXMFSYSCONFIG"/web2c/updmap.cfg ]] && sort -o "$TEXMFSYSCONFIG"/web2c/updmap.cfg "$TEXMFSYSCONFIG"/web2c/updmap.cfg
-
-    mktexlsr "$TEXMFSYSCONFIG" "$TEXMFSYSVAR" # to make sure (of what?)
-  '' +
-    # remove *-sys scripts since /nix/store is readonly
-  ''
-    rm "$out"/bin/*-sys
-  '' +
-  # Get rid of all log files. They are not needed, but take up space
-  # and render the build unreproducible by their embedded timestamps
-  # and other non-deterministic diagnostics.
-  ''
-    find "$TEXMFSYSVAR"/web2c -name '*.log' -delete
-  '' +
-  # link TEXMFDIST in $out/share for backward compatibility
-  ''
-    ln -s "$TEXMFDIST" "$out"/share/texmf
-  ''
-  ;
-}).overrideAttrs (prev:
-  { allowSubstitutes = true; }
-  // lib.optionalAttrs (! __combine) ({
-    outputs = [ "out" ] ++ pkgList.nonEnvOutputs;
-    meta = prev.meta // { inherit (pkgList) outputsToInstall; };
-  } // builtins.listToAttrs
-    (map (out: { name = "otherOutput_" + out; value = splitOutputs.${out}; }) pkgList.nonEnvOutputs)
-  )
-);
-in out)
+  inherit texmfdist texmfroot;
+
+  fontconfigFile = makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; };
+
+  fmtutilCnf = assembleConfigLines fmtutilLines pkgList.sortedFormatPkgs;
+  updmapCfg = assembleConfigLines updmapLines pkgList.sortedFontMaps;
+
+  languageDat = assembleConfigLines langDatLines pkgList.sortedHyphenPatterns;
+  languageDef = assembleConfigLines langDefLines pkgList.sortedHyphenPatterns;
+  languageLua = assembleConfigLines langLuaLines pkgList.sortedHyphenPatterns;
+
+  postactionScripts = builtins.catAttrs "postactionScript" pkgList.tlpkg;
+
+  postBuild = ''
+    . "${./build-tex-env.sh}"
+  '';
+};
+  # outputsToInstall must be set *after* overrideAttrs (used in buildEnv') or it fails the checkMeta tests
+in if __combine then out else lib.addMetaAttrs { inherit (pkgList) outputsToInstall; } out)
diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.sh b/pkgs/tools/typesetting/tex/texlive/build-tex-env.sh
new file mode 100644
index 0000000000000..834b2e0e7651f
--- /dev/null
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.sh
@@ -0,0 +1,328 @@
+# shellcheck shell=bash
+
+# Replicate the post install phase of the upstream TeX Live installer.
+#
+# This script is based on the install-tl script and the TeXLive::TLUtils perl
+# module, down to using the same (prefixed) function names and log messages.
+#
+# When updating to the next TeX Live release, review install-tl for changes and
+# update this script accordingly.
+
+### install-tl
+
+# adjust texmf.cnf and texmfcnf.lua
+installtl_do_texmf_cnf () {
+    # unlike install-tl, we make a copy of the entire texmf.cnf
+    # and point the binaries at $TEXMFCNF/texmf.cnf via wrappers
+
+    mkdir -p "$TEXMFCNF"
+    if [[ -e $texmfdist/web2c/texmfcnf.lua ]]; then
+        tlutils_info "writing texmfcnf.lua to $TEXMFCNF/texmfcnf.lua"
+        sed -e "s,\(TEXMFOS[ ]*=[ ]*\)[^\,]*,\1\"$texmfroot\",g" \
+            -e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1\"$texmfdist\",g" \
+            -e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSVAR\",g" \
+            -e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSCONFIG\",g" \
+            -e "s,\(TEXMFLOCAL[ ]*=[ ]*\)[^\,]*,\1\"$out/share/texmf-local\",g" \
+            -e "s,\$SELFAUTOLOC,$out,g" \
+            -e "s,selfautodir:/,$out/share/,g" \
+            -e "s,selfautodir:,$out/share/,g" \
+            -e "s,selfautoparent:/,$out/share/,g" \
+            -e "s,selfautoparent:,$out/share/,g" \
+            "$texmfdist/web2c/texmfcnf.lua" > "$TEXMFCNF/texmfcnf.lua"
+    fi
+
+    tlutils_info "writing texmf.cnf to $TEXMFCNF/texmf.cnf"
+    sed -e "s,\(TEXMFROOT[ ]*=[ ]*\)[^\,]*,\1$texmfroot,g" \
+        -e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1$texmfdist,g" \
+        -e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSVAR,g" \
+        -e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSCONFIG,g" \
+        -e "s,\$SELFAUTOLOC,$out,g" \
+        -e "s,\$SELFAUTODIR,$out/share,g" \
+        -e "s,\$SELFAUTOPARENT,$out/share,g" \
+        -e "s,\$SELFAUTOGRANDPARENT,$out/share,g" \
+        "$texmfdist/web2c/texmf.cnf" > "$TEXMFCNF/texmf.cnf"
+}
+
+# run postaction scripts from texlive.tlpdb
+# note that the other postactions (fileassoc, ...) are Windows only
+installtl_do_tlpdb_postactions () {
+    local postaction postInterp
+    if [[ -n $postactionScripts ]] ; then
+        tlutils_info "running package-specific postactions"
+        for postaction in $postactionScripts ; do
+            # see TeXLive::TLUtils::_installtl_do_postaction_script
+            case "$postaction" in
+                *.pl)
+                    postInterp=perl ;;
+                *.texlua)
+                    postInterp=texlua ;;
+                *)
+                    postInterp= ;;
+            esac
+            tlutils_info "${postInterp:+$postInterp }$postaction install $texmfroot"
+            FORCE_SOURCE_DATE=1 $postInterp "$texmfroot/$postaction" install "$texmfroot" >>"$TEXMFSYSVAR/postaction-${postaction##*/}.log"
+        done
+        tlutils_info "finished with package-specific postactions"
+    fi
+}
+
+installtl_do_path_adjustments () {
+    # here install-tl would add a system symlink to the man pages
+    # instead we run other nixpkgs related adjustments
+
+    # generate wrappers
+    tlutils_info "wrapping binaries"
+
+    local bash cmd extraPaths link path target wrapCount
+    bash="$(command -v bash)"
+    enable -f "${bash%/bin/bash}"/lib/bash/realpath realpath
+
+    # common runtime dependencies
+    for cmd in cat awk sed grep gs ; do
+        # do not fail if gs is absent
+        path="$(PATH="$HOST_PATH" command -v "$cmd" || :)"
+        if [[ -n $path ]] ; then
+            extraPaths="${extraPaths:+$extraPaths:}${path%/"$cmd"}"
+        fi
+    done
+
+    declare -i wrapCount=0
+    for link in "$out"/bin/* ; do
+        target="$(realpath "$link")"
+
+        # skip non-executable files (such as context.lua)
+        if [[ ! -x $target ]] ; then
+            continue
+        fi
+
+        if [[ ${target##*/} != "${link##*/}" ]] ; then
+            # detected alias with different basename, use immediate target of $link to preserve $0
+            # relevant for mktexfmt, repstopdf, ...
+            target="$(readlink "$link")"
+        fi
+
+        rm "$link"
+        makeWrapper "$target" "$link" \
+            --inherit-argv0 \
+            --prefix PATH : "$extraPaths:$out/bin" \
+            --set-default TEXMFCNF "$TEXMFCNF" \
+            --set-default FONTCONFIG_FILE "$fontconfigFile"
+        wrapCount=$((wrapCount + 1))
+    done
+
+    tlutils_info "wrapped $wrapCount binaries and scripts"
+
+    # generate format symlinks (using fmtutil.cnf)
+    tlutils_info "generating format symlinks"
+    texlinks --quiet "$out/bin"
+
+    # remove *-sys scripts since /nix/store is readonly
+    rm "$out"/bin/*-sys
+
+    # link TEXMFDIST in $out/share for backward compatibility
+    ln -s "$texmfdist" "$out"/share/texmf
+
+    # generate other outputs
+    local otherOutput otherOutputName
+    local otherOutputs="$otherOutputs"
+    for otherOutputName in $outputs ; do
+        if [[ $otherOutputName == out ]] ; then
+            continue
+        fi
+        otherOutput="${otherOutputs%% *}"
+        otherOutputs="${otherOutputs#* }"
+        ln -s "$otherOutput" "${!otherOutputName}"
+    done
+}
+
+# run all post install parts
+installtl_do_postinst_stuff () {
+    installtl_do_texmf_cnf
+
+    # create various config files
+    # in principle, we could use writeText and share them across different
+    # environments, but the eval & build overhead is not worth the savings
+    tlutils_create_fmtutil
+    tlutils_create_updmap
+    tlutils_create_language_dat
+    tlutils_create_language_def
+    tlutils_create_language_lua
+
+    # make new files available
+    tlutils_info "running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG"
+    mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG"
+
+    # update font maps
+    tlutils_info "generating font maps"
+    updmap-sys --quiet --force --nohash 2>&1
+    # configure the paper size
+    # tlmgr --no-execute-actions paper letter
+    # install-tl: "rerun mktexlsr for updmap-sys and tlmgr paper updates"
+    tlutils_info "re-running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG"
+    mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG"
+
+    tlutils_update_context_cache
+
+    # generate formats
+    # install-tl would run fmtutil-sys $common_fmtutil_args --no-strict --all
+    # instead, we want fmtutil to exit with error on failure
+    if [[ -n $fmtutilCnf ]] ; then
+        tlutils_info "pre-generating all format files, be patient..."
+        # many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1
+        # libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE
+        # we cannot fix further randomness caused by luatex; for further details, see
+        # https://salsa.debian.org/live-team/live-build/-/blob/master/examples/hooks/reproducible/2006-reproducible-texlive-binaries-fmt-files.hook.chroot#L52
+        # note that calling faketime and fmtutil is fragile (faketime uses LD_PRELOAD, fmtutil calls /bin/sh, causing potential glibc issues on non-NixOS)
+        # so we patch fmtutil to use faketime, rather than calling faketime fmtutil
+        substitute "$texmfdist"/scripts/texlive/fmtutil.pl fmtutil \
+            --replace-fail "my \$cmdline = \"\$eng -ini " "my \$cmdline = \"faketime -f '\@$(date +'%F %T' --date=@"$SOURCE_DATE_EPOCH") x0.001' \$eng -ini "
+        FORCE_SOURCE_DATE=1 perl fmtutil --quiet --strict --sys --all 2>&1 | grep '^fmtutil' # too verbose
+    fi
+
+    installtl_do_path_adjustments
+
+    installtl_do_tlpdb_postactions
+
+    # remove log files to improve reproducibility
+    find "$TEXMFSYSVAR" -name '*.log' -delete
+}
+
+### TeXLive::TLUtils
+
+tlutils_info () {
+    printf '%s\n' "texlive: $*"
+}
+
+tlutils_create_fmtutil () {
+    # fmtutil.cnf created by install-tl already exists readonly in $texmfdist
+    # so here we need to *disable* the entries that are not in $fmtutilCnf
+    # and write the output in the writeable $TEXMFSYSVAR
+
+    local engine fmt line outFile sedExpr
+    outFile="$TEXMFSYSVAR"/web2c/fmtutil.cnf
+
+    tlutils_info "writing fmtutil.cnf to $outFile"
+
+    while IFS= read -r line ; do
+        # a line is 'fmt engine ...' or '#! fmt engine ...'
+        # (see fmtutil.pl::read_fmtutil_file)
+        line="${line#\#! }"
+        read -r fmt engine _ <<<"$line"
+        # if a line for the ($fmt,$engine) pair exists, remove it to avoid
+        # pointless warnings from fmtutil
+        sedExpr="$sedExpr /^(#! )?$fmt $engine /d;"
+    done <<<"$fmtutilCnf"
+
+    # disable all the remaining formats
+    sedExpr="$sedExpr /^[^#]/{ s/^/#! /p };"
+
+    {
+        echo "# Generated by nixpkgs"
+        sed -E -n -e "$sedExpr" "$texmfdist"/web2c/fmtutil.cnf
+        [[ -z $fmtutilCnf ]] || printf '%s' "$fmtutilCnf"
+    } >"$outFile"
+}
+
+tlutils_create_updmap () {
+    # updmap.cfg created by install-tl already exists readonly in $texmfdist
+    # so here we need to *disable* the entries that are not in $updmapCfg
+    # and write the output in the writeable $TEXMFSYSVAR
+
+    local line map outFile sedExpr
+    outFile="$TEXMFSYSVAR"/web2c/updmap.cfg
+
+    tlutils_info "writing updmap.cfg to $outFile"
+
+    while IFS= read -r line ; do
+        # a line is 'type map' or '#! type map'
+        # (see fmtutil.pl::read_updmap_file)
+        read -r _ map <<<"$line"
+        # if a line for $map exists, remove it to avoid
+        # pointless warnings from updmap
+        sedExpr="$sedExpr /^(#! )?[^ ]*Map $map$/d;"
+    done <<<"$updmapCfg"
+
+    # disable all the remaining font maps
+    sedExpr="$sedExpr /^[^ ]*Map/{ s/^/#! /p };"
+
+    {
+        echo "# Generated by nixpkgs"
+        sed -E -n -e "$sedExpr" "$texmfdist"/web2c/updmap.cfg
+        [[ -z $updmapCfg ]] || printf '%s' "$updmapCfg"
+    } >"$outFile"
+}
+
+tlutils__create_config_files () {
+    # simplified arguments
+    local header="$1"
+    local dest="$2"
+    local prefix="$3"
+    local lines="$4"
+    local suffix="$5"
+    if [[ -z "$header" || -e "$header" ]] ; then
+        tlutils_info "writing ${dest##*/} to $dest"
+        {
+            [[ -z $prefix ]] || printf '%s\n' "$prefix"
+            [[ ! -e $header ]] || cat "$header"
+            [[ -z $lines ]] || printf '%s\n' "$lines"
+            [[ -z $suffix ]] || printf '%s\n' "$suffix"
+        } >"$dest"
+    fi
+}
+
+tlutils_create_language_dat () {
+    tlutils__create_config_files \
+        "$texmfdist"/tex/generic/config/language.us \
+        "$TEXMFSYSVAR"/tex/generic/config/language.dat \
+        '% Generated by nixpkgs' \
+        "$languageDat" \
+        ''
+}
+
+tlutils_create_language_def () {
+    tlutils__create_config_files \
+        "$texmfdist"/tex/generic/config/language.us.def \
+        "$TEXMFSYSVAR"/tex/generic/config/language.def \
+        '' \
+        "$languageDef" \
+        '%%% No changes may be made beyond this point.
+
+\uselanguage {USenglish}             %%% This MUST be the last line of the file.'
+}
+
+tlutils_create_language_lua () {
+    tlutils__create_config_files \
+        "$texmfdist"/tex/generic/config/language.us.lua \
+        "$TEXMFSYSVAR"/tex/generic/config/language.dat.lua \
+        '-- Generated by nixpkgs' \
+        "$languageLua" \
+        '}'
+}
+
+tlutils_update_context_cache () {
+    if [[ -x $out/bin/mtxrun ]] ; then
+        tlutils_info "setting up ConTeXt cache"
+
+        # temporarily patch mtxrun.lua to generate uuid's deterministically from SOURCE_DATE_EPOCH
+        mv "$out"/bin/mtxrun.lua{,.orig}
+        substitute "$out"/bin/mtxrun.lua.orig "$out"/bin/mtxrun.lua \
+            --replace-fail 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
+
+        # this is very verbose, save the output for debugging purposes
+        {
+            mtxrun --generate
+            context --luatex --generate
+            [[ ! -x $out/bin/luajittex ]] || context --luajittex --generate
+        } >"$TEXMFSYSVAR"/context-cache.log
+
+        mv "$out"/bin/mtxrun.lua{.orig,}
+    fi
+}
+
+# init variables (export only the ones that are used in the wrappers)
+export PATH="$out/bin:$PATH"
+TEXMFSYSCONFIG="$out/share/texmf-config"
+TEXMFSYSVAR="$out/share/texmf-var"
+export TEXMFCNF="$TEXMFSYSVAR/web2c"
+
+installtl_do_postinst_stuff
diff --git a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
index db2d0f016b056..a682d90c7b22e 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
@@ -82,8 +82,9 @@ let
     outputSpecified = true;
     inherit tex;
   } // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; }
+  // lib.optionalAttrs (args ? fontMaps) { inherit (args) fontMaps; }
   // lib.optionalAttrs (args ? formats) { inherit (args) formats; }
-  // lib.optionalAttrs hasHyphens { inherit hasHyphens; }
+  // lib.optionalAttrs (args ? hyphenPatterns) { inherit (args) hyphenPatterns; }
   // lib.optionalAttrs (args ? postactionScript) { inherit (args) postactionScript; }
   // lib.optionalAttrs hasDocfiles { texdoc = texdoc; }
   // lib.optionalAttrs hasSource { texsource = texsource; }
diff --git a/pkgs/tools/typesetting/tex/texlive/tl2nix.sed b/pkgs/tools/typesetting/tex/texlive/tl2nix.sed
index 244f8fbcc15f7..66a59ced5af75 100644
--- a/pkgs/tools/typesetting/tex/texlive/tl2nix.sed
+++ b/pkgs/tools/typesetting/tex/texlive/tl2nix.sed
@@ -80,6 +80,22 @@ $a}
     D # restart cycle from the current line
   }
 
+  # extract font maps
+  /^execute add.*Map /{
+    # open a list
+    i\  fontMaps = [
+
+    # loop through following map lines
+    :next-map
+      s/^\n?execute add(.*Map .*)$/    "\1"/p # print map
+      s/^.*$//                              # clear pattern space
+      N; /^\nexecute add.*Map /b next-map
+
+    # close the string
+    i\  ];
+    D # restart cycle from the current line
+  }
+
   # detect presence of notable files
   /^docfiles /{
     s/^.*$//  # ignore the first line
@@ -129,9 +145,36 @@ $a}
   # extract postaction scripts (right now, at most one per package, so a string suffices)
   s/^postaction script file=(.*)$/  postactionScript = "\1";/p
 
-  # extract hyphenation patterns and formats
-  # (this may create duplicate lines, use uniq to remove them)
-  /^execute\sAddHyphen/i\  hasHyphens = true;
+  # extract hyphenation patterns
+  /^execute\sAddHyphen\s/{
+    # open a list
+    i\  hyphenPatterns = [
+
+    # create one attribute set per hyphenation pattern
+
+    # plain keys: name, lefthyphenmin, righthyphenmin, file, file_patterns, file_exceptions, comment
+    # optionally double quoted key: luaspecial, comment
+    # comma-separated lists: databases, synonyms
+    :next-hyphen
+      s/(^|\n)execute\sAddHyphen/    {/
+      s/\s+luaspecial="([^"]+)"/\n      luaspecial = "\1";/
+      s/\s+(name|lefthyphenmin|righthyphenmin|file|file_patterns|file_exceptions|luaspecial|comment)=([^ \t\n]*)/\n      \1 = "\2";/g
+      s/\s+(databases|synonyms)=([^ \t\n]+)/\n      \1 = [ "\2" ];/g
+      s/$/\n    }/
+
+      :split-hyphens
+        s/"([^,]+),([^"]+)" ]/"\1" "\2" ]/;
+        t split-hyphens   # repeat until there are no commas
+
+      p
+      s/^.*$// # clear pattern space
+      N
+      /^\nexecute\sAddHyphen\s/b next-hyphen
+
+    # close the list
+    i\  ];
+    D # restart cycle from the current line
+  }
 
   # extract format details
   /^execute\sAddFormat\s/{
diff --git a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
index 9a69e03036c38..7ff3e89bdb2aa 100644
--- a/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
+++ b/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
@@ -188,6 +188,9 @@ academicons = {
 accanthis = {
   revision = 64844;
   stripPrefix = 0;
+  fontMaps = [
+    "Map accanthis.map"
+  ];
   sha512.run = "5727125c85e06501f009267bab8c1eff674a76db618c6155fd9c6b41bb2407a3a201a008c7f5aa6d73ecf100a3fc917961d20f547c2f6040fe72760a4dcd9a44";
   sha512.doc = "6789c3c330d1e6a0d20364e4e98ef72fd1c6294655f704366b0e6c1fd081d1aea312dc9e6767fb3e076b3cd91ea5a67606e8bf62f7f92af097ba766c99ab0cff";
   hasRunfiles = true;
@@ -378,6 +381,9 @@ adfathesis = {
 adforn = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map OrnementsADF.map"
+  ];
   sha512.run = "7a4a4da6c72ff2f8ab4b2a9a5e92887306a8e2aee4bcc5a93c18bf41d1bf9c05bd23fd6401bda054994aafa8d6002dbc16d8483b951acb705cd46fda08aaf060";
   sha512.doc = "2a287f8685154359c914b13e8e153aa64bb19708a9f5b122180cead53ee31ab829dc934dcab43f09ded4fe5d2a81ee32528855f1a4a1bd07b795eaabcb204f48";
   hasRunfiles = true;
@@ -387,6 +393,10 @@ adforn = {
 adfsymbols = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ArrowsADF.map"
+    "Map BulletsADF.map"
+  ];
   sha512.run = "7100648956a68719d1a449a3aee0a4acb3788aea7f082a6e7e38c8d8dfa2c712a4b896a9b036e8ae8b2732b11414ab71a49e2f513e7d689f4b0ad9e44c052019";
   sha512.doc = "fbdd78030826918a3599a1f843db692390ebdcf4ca9a853d8c2e78706cfafe83ae79d23d09fb097339d8c726608a27436b3bf22725935c55060f1e8579ea1eaf";
   hasRunfiles = true;
@@ -503,6 +513,9 @@ aeguill = {
 aesupp = {
   revision = 58253;
   stripPrefix = 0;
+  fontMaps = [
+    "Map aesupp.map"
+  ];
   sha512.run = "7a42831624c30db319a81420e1142bf827f21daeb4719e1a179a63632586b1fb43709c17faef073eb67f27f1303b4f7db92a40425506f4d8e0bc6b456e4f6114";
   sha512.doc = "ece447f4c12da8509be155f2743ca52988f32ce62edb361a85fdcd7733bb401cf8ecbbc0fa6bbd7d1662593f1084aa89a29b2f1b822a765bc6f7e581b46bc153";
   sha512.source = "cb628c51f7f4d972f81b2e23495e7ac6e82e422c7e85ffcdd7c3cbb753b055178adb9ea386bb4b1f1f1c4d2cdc561eba27cd82c7ef33830db0cde9af99e7730f";
@@ -637,6 +650,9 @@ alchemist = {
 alegreya = {
   revision = 64384;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Alegreya.map"
+  ];
   sha512.run = "2bd5aa12890cecfa42b119f456ea63bf8b8f64edc4e2c55ed738cd24a80527245b0219330e1dc89e0a10e8ca17bb17ba928056ebf69955f2481d468a5cf97104";
   sha512.doc = "dcff5d4a47c3649155a79659012aa07123e5108b85804da9c1697d1f93d7b336ef7e37e1272c8e2e8f283971bfbfebc2e0cd2ebae3ff8ee69531629635ed7d74";
   hasRunfiles = true;
@@ -681,6 +697,9 @@ alertmessage = {
 alfaslabone = {
   revision = 57452;
   stripPrefix = 0;
+  fontMaps = [
+    "Map AlphaSlabOne.map"
+  ];
   sha512.run = "b958ac7987363fcefa3d8b7016f13851b91446a2a252e9561fd1a15df78b867b928f3e45a6fa1556abffa0de03b2b70543266ef9627b7474167c5672ac98d9ed";
   sha512.doc = "375ca21d23599fe365f53f461264351982340d151ebdd2ce143189d8fd3c22d191501520d571f207a1f956f433ae6491e171c7ebb3c9c5421e30b358cc79f9fa";
   hasRunfiles = true;
@@ -709,6 +728,9 @@ algobox = {
 algolrevived = {
   revision = 56864;
   stripPrefix = 0;
+  fontMaps = [
+    "Map AlgolRevived.map"
+  ];
   sha512.run = "bb038512d7ade0cf90217150d276d8ed7fb4279b8a3088bcb38dfe8f48373e8957909f5fdfdd2f6247682623414f04e732262a393cc0042279705ceb345cd608";
   sha512.doc = "c42976e8fe3d53240de84845a0c4428363868629b5137a57863b5fc922ed8f557e2e4451446277cead1dba0dff036e843e5ead35e6e591a04f2edeb640c7932c";
   hasRunfiles = true;
@@ -782,6 +804,9 @@ alkalami = {
 allrunes = {
   revision = 42221;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap allrunes.map"
+  ];
   sha512.run = "d05513d484f11a9fcb5d202d02e7ea586cc82c44abe0488294e58c6f31185b083026bad3f17186ff03456481200e05e2ec4a7a7348f6b8fa4e952702b15274eb";
   sha512.doc = "569f61370178f2517ea4d4625209a1359cd56913073344816f4fa8aa19edc8bc63c073de4373adb0a0a8c8d45fe392da9869bd16bd7477da65d5b0decfe6de61";
   sha512.source = "9765fe328824806dd96ca1a0e9678ba385eb61acf95d8447213492843f908de65209022d76303be816ee1c500e95aeb35280f3377369315a87752a0c4478feb5";
@@ -792,6 +817,9 @@ allrunes = {
 almendra = {
   revision = 64539;
   stripPrefix = 0;
+  fontMaps = [
+    "Map almendra.map"
+  ];
   sha512.run = "9bfdffc9a634df297dc9b5c406c0681ad78b81619900126110b978bc5a7a2ec0f91a1e351100281c794972d87f33c7088725f55928e120a743001080887ad4b3";
   sha512.doc = "477d5d068353d06e591af13e7e970cccd3d5229765f89150e4d9bb5f1de2b0283e4212bc475fdd6771f4e33f046a3e64dd4ca794c3691af95f7e36f77c7eed76";
   hasRunfiles = true;
@@ -931,6 +959,14 @@ amscls-doc = {
 amsfonts = {
   revision = 61937;
   stripPrefix = 0;
+  fontMaps = [
+    "Map      euler.map"
+    "MixedMap cm.map"
+    "MixedMap cmextra.map"
+    "MixedMap cyrillic.map"
+    "MixedMap latxfont.map"
+    "MixedMap symbols.map"
+  ];
   sha512.run = "6a9f80bc8b6b2afc3ff6ad151a290743d37e10ddeaf7efa969f3fec40cab0492860496c7bf0abeb410124aeaaa15a53640017c8d12b630e68c59dfe186519e52";
   sha512.doc = "fe0917bf9d65d15155f287626edb17d692db7ef2e888fce30b867bb0c873b0166949b3b5f3965f70b6b237d7b874a7fd3411e53b87368acc7447dc0e8bda55f1";
   sha512.source = "4145ce58620f84133e8d7a7639fe376631c92398161283c69c9d1119c14e4d404ed067f2aff2fab7cc0c2249d1fcdea81591b45a1cc72bc08835b99ac8a5a6f7";
@@ -1024,6 +1060,9 @@ amsthdoc-it = {
 andika = {
   revision = 64540;
   stripPrefix = 0;
+  fontMaps = [
+    "Map andika.map"
+  ];
   sha512.run = "4da9904459345033aa87deeb0019c8c4a39fbafcd59d973717ed2c4a410ece528944c69669b6a5ecf6ef8bb790f60bba909468e001485c405e7cf8775b7533e5";
   sha512.doc = "50684857dc25ad942aff18eedec04c9e27e4e408f748c208f8527c5096e600d26769ec6f82e2f02e72ab472dfb662f12bb009156293a12daa2dc0676d63ed446";
   hasRunfiles = true;
@@ -1086,6 +1125,9 @@ anonymous-acm = {
 anonymouspro = {
   revision = 51631;
   stripPrefix = 0;
+  fontMaps = [
+    "Map AnonymousPro.map"
+  ];
   sha512.run = "105334748bce7fa8a78edd599d6a8466729937f0008c479213a4d3d4b6b3e24b91bd1e124d0e3c1354fd68f99fdf621538696ba9b32ecbf09f5c7202b0b34997";
   sha512.doc = "ced94c5fd0be106433e99cbe66305b60ac6ddee82d3a1c8046d1467b11fe9ca10c2ba3b4ceba56a0ff439e7fa82d09c303f29200fdcec1600145fe7623773e47";
   sha512.source = "75d70833e574ab7847208d76d1012105f42712fc1558b9fbb35349871068bd60099d4ffe189eb28f5276807e6d1e48969283c7ea5a48f991cdb959077c1444dc";
@@ -1116,6 +1158,9 @@ antanilipsum = {
 antiqua = {
   revision = 24266;
   stripPrefix = 0;
+  fontMaps = [
+    "Map uaq.map"
+  ];
   sha512.run = "0318b6f81d365cbb4b320642ddb6d8f909b5b136daf952da01c22508c392c58c9f8a25b33e4dd0e5afe777bb0b366633afd6567c3992df2a2e286cc9f41e6211";
   sha512.doc = "4158160d42fc776891f974cf8de13631aed17578ad2e5a67225442b7e783a36e2a0d3be640d92dce0fa66097dc617ad54b2779a3a3ef9878b46d900c5dc2ed7d";
   hasRunfiles = true;
@@ -1146,6 +1191,9 @@ antomega = {
 antt = {
   revision = 18651;
   stripPrefix = 0;
+  fontMaps = [
+    "Map antt.map"
+  ];
   sha512.run = "c31e92701d14e0559ca1807389d3f1d95a166e9dee918fc7218ee671227381e3c37a991756e9c19c7e7d3681597c3c012037a74249c7c8eaaefc7c8a3bc2fc36";
   sha512.doc = "00533390612e68b48dbbe9c1ba11e46a0e48f8b87cea8f6623267d53795ee9170daa1f34adc8cde12356ef779990fcd7fe7a10b601bfc11c9a0f590b5a25f3b2";
   hasRunfiles = true;
@@ -1334,6 +1382,9 @@ apxproof = {
 arabi = {
   revision = 44662;
   stripPrefix = 0;
+  fontMaps = [
+    "Map arabi.map"
+  ];
   sha512.run = "6f59ea8c986078f388f4c8f067b12863422728cb1a56464ece4d793189bf0e6dcded476a3b86317c2bd5f9b4b3cbc475fd748c2ab9bbf60b3d8c8cd4c162ea62";
   sha512.doc = "c851b0cca46b11d7297a03488cc72adafb6409e0406de809a1a18d4993068702f03e17cbeda1399914005c9885108d747c844719764145c746b2a0ae45d9121f";
   hasRunfiles = true;
@@ -1380,6 +1431,9 @@ arabluatex = {
 arabtex = {
   revision = 64260;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap arabtex.map"
+  ];
   sha512.run = "df47df09eaf935bd8921d8ad475190fe6651f1cbf198473ee82099242b6f4cd63ae5873a2b2fbd7a75a4f9ae77f5ce3f56ffec0e668fdd649c4d3fe051b2ac68";
   sha512.doc = "a73aed53cc1cf4f5600312f58e0ae8a29c57fb04ebc87b91f13526c780567a5ba076a0b63b0abed791880efccffcfc52bb0f43131da4b8e2a60b48184d2f66de";
   hasRunfiles = true;
@@ -1399,6 +1453,9 @@ arabxetex = {
 aramaic-serto = {
   revision = 30042;
   stripPrefix = 0;
+  fontMaps = [
+    "Map syriac.map"
+  ];
   sha512.run = "6731d62d8a24c9f0d26061b8b2574a880df30df333fbe16408d0830657ea36f04f50c56b574de5eb081f490a4c5782595fe17bdb9208b6602c1a0ac81a1f10f5";
   sha512.doc = "433018891123aebb201d6c4f2b00dd15a558344b758899f85b9bdc21556ad4fc4845ce72084863b243e42beba643c5ae4dd210b74e2588af4825e3c83d6d7997";
   hasRunfiles = true;
@@ -1434,6 +1491,9 @@ archaeologie = {
 archaic = {
   revision = 38005;
   stripPrefix = 0;
+  fontMaps = [
+    "Map archaicprw.map"
+  ];
   sha512.run = "5e841f4a8e5df375fd660c998d3d54221e6c8e383fe4a69fb082c98d62b44a1fab2e9ec88db37964e015abbc20cd0f2af5aa26cffd4fd92fece5e24661c0efa5";
   sha512.doc = "457eedb06a3a09a73a2ce0b20c18b643530aa2659d7b1b98be14238b9d40e8a6bdc39085654e8589fb134921f40d211d93f553cab25d7901e40286b3075f268a";
   sha512.source = "5a39568546651ef10937849550c3305bde9379737b21e24b2adbec532dee8192ddbdaaa77f2e6bc135d518f354c1b20d7c43bc03f65ccf47d423f4af1e75d620";
@@ -1443,6 +1503,9 @@ archaic = {
 archivo = {
   revision = 57283;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ArchivZero.map"
+  ];
   sha512.run = "0f6b7985d73ba3e62874bee7a05c215cea0008bdfd1b0c3df6795a2d6363ee2a209df956b4f9698ec93ee8d9c6bd62ab5bf3bf19cff78c968a97da58a80b5f40";
   sha512.doc = "88cf002d557401730c035727251e228effdd25d52e9d76edc950d0f3ee639e2eb5bf623c77a4e80dd902b7095076030b32aa017c8adea9f57912ca9de51ab7b0";
   hasRunfiles = true;
@@ -1462,6 +1525,9 @@ arcs = {
 arev = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map arev.map"
+  ];
   sha512.run = "8b6e88a41052740831fdfa03299f665fad9eaa0e45d1d235392aa0b849bd6ca03f1e18892c879d3a5289430a5d236b9544d617ea2c3af62a59b38b4d7ff8ce90";
   sha512.doc = "a8dcb8bf0fff3be9c99550623f12651df09b151d6e28bee03d7aa80c7b0eb8c86603b4d8037232e4998bc5603ab3dd368ff7a262b7c7f62f2903338774a9b8aa";
   sha512.source = "6c92c2f3ef59dcb93207ea90643d11aa8cf81850e2696414f489c40cef97737d00ee4444893669f12d4592c6573a71cb229c232b62f10db38195aabbe83fe523";
@@ -1480,6 +1546,9 @@ argumentation = {
 arimo = {
   revision = 68950;
   stripPrefix = 0;
+  fontMaps = [
+    "Map arimo.map"
+  ];
   sha512.run = "3c84fc274ebd29dfa65a8db214ef2ea74bb22da21827844be3b5648b7f10cba81a73772ccffe758b19ac16e58a75b1eb578a0ec8e85957f9693858065665a085";
   sha512.doc = "dc70491f5b2b5a900f3d6f9bd543974b81976907a7c3dd53fd7530e3d0a6d83fc44a61607b27d9644eeca6f6228faa171916e67fc7517c35d466d9c50a186808";
   hasRunfiles = true;
@@ -1488,6 +1557,10 @@ arimo = {
 armtex = {
   revision = 69418;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap arss.map"
+    "MixedMap artm.map"
+  ];
   sha512.run = "7acac8416e424db754f1e02844e175dc76c694d46efa30e1e29d855cbe3ffff1a50b95c38e2de2e88944bb11920cdf2295254b3855b5d6e13bfb930665cda8c2";
   sha512.doc = "83b050d9bcfd2d4b7ff54458a559401ecf5abfb020c39b7b7c29f3fe9cc656980a63354df549ff4b93ec4ffb382e60578d5657c268ffb7282dfa5e45fc66539f";
   hasRunfiles = true;
@@ -1504,6 +1577,12 @@ around-the-bend = {
 arphic = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map bkaiu.map"
+    "Map bsmiu.map"
+    "Map gbsnu.map"
+    "Map gkaiu.map"
+  ];
   sha512.run = "2d4c0f91dd483df95bf91056e4d7cbc28b681fc9f42704cdbff297ceb4f8110affbed879cc8b15061c309764e1fdcce01fd47c2d742df441ed191f83a065538b";
   sha512.doc = "327dbc2cc7b4bad5e410dbb07dd2a2d5052dcb54c98310ffc3596c1e5b4121c1a12e3067b7074f209a3972cb51280f057cfe718eb963869bf05a76e17c528dee";
   hasRunfiles = true;
@@ -1577,6 +1656,9 @@ articleingud = {
 arvo = {
   revision = 57213;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Arvo.map"
+  ];
   sha512.run = "3a6236c3f5e07f3ad709c6a5e0f7d2c90574cc897f6f5d470aa1523b537370587b5942e1a8c581fd96e43e80189fb1c7c4a2475823077feeb929ec594a90ffa9";
   sha512.doc = "3d3c6a92159b47e8dd5ae7360c06c8d5db8ccab609dd5f3db47db2ddc9d62badc3e6bd7c881ec5955003ac2b460c550ce56154cb2323ebd2bdb8205318a709ce";
   hasRunfiles = true;
@@ -1639,6 +1721,9 @@ ascii-chart = {
 ascii-font = {
   revision = 29989;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ascii.map"
+  ];
   sha512.run = "e92e312e38432a7294c71a76604e5a3c2aa6b65937d39933fcbc9fc9b61e00a1e2f35ba739f64c29a3ebf6d2e388cd29da384a2a6456f71576101a1f12e36f0d";
   sha512.doc = "2d681a41d213fe260e3491a3b410239fa2e025ba19894d133a27e47b417ccf27648aa13ae431b4c42549c1692cbe517f2595c2de675b14d9ea0460d469e4f036";
   sha512.source = "1bbadf44599ad29f843ef17d1b437f951f5b167e9bf84a73600a0a9dc5633d94d76c91ec23493250ac894d9114c1b2d1d1f182690aef5dea92c9ec51c96e69a9";
@@ -1659,6 +1744,9 @@ asciilist = {
 ascmac = {
   revision = 53411;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ascmac.map"
+  ];
   sha512.run = "f03ff628aced70ac2406863aa4b23eac26cf47fa09ee377ba78a8df3af633ac1f3fad8d005022c1555d957ec9d84f98eebf2dc97b296713a2edf5f0060d4180e";
   sha512.doc = "e35257d0992717350e78e611f31f864651a1762dcefb76ba60510180de177fab02f634423b0f3c78c03394fe0eeb6191db0d534190d4f168922263526a85b1b9";
   sha512.source = "3613b89f600ca51f1234f711816d041c4a3c58f72217b299505d90d0b7316606b3015c43edf3546fe93625dc628f232179ddcb0dce7a2f26375b93af7e6e7171";
@@ -1706,6 +1794,9 @@ asmejour = {
 aspectratio = {
   revision = 25243;
   stripPrefix = 0;
+  fontMaps = [
+    "Map aspectratio.map"
+  ];
   sha512.run = "1447c3037f5477aeadfe3e5fe18a004ffa1b8c5c18b7c68295b8065e32c5a3e6a044e7f9868bafe3d8b81e391b2c614e2153302ef34e1e4aabe84c92ada2f129";
   sha512.doc = "5ee4918a3d90e9e4b51a2985352133331b77a8a87bdd8d41fab9348e5c548670ab56b5f0afc63756b65fdb6e45aa7594335995ac0d146d542b571eefbaa84d78";
   hasRunfiles = true;
@@ -1844,6 +1935,9 @@ atendofenv = {
 atkinson = {
   revision = 64385;
   stripPrefix = 0;
+  fontMaps = [
+    "Map atkinson.map"
+  ];
   sha512.run = "8b763a29fbd529b91d586e00f13176c1cff3777541816a02913e57e8f8586357331615ba4d16549b9a98a0e049a42b2f49af39b3f950fc4845a46e37435dce2b";
   sha512.doc = "f5bcfd015fc4292f4568e9d960e921739a9ebcd8f198f648323d475f6ae5d803d3f0ef77d368fa9fe36f53947908e4bcf1cfbdbd621e780221c5e8432ca9db05";
   hasRunfiles = true;
@@ -1893,6 +1987,9 @@ aucklandthesis = {
 augie = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map augie.map"
+  ];
   sha512.run = "a862fc140ee85e9f48908e7251dca78f6f328bb194bc1031ce7b521feabc62bb148764e7574341b9ba39a1bc76bb4a718c3cfa45bba7480aff168eb17661d74a";
   sha512.doc = "434c1d88522ae41e8a41fbeda6685a059fafb8f6cdec26d8737b5f6a6ddcf1e4f2a443ffdffa6b62a74f4abd2ed2e947176f59e64bf5691debeb62d9d54e719b";
   hasRunfiles = true;
@@ -1901,6 +1998,9 @@ augie = {
 auncial-new = {
   revision = 62977;
   stripPrefix = 0;
+  fontMaps = [
+    "Map auncial.map"
+  ];
   sha512.run = "625ddb6342c2ed4e5491e63ae13619b18892bc5d2cc005aac489cf1b6d193a28acdff9404f51b4cc76e8950ac182a4f8d5845bad85fd4c4afbdf33e7b8c225b3";
   sha512.doc = "4d3880a12e8dab72fa5278e4507bdc03786cfe94bfa43e81068629327d1e70a251ca58c7cbf6c58560c03b9e1e4d79257a674370e89c780f5c81589d54084270";
   sha512.source = "bb35718db33f7c4cb6889570def1b4f8a47e05896a14c8867ff7dba362028017d4e64d66b31e2f2cef45b749784704ea6cf9c1731543c3277496fc6c128b08fb";
@@ -1911,6 +2011,9 @@ auncial-new = {
 aurical = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map aurical.map"
+  ];
   sha512.run = "1c48c36d6121005c123018cfe1266783288572c0ce8a9ea4b9b47ac28f46206de61b7a73804121f9a57c056c871c547c97ff10a529fedaca57bcb3ab78f3bea0";
   sha512.doc = "89de4991373a50d673f569e72f4727bd66a2b40b385006c3c7e4605812e7f8d3d346e3b08be55241f9926a58b40126d123d6ecea912d09db3973985d0cf9e90c";
   hasRunfiles = true;
@@ -2095,6 +2198,9 @@ auxhook = {
 avantgar = {
   revision = 61983;
   stripPrefix = 0;
+  fontMaps = [
+    "Map uag.map"
+  ];
   sha512.run = "c08c987c385bf9eeca0f4f5b7edcd41570c81f18751593824da8eea770c29d63725bed100fa2ff37a80a5c70086533ddc1e91848d5ddeedec3c5c669907ed20b";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -2898,6 +3004,9 @@ basicarith = {
 baskervald = {
   revision = 19490;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ybv.map"
+  ];
   sha512.run = "3c0451c43f81396038c3ccff2b4a9b07bf31023fa7afafd2884506928dffc8a9345ff0b8c8114f20b3016026f4532ab138a8b4787a37811501659a0f53c98941";
   sha512.doc = "e9e2c8749e29351b59690027b019da441de5c74068aa5a8457e3014c751fb23dddb0e8b94bf56529879086ea8c58e023a23b85ed9bbaece10f6dcc65ddcf3ff6";
   sha512.source = "60122d6a04e88fecd4c6baae3a657f40bbfd48895cc674e95ee9e2b3f9172e01d009064a616f2d7b3f48c41d43f75efda19c3ca54feee612f1866fe64eef366e";
@@ -2908,6 +3017,9 @@ baskervald = {
 baskervaldx = {
   revision = 69273;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Baskervaldx.map"
+  ];
   sha512.run = "f78b61573fc99c6696dd9aac4f108f473996c5e67223e721db88f355b2e55a68f2b8a21c7bf994f2ee36a8fa465b55b970d65407b1ecfe1ffd7e00061bb70753";
   sha512.doc = "8d1b8a3e12b958fe5dee50255c291ebe8ed75e8733a28a5fda7c927a9253e0d94e68b51e81ce8805e3c3855893f53947429fa9684c99925d80176522c72119e9";
   hasRunfiles = true;
@@ -2917,6 +3029,9 @@ baskervaldx = {
 baskervillef = {
   revision = 55475;
   stripPrefix = 0;
+  fontMaps = [
+    "Map BaskervilleF.map"
+  ];
   sha512.run = "d7ff1eaee4b050128ac89aff0d48d50c99936b1e04e778d0594d28ad3b225002012cfa56ff515486c98d9769d499ba5f4584358f8969c6286f07bd535b478ff6";
   sha512.doc = "131117d2170aa77f83954d61d630cd0714c7542f3b4f5e868f834bd091d0b4cd76185d478ae2e4d35c8b9930262d3f14e675681540fa8363b4aa060ea5fd96d9";
   hasRunfiles = true;
@@ -3001,6 +3116,9 @@ bbold = {
 bbold-type1 = {
   revision = 33143;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap bbold.map"
+  ];
   sha512.run = "86631e16388a447db7c521087eccbb666612933f6fee8eace091e00b20b5070d38ebc2d4d0a754536eacef9e9e6470f237d184e00cc4419bff85087f54b81566";
   sha512.doc = "ad841ac652a7985ab907572f66462091b1c40f7cdab2b00086209a2d96056e0a9e32842dfbc22c829b27799882252da95e3d10d4a9dd174f487327d5f3ac3899";
   hasRunfiles = true;
@@ -3009,6 +3127,9 @@ bbold-type1 = {
 bboldx = {
   revision = 65424;
   stripPrefix = 0;
+  fontMaps = [
+    "Map bboldx.map"
+  ];
   sha512.run = "b75c9f544bc0c6d1c046d614a6e0ba52a9cf920d73e8066e2d5e656e1a8774d42677c5a5bc9848e45bd4892e3ed19f6c3c281333f437b541d30d3410be2618a8";
   sha512.doc = "671259c208ea744654b82f25fddc3589fdda650c2121c71763ca4fb4c0ebe3a99906763c5adc354f49edec4beec59897445f5864a37640f67e47c8df6473f2fe";
   hasRunfiles = true;
@@ -3457,6 +3578,9 @@ beilstein = {
 belleek = {
   revision = 66115;
   stripPrefix = 0;
+  fontMaps = [
+    "Map belleek.map"
+  ];
   sha512.run = "4ae91c01e67fcefd46da99d6bc8379b3829e4e0e88f512f36bfc9743d075090d0c26d0eef11dde5125b344e85ccc3c5a31569f3a1078d00d364ea80120bec30d";
   sha512.doc = "93266af4f4293639a123f5ba88e2680d87e6d815f49cd7dc6c9322866dfb22308716da1e362699aeded819e7817987938f70cf48c9166e7127836de743e5dd63";
   sha512.source = "b8547d1b3da8be829b7fe99d0cd7cee8fc6b7158c1799712ea85614534d0b020cfafdc1696a0e5037ad15b215173e1461c64f86a1f52795209272aed9991d107";
@@ -3475,6 +3599,9 @@ bengali = {
 bera = {
   revision = 20031;
   stripPrefix = 0;
+  fontMaps = [
+    "Map bera.map"
+  ];
   sha512.run = "103b2db8f7bccf6a9729faae793246d2933667295ba404fdaa7b61cfbce0f1209ea27e7a2a63846c6550b41214ff496a62598bbb9b731c087b8bba9e0abade80";
   sha512.doc = "2606c87871d6f6ed27b2a5e49117c50f00573bc6b9ce249d1433da214764b220eb00c73e59be43e32e8a4827c397c53504103e00b7e5602de5df5bb817e2145d";
   hasRunfiles = true;
@@ -3483,6 +3610,9 @@ bera = {
 berenisadf = {
   revision = 32215;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ybd.map"
+  ];
   sha512.run = "70dd547d0c5138f2a61e20b4585160e5fef281bbba72ba8dcc7032efa957d80c158ba88fdc0dda9982dbcd69a48d5d54286f52d1425a5819e54e05d79eb9dd49";
   sha512.doc = "f076717ff948247589225fbe4fcd92114d719526e535d645d767a3f7fdaafd3a6ca84c3a60997074186974ebf045e31a51d16d53c8a5fdc78a2461733cc66372";
   hasRunfiles = true;
@@ -3527,6 +3657,9 @@ beton = {
 beuron = {
   revision = 46374;
   stripPrefix = 0;
+  fontMaps = [
+    "Map beuron.map"
+  ];
   sha512.run = "623d3b7d8747ce1776de9d0ee6eec013c2050f9cb4a521167bcf23435d5e30c1233ee869ccb299360cfb6f8f4b4034a77d4fe601f789211b290684c0858462a2";
   sha512.doc = "812dd30a9b49d7ab5e529f3c7ef934be5d72b75adeec1a38cba77c867525243ffd0d4f4901c9100e6518eb0a8c35e208157b8e3669d3700203ab7fe95aa29845";
   hasRunfiles = true;
@@ -3612,6 +3745,9 @@ bgteubner = {
 bguq = {
   revision = 27401;
   stripPrefix = 0;
+  fontMaps = [
+    "Map bguq.map"
+  ];
   sha512.run = "8a795ba517941a07ec1445a16947ce5028cfd61ba2b5c818bc894ffa73d439162271d6269c67c8ee7afd6d13551d4a9bf73763c00b719bf3a9019a8e7d368256";
   sha512.doc = "1bfe38f2d904af63a5a0fd2ab4accd04fbd294083cc462f7d53f79819f40dccf1c3c729ad591d15327eb120bce847ae62c2bc9b9554ea278c1974e3b37296dc5";
   sha512.source = "108ecf4268a4491904d46f5aebdace10f8aab84a4333fddf94788b677088a584da284fd763a8f0ab19cbc335a3a143489a49836ba059971483faeaf40ecbb0de";
@@ -4685,6 +4821,9 @@ bitset = {
 bitter = {
   revision = 67598;
   stripPrefix = 0;
+  fontMaps = [
+    "Map bitter.map"
+  ];
   sha512.run = "217870554e509c3bbfb70d3da9e3ccc4fb1013db4508034ace728ff114e31eb9f56511b1e89c702d21cf1b522ae799601a0908ffe70a3856aee29c595a22483e";
   sha512.doc = "2bff9fef75632fb43c59cba04ea531eba8420c3841a0343cbb1d56995a8c322beff036da61d494112e9c89f82d367ec3bcc9e39ecbe153c99dc012cbc8c15bea";
   hasRunfiles = true;
@@ -4957,6 +5096,9 @@ bookest = {
 bookhands = {
   revision = 46480;
   stripPrefix = 0;
+  fontMaps = [
+    "Map sqrcaps.map"
+  ];
   sha512.run = "8a341131397637618acdb9bedc835a4ea98f40d55a8a2b312ac820821b00a1f059f37cde2aeb3f5b715eff9928b579a531c4c12d3bdbb3a7629a50d363f1a4cb";
   sha512.doc = "b5901beafa849a52afaaa7cf09ebab327640eb5ad1c627bea5f8dde2c98aaf176f23f0c9460e7fb2212ce9b4038800c3a3c572830d08d059a04d3574d1015a75";
   sha512.source = "4df12247bff50722ae11636ecc0071e03d8d296ea958d2a1b84b5b2952f35d890be66af4b85dcf1fe2599e787e71c1b9e7f727a8be9b4ec79eb1bd6aec21925d";
@@ -4976,6 +5118,9 @@ booklet = {
 bookman = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ubk.map"
+  ];
   sha512.run = "8bef9b6e467384a2b5adc6bd61ed2e410f026f6ee867a5a62239c55391ebd6eb5e521c82f9bd0e4de995591458ec32f98ce821493a85113beaeef6535b938ff4";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -5039,6 +5184,9 @@ boolexpr = {
 boondox = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map boondox.map"
+  ];
   sha512.run = "0e1cbb6ec227a2cd17852e71f16b4972de18a076fdd4c4416ffef1416f3332fd351036fead4d82a69b5aecdf392bc7e1af85ca5bb1e44c153d25cc86ccfc631c";
   sha512.doc = "72e77b36b79bdad663db8c707daaca8d324fd3f50edc8cb7780a641f5d0217d3fe4c2b758c1775de0ce5fea3d44e9ea08e745df51485b4d1e3de11e2a98c74f0";
   hasRunfiles = true;
@@ -5233,6 +5381,9 @@ bropd = {
 brushscr = {
   revision = 28363;
   stripPrefix = 0;
+  fontMaps = [
+    "Map pbsi.map"
+  ];
   sha512.run = "f8c7107b0e98cc6e402ec8ee6f5e6f9a1b8e0d046dddae9486e4ca68327f370a75a0f90000939828605334b3ad3c5caaf5e541c7933c5545fe3e531066fa650f";
   sha512.doc = "41ad7b1afc7cb0f4bfdf0bcff4c1d85f3d9603c3d48ccb62f94a6fa2258cf3f60f03ee1b4b5756d85a77ba4ff9afddbccaba1c4bd5b69d85ce4fed206aa16b1c";
   hasRunfiles = true;
@@ -5284,6 +5435,9 @@ bundledoc.binfiles = [
 burmese = {
   revision = 25185;
   stripPrefix = 0;
+  fontMaps = [
+    "Map burmese.map"
+  ];
   sha512.run = "7bce3a31febfc6a959ba4779d975cf93276a0bd1115e06a50a3c8d705e49e8d6747ecebc7eac2147f021a538dda1bb241d8f320ef1486229c930141e06d6ae26";
   sha512.doc = "4a7f3628efd913a362786564dd260dc1a63e51a397af3d92222db6f758b7a7792b13e58422d2604ae98f615fb5fc42e77f265e505236db9bc981d7951e0ee1ed";
   sha512.source = "066d164d97f4fa9e1050d75c3c20997be859718a2be37c465010040f969b2d3aa17edc3c241f5aca45d91dd12517d72a731d02954088ee83ff5aeec3be0b0fcd";
@@ -5539,6 +5693,9 @@ c90 = {
 cabin = {
   revision = 68373;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cabin.map"
+  ];
   sha512.run = "8227929382396ece0ddac74095387ee0c96d2102fffe5121f89182836792933a6ad66ded538229c5bd12f65fe7518d00a333835c17537761f309db578e81bd3b";
   sha512.doc = "95353266181cfda03973d68472ad564185abac4d828141e339183f69380f99151e0a3165f099235db54be8a3ee35ffe069512240633972f4b7dbf14ca1e06126";
   hasRunfiles = true;
@@ -5570,6 +5727,9 @@ cahierprof = {
 caladea = {
   revision = 64549;
   stripPrefix = 0;
+  fontMaps = [
+    "Map caladea.map"
+  ];
   sha512.run = "d5dccec03c75e7ae315067527ae4d88515d6bbfb6d9b1336420ea78daaa7718497e8040f75a0a531c91c2b0eae728cfddc824e623bd5c73471192c809550dbf1";
   sha512.doc = "e3f84460394d1a806a06836535c8f9110715608e2110743863e4c9d37abe696a3169e904a4ef507105d54790af4165d3a5a7559b28568b86b73761975b8c0b3e";
   hasRunfiles = true;
@@ -5634,6 +5794,9 @@ calligra = {
 calligra-type1 = {
   revision = 24302;
   stripPrefix = 0;
+  fontMaps = [
+    "Map calligra.map"
+  ];
   sha512.run = "325764734735203d4e355d33b30a289d699fa10377212e39bf33d3195f2dfdebd4397785d69d6ca392e040cd2fd5bad20b0055b5f92620149fc96ed0d6d337a7";
   sha512.doc = "c1acbd3ae35c423b9414b5e132e1a164d4b102ecf9d7305548bb5d203a8d3a25309e2aa5a5d09277d310b9446013ca2db65f9ce6d5783432ed325838bfc9a48f";
   hasRunfiles = true;
@@ -5697,6 +5860,9 @@ canoniclayout = {
 cantarell = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cantarell.map"
+  ];
   sha512.run = "37fd0c1986f76d823be6feecdb76bdfdc8222872355d0cd66c340950ed0ad90e057acee0f90ad0e41fc77b61a682f8bd390d98c8ed559015f9a0a65014b11b2f";
   sha512.doc = "17c118e49fb173158f7c5cfc31c1bee1063cd38bd1ba976e2629a648c795295e3796e845b735cab07de99296088d09ed9d87ed92c22af3e1dd1ec1a7a90a04d4";
   hasRunfiles = true;
@@ -5760,6 +5926,9 @@ carlisle = {
 carlito = {
   revision = 64624;
   stripPrefix = 0;
+  fontMaps = [
+    "Map carlito.map"
+  ];
   sha512.run = "7b958d163439d9f3e7d6f8cf998beb799013a051a1b79719930d0efbc13e167170e330908a947a9708f55897e6c0e56ea020fee5876b6f3bb9e76dcc5997a66a";
   sha512.doc = "6718aed70469e95dc4d077552b453f81c9fbbcad6201194eb264bba6aa9c9f9b1b1b09d1ed987b963d6b09e13afe5dfda1436333f0c44ee3c368caa90d790613";
   hasRunfiles = true;
@@ -5768,6 +5937,9 @@ carlito = {
 carolmin-ps = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cmin.map"
+  ];
   sha512.run = "61ae809b5e4e7ff493de30ebb825870ab9caa8dc64d6d3c82d4654fece82dece4937c798e3c1e5086a84411edbcaf8c2ea777a9534865b38d4bc5457ae59aa25";
   sha512.doc = "284d9f740d1e4b1a4c989b527bac80e54afa74013d1234bf9e1c2d42ac2ca4387c3b0d24004818e1fb92b001582114a4432480804c721cc7df0bd3b85835f111";
   hasRunfiles = true;
@@ -5796,6 +5968,9 @@ cascade = {
 cascadia-code = {
   revision = 68485;
   stripPrefix = 0;
+  fontMaps = [
+    "Map CascadiaCode.map"
+  ];
   sha512.run = "3164663a54bc3ffe39aee9cbe9501a3d405fd8879059081ee2f0f66bb523686e25f3a7fdb69e61cb623a17ed21f21b0d6752f8c05b09590672d04315d5d6594a";
   sha512.doc = "c84b14187b080c744a33319a4ef791be09b4517d8cd0e9ed2dbedfbb37a09785dd6244a4e4dd1cf67cc8f6ff608b6ba8d2299c7074921f6443d6208c702feac7";
   hasRunfiles = true;
@@ -5902,6 +6077,9 @@ cbfonts = {
   deps = [
     "cbfonts-fd"
   ];
+  fontMaps = [
+    "MixedMap cbgreek-full.map"
+  ];
   sha512.run = "0e7cecfdfa102113f75f46f9c8bc76f578fca6c967128bb8b203af76cc64cbefd123ae87a8b04a9780f498517bd9f660d12e2dc586220f2c12cc8aa76f1aa40a";
   sha512.doc = "a069b7ca1b46e5656a05a5e38a0f9ea5c3ab1e5301edc47d7fdd43817a8f5d641980c2e54b7731dcbcf16e12f0dff17df5a816d66f7bd2b613232788815bb8e0";
   hasRunfiles = true;
@@ -5920,6 +6098,9 @@ cbfonts-fd = {
 cc-pl = {
   revision = 58602;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap ccpl.map"
+  ];
   sha512.run = "3d0bef5ca5c37f1cae98bd0555d714ed4408b6fde4ffcfa78cf2512114c9aa09b81b23bc6d76705f64dd08ea493add2027e7af997357ff5c4cc360deae11ba92";
   sha512.doc = "f5503008430e969a604973e4481f8ab51269a2c3570f757787eb7a1a9d11b8508ec7ca1709a21b9e2299059a9c8ca20e5806093bd24166eb44e167c06e4fd0ee";
   hasRunfiles = true;
@@ -5948,6 +6129,9 @@ ccfonts = {
 ccicons = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ccicons.map"
+  ];
   sha512.run = "4e755538440c87c2bc1f8d57d41ce78ddaeae9a0e3c1c85aeed172c2a25e952963b26245cd1ddc3222285c883ed4574ac4228d17f1263db31cc330bdb1f345a4";
   sha512.doc = "0e4216adcbe01d8feb95d31e2df143ad739f66c2239196f9f5c58638a87d320949256baee32703663d6116bd13b4af607dd38d16d4ccae218af55f5402308c03";
   sha512.source = "af84fa01272028018fbcb4fa9e04971b9580b1e6fd63f0e07419a088005b75e852a122a5ee0416afb7391ff165ae39549f8931a157aae1ea272d97be05132e8d";
@@ -6101,6 +6285,9 @@ cfr-initials = {
 cfr-lm = {
   revision = 36195;
   stripPrefix = 0;
+  fontMaps = [
+    "Map clm.map"
+  ];
   sha512.run = "02e30f6d6d19bede2121ee0a8db20c3d96c26ef000ffeab08e800bb1da994dfa2cb356a6d67c815e8579566cf97b33b956c79940de61725524c4a239f7c1a251";
   sha512.doc = "32488ecec8a781f5548419a782775725e6b32276bab5e1d7f660b99468d47e71087fb35b8f4534f874b1dcf236d04eae9d7920fcf0bb46e139a4e7fedc415ef1";
   sha512.source = "643e7f1b48e3947506e97e1596972b686fab538511c2a0749ad936285c1e097ca8677730ea0748d1def6d6318030e7bb289e55d0c8f0ae9fc01fb308e974c24d";
@@ -6179,6 +6366,9 @@ chapterfolder = {
 charissil = {
   revision = 64998;
   stripPrefix = 0;
+  fontMaps = [
+    "Map charssil.map"
+  ];
   sha512.run = "214d5ac5b367e863424c54f86a841c4d1d0eac7e54cb6421619906df0e6d81661ac74e6db7369281637252ff295535e8f930442851cd0268fe9d007ddf07a913";
   sha512.doc = "3f492d929afbaff4d5c1aac1d57fc719caa04e4428de280cb8f3a6d376f6f7c3084ea8ccdac891aaa9f754be12eab99ace392d4090fe692b1d195ed12b619b49";
   hasRunfiles = true;
@@ -6257,6 +6447,9 @@ chem-journal = {
 chemarrow = {
   revision = 17146;
   stripPrefix = 0;
+  fontMaps = [
+    "Map chemarrow.map"
+  ];
   sha512.run = "4a95a6b81bd649764dea052984eb21c7f9e89c612ff96d23907eefce29e2d33fe92bd7944d94a6b108213d1820b3340feab35e3646f727288cb1df9b78302990";
   sha512.doc = "882e6c6fbeb5223fc1d2404e8b9ef9bce2c3b2ed1279d2bdc45616476a856c63fe07cdeb42e27f3bc459199f3537fc620ef08c00f4eea83df77502463fc30ca6";
   sha512.source = "19903052aaa97902f721892bf4a9df8d685db46ffddb4cdeb4df280c24a72d2166bc13408a32d5c760272aee45ad5516b899c0024ff3f077fec6825f94e36736";
@@ -6561,6 +6754,9 @@ chinesechess = {
 chivo = {
   revision = 65029;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Chivo.map"
+  ];
   sha512.run = "ef91cfbaa46c34bdfd891c3bb752e203d1cf495d5a9f12523b3c59fc591c7abd78ad943d3f4da8abb46fea9f25cfbd280785c721cde155851fa34f3f3a71afdb";
   sha512.doc = "b174894b8ebc6bf729ca8c8cabeb9d3fcc709d4f3e0947c689489e4caaec985f35265d476e44763fa5bfccb83308857b03cdd01ec8e7e47cf406d6a86a10d071";
   sha512.source = "768f1a93665644d547e611abb5b773390205ba2839812ce222bd7d7b184851d46c7e1915d290e6ee87490faa6a8b0a2c59c3fe4a16d86bdb28fa77d6df4e8f3e";
@@ -6705,6 +6901,9 @@ cidarticle = {
 cinzel = {
   revision = 64550;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cinzel.map"
+  ];
   sha512.run = "5e02892250c5b787e4c6288beae9be2b9a2a2929a31a18c40ab3bb7609a23741e829747aaaa639f8579f229005a2171070853ca79e23b7185ee5edfa090bcf13";
   sha512.doc = "7edcb9894dfbae936ef6dbde1645890feb50ba5914ffdcfd4539a44f8c8ce24f150662fec06663de54e8bfa69479c8ce006038f063f6587bf70f7c3449623a4e";
   hasRunfiles = true;
@@ -6829,6 +7028,9 @@ cje = {
 cjhebrew = {
   revision = 43444;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cjhebrew.map"
+  ];
   sha512.run = "65a73380bcfd8892ab2eb93d088076e2d5371019244bc8a65a4695e69a45f743248fce59557533add032a02a0b7ea4f02d6ea4634265d2d9718a5b100f5a18c6";
   sha512.doc = "591d932ae099aa168d55f9479842d25c5212dd7aed27eac1a5d05a111a8a396baae7c73ddafe1087a7b8008528c50b1a85825851643d8107133d41470ce1e397";
   hasRunfiles = true;
@@ -6932,6 +7134,9 @@ cjs-rcs-article = {
 clara = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Clara.map"
+  ];
   sha512.run = "549efe7ed1b523e0f414d8f6401137cb0078256f514253199f85e436a5bac595d7525380fd986fd0c674d087decb23fc401f41a67b193c58f1e8e3bf95a8283c";
   sha512.doc = "6b7912050fd352e3095f6abede303f67d3c779b778825852bdaa37345dfec91df860e5b9d0f2fccb7e4e20abfb93740f7f8dba5959aa1d630b7cd990bc0fcf77";
   hasRunfiles = true;
@@ -6977,6 +7182,9 @@ cleanthesis = {
 clearsans = {
   revision = 64400;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ClearSans.map"
+  ];
   sha512.run = "010e18c8a29e46acba07013b8ed1ec535373199cb2c62d895c906b24800e2055ab3aeadc0ef8bf761c1d47925c8741bdfec4d18b5cbcb680b07fc258c1313126";
   sha512.doc = "a2be117afd912bab15e5ef69cfd54dd66385699677dc357233efaa73e2bd2cfaa9a29c0cf492f48ecf152a9640c95a4ebdee9366f2c27bcead571b5177345ed1";
   hasRunfiles = true;
@@ -7140,6 +7348,9 @@ cluttex.binfiles = [
 cm = {
   revision = 57963;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap cmtext-bsr-interpolated.map"
+  ];
   sha512.run = "e65b2096ca183ca21d8ff987489223bc98750fcbaf4f9f9a9996f5153a76c5587d1ad77693234d02f80753b8b8cb86fd957514f82065bd7aab9eb64bad9003a3";
   sha512.doc = "39ccdee82d86f01e11aaeb53844639b4f976677c0baef7675817fafe4263e8e44cfec144f6fce265c9c80d9a9373a2f46ac8a55b7f20923c680eaddd0222a045";
   hasRunfiles = true;
@@ -7148,6 +7359,9 @@ cm = {
 cm-lgc = {
   revision = 28250;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cm-lgc.map"
+  ];
   sha512.run = "5fcf591d132314d8ce160e3070036f6fba56962ed40d8fee7b58b0e8219a8124bcf380b1be4e943209ba230f05cfcd374c96e3e799695a018356d12be3215760";
   sha512.doc = "eda2082e865dec858a010b757a2d60e0be9526d2e5f2c276d1c5e8d386a71f4d7631d1af8dee009f9d61e0682904697bfdc89222863499c8e1aca2b11d0f3ed9";
   hasRunfiles = true;
@@ -7164,6 +7378,14 @@ cm-mf-extra-bold = {
 cm-super = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap cm-super-t1.map"
+    "MixedMap cm-super-t2a.map"
+    "MixedMap cm-super-t2b.map"
+    "MixedMap cm-super-t2c.map"
+    "MixedMap cm-super-ts1.map"
+    "MixedMap cm-super-x2.map"
+  ];
   sha512.run = "45638ebf4ef2ffb7c4b74669ea089a9f8d3ab4b98e555b3f9b2e9bd9732b48fdba61dc91188e2c8962b8bfa3caaab31c10d1ccd3e0aa9e26197b148e59576f8f";
   sha512.doc = "5b524c55dbcfa1db87484d3437156ca9987fcca66e2c2e6d69e562c48ae708e51f089051524f324cbafb72a29e08f90e70c408d7fea7341e9ef0b5d53288b7d3";
   hasRunfiles = true;
@@ -7199,6 +7421,9 @@ cmarrows = {
 cmathbb = {
   revision = 56414;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cmathbb.map"
+  ];
   sha512.run = "8e720662ac4d00557b143c883e9d410da8593cdfa056b5320e0ff348c2c0e37f9c0045341c28e583aa544790e576d9b7db8c80f93cffd8c4da699e46e35f73e0";
   sha512.doc = "f1b0b1067260287c66347e52111883834d575e5857a3aede8e14930252a284b5c0bd6bd7247c9ee36462d57a63d351110582cb66ca894d9430d476445f37da44";
   hasRunfiles = true;
@@ -7218,6 +7443,9 @@ cmbright = {
 cmcyr = {
   revision = 68681;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap cmcyr.map"
+  ];
   sha512.run = "c42006e8d596b231c3ef7f3f7123292a9563f6bb0881a7807625bd05e49a67ffd37d6e0965e6da36cdff816cdbf780e54b79b999ee5d0a18fad315f2724cc839";
   sha512.doc = "153db17097c5a1e6bbad3e13e7bbfaf13bd8380633f62e9323d2c0514a2649b001c997bad9e7495a88f5cf9c1289f2987d147e22bdca6100e7adc1d88561d443";
   hasRunfiles = true;
@@ -7244,6 +7472,9 @@ cmdtrack = {
 cmexb = {
   revision = 54074;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cmexb.map"
+  ];
   sha512.run = "584aa7d96c86be809a1da92955c92c9e73946fc236e9991925431bae4041001f6b4d7029b13004ada0435ae291a90fce8990e527188e1f35a3be922a39faefed";
   sha512.doc = "e6f362bfa79f6c32537245af645f8b6a343ef5a9204b9cd50cfab9337e9617554bfc3fc813fe4c65d2664fc617d460f15a4ea099961699bbee82381df0856760";
   hasRunfiles = true;
@@ -7258,6 +7489,9 @@ cmextra = {
 cmll = {
   revision = 17964;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap cmll.map"
+  ];
   sha512.run = "8470819c5a37b3d8d1d44aae53b62ff020087e1125f381e51ef4a639fd6b2394c3d6f15a3a86fe70e61a4545213059bde6fc3e9d06cd054e46218e90e64c0543";
   sha512.doc = "71a7cd27a2744e8e3ab09b8fbbc514eb2e38d9740349139212f0861c67948fa1a98728acb1d22a4397fe95d8efd5c6fcb87a1843a1f9dbd0d161e2e835e1ac11";
   sha512.source = "de17c8e0627408358ae3de41a5bf557d99abf76bb480ab28ef9df424d8b7ae1f73ca2e30f4eeb26ac9eb2dd36ddafa143cd49ce6618b2ca36fcfc6e22e83d217";
@@ -7292,6 +7526,9 @@ cmsd = {
 cmsrb = {
   revision = 54706;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cmsrb.map"
+  ];
   sha512.run = "2fef47e94ba1a5ad0774667ac84e29040a3715c413990585aa09c866297beb61c7da533685bc1e102c8edb30d7bf6bddf8fee5486dd6d4d6ea9ebe51d2424196";
   sha512.doc = "9200b4da942f308cc60dc53b2fba9cefb7448e95d89f0c34d03604e5f7a9119aea4e762d70cfa35fd12f555f8c4ae1ab4c0b12abb04742e17b6e680bd80cc9d3";
   hasRunfiles = true;
@@ -7310,6 +7547,9 @@ cmtiup = {
 cmupint = {
   revision = 54735;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap cmupint.map"
+  ];
   sha512.run = "ce08962145a80b7b6748145a7385cc78e361295d85ea96f24397aad3025b7eaa2e962d4d30380ca1a8d22da7175a3135abacef78a76d9d4615f03aed049a4b10";
   sha512.doc = "80cab8f9387e74db3b3650b8e7b055ecf1e094f75f0e43c4540b32658e43e392c82f3fa8ab6a6c08495ef6f9f2773501a7f282acaf7d7d640f0bd891cb8b1f08";
   hasRunfiles = true;
@@ -7364,6 +7604,9 @@ cntperchap = {
 cochineal = {
   revision = 70537;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Cochineal.map"
+  ];
   sha512.run = "c8468bf472552dbbcbb84a5134a5ddc84405aab0d3b98015aba60d6da0e02896d929582778bfecf3694a7a0174d31214c9231a1da11284af6fdf3362b95e179b";
   sha512.doc = "43f7de109858a3e9a120b51022d3cab77dd0ae4ee2dd5e2d032ed3f9ba669ce2f5280bd359d8dbf158181727442e1e00ac8914d8cbe3edb93c40ab01362a2dbf";
   hasRunfiles = true;
@@ -7448,6 +7691,9 @@ codicefiscaleitaliano = {
 coelacanth = {
   revision = 64558;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Coelacanth.map"
+  ];
   sha512.run = "279faeb81ba3169bc72848c691ab42729c670bed5c41a2add3e338bec0c109ff15ffcb492e19834d0ab2293040a659e3994f374b5a6028d505823e372eab7f48";
   sha512.doc = "ae548dfea88ab4315674caca7e0531bf52512b6ac8198853e0c70661e91061e3fdc15c82be7d6f1ee5c92a7cf340e65b0ce99665da82507b9d9f9b119722c2b7";
   hasRunfiles = true;
@@ -12421,6 +12667,9 @@ combofont = {
 comfortaa = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map comfortaa.map"
+  ];
   sha512.run = "6b851b6c56ef5b6ae6e59c5a3606238671af34963c5dfb8a39a9bd6b84597f673d12963abdd687013f11edade4fb9ae37794a4789650c38c29f64bea1d41dea5";
   sha512.doc = "b1b4efa42012646538316af9bdd5c724f285aa784e18e85a1239376dc02cf1b79bf43bb0ce07a822995a82811eb6562e6943aca0b903f9241bda088ac0675fce";
   hasRunfiles = true;
@@ -12430,6 +12679,10 @@ comfortaa = {
 comicneue = {
   revision = 54891;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ComicNeue.map"
+    "Map ComicNeueAngular.map"
+  ];
   sha512.run = "5dc900d215fef53fe69ffda6e9120f1230173f40d220c71eaaa3d7eb21610b214591bdc043f27f0fe5259daf2a800b695167d2deee1810a67045997aff7c2a76";
   sha512.doc = "24baee44951d9dc6fd70b6b6092112a1d7d13c394eeb495162c3f80444ebd799b526acf7b7c86b7590afc9f5f6efa97c10b661ddead6ca11a168325c7c840650";
   hasRunfiles = true;
@@ -12662,6 +12915,9 @@ context = {
     "mflogo-font"
     "stmaryrd"
   ];
+  fontMaps = [
+    "Map original-context-symbol.map"
+  ];
   sha512.run = "8951a79ae04a0bbcf7ec5f4d5f68e0f6ad3f79cfcce7379523b9bc74dc6ce3d0f07f628f3e182198ff37d313ca549b7b2512eeb28ce4a9c5460ec20ed7f2d2e7";
   sha512.doc = "b2558db5417c5c1ca10dd80be258fca33d9e5fd1b16c3f1baa7c871bb4d65e42a75c95336ae988864e7c4dd350c722eaa96c446839ca6d147949b38fa78461d9";
   hasManpages = true;
@@ -13073,6 +13329,9 @@ coop-writing = {
 cooperhewitt = {
   revision = 64967;
   stripPrefix = 0;
+  fontMaps = [
+    "Map CooperHewitt.map"
+  ];
   sha512.run = "91047a9831d2f1bd9ce8c3d6b1089316a40312b4920d9e8e26df4a5fc64293eadc45ac211c039ac8bc83df5d3406cfd006d1192945bb3776983f5d571c9e364c";
   sha512.doc = "211601a3a1fe2092a1cbb67cf6fa71f7ea2225f425a8556c1b88396c3f0d721ee144346fbd29204c4d68da77363653b1f0b14693139278f2b22a6104bdf949d0";
   hasRunfiles = true;
@@ -13110,6 +13369,9 @@ copyrightbox = {
 cormorantgaramond = {
   revision = 64411;
   stripPrefix = 0;
+  fontMaps = [
+    "Map CormorantGaramond.map"
+  ];
   sha512.run = "1f1707a00298fc2015ba01259dc8558a79e72a10753f3c101f318359f0d4a3b6a9ae16cb1c1825ccf152fb50045f2cca429b00da27607fa8ba1046ad15e5a86f";
   sha512.doc = "85a5ba16ec8756b5052b4e6342d47e83c9fc8f348ac3b4c067afba131a7ed853cab04c22f8723a912a1178cc8ed373ab5fdd9d2be0d9816918bd22233c13ba95";
   hasRunfiles = true;
@@ -13156,6 +13418,9 @@ counterz = {
 countriesofeurope = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map countriesofeurope.map"
+  ];
   sha512.run = "fa0faa88db3e7c1baf73d5fad1fa196915c752e15dc024cef051127581f1e8a3d218d5f2f815b44bbedc9bd6fce6292825929471b595771e9ecd0b5131b11d26";
   sha512.doc = "e99ac6f4b57a2aed80cfd1214da7625ae94336677f0cfa0306125b06054835c2c3b23ac901cc3f421d56e4d021dd468db12e21acd6b3883c8b937919dbda056a";
   hasRunfiles = true;
@@ -13175,6 +13440,9 @@ counttexruns = {
 courier = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ucr.map"
+  ];
   sha512.run = "30d6c8906671239b9ef04b3c4d571f59e928ffefc965cd592ecd3277062c778b6f8cb0782f5eb8c6bc27d03b69a88a120593477ced93bcc44cdd4fbc3e5b8adb";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -13190,6 +13458,9 @@ courier-scaled = {
 courierten = {
   revision = 55436;
   stripPrefix = 0;
+  fontMaps = [
+    "Map CourierOneZeroPitch.map"
+  ];
   sha512.run = "06343c68149c28b8808a38d5d7f2a57e9bff996d836c90a352ed77da4637fff150a18c13b8807f401e3d9cc9e7ecc773275f8ca18e2dc8d315ec5647c3f6b55c";
   sha512.doc = "737818c02e35e5502eca7bd80427fb814f54d495bd1315b124ad32a033da0ba0b9b4a2cc5a1f8c19b0f8d91f8534a783253742728ad1c8499d97e14fc3a67938";
   hasRunfiles = true;
@@ -13310,6 +13581,9 @@ crefthe = {
 crimson = {
   revision = 64559;
   stripPrefix = 0;
+  fontMaps = [
+    "Map crimson.map"
+  ];
   sha512.run = "fb807f6602365c65470ceb947e72c63171fc401145b83a63429836d274ca1a0877008c27e4f6416b2a89a3fceb2912062749deeec81346e59c734fa14e4cc289";
   sha512.doc = "105068d0dd81b33a8c073ab33542f2ba7893d4e1d95dcf7af58b413d54a3e7e0cf24911fc2e56ee9821d6d55f016355d4e42db2d981e48e1feaa98b498e20e73";
   hasRunfiles = true;
@@ -13318,6 +13592,9 @@ crimson = {
 crimsonpro = {
   revision = 64565;
   stripPrefix = 0;
+  fontMaps = [
+    "Map CrimsonPro.map"
+  ];
   sha512.run = "e119ee9df715d799231eece3e5c5c0c125077b9ca526d1293f943dd2700b45da0bbbac90a964248415bf9cb1a51923bef26995acf25397216edca531594d321d";
   sha512.doc = "3f151947afe36a62d958804ffafddf533b9970162511ff2038629582acb15b4614d9bd5ffa28b53961c53996d2a8ebc0852b511007ae83d2b4f5f908a1d1b04e";
   hasRunfiles = true;
@@ -13435,6 +13712,10 @@ cs = {
   deps = [
     "cmexb"
   ];
+  fontMaps = [
+    "Map cs-charter.map"
+    "Map csfonts.map"
+  ];
   sha512.run = "bc956c595d4460f35c64c92e7730a7cc9cd3af95301afba56c49bcf8415666863de926733409ce1afd99ba767fe3a3fa45c68f2dcc912b69c6f72b618289fb30";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -13785,6 +14066,10 @@ cuisine = {
 culmus = {
   revision = 68495;
   stripPrefix = 0;
+  fontMaps = [
+    "Map culmus-new.map"
+    "Map culmus.map"
+  ];
   sha512.run = "4f6f370a13ce2cdea9a1dd32bb1e2243000f4cd566f1a7698c641b9ad4793b3c1148fb914dd748e37b5e7bd6802144d4e1b9fd4c536df58bcb4863ad4f9cd2dd";
   sha512.doc = "4c1217f0cd27bcd56c11006b7b3749e661aba567798b2e397a21b3b0df39a35acb6355836d4eac4fd619509b09b57c7e39a97068343b6e28005944ebf0430adc";
   sha512.source = "2dc2e6bd71ee949208625fc259cecc6a0ffdd0701416c5775cc32855a2bbf8a533238e07d4fa08c090ed3ff627613c27f0cddeb2c86eda1b320cbc68e236a6a0";
@@ -13795,6 +14080,9 @@ culmus = {
 cuprum = {
   revision = 49909;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cuprum.map"
+  ];
   sha512.run = "578ce2e5af01e81ba80c0cfcc0225985722c1515e8f98460a1cb5d71d8ee4630d400f28dee04bb505c429b13f5cb604364d26503af0b5d9bf98164b218b09413";
   sha512.doc = "b9a9bda8eab6087a134b3b0660282998c7c3fa7fda8890e61ba107b9f7576d85ca01b59664c1c198679151e01cef6ebce5b8de29644a2e249a6ca2100f526fe2";
   hasRunfiles = true;
@@ -13994,6 +14282,9 @@ cybercic = {
 cyklop = {
   revision = 18651;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cyklop.map"
+  ];
   sha512.run = "dd6584831fae3eb388f66e42f289f9bdeff401412c7df471752c4aa56bc67c16c56f6f271d11c289a1389faae138ac15abc41bb716bf344bc2f49fa087ecd380";
   sha512.doc = "4d81a01eea30a4f86b2f0a7c9c21923196dbd28c7d5ba5c1639068318ef227720550b3052cf0ead6f3194450d50dce9acaa325a0dace0e6fd230e0ed11d9b106";
   hasRunfiles = true;
@@ -14034,6 +14325,9 @@ cyrplain = {
 dad = {
   revision = 54191;
   stripPrefix = 0;
+  fontMaps = [
+    "Map dad.map"
+  ];
   sha512.run = "600bd3267a47e5513f51e67135920c15aa7aefb51f2c3dea6e912f26d1a45071f936e4c568afd322aa7e89d5139e68398b394c287d5076c17e310297fa7f8fa8";
   sha512.doc = "97d4596972c436762e33bd1d5077f7fdbe7da2a74b016a8841ad98536c2e9d9a2bd01a91b1ad2fb306c7ba06a0a5532d47c7b813d42b0bd82a3390f3bd17760b";
   hasRunfiles = true;
@@ -14050,6 +14344,9 @@ dancers = {
 dantelogo = {
   revision = 38599;
   stripPrefix = 0;
+  fontMaps = [
+    "Map dante.map"
+  ];
   sha512.run = "883c5d6f8368bed41002eae123329954fe38cc23a5e6db7feecd57c16540b6b9277cf7d13af6ce8f63994c11148708e1d3dd10ddd9d17457b015d40477f91eac";
   sha512.doc = "4612de774c6a39c7f09dfc99aa182fd37d9f3e32dece37726f1e87e48e5faae246f2959992267f5b2cb685c26177e47c5112fbe42b8f1ac3a60da92e6276a681";
   hasRunfiles = true;
@@ -14748,7 +15045,26 @@ dehyph-exptl = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "german-x-2023-03-06";
+      synonyms = [ "german-x-latest" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "dehypht-x-2023-03-06.tex";
+      file_patterns = "hyph-de-1901.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "ngerman-x-2023-03-06";
+      synonyms = [ "ngerman-x-latest" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "dehyphn-x-2023-03-06.tex";
+      file_patterns = "hyph-de-1996.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "3bf6178cdff605d289bd5b035416953b26911b636786340fb08eeedebc8a0a6ab45712547f6b6eb312751514216aadf36357b344e38fb3bf1dac84bdd6fe97a7";
   sha512.doc = "3e41d2581f5b96afbea332529ee3d9523d935fec0e517a1a39ce04a405328241cc3bff97a00af3ac363a2a413c4dd70c9e38102d1ecd65ab8aae994abc46e4ca";
   hasRunfiles = true;
@@ -14758,6 +15074,9 @@ dehyph-exptl = {
 dejavu = {
   revision = 31771;
   stripPrefix = 0;
+  fontMaps = [
+    "Map dejavu-type1.map"
+  ];
   sha512.run = "a26a57bd02b14c6e67d328c2c00174730b819f7da37ac147ec7f34f37195b6aa17e3223ac4d03617f5239700b1dfa45ca1741eed7b4488d2e604f02ac34ef2a3";
   sha512.doc = "7e3364a3e0863c63f2a66057780fa922cb53f4da2f81e42ce9e200d5a034854216f4d4b833756a6d4d6837385e48aa8d03f608846f2f95caa84a7ebffe3257b0";
   hasRunfiles = true;
@@ -14944,6 +15263,9 @@ dickimaw = {
 dictsym = {
   revision = 69720;
   stripPrefix = 0;
+  fontMaps = [
+    "Map dictsym.map"
+  ];
   sha512.run = "1f1c145c9231616b8fd603604b252903938ced0d0a85f4ce2bf6775f123d47a153d0f1231fc78e965da56befd94b71901c5ae441253d0266fc984d47e9b113b3";
   sha512.doc = "787f3d06b1239c95022c8dd64f07d98cca654250f9846e70f2e7571def724b0e316d66d60289ebbcef204088d6f603d7702af36b985cc640a4f963adb7d347aa";
   hasRunfiles = true;
@@ -15254,6 +15576,9 @@ doipubmed = {
 domitian = {
   revision = 55286;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Domitian.map"
+  ];
   sha512.run = "f228d1670e7904b08ba6064d0d1e8c23432fa826d52229d575bc2067e27adc904c3684d76889a8beb4885c3c9de5cd4a5004b9afd3f7140ae5e90d36b4961b9a";
   sha512.doc = "81af6be4f2707ec5d46d5f78d459f42d81e0cf62a17a8e695e42b666076637183447a9f1888b3f4c84e4832362eefe01b8d8dc5d748a640eb8e20c72bdfc1f3e";
   hasRunfiles = true;
@@ -15324,6 +15649,9 @@ dottex = {
 doublestroke = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map dstroke.map"
+  ];
   sha512.run = "ff1be47939d9a2e8ec4fe8e6852d9fa31c2776511de158611ef8b853ac73291d1aa4ffe81985bed60c75a16e3cfc963a3a8ce3fb9494dcf6664cd6d92a549e73";
   sha512.doc = "2cf0cc8936393be2b01ed06158b250a43514098aeec4007bf493bd9232fda911f4a59f45716fba5837e475bdc39a86cf6e1180d4220e6aef26ff9e0315389200";
   hasRunfiles = true;
@@ -15501,6 +15829,11 @@ drm = {
 droid = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map droidsans.map"
+    "Map droidsansmono.map"
+    "Map droidserif.map"
+  ];
   sha512.run = "e57eba23d2b7a84ca36be4b0a2988870a89b69a5c2f423d8961c8fe38c074cead0760c0061a545518959145ead02a13e321c5719cfcd7d6a575b7050cd74ef2d";
   sha512.doc = "d1f86ef4fd82d955e5f6560b1eb56805bbea621358c3e708f5c07d6539d278a4e61fed680afba425a212eb7383bcdc1d663d492b4cd716ba2c1872f9006350c8";
   hasRunfiles = true;
@@ -15546,6 +15879,9 @@ dsptricks = {
 dsserif = {
   revision = 60898;
   stripPrefix = 0;
+  fontMaps = [
+    "Map DSSerif.map"
+  ];
   sha512.run = "7fa159e85b370a1327a8cace1a20ed54b37f2413e553dbcd42c6e75cd224da35b47402d89d39971873e888cc9f89117fe5403887299ad8c43e6bf2f706df357d";
   sha512.doc = "e831d9ba6233cd260cd6f212f4f8b3adb360f6d701d121d26f0de95360dd56ccf7e3a5fb6fde990d875e60ca20f7632a4badaa9df8e3b98f16bfa5b176308761";
   sha512.source = "dcdf454c0d970338951b5b458df039ecc0287020fbf13c3ef46d2effc4aace39cdb424937d506783f572ccfd7cc136e9059e9894d4339b53f4b1be4b52d93579";
@@ -15669,6 +16005,9 @@ duotenzor = {
 dutchcal = {
   revision = 54080;
   stripPrefix = 0;
+  fontMaps = [
+    "Map dutchcal.map"
+  ];
   sha512.run = "308253e2b148cab892ef0ea5004cce0c3e3fbea4c0555b67f49e554734b16bc5be9baa08119fd0a2186360cef20e165b5133ce85c793eceaa9955673ec4594ec";
   sha512.doc = "1ac89d2c4ef090edc8c354a3f869485d3af9c374da012fb51edfd22f0644d63a5c380aad115b6dbe83e70846904b722b69fe4093f4a7ac8a4a3eb1c1c97f25b1";
   hasRunfiles = true;
@@ -16041,6 +16380,9 @@ ebezier = {
 ebgaramond = {
   revision = 66604;
   stripPrefix = 0;
+  fontMaps = [
+    "Map EBGaramond.map"
+  ];
   sha512.run = "4a676d0016c5b3c4e513dca01e7e2f1b5bfbc061e111935380af4937bdfe2493927b226b28972c060ee0c09e7c27c6bf828ea09151eec0b8df67530f62e30aac";
   sha512.doc = "82713ea36e1eeb1d2673a049d9ffcae97627406571e6e8e47fa6a6853511beb5a5eeef8a63fbe88e6c79539b1fbde880d0b2779f6f01f20eb7b1c7fc716104bc";
   hasRunfiles = true;
@@ -16049,6 +16391,9 @@ ebgaramond = {
 ebgaramond-maths = {
   revision = 52168;
   stripPrefix = 0;
+  fontMaps = [
+    "Map EBGaramond-Maths.map"
+  ];
   sha512.run = "5d65f676daee62f96875def0faf6d1fa217143046768985956372473b4cd3c6c00ca650cdedcdf677d6ae6a03c65743d30df6d32c36cc8366d8a1a9961bc11d3";
   sha512.doc = "d2207e0f6535be6ed1a53fc15717a60fab0d473da4f307cfc70c7271fbd93e7f6cbd92d1c0f0738da6d1b607832cbed95e5c87edd53cc5423f35f287289b4573";
   hasRunfiles = true;
@@ -16427,6 +16772,9 @@ elbioimp = {
 electrum = {
   revision = 19705;
   stripPrefix = 0;
+  fontMaps = [
+    "Map yes.map"
+  ];
   sha512.run = "c12af3a1e6a76d4a94f0d02fa5802179fd1f47e31be29e2151e7be3f569f027137c9d0268c86696d822b8d7a4c88ae2ef264341345c6a7421a8ec1026c104213";
   sha512.doc = "b840b153a134fd9cd923aa9f70576b7e586bca87d7f1b9cfbf7a1f25ac4972905989876545a914ce845096dd32579901ece93851012d057114c0c61b1eceffa4";
   sha512.source = "caec0c43c2870a6640863bc060e02c764b235336123777181ae1fab42e32053af0e2c09c226dccbf8bc31b450c720b69ae67f01b66b36d0ba308282637afb414";
@@ -16900,6 +17248,9 @@ eolang.binfiles = [
 epigrafica = {
   revision = 17210;
   stripPrefix = 0;
+  fontMaps = [
+    "Map epigrafica.map"
+  ];
   sha512.run = "82e5dd9f781b6c3ad0bef743b117d9658ae9e0162fec524fbb59f35f13008d3ce9b37daef8d6b977a5ec4834a1ecdc06346627857445c5f19c89f4b202706beb";
   sha512.doc = "c90061813a408ea74da7c0a9a53c1dc0f4ef65a9ec1d96e92002127ef401abb5211b7f029630fa445725497018a6e5ed3415e31c40001674405b13a4b4ebf6de";
   hasRunfiles = true;
@@ -16935,6 +17286,9 @@ epigraph-keys = {
 epiolmec = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map epiolmec.map"
+  ];
   sha512.run = "5cbe40240b14ed494500c3831a02659be437ad9710708929a69670d00b788ffc99d4d35e66fba04f170c9844faf2432c116d75e6b01988736ab483e7d0255a8c";
   sha512.doc = "d2c54da2821e850f17ea0a21d0bc67385e2d986948503fbc23ce6df5229708f0700cdd30a94d09cb310cbd911c183c40935e944341b6ee7ec56cdd9c2602011e";
   sha512.source = "a52ef99c57524444151175f8e345cc59ae99c962e31420363c01e3121e1b4ecfbaeed28a01c3185d9d57beae90aaa8fe55dec15fd0790088f72fc4ee8860ea12";
@@ -17173,6 +17527,9 @@ erdc = {
 erewhon = {
   revision = 63312;
   stripPrefix = 0;
+  fontMaps = [
+    "Map erewhon.map"
+  ];
   sha512.run = "760818dc93dc0564680d76c152f6db9f69870008f50c43227b329df3403e7b6b50f241b96822fa63aee6b6c64ae42ecc69369e8e94f43836d6cbb9125f197e94";
   sha512.doc = "bf9219328f592300b90c3aa0ad425a4adf6e6cf2e190dc21cccb4b15ebe9db8f3dcb88c3e72b6f89f7b9085ecaf28f8ef628fa3175e7fb7d59545c61e2d76f42";
   hasRunfiles = true;
@@ -17269,6 +17626,9 @@ esint-type1 = {
   deps = [
     "esint"
   ];
+  fontMaps = [
+    "MixedMap esint.map"
+  ];
   sha512.run = "5a663d01e9241adf1961c922c588888561f495e6378fdd7aaa90954c3e51c5f0f8e6dc1e1947c9f03ce3472e1aab3dde1b35e6b5f0814f5e2cda564a31a45a1f";
   sha512.doc = "081a225225f503fac403d306fac3ee3b2747341ef5c4ee9420f49a56ca959c7757f154c24f90ed9506041b13464ea216e6edb52f29790d189ea7b33c7c797f8e";
   hasRunfiles = true;
@@ -17315,6 +17675,9 @@ eso-pic = {
 esrelation = {
   revision = 37236;
   stripPrefix = 0;
+  fontMaps = [
+    "Map esrelation.map"
+  ];
   sha512.run = "a6d8a0a9bde08e3582826affa52142fe5b5a0dba43c4ff15f5fdd19cb24b561bcdcdd761c2a84238c9b31d3fe0a023949d2d0c716e105852443e06ced9df13f1";
   sha512.doc = "6698e9f57df458d9652ae98abbea08ce1f14c6c31677c32ab8cdf9b8fa0866a57c50028ea36d2c7cde133588358dce0b2bb37b7085995e4bab9ce7d3de1a541c";
   sha512.source = "17b0495b4b19ca5166835549c62c9c5e1dbcb59e2252e321860dc7254b9ebc9d073f317a344a2a8a4ec772ee1a931a5181d9d3b1af45f913b0ad04ebf189bd3a";
@@ -17324,6 +17687,9 @@ esrelation = {
 esstix = {
   revision = 22426;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ESSTIX.map"
+  ];
   sha512.run = "e503f25cb713918329f297a4ed088b63967eb06828fb753653aaf60ef99c5fb7db6507d6f0f74080b9fad2050ca1917f7ab873be2fb0bd3fcd126f29a43eb775";
   sha512.doc = "1233a284b88e5c8bfb29350b3b534e7a4c81b5692a9ac7aff5d69f77210e026dede300b511bc45efd18d6a96f6df9be2add166c80f0ee5d17c93732c0c242bf0";
   hasRunfiles = true;
@@ -17343,6 +17709,9 @@ estcpmm = {
 esvect = {
   revision = 32098;
   stripPrefix = 0;
+  fontMaps = [
+    "Map esvect.map"
+  ];
   sha512.run = "1a6940862940d8ca29bcb19c69817b84a7f71f7a8762d3a63829fb0e0e88eccd940f3e2973d8d05dbe9323aa1f80dc9045b531e3509239eab399f02a55e7988c";
   sha512.doc = "502d2cce629280d7c192ad11764c0c12e65f9f1318286d1acdc3e08c9d7d36b07fc3e5939c053aa57ad59ee91e73b4035c9bd1aafee3672ddeed4a64bf3cd7ad";
   sha512.source = "658e98e4c97dfdfcb34b396ff644fda060a645d15760bd975ad1397ca73f4ed24331a77bfd914bfe6f8f218aec9ab3fcc0a2a48efc19a0c6adc1024943584a47";
@@ -17363,6 +17732,9 @@ etaremune = {
 etbb = {
   revision = 69098;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ETbb.map"
+  ];
   sha512.run = "e034a9a750043f459b8682229bf01c08b341b4494fd6fc6669e1065652ae9154e0eef74038f1e5f16c2d57390ebfa70056198d563f3e454ee3e4806971a707d5";
   sha512.doc = "cc4ebfcb831cdd9f02c93248d5083b81a69c59163fec85d469a17841607affb51310858b022ea819055c6bdade821d330599c97838ab9f92de7b8fa4d8f8f0a8";
   hasRunfiles = true;
@@ -17428,6 +17800,9 @@ ethiop = {
 ethiop-t1 = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap ethiop.map"
+  ];
   sha512.run = "84f97fb5320ada95562aade797fdb62577e533feee9d7ece5cc51e17303012b198c0b1e6b4f720dc1539c4cb917ac71e3da6f48776d6fcfe84d4527ffd7b78dd";
   sha512.doc = "81f2ed72d5cef9119c94c4b0025e31be6739153e36b7b31a2c59b0cbe5a683a67746da8346345d561472fdbb760c07831d1936222ce1388ee12d70c9053ca8ac";
   hasRunfiles = true;
@@ -17604,6 +17979,9 @@ europecv = {
 eurosym = {
   revision = 17265;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap eurosym.map"
+  ];
   sha512.run = "9624b0a91a8491d4178051e8e8264e506725ace0eb1b4e4ee9f3cf38cf7868d392f0f4fae92947c74182a6cdf7d4cfb46319a269e4e3aac686ecf4a4cd2f7b3d";
   sha512.doc = "db226757ec82087da3e67fe69b5e9c2429e3cc2addb126bc528dda8bc421a4e9da2a367e64f119eb109e8898409a4e50177b81f9035ed1e0672bb902836bb61f";
   hasRunfiles = true;
@@ -18206,6 +18584,9 @@ fast-diagram = {
 fbb = {
   revision = 55728;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fbb.map"
+  ];
   sha512.run = "d63e140b60941f114b7aa7c82888c224715d6d173b88ca85aacdb3f7635aa928846e804e807830674d3bec0fc801435eb9e07406270c156d40e8c1994f50aa3c";
   sha512.doc = "c63214ea5a91ea6bab66a866a65c2ee43c64f49afbc3235e2f55cc0de89fb3a269bea45fb7d67ccbcda4bac3249b2f2ab14f780fde7cbd112231b16e58eac67c";
   hasRunfiles = true;
@@ -18279,6 +18660,9 @@ fcolumn = {
 fdsymbol = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fdsymbol.map"
+  ];
   sha512.run = "e8b2d08c3e64def77a688dc9d96c0b9da9eaa4c942e571578fa0a7e6dff9eb3910ecc66a7be9334ecd41fdc0023f89d8c98facc2d42cd0095c75d6e1b4da69ac";
   sha512.doc = "88efcb300a84b6c214fec37603ea23cb51043af78e1af8aa6e3ce157bab1c8e395e71991c7ea7854051f4706c6b702fe0d48edd76e919a4592e57320b1f77b98";
   sha512.source = "7be26193e05d57fba2a91d57b49cbadaf5594d9ea843b9d9f1ae15608cf7d45e40112aa286bee73ee16da976c7ca7bb7aef5627cf8f0023cded506a493426b31";
@@ -18336,6 +18720,9 @@ fenixpar = {
 fetamont = {
   revision = 43812;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fetamont.map"
+  ];
   sha512.run = "20c5c83119d70a94e66aeec0bbb9a0494525deaf9addb9b91d8d5595397ab5a1195eb9d72056a5fd1c3ca490aef66b43558f5c5b86688e7d164360a697c331a2";
   sha512.doc = "16cfb520cf8b3030d546e1c7f7cd41772fc9d16ea55db6920a50945a7aa3034050d873d3d5da05c108ee303dc1c77217c8a1f014c2e9beaf36d932e33aefeb93";
   sha512.source = "de4a25f0a86f29d10fd1cf799ac6c8efc58633a7ba0c48bb33716c46e6b0e1c9d5be6ee4e8e4955739ddb324270e44d6fa658c360d03123c18cc275ba6abff06";
@@ -18430,6 +18817,9 @@ ffslides = {
 fge = {
   revision = 68353;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fge.map"
+  ];
   sha512.run = "0f97109ffa1daa97d4ad496c2e948a123a9fb04393e668c9c3b1a14131f6ed7a21ac9056c6f3766e3ab2d3a2caa2baeb67c4b59d6c6489299090976d697e10f8";
   sha512.doc = "8505aadb706e79e6e1d0faec203de577cf76acef5360ed7c29febc2239d2719a717a59e9d4f8fbf5d2eefe67be1ec3cc1ebbf9be47930750582df29bef2fa9fe";
   sha512.source = "c1d966e094ce4a61c6250717731a20c3db0a0e438b5d8acf1b5332cd05a2f6dfde1d0e99bd02ef5ee725c1242da9ef183f680a03bb7f10d7ed50d0ce4c2bb1ae";
@@ -18629,6 +19019,9 @@ finstrut = {
 fira = {
   revision = 64422;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fira.map"
+  ];
   sha512.run = "5faf4cdf1690f9d6c690cddbef813c8973517309144495016ef5d61ff5e5df9ce73f70b262d1c36ba72fa92f93c7a1d550b96acc4965d7ab88efce21ee20d682";
   sha512.doc = "b97fa7ebaefc3a057eae0a3fd14f43fad1a9789af0b2c43ca8a0c6969610b1786e24508b1367002527841a8095486d6eea180c59d95b1df904df846c943b88f2";
   hasRunfiles = true;
@@ -19094,6 +19487,9 @@ fnumprint = {
 foekfont = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map foekfont.map"
+  ];
   sha512.run = "45342633aec41f2a5fe7213dc418960d76ff196a08b906965e3b68f2c5ed264b3192ea45756133f12662e451fcad11d08232995c0de2493495c40b9b59cef7ea";
   sha512.doc = "7e1aa7a240d825c014be6af7be5cd7c1bbcbc6e52bd55be36f987b4a25223179bcc4c4d342906c10f9df624536252fe4dc5a45cd3b5ddb63f91e9f4c7401a239";
   hasRunfiles = true;
@@ -19121,6 +19517,9 @@ foliono = {
 fonetika = {
   revision = 21326;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fonetika.map"
+  ];
   sha512.run = "4db9e50fde60ac69373f5abd151f3e17275f5c492b6855a7f5dd8895650a79cda1feda43398fffebbecdd6f7e032f8935972ef573f79ae1cccc5844dc148352b";
   sha512.doc = "ac3f0de2a9a5b5052d4ae626b4368f8b1fef419503cab9a88d4bf89db348c1a756555a6cef7aa70bcf733fa032840fe9ae7cfe347fb40bae32b54506e60ccf37";
   hasRunfiles = true;
@@ -19147,6 +19546,9 @@ font-change-xetex = {
 fontawesome = {
   revision = 48145;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fontawesome.map"
+  ];
   sha512.run = "e08643104006c9e14c40bb965b4401a8fe296f43e5f39b285cd19d5aa0ed33602cc0eb6ffcc996e1d6e5aaa57dd906903324626ee40facdcb3cedc5216a3deb6";
   sha512.doc = "bbd18a60db734922ea006ebd00b0c9f90c34907a7b519a08bf007daf01cceaaf6db3b31c3dd8c76e1dac199d4f7c312116f6935b764afb62248b7dcfd92ac78c";
   hasRunfiles = true;
@@ -19156,6 +19558,9 @@ fontawesome = {
 fontawesome5 = {
   revision = 63207;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fontawesome5.map"
+  ];
   sha512.run = "d7f6a40797b2968c31b28f1bf273af9d27b7a87e7c2953748f354db2e760b027feb5a8fd52c8f367649fba24cd629d71c1b1368b8864d42eb84269e0b22b59d4";
   sha512.doc = "1727133ca0e1713c356a647e08a7e22af50ad6a67e66c54f3d9e9a0601bd4a693c365cda625b37be83cb4ece42aba8312488f4ba5e885cc44f68f7930dfd7add";
   hasRunfiles = true;
@@ -19254,6 +19659,12 @@ fonts-churchslavonic = {
 fonts-tlwg = {
   revision = 60817;
   stripPrefix = 0;
+  fontMaps = [
+    "Map nectec.map"
+    "Map nf.map"
+    "Map sipa.map"
+    "Map tlwg.map"
+  ];
   sha512.run = "3b1894d677b63c88010fe583381ff7c0c8a7c5c6753e62e166ffa8ae7f18d6a521b12a4e57f16634855f3b807605407cfad110eb405a3ad334f8a14bfacb6338";
   sha512.doc = "93de1f1c668d460644f8246ac25c47f10d99e91c878c50c3096e2df373e521e54412c239d89f5372c767cd768f7973b06f97f25705e865dd5c36cc3674496c0e";
   sha512.source = "555a7e3fb1f1202412dda95924b692f21b6ad7d1abb68b5fa789e360667b6a23bc377651d592d43aa67728a8bc9f2a20ad5b1cbca85c412b90ce8a8654b07b17";
@@ -19516,6 +19927,9 @@ formular = {
 forum = {
   revision = 64566;
   stripPrefix = 0;
+  fontMaps = [
+    "Map forum.map"
+  ];
   sha512.run = "17336de3385fe31437577e541a63fe10a9ff6f972e02776448a2012337499633eb118d86f7c1995cfbfd5b84360370c614a3687b18880e24a7e4ce06c1874117";
   sha512.doc = "6598777d072ce157440923c767ec77f710ef38bfb019b7134d0ef8ee216d1a66af185a63a54a6af0c17d537a4027c7fa322ebdad07466787e400b6ff4fd77d99";
   hasRunfiles = true;
@@ -19534,6 +19948,10 @@ fouridx = {
 fourier = {
   revision = 61937;
   stripPrefix = 0;
+  fontMaps = [
+    "Map fourier-utopia-expert.map"
+    "Map fourier.map"
+  ];
   sha512.run = "127699baefe3be6cf18d50da60d162ad0daa8794797b2200d91d11f290de4f209f2d6097283e9340fb49f20810bac7fb376e014e419994444a6611718670c301";
   sha512.doc = "7f6ac2665a52e2bf4fd4769629e00ac2192c68628784e3bb9bc5cf4f9f4c99e8e46485344e7a1019182be0af086e2b5b0ed557650b1d02ed8a9f6e2dd075d59e";
   hasRunfiles = true;
@@ -19626,6 +20044,9 @@ frankenstein = {
 frcursive = {
   revision = 24559;
   stripPrefix = 0;
+  fontMaps = [
+    "Map frcursive.map"
+  ];
   sha512.run = "5ac038493648ad14626e2a015c7dbf96a41257ab1d1086f9e79b0128df2c85af1a279e021e52c722636f8647364791bcf7580cccc1d80d60084f5a9a55a23317";
   sha512.doc = "eb0559574af52a711f61ab84cbda996c7cf4b2314b4d5faaa18824ae3396f041b7a5948151b2b5cffae6675bbe09c2e4358b81e9ad7792e5ece8a2912d7ff030";
   hasRunfiles = true;
@@ -19896,6 +20317,9 @@ gammas = {
 garamond-libre = {
   revision = 64412;
   stripPrefix = 0;
+  fontMaps = [
+    "Map GaramondLibre.map"
+  ];
   sha512.run = "2c8a9057bccac0b8187e7e7b38445102e2ee89885595d93eb3dcd88bea4fe18d73786b471812f9a0ba256a6fe16ceb3724902e587b3ce6a98a1461d554182698";
   sha512.doc = "b8a575d15c7020287313aed6fc7f08d4d6d9cc02633527a657db4fd0fe39a25154f7dbbd9d6516ecd4662d08644d803822a19da43348f955f553725558c0dd6a";
   hasRunfiles = true;
@@ -19924,6 +20348,9 @@ garuda-c90 = {
   deps = [
     "fonts-tlwg"
   ];
+  fontMaps = [
+    "Map garuda-c90.map"
+  ];
   sha512.run = "a806538598cae0365968ab20936631a052dc65f9f6056c39197f7b1c7a5aad717a7a8b72ed2a1af347f8ce91f27d7dcd74b758db8f01fc7810a8d658990bcc28";
   sha512.source = "58f62ec8020489b69743c0591129967730f9ad0729f7cca343ab6e6fa6675122a1e37bf73f090cae050cb695a14dbfb3c52346e3c528e660484d2cb576aaca65";
   hasRunfiles = true;
@@ -20026,6 +20453,9 @@ gckanbun = {
 gelasio = {
   revision = 66805;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gelasio.map"
+  ];
   sha512.run = "d5ef910eee7b3e26a180c88ae104da77becb4bed3a955938486d6763c2a0dc51e71ab6f9351304894d5e531fab714cf75f6a0cc421d074b3ac86931698582274";
   sha512.doc = "aa49c6e0bebb4c097b78ba11781f7027b783c6280a5fa0e3077f9c1eb20f6b372b3910f5c78b0103afa2429938a94b277bdcacd210afb8bad2bac92f5022ed8a";
   hasRunfiles = true;
@@ -20098,6 +20528,9 @@ gensymb = {
 gentium-tug = {
   revision = 63470;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gentium-type1.map"
+  ];
   sha512.run = "03a32d7926747e42f25daf87ef08f866b9145a7782fd372a4688404951211a3528bcad7ee5e4a6888cd8ede2602930f628141953c840268041edbde2624006ec";
   sha512.doc = "7cef5c563fa13b5b8458e2932be450edd48168da9db9ac45ab16ba608323beb4ea79f8dabf2c38b13b479de9ff3065a0cfa84ff5c259aea95495248e9794ec18";
   sha512.source = "b2743e38fe079ca3d46711fbcf810f4feaa1bf781e35bbe33b62cf45cca3b2ee1ab6da22d61965c440f987f9850e614d3f1691f8aa0d01beb0f56984c31e66f8";
@@ -20255,6 +20688,9 @@ gfnotation = {
 gfsartemisia = {
   revision = 19469;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfsartemisia.map"
+  ];
   sha512.run = "28cb811a30c06bd6390b9268dd2a7a4dadcb2fa9d426d9461af1ba5593b2c419ed1c7886c3aef9bdbb0f1fea3d6bf127ff6088a6b2c2048dcccfb21c2a06a5ee";
   sha512.doc = "9f2efd76c243177240f237f7232fc87eb33d7ea1177a7bfdf7d506077e19c40d3fd923a960595c46f50fa19979598bd06a1865cae8794d45f91da1d6a9a60a7b";
   hasRunfiles = true;
@@ -20264,6 +20700,9 @@ gfsartemisia = {
 gfsbaskerville = {
   revision = 19440;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfsbaskerville.map"
+  ];
   sha512.run = "b545ec586b3bdfe3da2cabaa959ceeeb4ff513b48024575b1b5e3c57bb2d10a0b4e2cd7507726275eed0826dabf03d05c20eb9d5ec341aaedc0313264214ef78";
   sha512.doc = "a45ed2b35774755a6558431f784faad4bbd63aa81ad5d80c3cfe3f7726604aea3e4de2baa72bb27a4e2271e9bfe180c8963d06b880a0efd2dc5f7789dcabb51b";
   hasRunfiles = true;
@@ -20273,6 +20712,9 @@ gfsbaskerville = {
 gfsbodoni = {
   revision = 28484;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfsbodoni.map"
+  ];
   sha512.run = "e01cca38176330bdc0a4b523bd2bd4f73a497d90a34682d29920e145d11ea099f163fa08470c79e10a27a137a5901d7da9db54e461667af61c687adca1960249";
   sha512.doc = "c70b1a32e945d82e50b8a37319ee2bf63d4800b381f317168fd945311485cf6c41c7a3112e89457f4ee40bd29736accf681bd61494120e3d41f0c8fb28ad466a";
   hasRunfiles = true;
@@ -20282,6 +20724,9 @@ gfsbodoni = {
 gfscomplutum = {
   revision = 19469;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfscomplutum.map"
+  ];
   sha512.run = "4013ef92910c3c1145708afa5a9ff13cfb0aae05e6b225c56c98090ea7cd223799e73212982312a14cf504a355dddce08e3364df8c046dfe462d07429cfa617d";
   sha512.doc = "5854b000522120f6a1b065300943fd8aebcd75f57da15d667616a3706d35ffa35cac0422712d0b008dc2abf2b9deceb0248fc044be68f893f6ad0eefcd50b316";
   hasRunfiles = true;
@@ -20291,6 +20736,9 @@ gfscomplutum = {
 gfsdidot = {
   revision = 69112;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfsdidot.map"
+  ];
   sha512.run = "436a8cb4ea88663ff3358d6991fce9364f197027797903eb1b5c74ec0a857059579f0a58597ca6427c1651bf89440d7b7c8965e79fc668ecf444dbcc9f7ed4a3";
   sha512.doc = "29b49271f62496e6537e84301b361d372b24cf208365d97f3ac1d6d5b82fae84ff82954ad45e87201eee0df9dfc58f3486049e219480d20add06e9eef934f17e";
   hasRunfiles = true;
@@ -20308,6 +20756,9 @@ gfsdidotclassic = {
 gfsneohellenic = {
   revision = 63944;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfsneohellenic.map"
+  ];
   sha512.run = "7290de85142975c61b28cc8d3e5919805590e2be5f5b442f0c371c393f92012ef6b00997bbac1aa1fb63914578e99eb5e6b26f6af8f51cb5ec7f4c53ede51fd6";
   sha512.doc = "231ea0eb57834e5b781cc3e8f49a85e2564756abe3812a432212fa7e85468117a1d80d6af5db8cec754eb1996d3b9716c12c403b1865d60b18660f454a2323b8";
   hasRunfiles = true;
@@ -20326,6 +20777,9 @@ gfsneohellenicmath = {
 gfsporson = {
   revision = 18651;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfsporson.map"
+  ];
   sha512.run = "f52d6cd8d0b674771dd56a5d2974fd3edd8b4685bb201489e578c62d1e31b5dcb6f2cb2e9b05702ec439ec7f0b35740e291d3a92de53b75870fd791858f8a474";
   sha512.doc = "3dbcafd00a88537db9e27aece276df08da805b59076d5e65395a4752d8ce57a794f23508238e96ec26b8d7e6d25e11992c2a567e44ca2f930bc44b9dc980202c";
   hasRunfiles = true;
@@ -20335,6 +20789,9 @@ gfsporson = {
 gfssolomos = {
   revision = 18651;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gfssolomos.map"
+  ];
   sha512.run = "6e6ac03cf7ee20accfb67855b3dce136e3caa2466fce760adef0a2c1633e0a170543cf861a6a07a0c80344ab026dc2f74a35c5543ea92a53f7ce8a1042f778b7";
   sha512.doc = "67640d1a95ad7ec43d7df407916cde264c5460cf400011cf0cdb3dc4caffabba370f2fc15ae945e20b6a9bb6623645f6ffe80034a781cdeb11c400bd23985e3b";
   hasRunfiles = true;
@@ -20371,6 +20828,9 @@ gillcm = {
 gillius = {
   revision = 64865;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gillius.map"
+  ];
   sha512.run = "f2ce20c1650588af9f446ffc6d69835e4e970def915e3912ef36ed8d065d717ccbeb125a783768c360328ba6d44e15f954348957d774dec8eb3b84f4b8e00406";
   sha512.doc = "df8f143a6a80e9e5038744744b649fc26d042672eca7080fc8493a965ef4e3bcfb714735e83ae9a3bb500e3a298bc9bc9d940ff343caaed4ebfb8bf8d8101fb8";
   hasRunfiles = true;
@@ -20836,6 +21296,9 @@ gobble = {
 gofonts = {
   revision = 64358;
   stripPrefix = 0;
+  fontMaps = [
+    "Map go.map"
+  ];
   sha512.run = "c30a0fa1e76d0d287ed9296bb379bbb284873593f8136aa567e2573ec9d20310ad5d2ff993b00714fc472b6d365e2556c488278216c95898ca44f1f5b5c681f2";
   sha512.doc = "6a9d31a1d55f65d05922b71d9651198f9f9a8c6df754cdc93c4605fb6bc241b5c7cb56d0313a2681f60f4d92c45cbc42a9f61eba0c1eb1ba447a0363ff72593a";
   hasRunfiles = true;
@@ -21208,6 +21671,9 @@ gridslides = {
 grotesq = {
   revision = 35859;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ugq.map"
+  ];
   sha512.run = "30d0d52c98f44945ed40f45f1e73ed60e6b98a8a74dbf57cdae5c2d400ef613f8bed2b89b3b6afbf7b98e449738f637911dc1becf0c0dd33c21a23ecac9a9767";
   sha512.doc = "d41ae946f315d87b483a03d8b5a1034706f5bda765c69fa692f117b79bd5046b409e42c7b17577ee086ec98795e8a93acd761e30815c6083520b4bd244c33cd5";
   hasRunfiles = true;
@@ -21295,6 +21761,9 @@ gu = {
 gudea = {
   revision = 57359;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Gudea.map"
+  ];
   sha512.run = "e32cd699f60de092f9bf04e0eae725555735478db9ae7bf0a01a8aa78ff303c5dedee7eefcfa94bc1d8012f4062160dcbcb25cd405debccf7eed20abec056cdd";
   sha512.doc = "633f6cace4db98c88e3a7ea1f68deeaf9b0fe980ace490807688b629b1e3b2b00a12717b66b641dd9949065e4f72f423f78788693ddfe2128752f8ac990fd43c";
   hasRunfiles = true;
@@ -21397,6 +21866,9 @@ hackthefootline = {
 hacm = {
   revision = 27671;
   stripPrefix = 0;
+  fontMaps = [
+    "Map hacm.map"
+  ];
   sha512.run = "6f4373f4e30d95c747ecbec45c53a9af23b78acb84a063dc0b2d4d5ed218e7c5f70d4f29817d39f6cf62cacc455cc3117ced589d41bf3f321a6f9d882823164a";
   sha512.doc = "bb6d5cd50e68ce84abd5f7296d8216d929b772f30e946508ca9bad2ffcd8d077d1927fcc76a5ea2e338799109b34adc8272f9f7f6d316f5af1312070f57fcc3e";
   hasRunfiles = true;
@@ -21681,6 +22153,9 @@ helmholtz-ellis-ji-notation = {
 helvetic = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map uhv.map"
+  ];
   sha512.run = "243904e50c3458e62bf346f5a48332709db226e54b17c731ed0bdac5fce04d76b19411a12b01b51ca93b5ff7f06eee38f78a8375f6244d7b7d53116713d601b8";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -21888,6 +22363,9 @@ hershey-mp = {
 heuristica = {
   revision = 69649;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Heuristica.map"
+  ];
   sha512.run = "de0cae8f801f690e2d07ef7b63ad4c91d91ddafb8c3044441acb9d6a8e943f1c1667e17c0d2d9e4677b3a1a562b072747bebeeb01ded4bbd713b4e6103221a4f";
   sha512.doc = "406d07cc807454c429e644b7572456b2d9f49d2f48093007c43cbd3087d108beec1806f810508a849bfced690c97141ab34a2daec7ec641c8bdc71cbb55a43cc";
   hasRunfiles = true;
@@ -21926,6 +22404,9 @@ hf-tikz = {
 hfbright = {
   revision = 29349;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap hfbright.map"
+  ];
   sha512.run = "91c8b007dd8ce71af9dbc98a66a82a395d68fc87a0abcf9518b5b89a98dc23b28f1b9b9aa551f82b920dc3e2d8b6500884eaa3bc98be48371a9774f9f283a641";
   sha512.doc = "7de24b513093d965fab1f8d7d13ec4b356e7f5495cb3a8f17204b1a786288488b4921df6b7e184262bdd3aa11fed6483a25d0bf8e898db05c8b1f7dff769c175";
   hasRunfiles = true;
@@ -22006,6 +22487,9 @@ hindawi-latex-template = {
 hindmadurai = {
   revision = 57360;
   stripPrefix = 0;
+  fontMaps = [
+    "Map HindMadurai.map"
+  ];
   sha512.run = "24a585a4452895c901b41e64613d0bf3b2438c0bdded45b38ec6b61206cca96d5f0dc12ee5fb0073bcce95f208971e0838469e000108bb2d24567b2c239ba936";
   sha512.doc = "9cde302caf78d14cef5c191c6df0179991d07d8dcf40dd46941a966062d3df2ed5ccd21b6f5e5333bbab9245962cfed9ba75161c16bd8e0a914c231f9f420ef6";
   hasRunfiles = true;
@@ -22571,7 +23055,16 @@ hyphen-afrikaans = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "afrikaans";
+      lefthyphenmin = "1";
+      righthyphenmin = "2";
+      file = "loadhyph-af.tex";
+      file_patterns = "hyph-af.pat.txt";
+      file_exceptions = "hyph-af.hyp.txt";
+    }
+  ];
   sha512.run = "0f969847994b3b377c752c23f802e8c51b4076efc2d43ad2560a72b83cea3bf0a64d7df18a59afe4289a4547a9f23cf81b0c365a499be85a2467579941fa9700";
   hasRunfiles = true;
 };
@@ -22582,7 +23075,23 @@ hyphen-ancientgreek = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "ancientgreek";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-grc.tex";
+      file_patterns = "hyph-grc.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "ibycus";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "ibyhyph.tex";
+      luaspecial = "disabled:8-bit only";
+    }
+  ];
   sha512.run = "3f91560ecf78c5540fd4f5d9890f6aa7a57bcd3a41095985785505b82e40793b91a5da3a01bdc021b11c32db3dd7030a104686b34b496c9094acfb85509cd007";
   hasRunfiles = true;
 };
@@ -22593,7 +23102,15 @@ hyphen-arabic = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "arabic";
+      lefthyphenmin = "";
+      righthyphenmin = "";
+      file = "zerohyph.tex";
+      file_patterns = "";
+    }
+  ];
   sha512.run = "85012062097dd4b624cb39c68b293169a25ab3c9cd15b4474c3a3ffbe4b8ab13d6856c6c70a580da45a2d210952df2d9760682da3917cfd24d17772dc2ccce7f";
 };
 hyphen-armenian = {
@@ -22603,7 +23120,16 @@ hyphen-armenian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "armenian";
+      lefthyphenmin = "1";
+      righthyphenmin = "2";
+      file = "loadhyph-hy.tex";
+      file_patterns = "hyph-hy.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "59538414bf5a4701199100fbd9d5247999a36bc28c7c6ef2a28deb9024e01605d48839f00f345c848365853ac3a9f1aab7402f44860532d7a5c099d2f27ee189";
   sha512.source = "d25e6347545e00a809db1dc8e48ef3fe67678b9ec93a1f3619d2a5a3d786d6e411c2e9f905120e3c5d01d9489c0a83035ce8025836249c88ee768bf07b8e2ca7";
   hasRunfiles = true;
@@ -22621,7 +23147,16 @@ hyphen-basque = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "basque";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-eu.tex";
+      file_patterns = "hyph-eu.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "b90680dc5692824d60ca603e8bdd2fcade7cc772c8c0f9538d579704fb16165db2baf0c466ccaff46d92491b4a678fa86a127c0d106dbef6d640dfd2f887663d";
   sha512.source = "75a20da77fa056c719ecc1f014bb09c67f62f1c4a3abe04b7cadf45c7a4e06e4492cb0d34a8025f19f3ee5e3330e488212885095335d4a7e97baa5b106576223";
   hasRunfiles = true;
@@ -22634,7 +23169,16 @@ hyphen-belarusian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "belarusian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-be.tex";
+      file_patterns = "hyph-be.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "19b9bd10d2357d0cb6ecc9ddb5e46b65b3c0eec1b2917a78311f255c1609bbb86595ce617d331271a72de934ae4001597f4a04d61b3810e34f3b197b21cab193";
   hasRunfiles = true;
 };
@@ -22645,7 +23189,16 @@ hyphen-bulgarian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "bulgarian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-bg.tex";
+      file_patterns = "hyph-bg.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "9763e6ece053594b01cd9255a8a3551eb6b86ab082f6f9283664e256c55d43b9513b624774a650d83215d656334751f569496030187c1c78e2fe80f2d10f2f1f";
   hasRunfiles = true;
 };
@@ -22656,7 +23209,16 @@ hyphen-catalan = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "catalan";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-ca.tex";
+      file_patterns = "hyph-ca.pat.txt";
+      file_exceptions = "hyph-ca.hyp.txt";
+    }
+  ];
   sha512.run = "37189e09ee902f2c5145f30180b51211091b07d7d04125c98f1b7c424ad27f6899424b78cd17c559509076eeeb957b4f268fb4130807e7fafb461174fed8200b";
   hasRunfiles = true;
 };
@@ -22667,7 +23229,16 @@ hyphen-chinese = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "pinyin";
+      lefthyphenmin = "1";
+      righthyphenmin = "2";
+      file = "loadhyph-zh-latn-pinyin.tex";
+      file_patterns = "hyph-zh-latn-pinyin.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "a78b70095fcfe297e2d85a49108affd5d48451ff4740461eed46d395410a665011614c9a89dff37e9477ee3803de6ebaa68595ac39222f2968a4124355ea7fa7";
   hasRunfiles = true;
 };
@@ -22678,7 +23249,16 @@ hyphen-churchslavonic = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "churchslavonic";
+      lefthyphenmin = "1";
+      righthyphenmin = "2";
+      file = "loadhyph-cu.tex";
+      file_patterns = "hyph-cu.pat.txt";
+      file_exceptions = "hyph-cu.hyp.txt";
+    }
+  ];
   sha512.run = "c44b3f5fec7b44958336dcfb1a43c5b71fd1715262278863f5fcd74d7ec0cc6f1d572b741256d791e6979f15e4b0fcda8058725e27f17e1deb6e5df5fdb007ab";
   hasRunfiles = true;
 };
@@ -22689,7 +23269,16 @@ hyphen-coptic = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "coptic";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-cop.tex";
+      file_patterns = "hyph-cop.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "fe36adfe900e23f2b0c3e9c3a3d96b608c49bf597222537d355d6a68e2f87f587db78a1921ab1c9a80ea175529e353524c35e99b83ef7f5515ab7c0aacd2f680";
   hasRunfiles = true;
 };
@@ -22700,7 +23289,16 @@ hyphen-croatian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "croatian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-hr.tex";
+      file_patterns = "hyph-hr.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "8355d0aa95bb2e72bfc45015f9ae9f6a138f94441387a4daadfec5be4060878f6e69d05eab15432d99c256c1a3f68c122d5c915164fe343459d658a4543ddf42";
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -22712,7 +23310,16 @@ hyphen-czech = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "czech";
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-cs.tex";
+      file_patterns = "hyph-cs.pat.txt";
+      file_exceptions = "hyph-cs.hyp.txt";
+    }
+  ];
   sha512.run = "f5c8b08c2db716dfa6d36fcf337b4e18372978d04e28ff2c8ed0a0b3866f4bb3efb7b498fedbfde5052fc504b8677ae553c2dce73701e219632d8c5460d7e826";
   hasRunfiles = true;
 };
@@ -22723,7 +23330,16 @@ hyphen-danish = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "danish";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-da.tex";
+      file_patterns = "hyph-da.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "954543a3fb81ff00d9c58315ba59d7a5e3430217dda6c1453bcb7ffb0516025dea4b877eb9d66c9f80ccc69d3d4895bdc6ae1b611d8394435fa647b8b806559d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -22735,7 +23351,16 @@ hyphen-dutch = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "dutch";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-nl.tex";
+      file_patterns = "hyph-nl.pat.txt";
+      file_exceptions = "hyph-nl.hyp.txt";
+    }
+  ];
   sha512.run = "111371e47ca29069a5a9144d694858dd899b19e2b38d0c793b1e4884c69ae2d62398aacb4cd89e23246fc025e42872875bc808c1f327ac1502fac88c962e6c14";
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -22748,7 +23373,25 @@ hyphen-english = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "ukenglish";
+      synonyms = [ "british" "UKenglish" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-en-gb.tex";
+      file_patterns = "hyph-en-gb.pat.txt";
+      file_exceptions = "hyph-en-gb.hyp.txt";
+    }
+    {
+      name = "usenglishmax";
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-en-us.tex";
+      file_patterns = "hyph-en-us.pat.txt";
+      file_exceptions = "hyph-en-us.hyp.txt";
+    }
+  ];
   sha512.run = "a305cf89138e4327844d43a7e21773e31ac97a4655e4d58ae9a46dc0df565e432330debf704c37b4ad552561357521eba0b676755544ceb9c4f21ace09d6dd2c";
   hasRunfiles = true;
 };
@@ -22759,7 +23402,16 @@ hyphen-esperanto = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "esperanto";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-eo.tex";
+      file_patterns = "hyph-eo.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "ed2976e9fb3eec5d2f0759348b284129e43bf161db571dd21270335388b8aec57e1b8393bc9b246f8a6e9cde22f93a4cb3c1a03dcadd64fdda3d70b576789050";
   hasRunfiles = true;
 };
@@ -22770,7 +23422,16 @@ hyphen-estonian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "estonian";
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-et.tex";
+      file_patterns = "hyph-et.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "0eb91153214aaca8c3b5816f5315f9afdeb7c19521c87c79ea2b35e82217bfb23c8bb774baf810206f4413fc663e441ebe6b4962880ca0dbcda9209d2acce3b8";
   hasRunfiles = true;
 };
@@ -22781,7 +23442,17 @@ hyphen-ethiopic = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "ethiopic";
+      synonyms = [ "amharic" "geez" ];
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-mul-ethi.tex";
+      file_patterns = "hyph-mul-ethi.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "a1532603758e7f774acba7c13ee74f0046ff187598ca86b2e93b91da31317f03fdbab5d4d7c0814978fb2ac159bd6e5a48e6e734c19758da21ad0a031844f52b";
   sha512.source = "9d6c8c1b0ce5c40d388937328461336a97fcf1fe780fa6198e029f12ef118d9d98f6eec03ea217743851f0217217d6548298df9336fcf33e6c4c196bbdb9eef0";
   hasRunfiles = true;
@@ -22793,7 +23464,16 @@ hyphen-farsi = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "farsi";
+      synonyms = [ "persian" ];
+      lefthyphenmin = "";
+      righthyphenmin = "";
+      file = "zerohyph.tex";
+      file_patterns = "";
+    }
+  ];
   sha512.run = "5b02582769a55bb07d81e748e83170c16aca1c33b0a240cf547fa9c2212f2be52223e258229c760ddc5dd730419bd9e761614cc4fb3b3ba8102841bb779af511";
 };
 hyphen-finnish = {
@@ -22803,7 +23483,24 @@ hyphen-finnish = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "finnish";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-fi.tex";
+      file_patterns = "hyph-fi.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "schoolfinnish";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-fi-x-school.tex";
+      file_patterns = "hyph-fi-x-school.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "6aa171d77952165cdcb1b667885f16dd382124ed70ed1db80a9a89553d972720d8ff5f0da1b36669e02c3030d9ff362ab77ba1fa2ba45cddfb460018f0c0191d";
   hasRunfiles = true;
   license = [ "publicDomain" ];
@@ -22815,7 +23512,17 @@ hyphen-french = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "french";
+      synonyms = [ "patois" "francais" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-fr.tex";
+      file_patterns = "hyph-fr.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "b9d2d05311a90f4caa6c4e8aa8a2e80e9c15fc3552f03f0ac6ec70d386610612715deb6e778247248355a3a209fb2413d6d2aee12f18bc35d5a334870b612507";
   hasRunfiles = true;
 };
@@ -22826,7 +23533,16 @@ hyphen-friulan = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "friulan";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-fur.tex";
+      file_patterns = "hyph-fur.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "d1775a9b6e6b7fa155e44c93271e2ccb41bd1ec143ea0cf624841ad48a123db924dd134e6e60b862a808ad2058ed5b86cb34d98e5728b9dccd3997ba2f06932e";
   hasRunfiles = true;
 };
@@ -22837,7 +23553,16 @@ hyphen-galician = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "galician";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-gl.tex";
+      file_patterns = "hyph-gl.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "2d707542f80dc94ad20c0daa776df23b773a5e6ccb261e11db675e1e89f5f303a4f5cd50d97f491cc7ea8b0f3c0d3f6391707812a95d4e72cca3afa7815e566f";
   sha512.source = "b9925168b1f9ae5139ffc3bd34810cc05a27475cfae31e98fd0d7618575fc994ca95d7479506024abec2c33bb20121811244d69c490df18a29d6c93fe02174c6";
   hasRunfiles = true;
@@ -22849,7 +23574,16 @@ hyphen-georgian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "georgian";
+      lefthyphenmin = "1";
+      righthyphenmin = "2";
+      file = "loadhyph-ka.tex";
+      file_patterns = "hyph-ka.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "edaf041a2f92b0f7dbf28042c81838e8fd781cf9c3ad529c314227c94917ce4e8728ca676f8bd42e2a81bae76b11aabc1e22896e3ef9cd38ca4b718bc58fa0cb";
   hasRunfiles = true;
 };
@@ -22861,7 +23595,32 @@ hyphen-german = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "german";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-de-1901.tex";
+      file_patterns = "hyph-de-1901.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "ngerman";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-de-1996.tex";
+      file_patterns = "hyph-de-1996.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "swissgerman";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-de-ch-1901.tex";
+      file_patterns = "hyph-de-ch-1901.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "c27389dea67ffd0d45419d484b0c72577b2d5b8234266483add078b970d5d994d41f7cf9a1509ad93efe9489501f986127ea717135c5f57588094393e0d7219e";
   hasRunfiles = true;
 };
@@ -22872,7 +23631,25 @@ hyphen-greek = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "greek";
+      synonyms = [ "polygreek" ];
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-el-polyton.tex";
+      file_patterns = "hyph-el-polyton.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "monogreek";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-el-monoton.tex";
+      file_patterns = "hyph-el-monoton.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "3da84f41aaf7e5d4be0ce609e4d119e65c9189ff6662051cb7e879e9e373d990ef1c59ac7cfead1bdbc6e55b52d4b3ed28d157b22dbec43e5226f16872d5a7de";
   sha512.doc = "865aaf1f9f0fbe130f9006e41ef677713667832745fc24c28cffe805a540a19f7104a3f0fef3258ba0e16c1c456959904887899a4c584338c58de7fcc80c5419";
   hasRunfiles = true;
@@ -22886,7 +23663,16 @@ hyphen-hungarian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "hungarian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-hu.tex";
+      file_patterns = "hyph-hu.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "868a4c3f4d0eda078054026bd1ec35e05c2f4013e093bf58147bfa2d861814242b55a900ce60384767558c9552ff9d41cf447e2a157bae83bd2877251012d96b";
   sha512.doc = "164180f0485e16a49ba83dcb4721902e8a29f399032d4f5a59d55e424b8178a25dedd9fb99919d9d772142342fb78fe0dbf7a5303382a0b7feae4a381b76f8bb";
   hasRunfiles = true;
@@ -22899,7 +23685,16 @@ hyphen-icelandic = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "icelandic";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-is.tex";
+      file_patterns = "hyph-is.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "69add7ccde189e86810e2a82692a260de9a9fcc0ba011352881d202d4f4c94c4dbd84fe36dff40ef9b9ad3e8e990947cc61022307790f13cad56744f3ef5e41f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -22911,7 +23706,104 @@ hyphen-indic = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "assamese";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-as.tex";
+      file_patterns = "hyph-as.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "bengali";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-bn.tex";
+      file_patterns = "hyph-bn.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "gujarati";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-gu.tex";
+      file_patterns = "hyph-gu.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "hindi";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-hi.tex";
+      file_patterns = "hyph-hi.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "kannada";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-kn.tex";
+      file_patterns = "hyph-kn.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "malayalam";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-ml.tex";
+      file_patterns = "hyph-ml.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "marathi";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-mr.tex";
+      file_patterns = "hyph-mr.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "oriya";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-or.tex";
+      file_patterns = "hyph-or.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "pali";
+      lefthyphenmin = "1";
+      righthyphenmin = "2";
+      file = "loadhyph-pi.tex";
+      file_patterns = "hyph-pi.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "panjabi";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-pa.tex";
+      file_patterns = "hyph-pa.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "tamil";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-ta.tex";
+      file_patterns = "hyph-ta.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "telugu";
+      lefthyphenmin = "1";
+      righthyphenmin = "1";
+      file = "loadhyph-te.tex";
+      file_patterns = "hyph-te.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "765be1c13ef3445b056b61c24460cc2f18bad038c04541bf4773c7f61c6d26be25d3079b260a1b9623e2f01155ec52eb5bc87b0ea9234e50a5ca24dd8a7a5937";
   hasRunfiles = true;
 };
@@ -22922,7 +23814,16 @@ hyphen-indonesian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "indonesian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-id.tex";
+      file_patterns = "hyph-id.pat.txt";
+      file_exceptions = "hyph-id.hyp.txt";
+    }
+  ];
   sha512.run = "3f04a63010c02d77cb229c90aec9f1079557493958573be9ce992ac5ae3c229f01f9abc0cac785d9340ff48aa169a01f8b327ecb2e255bef57f1fe85d04d1d2a";
   hasRunfiles = true;
 };
@@ -22933,7 +23834,16 @@ hyphen-interlingua = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "interlingua";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-ia.tex";
+      file_patterns = "hyph-ia.pat.txt";
+      file_exceptions = "hyph-ia.hyp.txt";
+    }
+  ];
   sha512.run = "dfed82ea70f25d452726b5cd03d8e060bddc23cbbc5deebab2ddad93ce6744c38d357327fbe570bf7a1444f62cee0cc422a6c7d066d6693a238d851b4fe46e32";
   hasRunfiles = true;
 };
@@ -22944,7 +23854,16 @@ hyphen-irish = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "irish";
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-ga.tex";
+      file_patterns = "hyph-ga.pat.txt";
+      file_exceptions = "hyph-ga.hyp.txt";
+    }
+  ];
   sha512.run = "478a77c4ab8231a3041c3427075f16c072f58a394eced8ff0cd5da6544f3f2fd65722f33fd8344e18060c96f09bd18b90af71f8508639fc9c59d29d704d9e348";
   hasRunfiles = true;
 };
@@ -22955,7 +23874,16 @@ hyphen-italian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "italian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-it.tex";
+      file_patterns = "hyph-it.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "4e79ee31893d6c948a3aac8588d4beb75d89f89df973b1e39cd63894e008af55f8dca774194d7eb105fb0aef692b17bb645d5bd85cca7debafd74aabf241bc30";
   hasRunfiles = true;
   license = [ "lgpl2" ];
@@ -22968,7 +23896,16 @@ hyphen-kurmanji = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "kurmanji";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-kmr.tex";
+      file_patterns = "hyph-kmr.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "e5114da178fc841b1079130c01f8729ac94f0e3592dbd479f44a978ea009fd75b410d6130d9badd6227d115d8f6dad3ed4b553dbfbf4f80be5d1c2adf108e2fa";
   hasRunfiles = true;
 };
@@ -22979,7 +23916,32 @@ hyphen-latin = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "classiclatin";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-la-x-classic.tex";
+      file_patterns = "hyph-la-x-classic.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "latin";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-la.tex";
+      file_patterns = "hyph-la.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "liturgicallatin";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-la-x-liturgic.tex";
+      file_patterns = "hyph-la-x-liturgic.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "9d0db7fcad4ca764379957fa22f9daede79898bcacfbdb62abe54318a52dd82a66f8e39542c18008e3f6b6d0db284b1e9b891531d3c8f3c9cf22c764e83d57b3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -22992,7 +23954,16 @@ hyphen-latvian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "latvian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-lv.tex";
+      file_patterns = "hyph-lv.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "85aeadb0cb3c5de9ef48057132ccd958d17f014b07b56b9ebe2186a709c4e7646fad260e156718e43ec3eac88681654f88c9b53a6d71fb3eaee934dcb4439ed9";
   hasRunfiles = true;
 };
@@ -23003,7 +23974,16 @@ hyphen-lithuanian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "lithuanian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-lt.tex";
+      file_patterns = "hyph-lt.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "7a691e3c55c768b9ea5ef13552dc42025ab613df0a0d5c0d54aad58b63da11a93e59bc53e6a8211d5e054cbea8500846da01e9619bbee723d648e2d369a49d55";
   hasRunfiles = true;
 };
@@ -23014,7 +23994,16 @@ hyphen-macedonian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "macedonian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-mk.tex";
+      file_patterns = "hyph-mk.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "f88208291212874df493151581205d1b270b2d4278176c42e11edac9b344b73c2ee859f93b6947e4a6003a00abc4d3753024add9caf84f114c8a0cec72aa8c8d";
   hasRunfiles = true;
 };
@@ -23025,7 +24014,23 @@ hyphen-mongolian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "mongolian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-mn-cyrl.tex";
+      file_patterns = "hyph-mn-cyrl.pat.txt";
+      file_exceptions = "";
+    }
+    {
+      name = "mongolianlmc";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-mn-cyrl-x-lmc.tex";
+      luaspecial = "disabled:only for 8bit montex with lmc encoding";
+    }
+  ];
   sha512.run = "159562a8feb25918bc422e7dc78a46423c7fff2f3c61016a0162761411999a5555be3c6e36cf967d5034f65c12f4b0834ae0c0423c2f3ab17a65034b1803dc72";
   hasRunfiles = true;
 };
@@ -23036,7 +24041,25 @@ hyphen-norwegian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "bokmal";
+      synonyms = [ "norwegian" "norsk" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-nb.tex";
+      file_patterns = "hyph-nb.pat.txt";
+      file_exceptions = "hyph-nb.hyp.txt";
+    }
+    {
+      name = "nynorsk";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-nn.tex";
+      file_patterns = "hyph-nn.pat.txt";
+      file_exceptions = "hyph-nn.hyp.txt";
+    }
+  ];
   sha512.run = "8b02e90bfcdf3c6d4bd1966b21e0512069f1749c638d537e9553f68e61e0bc325db8d3b462f45650db4376c7a769c2cde3e0c0601d7de272898a23cd2251c064";
   hasRunfiles = true;
 };
@@ -23047,7 +24070,16 @@ hyphen-occitan = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "occitan";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-oc.tex";
+      file_patterns = "hyph-oc.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "b0743d1f6083dac7a347e22aed19d0c5d76119582e4862557a55b817b17dddaa69a2150f14daf6b08689278dd61b27c1b6ed45df5601dd6327bf185a7a46a5c6";
   hasRunfiles = true;
 };
@@ -23058,7 +24090,16 @@ hyphen-piedmontese = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "piedmontese";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-pms.tex";
+      file_patterns = "hyph-pms.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "fa7fc73edd582ba20b8236507385f0a30f477bb9c79e35fea56aa4020be966b9c4a16a327848dd051fa4cf6e6117ef8a51eb92ed6cb72f6993cb290fa5cd5ca3";
   hasRunfiles = true;
 };
@@ -23069,7 +24110,16 @@ hyphen-polish = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "polish";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-pl.tex";
+      file_patterns = "hyph-pl.pat.txt";
+      file_exceptions = "hyph-pl.hyp.txt";
+    }
+  ];
   sha512.run = "5580b3865ff8d20d475cb962b0257b909ff0e410b6776cb8153145fb0ee42b2f777069413bc6b3622c8c52318aba1ba836210e8972c5b6a47ef978c24fc8848a";
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -23082,7 +24132,17 @@ hyphen-portuguese = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "portuguese";
+      synonyms = [ "portuges" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-pt.tex";
+      file_patterns = "hyph-pt.pat.txt";
+      file_exceptions = "hyph-pt.hyp.txt";
+    }
+  ];
   sha512.run = "9d9ab3e616522ab9837bb7c7509127f998c442e96f96ee6b6fc0fdc9ac53fd03319d0c0ce28e23a35f1ae0ebb840cdeb19e8ab6444549c33059b28e7b307486e";
   hasRunfiles = true;
 };
@@ -23093,7 +24153,16 @@ hyphen-romanian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "romanian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-ro.tex";
+      file_patterns = "hyph-ro.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "124a93a633731dc1b3d6cbf2fc9b8489bf0737911a0c25ea44dbdfffa07c165ba5804dfd7e9cbe0be3b6eceb9fd6e95daefcae2356ee140f644416bbe1b13507";
   hasRunfiles = true;
 };
@@ -23104,7 +24173,16 @@ hyphen-romansh = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "romansh";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-rm.tex";
+      file_patterns = "hyph-rm.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "a69d3881493c70cfd58e3d79ed76ce6f18bbcb43e1683f31270eafeb743b366a3c52c9945ff94db333e88ca18145263ba74002f5e78bb42d7aefa48c66af7955";
   hasRunfiles = true;
 };
@@ -23116,7 +24194,16 @@ hyphen-russian = {
     "hyphen-base"
     "ruhyphen"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "russian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-ru.tex";
+      file_patterns = "hyph-ru.pat.txt";
+      file_exceptions = "hyph-ru.hyp.txt";
+    }
+  ];
   sha512.run = "f17852dffbb8f5c337b8316b92c2b0a60a318df491231047d9c0930d55d8b2be3274ec94d0d87085d53e06e89c585d47250f046300bf3890ce751f6f2052d348";
   hasRunfiles = true;
 };
@@ -23127,7 +24214,16 @@ hyphen-sanskrit = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "sanskrit";
+      lefthyphenmin = "1";
+      righthyphenmin = "3";
+      file = "loadhyph-sa.tex";
+      file_patterns = "hyph-sa.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "e84b6ca93e922c9c6edf03f4dbec1fae9eef2462379ef2fd0f3508a5048b54819c5ba12e0d76bafe1336666ca74ba95e27f63224fa048068bc515f3bc41f6eba";
   sha512.doc = "95c6ae15687118ffc9019c8634347a602e6590b4a1d18bc060e57fe548a81f097070322975be1f62fa2685c5affff7f31b4854b0ec941bbcb9377ecf16986cea";
   hasRunfiles = true;
@@ -23139,7 +24235,24 @@ hyphen-serbian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "serbian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-sr-latn.tex";
+      file_patterns = "hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt";
+      file_exceptions = "hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt";
+    }
+    {
+      name = "serbianc";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-sr-cyrl.tex";
+      file_patterns = "hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt";
+      file_exceptions = "hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt";
+    }
+  ];
   sha512.run = "390aa9c116b6db7b362fc57aa0758a4c489c5fe33c718fb37675b17a9772a463ce532a2ace3e1ef90275b4afef5ea8d6cff71a7abe625d84e3f461c115306452";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -23152,7 +24265,16 @@ hyphen-slovak = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "slovak";
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-sk.tex";
+      file_patterns = "hyph-sk.pat.txt";
+      file_exceptions = "hyph-sk.hyp.txt";
+    }
+  ];
   sha512.run = "a0786980e0cda7029a72075023520acdc998b83226e85deb0b8186ee4293560321517d507f74fbe68f1d68a16cd8af67aae68baead9176f9cc687bcc7d0a72e1";
   hasRunfiles = true;
 };
@@ -23163,7 +24285,17 @@ hyphen-slovenian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "slovenian";
+      synonyms = [ "slovene" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-sl.tex";
+      file_patterns = "hyph-sl.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "a605c9149ae452df8b2c25aa0f6bcdde53150e4485147a065f1f56c9740c3544c5c7f9c6049aea913916a62aabaf40777cf6f0f76a858e485c0bd09826a6ef5b";
   hasRunfiles = true;
 };
@@ -23174,7 +24306,17 @@ hyphen-spanish = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "spanish";
+      synonyms = [ "espanol" ];
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-es.tex";
+      file_patterns = "hyph-es.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "d6783537ff44a326b83c2004afd63f5bdbd162fa4865138c2e6d34c9e6a103ac41dd7b382454646b09c74970f8e0d5827a5f4af617936f74fd300b2054a096d4";
   sha512.doc = "263fd9480c5f225c7e36169b86e846baa64745b83c1072c9602e873f2e7cf8e63b07ab85b29e9d4263656faff58a39fe83e1eba34517b8ba34720f189c8e7f43";
   sha512.source = "b1ceb7602a46ecab68fb767ffb154f0dea9626d81bf6c46dd43be328204f72141842c81efda9d7d51997ed25356746e345f7cd9f9ed88ac2f99746794becb75d";
@@ -23189,7 +24331,16 @@ hyphen-swedish = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "swedish";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-sv.tex";
+      file_patterns = "hyph-sv.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "5f993ae6b22eadb87b6a1839bfa7d78a0dccc1107c5afbec8c248ed001018da38bb179e29f2430cffa90283221b20c5475346a8d5566edf16152266257f2a37d";
   hasRunfiles = true;
 };
@@ -23200,7 +24351,16 @@ hyphen-thai = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "thai";
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-th.tex";
+      file_patterns = "hyph-th.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "8336eee03250859ab4328ad3c1fe437d2af688ef56b43be49c45838965ffe033befa84cdf600e9f48cdf60cbbfbff44450c830bd4c34556f680c5096ed3aecc4";
   hasRunfiles = true;
 };
@@ -23211,7 +24371,16 @@ hyphen-turkish = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "turkish";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-tr.tex";
+      file_patterns = "hyph-tr.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "5c7023e01bf59af4d36bd451f51ae00c445711c7ecf109c9d835f1d689446d7b0b1b2627b7f9e84e4f4a8ceff52227ff280ac64481e1d29d538a30e093dace85";
   sha512.source = "2aa80889b9657b03b6beb6510b6790fba13811b97abbac186eaf4d3f40212b41db0dd2d21583429820faad558b0415a09aa8254d2edd96812cf6396fb18ccf5c";
   hasRunfiles = true;
@@ -23224,7 +24393,16 @@ hyphen-turkmen = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "turkmen";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-tk.tex";
+      file_patterns = "hyph-tk.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "c984bb7f09c5816c36a7a790f16df1750ee90f36e2130994ecd1db63f26afb650245985699a80da9b4d7004ad67106771d8c7b79262438369aee3f52fd8374cf";
   sha512.source = "a496f681db0b4b85d82ec1dd60c057f63b6d1c1b52d391e7bee98d3d6e1fb596701c91f2ca400d0df13b96ec7a43d275646b7d2874fe1e4efc9d9b2b47f6cc5d";
   hasRunfiles = true;
@@ -23237,7 +24415,16 @@ hyphen-ukrainian = {
     "hyphen-base"
     "ukrhyph"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "ukrainian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-uk.tex";
+      file_patterns = "hyph-uk.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "05a9111b358c659159c6edfd38b9ce3d78febd794cc82968dc3e2acdc3612786304721fbd07f00f0a8278f4c2e46a1bfad821b5da45e60546d6acb5bf9068d08";
   hasRunfiles = true;
 };
@@ -23248,7 +24435,16 @@ hyphen-uppersorbian = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "uppersorbian";
+      lefthyphenmin = "2";
+      righthyphenmin = "2";
+      file = "loadhyph-hsb.tex";
+      file_patterns = "hyph-hsb.pat.txt";
+      file_exceptions = "hyph-hsb.hyp.txt";
+    }
+  ];
   sha512.run = "b2cb1bcd953ffabbd3f5acd8c72e9c60415fd300004de56ee446fc77d381aac1db65d613a2f591d3d0e45f2a12ff5340457ae3061b4c77de502923932383bdcb";
   hasRunfiles = true;
 };
@@ -23259,7 +24455,16 @@ hyphen-welsh = {
     "hyph-utf8"
     "hyphen-base"
   ];
-  hasHyphens = true;
+  hyphenPatterns = [
+    {
+      name = "welsh";
+      lefthyphenmin = "2";
+      righthyphenmin = "3";
+      file = "loadhyph-cy.tex";
+      file_patterns = "hyph-cy.pat.txt";
+      file_exceptions = "";
+    }
+  ];
   sha512.run = "12a23e0b9d00eb4381e3c97ecbb449faf5a73b755a17fc0301f1cbad5d0babb370aeec16dcdd316cefb56e142873abaa685288b1a1d3c7dcb76a07a9ef127ac6";
   hasRunfiles = true;
 };
@@ -23293,6 +24498,9 @@ hyplain = {
 ibarra = {
   revision = 66892;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ibarra.map"
+  ];
   sha512.run = "7de51f4d206481dadbd4409a0c98dafb36a415e75053b78f40349edfd8b122e9449e749967eada07507ada1f6f22658c02b0a4993e39c2b0e97334076072d6a8";
   sha512.doc = "318a4bb5d2fd012c783053f457023604d53cdb2b02739ef8a1780f1856d5a63713774568cfa7a230f8ca1eb4711fa65f99d5a99b5c4e9235fb1b449751bc50b0";
   hasRunfiles = true;
@@ -23321,6 +24529,9 @@ ibycus-babel = {
 ibygrk = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap iby.map"
+  ];
   sha512.run = "89002af0024ec804ebffcc45f3a33337ffdb66f71e1ca70224b0936388892dadf99605a8ca3f59a2b879e76e24acc91b1da92622d602f49b236aecb8aafe64b9";
   sha512.doc = "9dd3bd7a8ef3267965f30048e4a71314b6a9813cb400b7a94dfe285606d7554cde80aa429603d0fb1f587935e193e5ece5ed67870fc4e0c66eb5152c392a9cdc";
   hasRunfiles = true;
@@ -23614,6 +24825,9 @@ imakeidx = {
 imfellenglish = {
   revision = 64568;
   stripPrefix = 0;
+  fontMaps = [
+    "Map imfellEnglish.map"
+  ];
   sha512.run = "59c575a0c08ea995ebdf871c627734e47d48de927f3176f7ebfe54fc9f73d0a026159ac75e5673b180ac3cd5b8af9bc59aecc9879ee1a30084609c3d5828ede9";
   sha512.doc = "ca9e465e985ad5568713c5cd79f4b6d8b0474ecff9e35356bb2c88cbd6e71e451c44cd9e407bf0e8b15b4267d44bfce2a64fcc052a7f4be662b560695c34a865";
   hasRunfiles = true;
@@ -23702,6 +24916,9 @@ includernw = {
 inconsolata = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map zi4.map"
+  ];
   sha512.run = "3b33a1627083b50019e0c66ad49319d3ae699943f217daa21f57b19dd2733d29c6f1e9fbaddc1e3e39ea96623581b1d6a388f1a0009e84e4c3f381887b05d4c7";
   sha512.doc = "9139f7769536398c2822c41fe1fd0850a81fb54d70524904b266c8e231c95e344e27468187f474d51a9ab8c4028d6e5f9cc4513d1b38e306b739a1572c387e88";
   hasRunfiles = true;
@@ -23751,6 +24968,31 @@ infwarerr = {
 initials = {
   revision = 54080;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Acorn.map"
+    "Map AnnSton.map"
+    "Map ArtNouv.map"
+    "Map ArtNouvc.map"
+    "Map Carrickc.map"
+    "Map Eichenla.map"
+    "Map Eileen.map"
+    "Map EileenBl.map"
+    "Map Elzevier.map"
+    "Map GotIn.map"
+    "Map GoudyIn.map"
+    "Map Kinigcap.map"
+    "Map Konanur.map"
+    "Map Kramer.map"
+    "Map MorrisIn.map"
+    "Map Nouveaud.map"
+    "Map Romantik.map"
+    "Map Rothdn.map"
+    "Map RoyalIn.map"
+    "Map Sanremo.map"
+    "Map Starburst.map"
+    "Map Typocaps.map"
+    "Map Zallman.map"
+  ];
   sha512.run = "442ffe7585c725c62cf9edf86bccabfcc0406b7517f145567c952ff0de65dae94158f586a1c0081afc5fe3320494750ddc6f455c78ba96e91f409bb0f5905d8a";
   sha512.doc = "c8e837291eb7dced1d4bc4d94e7e6bc042ebeb5c561ad3688a491f451991f122896d7df01040575ac6fd705d3ad55350e12afc986dd619c4303ba2919f64dc6d";
   hasRunfiles = true;
@@ -23844,6 +25086,10 @@ inputtrc = {
 inriafonts = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map InriaSans.map"
+    "Map InriaSerif.map"
+  ];
   sha512.run = "9c960dca72d433a5ee20b2afe843b92fa98060e67638676a8e92ce9c7dde872be4bfdda6be7a76ea90db97e51784db4487ce22c79cd110ba0214ba54bc8fbe18";
   sha512.doc = "352e35b1b748f502db20c76f670c8eb6d02f672ee743518113a7b7807678ab45f2a628980229d8dae67df0dcd3581a5a28492adce8752a1a5f914fe550bab01a";
   hasRunfiles = true;
@@ -23891,6 +25137,9 @@ intcalc = {
 inter = {
   revision = 68966;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Inter.map"
+  ];
   sha512.run = "3e2799fdcbb3648912d99ae0fee49b3e34098204e742ffd8bac5fda212f3e452606124e5503f99a52f7f647b54c31858256e7e1dcee4a566f3ca8e9d5aab5eb8";
   sha512.doc = "64260a91b781bc0ca36a73e1b44ffc34847b26b977a950cefa27649d7382e9cb9d34f70f982831912489d86e343d4abfc81ae0d91302d3276aaa5c8567c3ba42";
   hasRunfiles = true;
@@ -24043,6 +25292,9 @@ ipaex = {
 ipaex-type1 = {
   revision = 47700;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ipaex-type1.map"
+  ];
   sha512.run = "0dd513aa3cbb9dba7e1099f7f08d839e80002fc5f5bcfc2a2a013dc799a0a6389f128fe72ebc32b673afd66f3ebbc7fab9b97c31763f94b7ad64eebc83b2f569";
   sha512.doc = "1c2974ec35c0291207ddf560b6cef4cb5b161fb59e80a6508b4f88aab5ecf93c6a3dda2a3107a40e838235f5af22ce23704bf4f13fc4a0b344f0805c29655605";
   hasRunfiles = true;
@@ -24223,6 +25475,9 @@ itnumpar = {
 iwona = {
   revision = 19611;
   stripPrefix = 0;
+  fontMaps = [
+    "Map iwona.map"
+  ];
   sha512.run = "2a125919a015c82e00bff575407f02a6c9a176f83a6017df682b98af55473e7e36ca0a94ff27091a3a4279d42fea9c49f0d8ae6da7e852ae9c44389dd5d8f7fe";
   sha512.doc = "87128ca46f7f2f13f8f886fc1c3da11f17636637632c0d39ebae07dfe70ec92024e1136da7a736a3fc8d494e856b86407ef9c01cd54a56fc2e41372bc0f1c4fe";
   hasRunfiles = true;
@@ -24367,6 +25622,13 @@ japanese-mathformulas = {
 japanese-otf = {
   revision = 68492;
   stripPrefix = 0;
+  fontMaps = [
+    "KanjiMap otf-@jaEmbed@.map"
+    "KanjiMap otf-ko-@koEmbed@.map"
+    "KanjiMap otf-sc-@scEmbed@.map"
+    "KanjiMap otf-tc-@tcEmbed@.map"
+    "KanjiMap otf-up-@jaEmbed@.map"
+  ];
   sha512.run = "30821d9e8a8de886fcd6ac64801771ee7ff48c7523e38946a8127579bf53d7ed730867d78573dfdcdc88017743929064eed1d4a5b474328ee2cfa7f889905026";
   sha512.doc = "80fec029e80a451eb9f53efc6e69935f9ee42063784a5f92784a595dab76532837062da90f3c3ccf8fea4e14b3cfcd339ba4e5fc539257c11e7726cb70ad2cc0";
   sha512.source = "c5ee59b3741e19c96f151483ab5444f3fc41dd498ef8a8a34f87dd087439d29b614fe3d9597d1a29e65bcafa47b570bbe119fbe6d705436fbf1dcbf9a6b76576";
@@ -24535,6 +25797,9 @@ joinbox = {
 josefin = {
   revision = 64569;
   stripPrefix = 0;
+  fontMaps = [
+    "Map josefin.map"
+  ];
   sha512.run = "6be43db9172d51a84374aa836cf9e2baf02f087336685a37c321449ba06461f08b08a8d98c12cb3aba0dbc9c0e2e8b3316362f65c7393b9286ab50b11f70174d";
   sha512.doc = "cc41ce980515708238256db38ff05c74a22f78ee5a8f4dc63d68339a064799e1beacab7be71ec15b2c97a6d9aecc7a39064fcadf4d7c67ff172eb9b8f7a939db";
   hasRunfiles = true;
@@ -24621,6 +25886,9 @@ jumplines = {
 junicode = {
   revision = 69355;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Junicode.map"
+  ];
   sha512.run = "e368f15bb9adcf7ed15527e4e381424896590866cdb9a214b7f8310e9fd0c660ff5abe442a2206aa88f4032665f40fbdc21b33eba910ff1b299c5940eba82982";
   sha512.doc = "937127e4089bf632b62dc1a218645b1c2903a700183e9d9e7456b16a47b089846509d5d3f89424417a19dd540badabdc6a8a6024826e5cfbad97c19ae9f4bdd4";
   hasRunfiles = true;
@@ -24842,6 +26110,9 @@ kdpcover = {
 kerkis = {
   revision = 56271;
   stripPrefix = 0;
+  fontMaps = [
+    "Map kerkis.map"
+  ];
   sha512.run = "b4a8465264a174320180ac5f9bd89900f7a3b351af21d3a138db40b0781228bac8f8e9ea66a54a1910b3750d65eed17f74880f1c7396780dcd631eda164aff58";
   sha512.doc = "b9c57f71b2c5e48ab3b96984b231f5ad418d884caad0a3747c78bdf0a5688c4ac05993e43707236b02650750d5b7507d39e50668b7cc16e00a35547d63d0bbb3";
   hasRunfiles = true;
@@ -25004,6 +26275,9 @@ kluwer = {
 knitting = {
   revision = 50782;
   stripPrefix = 0;
+  fontMaps = [
+    "Map knitfont.map"
+  ];
   sha512.run = "af3f7d2355054293c2c7973cfd40f0b741c8821884cca6ceec7562efeb92433bb81aa204b7b0ed4dae77cf674f4a63005f36133fbb5bf3d239f0cd5ef61a69ac";
   sha512.doc = "effaaf06a5593a9d73f2e93a722355009a0a957a2067a1432edb40d8dda7649c42571cbc37fc7aa4103ae2094dea7b1bfd861273566102c55546f71b326e7118";
   hasRunfiles = true;
@@ -25199,6 +26473,9 @@ kpathsea.binfiles = [
 kpfonts = {
   revision = 65583;
   stripPrefix = 0;
+  fontMaps = [
+    "Map kpfonts.map"
+  ];
   sha512.run = "d4d035c30acd5d5731a16e144cb45df6a3ce12c06d290f50c9e721ac67aa4808eade4eeae4c91a5093e29c64f91ec4d7a8d65d42307238c472d87d22eb5298c0";
   sha512.doc = "d030abf78988bc21f0e4afc06f0fda95339864036883877f5ceec11210640fcea8cd0ba54eb4d7b7dcc33b9eee8a0b2593739b4e2260b9db6e23cd480861e79d";
   hasRunfiles = true;
@@ -25262,6 +26539,9 @@ kurdishlipsum = {
 kurier = {
   revision = 19612;
   stripPrefix = 0;
+  fontMaps = [
+    "Map kurier.map"
+  ];
   sha512.run = "4f727e8733824e8c516e3ab1286cf0c834413a6ab52bccb5519c9a14a526cd3397a6d0a264679dc8b7d80cfc1d75ab11dcd2c02734ea63d5a2a5cebd3ea3c24c";
   sha512.doc = "7fda14c05f105d341a31561e761517ce12b3e5ceabc01e0c5c8552ddaf55be1863a22545b268026c844b23f03e8700350f0dede79ca8fda62e7a2672fa510407";
   hasRunfiles = true;
@@ -26226,6 +27506,9 @@ latino-sine-flexione = {
 lato = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map lato.map"
+  ];
   sha512.run = "2f8454888913ec6a024c53cf157509b8b769f948ac2c92d0683e80ff8e22865545a6a65864876be35569bf4a5d56ed871c8112b216561e3ce585136bd062c9ce";
   sha512.doc = "0965bdda9b3c106bc49d8156f497c4c85a80d76a4740964b2d24c58155e8afed57989166bc5ac3eb44daf377b7e8985b406a0955dc419ced4a7011f328ce0c62";
   hasRunfiles = true;
@@ -26604,6 +27887,9 @@ libertine = {
     "mweights"
     "xkeyval"
   ];
+  fontMaps = [
+    "Map libertine.map"
+  ];
   sha512.run = "5c1dfc8bac01acd0e6e0d3412c08ee8672f01ebe1c7e22f36f313541139bea13d8967e53f5959a04b31d08c0ba88334b30c3e909eef310567b07ead39edafd3f";
   sha512.doc = "54963a7cf440750aba83feb1a55d1de26ea6995716049d22d3f0ff742364db4c4ddc366d2937d022a3a8ed9951a114367a6ae1bef74c0a655b47007d38c2422f";
   hasRunfiles = true;
@@ -26613,6 +27899,9 @@ libertine = {
 libertinegc = {
   revision = 44616;
   stripPrefix = 0;
+  fontMaps = [
+    "Map libertinegc.map"
+  ];
   sha512.run = "0af71c5bd17a2c89d85c2df056e76e4f8ff98b24de40dd306a9c4207c15dbe9dfd08864736a3a45f1c82f51717396ea843082f6798b89f7e9ea8c316453a707f";
   sha512.doc = "010db594b034a5e401fd17a7772dd3dbf95c37d533fad97f7b1568336beca31523384da1eab42e74b2e8bf294b25a8d19df7469eddd65cc1bb61abd5dbe79d03";
   hasRunfiles = true;
@@ -26649,6 +27938,9 @@ libertinus-otf = {
 libertinus-type1 = {
   revision = 67450;
   stripPrefix = 0;
+  fontMaps = [
+    "Map libertinus.map"
+  ];
   sha512.run = "6c84de57b1778ec35d9f56b00e577f9f8c1293132cedba43e657f4425e9bf01ab4243fe6ffb872aeb99b446019539a640d29c88cf29cc86d649d2a00f77952f7";
   sha512.doc = "c656af53b98735bec8c63c3e56160da943379f4b908f553a27cd1c82111b201eb15c1f1eb1b6ff89fee281c27ea36d6fffc5592b75722cd561c8770ef2d3f6a6";
   hasRunfiles = true;
@@ -26657,6 +27949,9 @@ libertinus-type1 = {
 libertinust1math = {
   revision = 69440;
   stripPrefix = 0;
+  fontMaps = [
+    "Map libertinust1math.map"
+  ];
   sha512.run = "ad93607e4accadbc0a429bab7d6bb8ba964a98324a9c65fc1993db025a728dfb8b3e48e3d67552a88bbecad247db573d1b1f7386e1aacce7954b00ace4feacb3";
   sha512.doc = "012227a7d46da30dc4a20b403a0f0abc0010d6902585c18a0bb3fea1e4b7cf58b629ae8c49597c6c39a264cf25a7a80877cb09e99b0f59b01d37198c5c4db769";
   hasRunfiles = true;
@@ -26685,6 +27980,9 @@ librarian = {
 librebaskerville = {
   revision = 64421;
   stripPrefix = 0;
+  fontMaps = [
+    "Map LibreBaskerville.map"
+  ];
   sha512.run = "671894db7ebd325e35efba47a8b84dc9afbeb213358503f65e246e97af090be03f6591fe124d4f5b4c53ae99bdc7a56bf84d385597ed7564fa63f7fad5265e4e";
   sha512.doc = "9cfecbbfea90ff99af78bac088674061c7123ea046aa42da806fc09d6fe5e88c94fbaa3053bf87b563e55f514eda5cda108d5bf6b096253e79fa0d09567221ee";
   hasRunfiles = true;
@@ -26693,6 +27991,9 @@ librebaskerville = {
 librebodoni = {
   revision = 64431;
   stripPrefix = 0;
+  fontMaps = [
+    "Map LibreBodoni.map"
+  ];
   sha512.run = "e1bc9e0560febac6f6e56737ddc070fb9642ca6e701699dd3546e63fa681ce28a995e61b4190edaf4d9b9f9a4131b77436d69cbce47e601b11b63caa25bccc7a";
   sha512.doc = "be63dcbe34c1f09f560f85aba54e469b3b14331a4ccaf8e44ce7ffcc649ec1a0c4ba2494ff844cede73943a646cc8c62c8bf7a949b602389e4abf9ae5181331e";
   hasRunfiles = true;
@@ -26701,6 +28002,9 @@ librebodoni = {
 librecaslon = {
   revision = 64432;
   stripPrefix = 0;
+  fontMaps = [
+    "Map LibreCaslon.map"
+  ];
   sha512.run = "96c3193cfc16b5cb312ff67303825c7e9733642108a601ee2b8dccc6e8d6aaa0db28e2da7c84faf71eaa1576ddab230bb6f385972d95f4aaba547e57a82b1e54";
   sha512.doc = "9f7c6662af462f0c73b97de098cc4bbff5a3060e44a72ce294b175c5d5a3f520a93026b1bab17bdaf5c48d2de55c4045730386f7f8f046b3ff797c4d715acb8f";
   hasRunfiles = true;
@@ -26709,6 +28013,9 @@ librecaslon = {
 librefranklin = {
   revision = 64441;
   stripPrefix = 0;
+  fontMaps = [
+    "Map LibreFranklin.map"
+  ];
   sha512.run = "35b304ca5b24ea88fc6a5227361db7f825a99eeba4b1ddcc31e5e71bda3f6ec911b00e2ec7ae9f54022748f39a26baa61aecff267628343dceae8eb8cb07bfd2";
   sha512.doc = "092dfd68010c10942f030828552e4609ded2b27bbd13d213556ad301629893748ace3380aefda1adc8ad23261b2de253599f6784b461fac8a1bf49cd6e1370d8";
   hasRunfiles = true;
@@ -26717,6 +28024,9 @@ librefranklin = {
 libris = {
   revision = 19409;
   stripPrefix = 0;
+  fontMaps = [
+    "Map yly.map"
+  ];
   sha512.run = "1a754d896846d0db358cf4f878928dcb511d76a7de6e7dfabee71970908e3ed7caab98f854695318ead334e052282b690712069597f42505b00c41e328ad141d";
   sha512.doc = "04378b8461d6ea0284f038974fed6ae6fc48fc362f63dfb8b8d57a81a721da7bf17ca3aeabb198c373a68a4c8e5516b66f12c240e081dabcf1b9c79fd2d2b388";
   sha512.source = "8ccb8a6beb30c508d582dc905136cc8b1b053a8d71a7701bdeccb0ff1eecfa69e32d7167b871d4e38eb0c98ef49c8ee9a00a9ea3bbc30e51c8a81d903ac147ff";
@@ -26806,6 +28116,9 @@ limecv = {
 lineara = {
   revision = 63169;
   stripPrefix = 0;
+  fontMaps = [
+    "Map linearA.map"
+  ];
   sha512.run = "b87051ba4647ed2f0beb8e5bfe8419d8558421f509cb6eaa931f47a10488dfac4e36b3ece1cfdbf3e46eb431c3d15e7a7005f27522dbc4cfe6de52ce6127bea5";
   sha512.doc = "4c87a47d08606416e5d6605edb3a89bb3a67babcc621dd28b8ca02bfcb5ba6108e56e76fc166ff0d6a54c058459acfc8ee6b46d49309d6333d13305d00d3179a";
   sha512.source = "6476de5673f0e0f4896b0f579bd37e31c7301916dff1de1a957044b7782c04c43b5b5add887960d1a7013648a7e352d2655bd9a8e57dd0cafd31c851cef5f21e";
@@ -26860,6 +28173,9 @@ linguex = {
 linguisticspro = {
   revision = 64858;
   stripPrefix = 0;
+  fontMaps = [
+    "Map LinguisticsPro.map"
+  ];
   sha512.run = "6bf94e8910ae03314a3ff55157e52586b5f2550c2aaca1a8989b1f02400c87363c74e00658ee953c13a44dd69cb253bda6128e66a96b865e6169310165a7f9e4";
   sha512.doc = "8f0c8937cacdec2e2ea4999dd1bb45af96a99a3707ef22b54a2bf1e0c745d663550ff0b68d80cf895e8bdfa1f279873c4725c7851af547f06155589d8e5bfde5";
   hasRunfiles = true;
@@ -27023,6 +28339,9 @@ litetable = {
 lithuanian = {
   revision = 66461;
   stripPrefix = 0;
+  fontMaps = [
+    "Map l7x-urwvn.map"
+  ];
   sha512.run = "c2cd1b54daf74e78e6087159fa827ece77f2dc835eda81e03fce861581e812536292f3f0b70b8bb77107c0a4032d12006e870303156a3f3c7cb653020ed9b97c";
   sha512.doc = "ae7a5e3bea2bd62a0cdbbfbde7e0d9e06554fa4b3bb825b45febed42556fa101fd2e6c611ad9fc1cc87ed5c92540977780fde47ae78a89dd37b70f89c94b5e8d";
   hasRunfiles = true;
@@ -27068,6 +28387,9 @@ llncsconf = {
 lm = {
   revision = 67718;
   stripPrefix = 0;
+  fontMaps = [
+    "Map lm.map"
+  ];
   sha512.run = "9e05642ab07ebe05c13d5fa98f3212527aa66a9d049f8eade506cbd9f0652315363a01ae20a9df873055e5283bba7574d51251c7dd86e56ebc37055b92379421";
   sha512.doc = "d15569c1f55553b068b8d3a73efdbdb74137d02fdda5db5d57f29203dcd92dea7746b73a3f30293b2932f046e60697ea015b83d2587cde2783300fa41967c5b0";
   hasRunfiles = true;
@@ -27106,6 +28428,9 @@ lni = {
 lobster2 = {
   revision = 64442;
   stripPrefix = 0;
+  fontMaps = [
+    "Map LobsterTwo.map"
+  ];
   sha512.run = "ff9a64e40eb1e8d19ed353e4c6e46472f48eaa057a1283e8203eafd895cc622c031a849cf2cd941a664b07c4acc0e9fa18ca65acf6420cb3d40ce09c6ab6f391";
   sha512.doc = "a02034161dcd7d09ab14d907fde0b4cbc570ee7e13fc1945e18c71eaffe90e5dc039266f0ac83dd7887fa1e298add0d2be9e4259cb58f6dbfe13b7bce228ab8c";
   hasRunfiles = true;
@@ -28396,6 +29721,9 @@ lwarp.binfiles = [
 lxfonts = {
   revision = 32354;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap lxfonts.map"
+  ];
   sha512.run = "aa732f403af1adc898e6ac462412a59e4d2c8821ef47807ec5d8c1ce565a73299d472377117bca3fb30add468b546280b1603feff95d35090b338f87b279bdf4";
   sha512.doc = "fed48ea91eb5ad414463d3b929dd4deb5cf433be63aa2753acc251aa1e8b85f0db7307a0ea96ea0bf9c4d9b14d0b90d26cde703bed2761a4a1b789ab3d117eba";
   sha512.source = "18da6f216135745887160dcc1df6ed72eb0e49f60a445e45326c84bed8fd98cd66316e21a6e0e7528d551917092f9715641fc68e02371b609690e00403ca5d96";
@@ -28506,6 +29834,9 @@ magicwatermark = {
 magra = {
   revision = 57373;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Magra.map"
+  ];
   sha512.run = "2b182272dcf5bf3469ccc38daf9ad24081002d118de77d2dd012b136152f2147a63c6c8fad5ffe2f758efbfbf7665ae0c61ef6281cf16112b740da95d2334b63";
   sha512.doc = "8364aaf47ee07d7462dcb13bb370c88c47556e23491233e580dee165528b417bf3dd139f0cdb3db6c565c0ffbac40ea2fb995a0dd2981dd227d1a70561f2f619";
   hasRunfiles = true;
@@ -28724,6 +30055,9 @@ manfnt = {
 manfnt-font = {
   revision = 45777;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap manfnt.map"
+  ];
   sha512.run = "fe7ddf667368990f988005a44013aab80af9c097f4f824f717d84fddfd61dfc658f507d5b1bf8f7c076be1bd5a4363f117b388ecd39b0ce2b0ee5fc8aa83fd4c";
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -28759,6 +30093,9 @@ marathi = {
 marcellus = {
   revision = 64451;
   stripPrefix = 0;
+  fontMaps = [
+    "Map marcellus.map"
+  ];
   sha512.run = "b6ba86cea7e275ae2cb6f35468300035fec789b85280307e65784bca9844aa8c834aa23e9f7e59de75d53879dbc609e64c084adcb1c38811483eeab15543f95f";
   sha512.doc = "5267a43751ac7a0aadfba28ec4427da7c1afbafac2425f09582a736520ab4bbd769e08ef02b86816225cd76bedcbb23f6cfd3e77352c9e4008f9443b826b48e9";
   hasRunfiles = true;
@@ -28816,6 +30153,9 @@ markdown = {
 marvosym = {
   revision = 29349;
   stripPrefix = 0;
+  fontMaps = [
+    "Map marvosym.map"
+  ];
   sha512.run = "64093dc5de012c6a50762ef34001ff2305e6b59b667ac7b1ef72cc53f8b0ed3852b4d307a8d421ece996e78f2e32c8871038b6b66659b0866dbdc536445dc7a3";
   sha512.doc = "d6f72ee7ed64404acce5c37c216a7e23193f2053c18910d80fc6d5fde73ba86c07045102488f17f4cbeb9e1d148567973713bb4d9ce2cdd3cb166936ba5623e1";
   sha512.source = "c28a69567c593160c7d04b4fc0fe7f0106db12ab588d3f02139e55ad99a1b4e33f1bba92f5af103b6f2a7e720d243b919d1f39f28031ad95dde3ae7e723f6e36";
@@ -28885,6 +30225,9 @@ mathabx-type1 = {
   deps = [
     "mathabx"
   ];
+  fontMaps = [
+    "Map mathabx.map"
+  ];
   sha512.run = "ae2272ac7d79a3bb1a655000a2d5fa1c3d948363763abe194cbac4084d5ef60492648977660c3d9dfbc2c70bea3c207d031d2147097fb1d7af503aa80f257d1c";
   sha512.doc = "2504e85d659cba06fa25ae4e154309a6d3dcba2ac8bae0d4066b6637f19081987b0bc774902365e5b723f4b6c35cad07709e316ec1893a018baabc699d755e8b";
   hasRunfiles = true;
@@ -28932,6 +30275,15 @@ mathcomp = {
 mathdesign = {
   revision = 31639;
   stripPrefix = 0;
+  fontMaps = [
+    "Map mdbch.map"
+    "Map mdgreek.map"
+    "Map mdici.map"
+    "Map mdpgd.map"
+    "Map mdpus.map"
+    "Map mdput.map"
+    "Map mdugm.map"
+  ];
   sha512.run = "cc8a1c58348f8f81417178434c9bc3d9edea79dc5d300753f41870734f8fca8f43325d56f73e3113aee8e9f38be1fbc6abd3cefe4458af1e1e22900ce889c315";
   sha512.doc = "f6c0a3595beb7b25ab5ef2c8a08b3e0be90cdbfa20c946b7b3f5cfd29f5c9a38963262818990ef78be02d95c2d2a5991581be77834048fab4eb0e4c0252e6871";
   hasRunfiles = true;
@@ -29208,6 +30560,9 @@ mdputu = {
 mdsymbol = {
   revision = 28399;
   stripPrefix = 0;
+  fontMaps = [
+    "Map mdsymbol.map"
+  ];
   sha512.run = "49b52141928fedfdf5fdd63251de182761825a6cdcbf423bff562a863df159ac0d1c001239f777e7aef68ddce23c52407758c70f7da42f066775e204ac8c841d";
   sha512.doc = "ea4ddd0fd65204ec0ed980108d86e97be267ba46c1cf45711c36721bfab9302766ec1d0849b38de75003af564a797f8566def377d8d947d464367bfa40b91399";
   sha512.source = "0b649eba13871f6da834bbfb2c6523db6d50bd6a491b042a19f0e061ce9794d2ca03c39d277669b6698b48806fd0b705f322a69743c4fc50233559fd10406280";
@@ -29430,6 +30785,9 @@ mercatormap = {
 merriweather = {
   revision = 64452;
   stripPrefix = 0;
+  fontMaps = [
+    "Map merriweather.map"
+  ];
   sha512.run = "363cf63b7211464fba6fd7686dc7d1ab6914c64d724128eeaec90b3dac39002c0653a2c54ff6932c8ce1f16577cf27b1e4665a3e1dbe92bbb81e0a15419ae36d";
   sha512.doc = "8762dfd5b3f3443177e0900c434c74d4b8ccca6c8817b1d8353c41ee8310b2299e2fa67113881bb47dd6def3295663aeeefafb15d7b808def000b6e253ac2d3f";
   hasRunfiles = true;
@@ -29539,6 +30897,9 @@ metapost = {
   deps = [
     "kpathsea"
   ];
+  fontMaps = [
+    "Map troff-updmap.map"
+  ];
   sha512.run = "fb50b9d45a36cbe11d07fe2d0a1307bf257132e195825a2007894d5accb33ae1d10e0ca6d6a27405e79d3c439fca4dc1df00f21814eb530ac3707ca516bb9a0a";
   sha512.doc = "6b10e2a6183e6c7b9515ebfa0186b13d48bd87fb25cb69b010ac82b885fbb1f88f31340f7161e34f61cfa7478d50ebad6e82eddb14d8c746ef1bd4c480fe4b58";
   hasManpages = true;
@@ -29635,6 +30996,9 @@ metrix = {
 metsymb = {
   revision = 68175;
   stripPrefix = 0;
+  fontMaps = [
+    "Map metsymb.map"
+  ];
   sha512.run = "02864640550428b4869f0682d5571f463d21089f85e4e03336890cd7d37d08b9ec89b9bdc7b09b0f3ff5ea8bd612acfc2974655439fdcc5b617846d5f3d1c2a4";
   sha512.doc = "a3afc302c345de9e00f89f6e0781d4763d4ca5461f498e2cedcd0ee0494483db9cf7cd0ceb68823e7b1806caebc85a22751d5d4ce3b8041968036c8b2514e5d7";
   sha512.source = "29ccd5eb8915077ca09b568c7fd1924d61243266dc2fdfebba00691bb35a0dd908f2311caee865a044a78a9e485f78a4b91065c8d17f08b13420bdcf1b64a05f";
@@ -29727,6 +31091,9 @@ mflogo = {
 mflogo-font = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap mflogo.map"
+  ];
   sha512.run = "4b2552a2f38c68c755f3966aedee8e054af48e0b0a61267d7a4b1a29a4bd6be15c8754d657a2f08d88dcd42a03ed768d336747d2c35107b4dd2d5bb0e1f649aa";
   sha512.doc = "8ce49b7bf7bdbc46589da02c461f98746e13e13f19eb79af1c2ede084174204c128b27f88e164d5192415b6f464238e7f04fe95fe8e0873ce8aac84bc1e56713";
   hasRunfiles = true;
@@ -29863,6 +31230,9 @@ mi-solns = {
 miama = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map miama.map"
+  ];
   sha512.run = "b9a5416b1de4cb487575894f3dacac8b07eda2b37b90fa0c5ca0ebc5d9d412c896fb7cd028c6af5627368c44d442670990949c9ceb9fe3a60179d3f70874135a";
   sha512.doc = "a76db9f49bcdc225d9206ebaa3b7ca42bc7148a44d1d66b72d2033b68fe9a1137eec265316d3a24077e3e3712687e80ea948d4f1c9cd819e6a4afb8c9bbf91df";
   sha512.source = "2b9e1a649f944ce6b36b1dc09d28112f7d5ea3c0a26a1f292576448171aa2f51449988ce85703ba7c2098f6dce62093ccf5af256bff1993268f31dc884bd3b63";
@@ -30102,6 +31472,9 @@ minted = {
 mintspirit = {
   revision = 64461;
   stripPrefix = 0;
+  fontMaps = [
+    "Map mintspirit.map"
+  ];
   sha512.run = "18167b9d0b5c167e2679cfb135812e3cbc20a90a182acb3eef15a54f4029298ebb39f6db626b5cbd8368389c9f0656f7575eb4f1970fd242d77d976762ca8d5b";
   sha512.doc = "8a7855b5cd117a5a11eda118b8a4b08eff4183a427655c501c5e3c40e1e9617397d58e6622058187a48d04948fad9164b866e58c76080404d7bdf4ff9fbc4d9b";
   hasRunfiles = true;
@@ -30239,6 +31612,9 @@ mlist = {
 mlmodern = {
   revision = 57458;
   stripPrefix = 0;
+  fontMaps = [
+    "Map mlm.map"
+  ];
   sha512.run = "6fe8c67f768cde92e38741885c336786f65f9793fce0027b0476a8e45366e33c4a559c3bb6367014646e89f0ac39bd92219bc59921c3b3e0fa3a9c4314f2a632";
   sha512.doc = "bd5ac414d3b3ff53b059543d25cf0296d59365dc219748d849f89a085225d864361923b4220a0a989585d99e9dc221f9a4209b622be5f279e0f02e5e1cc2d966";
   hasRunfiles = true;
@@ -30343,6 +31719,9 @@ mnras = {
 mnsymbol = {
   revision = 18651;
   stripPrefix = 0;
+  fontMaps = [
+    "Map MnSymbol.map"
+  ];
   sha512.run = "68df6dcaca1d2f3b743c62e205a22427152ec6ac1deaa126e7511842ad7817ba4a7a232b72b45c6dae88d930837f46597c5f89e50b1057ba313a590157342ff5";
   sha512.doc = "bf06a1534665ad50d33073e5d7332337c05f5d5315ba41af399f73f98d54b22a0610c65fa0e96b311925f40bebc1458fd0f0fa9c5fb41330f6d0b9b49aa12aba";
   sha512.source = "1d622e81bfa0c2e61ab64f058a356e66c98f75a2511728bc49c6cb3d998caf132def2f092db7ff18b4283829e7c118368fb09a39ba2e9c05b0a0be5e4cada210";
@@ -30491,6 +31870,9 @@ montex = {
   deps = [
     "cbfonts"
   ];
+  fontMaps = [
+    "MixedMap mongolian.map"
+  ];
   sha512.run = "9676cef9e0fbe7a0196b1ea0fb3ea4f0399a3ee8ed76ef06e824848a57922dc4f7cc1f50a1fcea47fc265465407653447ab80e80dbac3c4bc00488d0929f87bc";
   sha512.doc = "1965f31e28a9f54d86a495b4b8cea50dc59f409d066918dedf77f86448b60ea547565dcf2069ee0e0a646d53f34d244868600951c4b1a4d4e099fe50e3c2b477";
   hasRunfiles = true;
@@ -30500,6 +31882,9 @@ montex = {
 montserrat = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Montserrat.map"
+  ];
   sha512.run = "58c8b4a1f6eceb10c7fef8e6dd951985ae6108cb3f93eedf20949923237cb8af6a834674dcea48b1c68b51284ef37fe2d4120d52fee82753fd873f60b585e685";
   sha512.doc = "694ee7f51b0fe1622981bfa636263bbe18f89ec481071af587a683648f4ee900d9100864e51669d65b9952e6acf64794b5610989d2bd86f6e4701e1e41193242";
   hasRunfiles = true;
@@ -30577,6 +31962,9 @@ morewrites = {
 morisawa = {
   revision = 46946;
   stripPrefix = 0;
+  fontMaps = [
+    "KanjiMap morisawa5.map"
+  ];
   sha512.run = "7f149fab67905d6b21670becb1c3e3afbc8fb4c45fa3c376960e5a87d7fe17abe091af63930a8385b5bcb63e550fc0b9bb16d522f50f90b911b09599dc5ccafa";
   sha512.doc = "7af68b3a8233cec22efb49e8131c65e33db4076ed4f254f2d62f629c03d0122e8dddc3ba68d283affb5ca663d3b1f744780dc98c14eadfa1a69028df281e5bb2";
   sha512.source = "7e3821bc1f5dad076307ebf00cacb68cdeb9e18a060c9c024c0fea85c558f7373f214f16952fa643f8b832376101ec8c8bb839a902e6e8213912a4cbc10862ad";
@@ -31022,6 +32410,9 @@ musixtex = {
 musixtex-fonts = {
   revision = 65517;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap musix.map"
+  ];
   sha512.run = "53c6f1b80b789608ad1187a2d593474c12d71b27ce9bd8c9c0cc7d2ba1bf3501c2dbab6375f51eb4841646b1f0dc7ed1c641efef6bc32dbaae3cec56f6583e09";
   sha512.doc = "eff2e4596dd426f1f57003d6441eb0632f7b9bbbb216ab4e2b069a1a624e77e06f032f191ba13afd2e55b472f5a719936f34fcf2ba6997336a3c3716c4d936c3";
   hasRunfiles = true;
@@ -31104,6 +32495,9 @@ mweights = {
 mxedruli = {
   revision = 30021;
   stripPrefix = 0;
+  fontMaps = [
+    "Map mxedruli.map"
+  ];
   sha512.run = "f721b48b71ae2eb74104e23989cae84d3316b322ebff4703d9bddf74e0ddacf742e279813977bf29883fd17f01049112169d02aa3e4a9be887c049f8484ca0fe";
   sha512.doc = "ea9de17ac138af2fdfbd624e0c516faa2eca674ae1c423cc7f972f87c1bfbd37812e199f68b463c07213fa263636490b7207baf68506514f73fdef1d6c041a49";
   hasRunfiles = true;
@@ -31244,6 +32638,9 @@ nanicolle = {
 nanumtype1 = {
   revision = 29558;
   stripPrefix = 0;
+  fontMaps = [
+    "Map nanumfonts.map"
+  ];
   sha512.run = "fc775dae204d8f1ca7e05005ccba0bd568f00819519d34b2282028d7f2b89b9c1f9a091ed192def7281de97ea97c75b9327727489e8ff88585bb97cf5e8b8f10";
   sha512.doc = "ff0bd0bcc32eb8166e7bff9d440692a3c21c5cc7fd7b8139b472fbc2e079cba0591d162e2a81090919990dba31d1e04b57d50c35ac1d0670ef9102c64abc88ad";
   hasRunfiles = true;
@@ -31345,6 +32742,9 @@ nchairx = {
 ncntrsbk = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map unc.map"
+  ];
   sha512.run = "cafa6f6ba366c07bfa0fe37ae415cf924ca54249288a52726eed52b9c8147925b6ac4a85fcb69a19596944ed8585cab4ce8fc2710a7c32998b360ea2ab143d56";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -31489,6 +32889,9 @@ newpax = {
 newpx = {
   revision = 69777;
   stripPrefix = 0;
+  fontMaps = [
+    "Map newpx.map"
+  ];
   sha512.run = "979e5e67eaf5891a96c127f9726061bb0a480388b0f67cf27bf753f0171521118f68bb82beb127bb2c18d866643830125089518436d1be56c58acf49ba0ccd75";
   sha512.doc = "fcea214e98b92d697699976c245f841f87bb5a314ec738fb551e6f546e32e79fcfc0b1e78d9cf1ad5299bf691a833b2ba69aa9c917a6cb1abe891c39556123dc";
   sha512.source = "7928e84f2c5523c72a30061e99fac64c37e1c5fecbeaf6ad9aa8ddb1be55c26bb4198adb8c303afed7267d33c12f9f73336453bf32bef98c999547e7f9f4a952";
@@ -31520,6 +32923,9 @@ newtx = {
   deps = [
     "kastrup"
   ];
+  fontMaps = [
+    "Map newtx.map"
+  ];
   sha512.run = "140e03a3dd5a59ee6b5a81b7cbc5531e92bd2d2296ff74df4f1805d44f6d136dde2aadb0af145f4f7f0a9e223d39122a8320b3858850fb49dd8cb59e80d692f9";
   sha512.doc = "c0344d8e74e412b1ebc8b9db86579672cd878eaa004adc081c73ba48258a57e4093361237410122198f71ed0a6c3f1fd1989e9ca028118d5f93dbf9b21f6e5d4";
   hasRunfiles = true;
@@ -31529,6 +32935,9 @@ newtx = {
 newtxsf = {
   revision = 69597;
   stripPrefix = 0;
+  fontMaps = [
+    "Map newtxsf.map"
+  ];
   sha512.run = "4d44962a7bc466faa60d39791f18be3b5d3bc5a1eb2b22e233c80a81ad3280b0a89c03717881ee858e327b67040f5859fcde7d465420e43df547ee56f00f5b93";
   sha512.doc = "992123b7b5f30b827b4cb49b933cdaa323a007c1d41632993a2a8d52588b5f5d97612808dcb48423dba309f025d851cf15aeb892c8bfe10d0929cb5744515b7c";
   hasRunfiles = true;
@@ -31538,6 +32947,9 @@ newtxsf = {
 newtxtt = {
   revision = 70403;
   stripPrefix = 0;
+  fontMaps = [
+    "Map newtxtt.map"
+  ];
   sha512.run = "fe95d2c4d2ff7a83f362f55bf2579576b94251fdeb3556c2f417e0118b2dd215a705d06d79e66b9aadeca09cadd5c19f2898cbba8624ea089fef804749d350cc";
   sha512.doc = "02879af2ae05a703502966acc561df08762a9fe01a873180672652a9c931ceadcfb85d411523eb81425e7f1944f514673e8d04a208d54b27d0d26916077a81a3";
   hasRunfiles = true;
@@ -31613,6 +33025,9 @@ niceframe = {
 niceframe-type1 = {
   revision = 68091;
   stripPrefix = 0;
+  fontMaps = [
+    "Map niceframe.map"
+  ];
   sha512.run = "b43c19a164d9d6eeadd11072f07d29d00763863724a5b5168ef8640b2411fa4c02c4955e769b23a39e06db8d02d168ac7b2a987e1ab8a9dbe4c19063b8f4bbac";
   sha512.doc = "9f30b52e177fd2fe5bb3ef1f23a16b29a80f049cf33d8ade3dbfb187663e4a8872a18bef0fec1531cabe610839ba21b118623db244b52ab16418a7ad4dfb3d67";
   hasRunfiles = true;
@@ -31669,6 +33084,9 @@ nimbus15 = {
   deps = [
     "fontools"
   ];
+  fontMaps = [
+    "Map nimbus15.map"
+  ];
   sha512.run = "9e39f92dea1fa293d6249d16877dd6b2d990d1d48cfd31f4ac1d66233b97ff178d2b70f428978a084fc9a50b9dd994adb6a8ad29375e54f5d5ccf6ca7ed62f64";
   sha512.doc = "8fb9ece6ca17549572a0d79a541397c6545dc01ac0422a5270314bba1cb83b1451fb0f56e34f449cc3d3de326e063e4ea1f2ea03a0fbda7342e9d0a101fb5ed1";
   hasRunfiles = true;
@@ -31902,6 +33320,9 @@ norasi-c90 = {
   deps = [
     "fonts-tlwg"
   ];
+  fontMaps = [
+    "Map norasi-c90.map"
+  ];
   sha512.run = "5f65927546348815b07c93003a2b0922403d274bfa3d1665d4649c9dbc737df924958c2fd61c1d06cd5e7c1862aff392c8d1e9d827f4ae79e70d9b76467f651d";
   sha512.source = "8fb30cc3a1e762ec15c813fff0191b08b64a0d259dbdd21a9edcf70c6eb1b327cff5ef3f48b9dba0b7d99d1ec31b3accef65deca7285e27790261ca659bd525d";
   hasRunfiles = true;
@@ -31984,6 +33405,9 @@ notex-bst = {
 noto = {
   revision = 64351;
   stripPrefix = 0;
+  fontMaps = [
+    "Map noto.map"
+  ];
   sha512.run = "6b1c2961ca9199ec9f0c9eb6e8c2ce61eda6d4eb0157ef292a176831df2df83bf09c3aea23825818ef5ed03128ba838f4377e42b53409c96d388422ce9dfd467";
   sha512.doc = "20b8371eec90440f2a491e1f34a0fce79b700e7b2f0aea2a808baaaf4e3275dd253b65d32429a78be6ed2b31b576f4291cc1f3cc2f625a675cd7a317bab90759";
   hasRunfiles = true;
@@ -32009,6 +33433,9 @@ notoccite = {
 notomath = {
   revision = 68014;
   stripPrefix = 0;
+  fontMaps = [
+    "Map NotoMath.map"
+  ];
   sha512.run = "908ef695e1eeeeee1bbff53956b1d890fc9327cf985602877abc26aa787bbb7a09c18d592c2f5b2d1840aa91e0c1c0b071b8af0d576c5110eba5f62cc1f3184e";
   sha512.doc = "708eab7029720af202b7af3d45becbdcd8c8fe6def7327b70f3c67bdbbe6c17c53c1e42912f4dedde1f805f7d7009a75e7d8279f7e3a6faf091ca6990cd4f5ca";
   hasRunfiles = true;
@@ -32200,6 +33627,9 @@ numspell = {
 nunito = {
   revision = 57429;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Nunito.map"
+  ];
   sha512.run = "920e074987e7e75fa6db92e3c05d76f7aad3e7d9b4f0166a8a8ca79bc5183549299b56a10f1cb6c7fdaa63f7f55aa6b9c1b2bcb4cbf03567b26e9fcb0240472e";
   sha512.doc = "e0de75f22da96d229a6465a4d47baa8e4c3199567f8d2e3255893e5b2a2d16ab73eabec1a103b355518c4cb98ea3146ff067af54938c21a910aa65aee3f429db";
   hasRunfiles = true;
@@ -32293,6 +33723,9 @@ ocgx2 = {
 ocherokee = {
   revision = 25689;
   stripPrefix = 0;
+  fontMaps = [
+    "Map cherokee.map"
+  ];
   sha512.run = "9638c408e96fa861d395881d1bac87b55048a25de61561823242d78f836522205c9621f5a01bbb5ad1c8390230dac727b4fae333c22966a04ff5df1f923b5909";
   sha512.doc = "40bb5e47b2ac627007d349c0b043f299f09321aa0d6fc11ad9f345576fd7a902be4d012d56ceede9e66c8a5972828e7b5a5646c101c08fd28fa3ab1c935f8256";
   hasRunfiles = true;
@@ -32309,6 +33742,9 @@ ocr-b = {
 ocr-b-outline = {
   revision = 20969;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ocrb.map"
+  ];
   sha512.run = "ac15acebab9c9f81f0e7786cb3222b336aae3fa4a379592d5fa231e145cfcab536e28c9078ac617bf9b8b672f6dd24b30caa998242ba1e3f4633873ae8d54609";
   sha512.doc = "7bafe00b9c5d846f21cac682d9577ffe696eb54a55f4bee9314646451fec37d883eca7531f594a7994fa8038f7bb5c78a55dd8a8264255a6e60ff90929596d00";
   sha512.source = "b2fa5f4561a4fe61c216e800fcb47bf99a09a62d41d62e30669753139484b58b137649248ec152f7631461c54ab4e51873f3c7a42d43ccf2db86d3cd21d3493f";
@@ -32379,6 +33815,9 @@ ogham = {
 oinuit = {
   revision = 28668;
   stripPrefix = 0;
+  fontMaps = [
+    "Map oinuit.map"
+  ];
   sha512.run = "4d6b72ce539766a3453f7edb24c243a2a495f3916ee9fd650917c510a0e8fe36e12399843c1de3dc0b0de704bf5362ea20e9bd0d6c3100e659c5641395d658dc";
   sha512.doc = "dfb7275002731695086aa8733a543ca1eaa207bc57cd0b324666940ab932cd9301cb1c0b0bbfa4df36278ac8e289ac1be78a2e0a58ec656c470ff4b841a70803";
   sha512.source = "0d81c9803b9b45b20c096ab00d0c0e5ca26e71d5af463e511660c5bbd28b5b962afe243f21418883575b5d40f503bada65b5c34ba48486aa74a6f9ddcbd48680";
@@ -32388,6 +33827,9 @@ oinuit = {
 old-arrows = {
   revision = 42872;
   stripPrefix = 0;
+  fontMaps = [
+    "Map oasy.map"
+  ];
   sha512.run = "2b67317d41349c6d601d8ddcba6ba58cf503756f5bb2f4343c1447cbe4e24c8949a4de58e7cf3863a730bfa809dd09f5f1ce9944e3dc5d4de104e4817d6add17";
   sha512.doc = "d142a95119386f85d1e6ff0f6a24bcf09b9bf7ec83a581ca43be67376cd4a44453d090e4eedf97bcba1026827eff29f97add3a6ed676833b02b718da4811a3ef";
   hasRunfiles = true;
@@ -32406,6 +33848,9 @@ oldlatin = {
 oldstandard = {
   revision = 70428;
   stripPrefix = 0;
+  fontMaps = [
+    "Map OldStandard.map"
+  ];
   sha512.run = "838a3c6e29a37b060c2f5e158a7145a6119432006b213e4fb3da956d7df66e76e1fb6d963c67d4833b5d45bbdd203e689c9a54302dc3ee28de5d630b200f3dbb";
   sha512.doc = "7933ef5fcdd97201d269547c981bbdf50ebf11b5a11d417cdd1df9f3e0f35fd5fd618a198050865746f9fcb31cedd61abeea25540d2a70bac45b0ad9065c81d5";
   hasRunfiles = true;
@@ -32434,6 +33879,9 @@ olsak-misc = {
 omega = {
   revision = 33046;
   stripPrefix = 0;
+  fontMaps = [
+    "Map omega.map"
+  ];
   sha512.run = "bd07f654ad56219136e2f9e7612b87892bf8c6d0c8f2e41434a7fabb8b159bc43f79444301383adf560f1985f64e639dd496dad6d3ea97ccbd85fcee4d7a36e0";
   sha512.doc = "31eb2aa643ec37d68d902f4de7be391e7da3af61bde93e78beb1e6df1c6367fcfe00f88e29c8cc878b9cd40f2e3a45f9e46bf24ca3a5608aeae09be491130fef";
   hasRunfiles = true;
@@ -32521,6 +33969,9 @@ opencolor = {
 opensans = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map opensans.map"
+  ];
   sha512.run = "d92d10da8d6d8adfa62d440767ed1fa9abf413a575b122dff275eb2e46d501436edd90c215611cd943308f32a197c72b8fcdf56b72268f76237c2227cc9dd5ff";
   sha512.doc = "00e5243e465d948b6bd63bfd161d4e549cc6e5b008a8cf8aff1ea5a31bc7a1406858c045cf6fb52c254d61869f1bcd5ef8c6a43ea66164e842fe3fcff2b26540";
   hasRunfiles = true;
@@ -32675,6 +34126,9 @@ oststud = {
 oswald = {
   revision = 60784;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Zeroswald.map"
+  ];
   sha512.run = "92d4d3a7d8bd09031368a89ab7b49483e653750e1c348908aa3fdb62cdb8ce14ecb7d7a29b37e6774c613e658591622891e4bd6b348492c669716f220b46f9ec";
   sha512.doc = "1f6606c8786b0eb54a4c3aad0220347eac3b2bead83ca5540345737cfae509be42b9eb10f27a5ff1ced559aacad7413b69708eacd215afd47636d17194b40082";
   hasRunfiles = true;
@@ -32805,6 +34259,9 @@ overlays = {
 overlock = {
   revision = 64495;
   stripPrefix = 0;
+  fontMaps = [
+    "Map overlock.map"
+  ];
   sha512.run = "0c934c6f34922772336f39dae801a83c705197d7a7dbcf95cb890c25b8209697b3cfacc6899c57016ff32066979b665198d30ae45caf60748599e4c6ac052ad2";
   sha512.doc = "44aec04d96e2867a074ca1ac85fb3449cd276d6a14c893c8cd73dfaa91e60ef5f98ec7ed3859cc57efe746ae1454a5fcd01b44ac580369a87f69bf5cff3e3b22";
   hasRunfiles = true;
@@ -32942,6 +34399,9 @@ pageslts = {
 palatino = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map upl.map"
+  ];
   sha512.run = "5db043495b8daf0a5a854367ca1c82007a154d09b2bcae9f399e8f851f30a554fa98970cf45ccd8f0681f70ae7e01f54dfd414bcbd888b802e93993c2ed172df";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -33063,6 +34523,9 @@ parallel = {
 paratype = {
   revision = 68624;
   stripPrefix = 0;
+  fontMaps = [
+    "Map paratype-type1.map"
+  ];
   sha512.run = "b6f50e5c3063357e04e94a9454cc34b17e522c54effe14696d3d81e6de1f4732953b608c0c0d13965dde5c9c95e125d967afc888ecc9396001c1deb89e9b70ef";
   sha512.doc = "ba91b90030c703dc35a77b9a51a23d90e5cd6f0a6490f74e151023248b05a6a0ea5bcf188e3c8e69611b9b7d5f72b4569538a9da02193ca737e94e744c83c107";
   hasRunfiles = true;
@@ -33664,6 +35127,9 @@ pdftex = {
       fmttriggers = [ "cm" "dehyph" "etex" "hyph-utf8" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" ];
     }
   ];
+  fontMaps = [
+    "Map dummy-space.map"
+  ];
   sha512.run = "c0158cb19918ea2bba57cc68e32af1d2c4ef50ba45bf05e0c8b7e64057daee19843ff77633e4dd0ad660df39983c46f755c691f85d4aa2000086c02d48498d0e";
   sha512.doc = "d059f01596573efacc4ca80333b07236f860375f49b82d0cd3ab6b3f441f379163a37c820e713a2d96a8f69b821b3dbd68f360c5b5f005dccac54575df4b5d4e";
   hasManpages = true;
@@ -34092,6 +35558,9 @@ pgfplots = {
 phaistos = {
   revision = 18651;
   stripPrefix = 0;
+  fontMaps = [
+    "Map phaistos.map"
+  ];
   sha512.run = "d5cb8a051e1e80629385bff368896c47bdfccfcf38a24a723ddc5f9056a59c57703986799253812c9a4651f4e16dc55cee0876ddd0552900f978dab0381c9aac";
   sha512.doc = "96eb22628467289f72aaa0d4983e494c75b3a2315d8b9d2921f8ab29d93fffae4f459ef852529dfa4ff48a65e25d652662c54d84db54e0118b1c021bbe39eafa";
   sha512.source = "5ba2b04fe4e3aef136de2dc40568ecb81f437561ee8e6c320927bb816819889666f57ad07c3b8bf6eb7f6eb84b69147f9233449a26529b61712d158abf889f91";
@@ -34420,6 +35889,9 @@ piff = {
 pigpen = {
   revision = 69687;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap pigpen.map"
+  ];
   sha512.run = "54e472281b1ad2f98b8f49df945fc89ea2e28bbec4088c15b4b73a411ad42936f408926a006e46656eb70b90172f39dec376b2eace6fd22923dd4881e1659618";
   sha512.doc = "94be29262f4d00ff65c1679029bc76b33ebc10051862cdbd4da08ef9802975378efda5c2b2cbf85877382d093bb408feda0d53d3458337bdff5239cc851c1dc6";
   hasRunfiles = true;
@@ -34534,6 +36006,10 @@ pkuthss = {
 pl = {
   revision = 58661;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap plother.map"
+    "MixedMap pltext.map"
+  ];
   sha512.run = "bb0d16d92272c6233284fbcd94864c381ce60343e5b9ac23a04871a515f36c18d5eca92e7ad4f80b1335348f62baa703671984db2c85d5a35d84f725f699db9a";
   sha512.doc = "efde952f17a904492b2c36e49801514b97ac5302b406beca7680a893051bc3821e70cdaad8d01dab479476298154c5ce2db99d43b04cf51cbcc5e16358c9b9f0";
   hasRunfiles = true;
@@ -34731,6 +36207,9 @@ playcards = {
 playfair = {
   revision = 64857;
   stripPrefix = 0;
+  fontMaps = [
+    "Map PlayfairDisplay.map"
+  ];
   sha512.run = "2c75ccda034c607fa67993922e498347cf8a708c31360ac63d8304ebcf538e2012529864c6c3102a63b0320db68101fddae021ec396efaf0396d4d609cd0d711";
   sha512.doc = "006319162a3a7035955064d7ab99e704bf828cc7441a9c930cfccf4cb7e70ac52ff672de3ce8b415fbfb20f29a0b4c09703fe0e3715d15e38c1293973bd3a86a";
   hasRunfiles = true;
@@ -34739,6 +36218,9 @@ playfair = {
 plex = {
   revision = 69154;
   stripPrefix = 0;
+  fontMaps = [
+    "Map plex.map"
+  ];
   sha512.run = "4180d4b5ff2d6843ac375a52bc3c63570638cc29f7d3bbda476dee962998293ce4b201817e056d5e87c20bd8280336b65bc689a8e1580ab8aa6f24164002732c";
   sha512.doc = "175abcc07f213d5837070171b7fc483aec2c26b80f530ca7ad7a6f571de028c833e32d71a4c465fbfbb803afcba934e68df560944b8b54b20827d31cd21fa9f0";
   hasRunfiles = true;
@@ -34756,6 +36238,9 @@ plex-otf = {
 plimsoll = {
   revision = 56605;
   stripPrefix = 0;
+  fontMaps = [
+    "Map plimsoll.map"
+  ];
   sha512.run = "c0b44cf022ca470767d296af1ad80b2d5ede92adb22635f7ef34b9fa81ec523f769dfbfa6a78005a46bd9a4886507fa7b3a4f761bcb8f686dbf736e3ad92676e";
   sha512.doc = "9ee880e89387986e228f357f59981b18fa8565d60e88d6f1b15c4109f9f7f20108c447fb995f0edaf64723ac37635b56cb5d097e93e0374a0f64adda4215eed5";
   sha512.source = "2967c9b53daaeba02405da837050a53c69b725da8daeba1d6a9c58dbef0387628aa6dceb07815c5bb0d2cc37c6a1b66f5c64037ad33d74e1179dc3fc0f0431a5";
@@ -34916,6 +36401,9 @@ poetrytex = {
 poiretone = {
   revision = 64856;
   stripPrefix = 0;
+  fontMaps = [
+    "Map PoiretOne.map"
+  ];
   sha512.run = "07e1479df1d89b568388a855236d997580cb76ca6ea8f45b55622425d10584037cec5e17a734c24a0eb0a9746966e94137026c37d4696b475e641806d07a7ef5";
   sha512.doc = "c164f53258e08e74cade46f03f1e6d3d538a0f65cf3086629150c2741488bd33a82fca89d91bcbb83045d126defc3ee9493fc5e1d05e2c567464d4d29afc0cd9";
   hasRunfiles = true;
@@ -34947,6 +36435,9 @@ polski = {
 poltawski = {
   revision = 67718;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ap.map"
+  ];
   sha512.run = "620708dd3f1d2d8b2601377486631c2bdc779d06d2016e1c9ab5869afe00cb88dcb1ebd055b6859ad3e3dd25200c1079b723613283f048c7cd7354977b66b8b9";
   sha512.doc = "51067d3e930f9cae71d5cdf11d6ac83738e23539c020c93e6f4d8b460e63b04e77caaa41927ed8658056d96ff4fdcfc087e591be991e10c7e95a6b58d56ee368";
   hasRunfiles = true;
@@ -35303,6 +36794,9 @@ prociagssymp = {
 prodint = {
   revision = 21893;
   stripPrefix = 0;
+  fontMaps = [
+    "Map prodint.map"
+  ];
   sha512.run = "ab2b0ababfad124b38b018c7313df0114c36fed0dbbaa42de04295b09142740ef43f34c4c6ad926c97c1ce28521c1d87274486588609197c2178b631b4ee6876";
   sha512.doc = "addad035cb9e7b88d9da2bf161723db51897342872dd6c671695bb7bb0a6a4c7bac872ce40f31b22f5fdd84cc03994562a6f78f14d9203977d5b7c8d17130db8";
   hasRunfiles = true;
@@ -35607,6 +37101,12 @@ psnfss = {
     "symbol"
     "zapfding"
   ];
+  fontMaps = [
+    "Map charter.map"
+    "Map fpls.map"
+    "Map pazo.map"
+    "Map utopia.map"
+  ];
   sha512.run = "f7d1acebcd1d32a691221f396220358f3bb15dff2e2cebec4b537b1b790b68d8ce1164711983a52b4f04d6e470df2e3e5fec63bb1d3bf39fe205d5f0351299de";
   sha512.doc = "d1c14edccdf43ed2c786394bc04e9fd683b683532a9dc18d592f918ee8899234d23feb738128aa1418f441288cdbf0c6de832f8c4d98023926baeace36365a1d";
   sha512.source = "6862a7e74be6a575996e6f45a2236db810f1c030d3a0c53b2b97c2e803fc7e29010108e4597d637b8abedd63b1f956da268f62ca2c609accaa4d035be7bfd8ed";
@@ -36623,6 +38123,9 @@ ptex = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "ptex-base" "ptex-fonts" ];
     }
   ];
+  fontMaps = [
+    "KanjiMap ptex-@jaEmbed@@jaVariant@.map"
+  ];
   sha512.run = "dca32af2c2742207b380c909190204049e29eb9c824f534c39757e3544e305a9395c9fd6ff76d855f1e7fc67e0999bfd863640fc2d2f45dc44bdaa7df543568f";
   sha512.doc = "160902b1b32b9725f4c7cabd06dfb612fbbeef31845df108efd50917d85ef619ba62d03760852d31a21a23e2bdcb5035292b317982d7fede260a696041bb2293";
   hasManpages = true;
@@ -36821,6 +38324,9 @@ pxcjkcat = {
 pxfonts = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map pxfonts.map"
+  ];
   sha512.run = "3b50d3f04c00cd080495c71d9387fe9c810ade7d83ead1178d661a618374a3a67c0fc70ae2a809d2b91db4afaf352b1596a588f6998a4eda220a6f181390b6d1";
   sha512.doc = "71898d307cabff64078bbb98bee9417c79504fd56f1cfc1427b9e4ccc9448b5e2e8436fa085a63d6fa6601e591673ef52eb2225ddfad5e34943456a2239206a5";
   hasRunfiles = true;
@@ -37121,6 +38627,9 @@ quantumarticle = {
 quattrocento = {
   revision = 64372;
   stripPrefix = 0;
+  fontMaps = [
+    "Map quattrocento.map"
+  ];
   sha512.run = "cc6819b03992528b4a564757caf4767c92a00b8ecdd6053595c5561483287be88014b6cfe60c1eedde75160669981baaef1e71cc293d1585e9a7c54e0186fe35";
   sha512.doc = "f3881de285a603b1fb11c470f0c16698cdb4a4b165750a2bcc17fd4deaf44d5d94a7af531ddb1135d12556317731639ea779d25663a81bd25b578241ae3fab1d";
   hasRunfiles = true;
@@ -37286,6 +38795,9 @@ ragged2e = {
 raleway = {
   revision = 42629;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Raleway.map"
+  ];
   sha512.run = "8ce708ec993b1405dc04ddd96b6d39da324799f404e2798448c12cd03749f11685f840ba4f986b1b0f7696f9141923f3b91f5318de634979720af5af5b07781c";
   sha512.doc = "eae288de26c57ac27172e83bc6985b0edf80ac88538561468924c34656f31507e008097a1e8452ce47729ab501493733a1c022440c31c34cd99f8211383e889c";
   hasRunfiles = true;
@@ -37528,6 +39040,9 @@ rectopma = {
 recycle = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map recycle.map"
+  ];
   sha512.run = "3bc28ed41a8205534d34593429429768bdfa64e61cc212017ba4be32f7a985e8d65ab296137cffbb7ad5be4dec90bbfd30d675ab314bb79ec0ea10b277c33d66";
   sha512.doc = "3bbe68b48915c6fa662fb72072eb9e130613587e86d3d4172766c8fe690a995d23d252cbda9a226a7716c9da8741b3ed0e18eae1cab2f547d08265ee493a64dc";
   hasRunfiles = true;
@@ -37930,6 +39445,9 @@ robotarm = {
 roboto = {
   revision = 64350;
   stripPrefix = 0;
+  fontMaps = [
+    "Map roboto.map"
+  ];
   sha512.run = "d82d9ce9480bf0c9d7f6559e7bcbb5fe8f22179adc44113121f67fc0daadd66c938b9fcf9a41073843e1cc981162972a79f15fe6162f68ba7a01b74732b0f01a";
   sha512.doc = "2ceaedd2b273c252e8510a98cb05d581dad8aff94f3c8be1dc47fbbc9b52a0546ba8025c6bf0c51d97d0573d208af2f8a635c0cf405a980ae8cf8e4a1f13e499";
   hasRunfiles = true;
@@ -37973,6 +39491,9 @@ roex = {
 rojud = {
   revision = 56895;
   stripPrefix = 0;
+  fontMaps = [
+    "Map rojud.map"
+  ];
   sha512.run = "cd7065dc6a916941a0fd05ea342d29499b6f7496d1934e06c49e7ea1a99c5be5cd515bbcbc2b5935ff8132adcc7b94e653d55de967700410ace55697f6fc156e";
   sha512.doc = "fb9c9f00433ba959ad8f7b5acc93b1e7b0db1cffec96b7c988eeaaae89ceecc815071a1e21f78d36279e529f4e9095602b1887d3c5d4164494be502cf4a19873";
   hasRunfiles = true;
@@ -38002,6 +39523,9 @@ romanbarpagenumber = {
 romande = {
   revision = 19537;
   stripPrefix = 0;
+  fontMaps = [
+    "Map yrd.map"
+  ];
   sha512.run = "874883eb3592852dd6dfe2dc675a768bed8db80c0c617cad7c28bbefb2ca111adb410a584f75fad935bfec330765650ea9d0f73c8c5a9fe567526b5fb46ff17e";
   sha512.doc = "708ffe5a4dccf8241eaee7d22787e0e30bbd10faa1cfd538836da676cbd4f67b16a80772f8a4cea08f59af6d41a697426c4a4254c481d13ac3a10157b2a679e0";
   sha512.source = "040b154c19ee55910b05d0bfe355bbf000403fcc5c536a081e4569390c599123d64000680cb847ad710204d1c33d7ceb0ab7ea049847ff4ad0762fd9c0acfeeb";
@@ -38040,6 +39564,9 @@ rorlink = {
 rosario = {
   revision = 51688;
   stripPrefix = 0;
+  fontMaps = [
+    "Map Rosario.map"
+  ];
   sha512.run = "e1e200c49ba98fb1d2bd5cd927ff209a1f72b9681b1cf3b49baa263985790f7d4854ac1cd9fedd464e2076488b3042456c7fede5648dd8ef23d1ba6701705437";
   sha512.doc = "1e5a12a62b7e62587b452d0f8926757b987e83a2980698deb94c6955cff1e45ef634ec8ac1c1051f6567db8a3de9fe8d4df23a5f80317ddfd2ba863ef15935c1";
   sha512.source = "4c7613a697439feba9e52ebe40dcbf738370f3ad5278ef0232f0e0e13ba9ac2c46d60233c8159c626b97b53af5238f75c096106b0b8529423d5fa3feaaf57a87";
@@ -38117,6 +39644,9 @@ rsc = {
 rsfs = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap rsfs.map"
+  ];
   sha512.run = "f5d52f49ead227b058841bb88571ae0d6fb40b95dd652536887acf13c0a5dc5b61e3813faaef2effc26539125c2776e113937a1612e7bc7146e7d5517b02aeb6";
   sha512.doc = "2d23715b38d90c686d7edae77f2a774041d3b679035e0399b7b6089f9b17db3ea4c6c3cdd655bb6e5f3a3cae782e30984c1fe89f5f263a0cd86b441c5376848a";
   hasRunfiles = true;
@@ -38125,6 +39655,9 @@ rsfs = {
 rsfso = {
   revision = 60849;
   stripPrefix = 0;
+  fontMaps = [
+    "Map rsfso.map"
+  ];
   sha512.run = "7632b0cafcb0d28f5f4b742f8c457634a9cd1ec7fd59e61e01fd5f3da3964ae941fdf2fbaba94b0d0934270ba56a2224352e11075970e28bcf16bd9b6f97f236";
   sha512.doc = "ccb3ce73add1f2a4f269728b8189569637327d85cd1a4d29a03904872cff10ce3057bd01a9d74a94373c3aaa52afe74a98d07bcad248fd18943efb0bace6db36";
   hasRunfiles = true;
@@ -38344,6 +39877,9 @@ sanskrit = {
 sanskrit-t1 = {
   revision = 55475;
   stripPrefix = 0;
+  fontMaps = [
+    "Map skt.map"
+  ];
   sha512.run = "50f7a12443730bb017334ed1bad840dd2086a0225586eeae02f1386f410ae802fd043b1ce8a90e495aac7bdb20e2a8532c4cf98d48f0fc32b96da24f28de26bc";
   sha512.doc = "11a0bbb4212f72a18df5eb1ce1e2259774c6376a3c107fe32bed4176d23da2f5bda5cab71a7df618c67113ac9d65969ea8e680ab939c7c6cb2542ebd4c7e5efa";
   hasRunfiles = true;
@@ -38361,6 +39897,9 @@ sansmath = {
 sansmathaccent = {
   revision = 53628;
   stripPrefix = 0;
+  fontMaps = [
+    "Map sansmathaccent.map"
+  ];
   sha512.run = "685b0c604978aac45efd75c37652471aa165bfbbf12dfa686320a6a9ef926f9043382333ecc26db6d2ff4d12732d135947145ba937eb6d01d4a4e9aa17784315";
   sha512.doc = "c9bf7d65a232d668243df9867b2eca64e0288fd733c6b39ce200f64fc5b0a07c98ea6a971446f67f1766998e169c14a80eda71104c1653ed54d3865e6e145fc0";
   hasRunfiles = true;
@@ -38369,6 +39908,9 @@ sansmathaccent = {
 sansmathfonts = {
   revision = 68777;
   stripPrefix = 0;
+  fontMaps = [
+    "Map sansmathfonts.map"
+  ];
   sha512.run = "d31d37820883b0fa2a97dc878d11b6866554839acbae8c56fc10fb164fcfc2af5590d0d562512aa313ca950c32aecb4d4b89ea4113326446a75006b34a2f677c";
   sha512.doc = "5972253d34cb39cb0151050b4e9dab45dea50901a84f736ee8a25beb5ad647a112462ed5b3d46c61ff20a3a20852000c64736c88df9ed59defa2da5bf54b5638";
   hasRunfiles = true;
@@ -38490,6 +40032,9 @@ scalerel = {
 scanpages = {
   revision = 42633;
   stripPrefix = 0;
+  fontMaps = [
+    "Map scanpages.map"
+  ];
   sha512.run = "e13f7849b2b1cbe9fc60fc2e3d3bb7f2879644c282e8664a5ec46b3143f4ac7fbd21f2976183ad410bf778a181d5063b23832734f0ff43a617c9020b16587fb6";
   sha512.doc = "34eb2549a4d809602cf69eb562fd3c03c8d3fc4063820ce41b52d733228a6a83ace819e5bb82e77cd3be3cb8093e7997377fadeded652d20509eecde458d9b78";
   hasRunfiles = true;
@@ -38864,6 +40409,9 @@ schola-otf = {
 scholax = {
   revision = 61836;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ScholaX.map"
+  ];
   sha512.run = "f7062ca975c2801c220c6c34844d87e410e501442313974c77281aaa0927b27fdfbd2328676405cd1820c809e0354edd332e9fba0d04fa1e9a8d28f91543905c";
   sha512.doc = "7c64a884165087b72f052e7d3fe8c57857d62b92532bdfc6bcd46e66b12f8b12112bd71ab88d4a9603237b612d1eab5ad10e7de0c14e69ccabeefafcfd380302";
   hasRunfiles = true;
@@ -39273,6 +40821,9 @@ semantic-markup = {
 semaphor = {
   revision = 18651;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap semaf.map"
+  ];
   sha512.run = "b8741be1544d8ab488632e05464cf607069f0d09df7a727bc05d06175dc16bff461d551e7130e01edbb53863d56fbf4cd0cc9085c51186e19e5f2fae986b400b";
   sha512.doc = "ef0c85ca5e86a17d59c03255d679d54cc8fb36eec02c8546f29e1c514408559788d1dbe3ac7565224b320b71e9ad77979b1092fb0f098a1c48c3a7093b72b172";
   hasRunfiles = true;
@@ -39874,6 +41425,9 @@ simplecv = {
 simpleicons = {
   revision = 70519;
   stripPrefix = 0;
+  fontMaps = [
+    "Map simpleicons.map"
+  ];
   sha512.run = "336d8cc4f3a20bb6b9f7f956dc09dcb3184a333b0e82f9b72ebfdc7f73c757fa53a48ce0bc31a1b397c42bda9826944e3004d881ee1d6dac4f3430919b4cb9cd";
   sha512.doc = "93e23215d137d04ed4086269aa79dc8f81b70147f5115edbdf7e43865b20bb241275eda4b519db5d9a3857f36d956707d936156c002c155333d72b1f60edbed5";
   hasRunfiles = true;
@@ -40036,6 +41590,9 @@ skak = {
 skaknew = {
   revision = 20031;
   stripPrefix = 0;
+  fontMaps = [
+    "Map SkakNew.map"
+  ];
   sha512.run = "879107f0bb96441082ccc4afb560e4fd0f625e7fb7cab84ebbd642af1ef180bc27540eb9ff26c689039dd6abb11e9b88bcea30d5b1e75b40f0e3499c981ae6e2";
   sha512.doc = "8c26115910f2e9a9ae28e1b6c0933db3308c9f59eb151bb37b23de3f0f790b9726aef895def0826e00928b75753d925c5c9db0a6b91ebf7035fad5a4e473a315";
   hasRunfiles = true;
@@ -40311,6 +41868,9 @@ soup = {
 sourcecodepro = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map SourceCodePro.map"
+  ];
   sha512.run = "98ae07aa0c29c1c1cf2e181b1a5d68f85736b90b8f381bc9c1a2368cea2b8c62fb0c8007f5ce6b53b8e87195b8b0859c54bb2656cb7361119c29ed87d9259c62";
   sha512.doc = "e786d75bedbf5c5d155a69fda50e9fe6fe07914ca01aa10d7ab66800cd37a4bdfeb543ad34c9ca2eec53de226e68d7a1849a9a0510291d135001c5228f19e2e8";
   hasRunfiles = true;
@@ -40320,6 +41880,9 @@ sourcecodepro = {
 sourcesanspro = {
   revision = 54892;
   stripPrefix = 0;
+  fontMaps = [
+    "Map SourceSansPro.map"
+  ];
   sha512.run = "0511dcf736273d80f7143c9dad96dd9f631b016183b4078243ed061d35889fea62e50c5f48e9842ffae7b654fd2e08a21d1c46403e56349c0b515ff2eb62e164";
   sha512.doc = "174def8872588c27b8f90b3c384ee356aec43e4e42014bb1c02d648d8b309dfa8fb9cea03f65fa9bd86dc3ff1e64483f1312dbaca6e212f65d2d379a1d9935e3";
   hasRunfiles = true;
@@ -40329,6 +41892,9 @@ sourcesanspro = {
 sourceserifpro = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map SourceSerifPro.map"
+  ];
   sha512.run = "5125dc5b72d960fefffcc4c8651f3d176c18c32d111440a16a0319f90b8dc973a4af0e20fc3b571578184e31749312c0c1f0ec3bba36b3715a3c59fc03768d65";
   sha512.doc = "c469f7beb0e99c8a9891c4222171525004c63e9feeaea9be57e663541ba4e2f259d2a3674f3029e4609fc08292d749f005f971bfcc542115d53e1845a02680f8";
   hasRunfiles = true;
@@ -40403,6 +41969,9 @@ spbmark = {
 spectral = {
   revision = 64528;
   stripPrefix = 0;
+  fontMaps = [
+    "Map spectral.map"
+  ];
   sha512.run = "e260d7605cb89a7ff33f530c5f6448f2ae512e9ac1b22880f3d76147701ae458fa5acb3525d49cae3973c24b51858ad687b76f5a00ca8d914edf4e329f3dabc7";
   sha512.doc = "4fba6fa0576a84b05d0a0bc3520ac6e08dbedb7f37e5af5a0cc961c80deb98d53065be3c645c0eb0dc08a495d113e72f4474de32dad5d080ce67b000aaf4042d";
   hasRunfiles = true;
@@ -40562,6 +42131,9 @@ srbook-mem = {
 srbtiks = {
   revision = 63308;
   stripPrefix = 0;
+  fontMaps = [
+    "Map srbtiks.map"
+  ];
   sha512.run = "7caf4046990b6708f753ffe9eda73f564fd1d18a97fbb78d72fc0db72e0b8a2af2974e6348ab2f62973805398581c7bacf6b9937fcfffb33057cc3586e4de6cf";
   sha512.doc = "1b393eddee48395dcd94889c3e5d530c9c4ec736e41f901bf6a66ebb9d4929f363407d026ac9824ae82c852823e9f4d87a618ab4aaa0cc25247c3be03ec00f31";
   hasRunfiles = true;
@@ -40677,6 +42249,9 @@ stanli = {
 starfont = {
   revision = 19982;
   stripPrefix = 0;
+  fontMaps = [
+    "Map starfont.map"
+  ];
   sha512.run = "1f45f97813f5e51b45e1cbd3246b877aad823895a4b087294d0754c560db5796d8b4f9d09972b5c90c4c569db82a2d70bd1c39a9dfe6e1fcc4e0deeceb44f876";
   sha512.doc = "def94e1e2995e20e282d9319f763ddbc5e152a48c18ba98ef4d168e69a9a6deb5d7d87923a3259553f990f2da73c78929858852c6165acf7a94a6010382f786b";
   hasRunfiles = true;
@@ -40753,6 +42328,9 @@ statmath = {
 staves = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map icelandic.map"
+  ];
   sha512.run = "f6a1aea97a3293ffb514ccc526faa71ea5ea3ab32990da8725cc3ff998d15a2909001976d9705ba13110fbde869001bec2f286e58c05f1fe31f345ecd5882482";
   sha512.doc = "b839484325cc6d06a407ea685dd705b3616d1e87f22d4a625c20dbc507647b602417a085328f9ba886766ee0fca2516da397c742198569477bc1009271a4db23";
   sha512.source = "9dbe40efcd1699cc9267b739bc1b182fc0e5dc23ae52d19ea89c1742b815e4ea9b7612e4fb80aeb83f3d9206ab408cb0ca3fcb99c85883fb86f89f3ac26f0b5d";
@@ -40822,6 +42400,9 @@ stellenbosch-2 = {
 step = {
   revision = 57307;
   stripPrefix = 0;
+  fontMaps = [
+    "Map STEP.map"
+  ];
   sha512.run = "d1f19415ceeefb879a3b4017fa286e5e5806e193fc75159b515fe21a9a6093c6a95d04e2e2e3c7ee457edb8ad717b88043c58727fb3924cb192e05aec12c5c07";
   sha512.doc = "bbf49f36bf7588c83e237d58d49ff7453c368cbe7e3a32c431944a2249c0dd75c2c1081d10bc2279e0836384602268ad163ffa3eb7108cd28a6c510a18f001c5";
   hasRunfiles = true;
@@ -40831,6 +42412,9 @@ step = {
 stepgreek = {
   revision = 57074;
   stripPrefix = 0;
+  fontMaps = [
+    "Map STEPGreekTest.map"
+  ];
   sha512.run = "c322bb089a887b36c4008502160f0970ff2ca33f05391010adc38c12726b2079085bb1775934597fa1758effee14eda76647b886644971e7c40a451154e446f9";
   sha512.doc = "c3f4c2b1ea06a012ba4d5f5ca72faa0a6c1b4ae5c132b17bda0b6bb895f34e555724f93cd791fad8c6ff846027dbedd723f874ae1e772de95c64bf54f5fa0265";
   hasRunfiles = true;
@@ -40850,6 +42434,9 @@ stex = {
 stickstoo = {
   revision = 60793;
   stripPrefix = 0;
+  fontMaps = [
+    "Map SticksTooText.map"
+  ];
   sha512.run = "aa2ede628a273b4fc0796153d243bf89dce6d3c1b0097b29327bf21836340d11f6e6368f312d76ff726030c05d012c3890f86277ac7eef79d5c5ca579f47cea7";
   sha512.doc = "e1437dd3b47c8799b4a8a60fcfc215a303f1eb289e0424e51d29fad78c9fb4cc4890896baa77251681d000f2eb08365f9f16a2fbc1c37881b852790257432088";
   hasRunfiles = true;
@@ -40859,6 +42446,9 @@ stickstoo = {
 stix = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map stix.map"
+  ];
   sha512.run = "7e639f7a534e24afd9d009e224d87c9c2a502cbc77ff882c6dcc9ca0bff512f849d1f3e658dff8badab3843a658171b88ab66d8e731392dc456f9c5f4e032318";
   sha512.doc = "b01c3dfaa96a6bbcaa83e803514c8090546dcdd54595d7c66a1ac280286f5baa98947fe9d513da3d8baa1e83cdd174443751fc79c07cf66093af4e9044fd9010";
   sha512.source = "594af38fdb72d632c36cf6ae6165518553b10127281ef8a6ec71f4ced16481f2582a13f1f6f0ee98e900c3147c574647c508f7c9e51afdc57ce68614a394d007";
@@ -40878,6 +42468,9 @@ stix2-otf = {
 stix2-type1 = {
   revision = 57448;
   stripPrefix = 0;
+  fontMaps = [
+    "Map stix2.map"
+  ];
   sha512.run = "802ea99ccb3b8e2e727537113843846dd6629f722508219be88cddd9e7f1e6f67a1bf48ae3a61c51991ec91ba5c543467d3aaba64116e4be08707def58c70f34";
   sha512.doc = "b4f1e6e8962fd77ecaf0df94b156783d9f77c07231e6cc258e04c26a8190dcd0a3175c71bd3a1187ad6cc083595ee80925712f12e0f838c474ac93701b47401e";
   sha512.source = "5963bee636210eb89d31ea8d5954468fe9959429d516fb988c8ceab3c591f53b47a5a77df8f10d8e20f136adbf2fe23f546fa62b1768db7164ed74fcf706a228";
@@ -40888,6 +42481,9 @@ stix2-type1 = {
 stmaryrd = {
   revision = 22027;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap stmaryrd.map"
+  ];
   sha512.run = "8abe58b84fff2f4fd6846b6c267f3b245fb1dfc2f38d0db54ce7cd9d456abd07627247613073f09dcf7e11e3e9c5940d8ff657327232ce638abc6babcc5b3d77";
   sha512.doc = "caf883d1c5021b52d6471c4c2145e708ac3c05c8944eaae621a3ea7b602b683ba2ef2bc0052f9caf67adc1415e7db02b5b55d3642ed82727a926ec193dd984f4";
   sha512.source = "ebefe2836daed0dd4db99517af0f40c73f0a7b19453d5415c80ae6cf723f4ec4e4ae6f9700a21722b4c0d9b8507c58a596697017893716111b46222f54676aa2";
@@ -41311,6 +42907,9 @@ svninfo = {
 svrsymbols = {
   revision = 50019;
   stripPrefix = 0;
+  fontMaps = [
+    "Map svrsymbols.map"
+  ];
   sha512.run = "1fadd5259d527daf316502aae6072865b9c6e2efc1ab92f4bc0c3d1070ca4dd863b8f7366c9e6909b7885858c1745cd723003a9f4bd28e8208889da2c21f18d3";
   sha512.doc = "6ff7b9c1efa4b59c453b42fd37dc66e3c79912ff0bf9765b2745fd0cd946a4cfc4a063fc943d1b5919368f8a5809eef5cb7f3a4bf3b6cbdf8200f42180d21f92";
   sha512.source = "916ca0f14ff1b9ae99fc609c41fa655eef39bb053ad39274dbe43167dbeed06ebbb9990cde6c040fcbf9b432b4ff89651195df094aa9c35bc172e7932917148d";
@@ -41380,6 +42979,9 @@ symbats3 = {
 symbol = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map usy.map"
+  ];
   sha512.run = "1a2d3239cf7c9910b19db527d5c2b43af2b399114b3186505e790a139ae5ef82c2ff1ecd5adc858a46febaf2e46e028037ba65bd5b84fec0737edd89d5061c09";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -41690,6 +43292,9 @@ tabulary = {
 tabvar = {
   revision = 63921;
   stripPrefix = 0;
+  fontMaps = [
+    "Map tabvar.map"
+  ];
   sha512.run = "255b93a8eda59386b798e85741422c529903acfc0d06cb77f4b128c2e32e4a68ef32097888e921397c3e22434b581de30bb79c8cc6dc8357eaef94f26e6da04f";
   sha512.doc = "117158275aef7f9e5ee3e423e65d9ada5c2f6d28b660941a3d5d80ebb9716f4e35658e070911280e375b29290e2056ad3521acefa1eabfeda95ca9051d64a0c4";
   sha512.source = "48fd599f93d6a5310ebb7dab44aedc9ac017878bbd85d2f1bdb21a676ba95ce717be96f8a26f24d67c4ac4530d233fa8b9842f13fb124a8cc8ce3badf44c6bb8";
@@ -41918,6 +43523,9 @@ templatetools = {
 tempora = {
   revision = 39596;
   stripPrefix = 0;
+  fontMaps = [
+    "Map tempora.map"
+  ];
   sha512.run = "0e1cc1a13f7937e5497f454b15ca66e0975b784b80223a902bf12a9587abdfdb56116b100e04306b1999e053b7c3716b32e1183dd7e6624162611f3b70388df6";
   sha512.doc = "18259e25b2c9f2a9cfbce9a9303d8827af069bbe2a7ade5c14518ce2c19dc973a86fadaa99b2abc8bc65644ee5371c745abba03cca76a685382b7d8b6d20bc6e";
   hasRunfiles = true;
@@ -42092,6 +43700,16 @@ tex-font-errors-cheatsheet = {
 tex-gyre = {
   revision = 68624;
   stripPrefix = 0;
+  fontMaps = [
+    "Map qag.map"
+    "Map qbk.map"
+    "Map qcr.map"
+    "Map qcs.map"
+    "Map qhv.map"
+    "Map qpl.map"
+    "Map qtm.map"
+    "Map qzc.map"
+  ];
   sha512.run = "5422f349d15233e6f49576fe3a65f8afb5cae6a3c51e5ad7cb56617d7d064e9cf574f233f789c029c04bbfc24e5948c115b2d33569e881373d68615ac709153f";
   sha512.doc = "db2bcc8da6d3bfb6f2165c1fb127b2b4a7471e41a0cebb851ce5465a18740d34948ce8292b4f6bd359621166602cf62a978bb179346dbd1dcfada49cc7972686";
   sha512.source = "e958408e6e64a54b25fa89b38de181c96fffb9eb8762959209799c39cead7a5525f220b7b3cd278e35cb9e3e49c1c85d565d518ffacb0695b0c3c09ede935266";
@@ -42505,6 +44123,9 @@ texlive-scripts = {
   deps = [
     "texlive.infra"
   ];
+  fontMaps = [
+    "Map mathpple.map"
+  ];
   sha512.run = "fb5abd894d2ac7021391b7ee270cc833131c2a30f406e8b63e1b3c713abda08c3a28a30067d89e905fa40d7092c9529e8ed954a020833724cc867c6f2eab5272";
   sha512.doc = "3d497cf7940b0b6410a537da324da33276b8af004c00b54462f40986d7a2af818c817b57663d47c714c3e4237dbbe622627bb64dedbaf2017732bc76e59492f5";
   hasManpages = true;
@@ -42905,6 +44526,9 @@ texworks = {
 tfrupee = {
   revision = 20770;
   stripPrefix = 0;
+  fontMaps = [
+    "Map tfrupee.map"
+  ];
   sha512.run = "ee935ea5c6563fd8da4f403a1c3583b289b64e212aed4b9e3703ec345dc47c5521d291e1ae0a10c9aec2ebfed407fbf14e804bf51ae4c4a1e03046fc7cd0ad5c";
   sha512.doc = "19da18d665a8369e58a26d4e979d5fd6c8b3187dfba97a281008627aeb8c5ee824dc2ad3f5c94c3b35c67fe28a646f44aa5f532912de5f5640b0a7d56afec2f8";
   sha512.source = "30133dbf65f1a33f79ad8b2c8ee84ff376b39d12cf0d48c4e72e86b393e0d55f5768c7af5f5f3f6ff1d78fe2c7d4f2b09d2980107dd5aa1d94fb5ea27545ee9d";
@@ -42943,6 +44567,9 @@ thalie = {
 theanodidot = {
   revision = 64518;
   stripPrefix = 0;
+  fontMaps = [
+    "Map TheanoDidot.map"
+  ];
   sha512.run = "f7c8f9506516c52ef1714e0abbf594f1f6be8492aced3f502a7f49c2a1b12c69b6c57c01300f71f582639f42001c3ece2bad4f9b4ff2b1a1266c3e36e9bd0d91";
   sha512.doc = "0396291a9213e2b80607572a2313801a6a93f4ca2f54889a4c18e8330ffe9f057b856ff957d58d61ddc2828838c6db9e45e26cf611ff88ee80f3b2073668ed64";
   hasRunfiles = true;
@@ -42951,6 +44578,9 @@ theanodidot = {
 theanomodern = {
   revision = 64520;
   stripPrefix = 0;
+  fontMaps = [
+    "Map TheanoModern.map"
+  ];
   sha512.run = "c940c73df2143395fc4f2887e0273850787cda96cf586b0a2067ae39efdcde999338eb7826fac9af5e97bca978bb309b0478e1dcda43cae0a0b3266430d3348b";
   sha512.doc = "934ad9a47609277dc1a10bd20f55f0ca01b6f1167a574ee8609352d94f4aff6305db9ca0e3ca5b83cad1f1eac74e5227fa92acd65df9de3f91abcb653f60d21e";
   hasRunfiles = true;
@@ -42959,6 +44589,9 @@ theanomodern = {
 theanooldstyle = {
   revision = 64519;
   stripPrefix = 0;
+  fontMaps = [
+    "Map TheanoOldStyle.map"
+  ];
   sha512.run = "b2df891fef113bcd50ba63cea16942738a9c8665a1644187401ba471e53c2f35070c8a339c1281e4d679dae39e22497de92d854ab311720903e676dd7e7b7413";
   sha512.doc = "cb896fd78684c8c21ae5579da4b510636336e4959c0943577657aa90d2d843415eaaa2eb42e7d1cc031f6a50044a7702c7d01abb8af7dabd4b6132545c799a07";
   hasRunfiles = true;
@@ -43802,6 +45435,9 @@ timbreicmc = {
 times = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map utm.map"
+  ];
   sha512.run = "06f93b823a6141a51554bbd682c128977676775b1c097f7787916c0c14b76d6e9c4041645003111d5a1b905de4faafde5b3efb61d9be9740b9627ab57f3f8eef";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -43824,6 +45460,9 @@ timing-diagrams = {
 tinos = {
   revision = 68950;
   stripPrefix = 0;
+  fontMaps = [
+    "Map tinos.map"
+  ];
   sha512.run = "0212c5d1d87d1c73c66926a7bf06b2b62a0be51b3a03daec2086a15a4facd80e175ba3f4e23f486e181fb6d3910b77f7d26c28a8f76a9802b5112b010efccc2a";
   sha512.doc = "e7f6fa5253e729b602c1bde603e568d5cdcb953e2a4f1e478c52959d25f58f7678cd107466d7a99b459af70250076c5f16224e4ee549998356c1b1957aaa60cd";
   hasRunfiles = true;
@@ -43832,6 +45471,9 @@ tinos = {
 tipa = {
   revision = 29349;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap tipa.map"
+  ];
   sha512.run = "7919b8f5a416cab24c02675ee0a24c60f64e9dfb3bbacb416eb74e29badf6b4dfd8a0528cc8b38dab6395b8c74ec5c808ad84d3a8d4ae5e8212691bed9066129";
   sha512.doc = "213c4eb24943e655c03087dbc5a51eb3cfeff09ece1d31fd11f1734ab3b219db94cc8b5f4735f3d6381b79a5d6ee2cfe727acd17f823b21163e910c09f48e413";
   hasRunfiles = true;
@@ -44335,6 +45977,9 @@ tracklang = {
 trajan = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap trajan.map"
+  ];
   sha512.run = "66fe869b94f489a3240078fa28da32fab71767d93befefca62fda3a39ae53ab975b13b7ddf84e490658e915c100f16225ea0ed8e7787b099bf4cb067a9fd4e09";
   sha512.doc = "c6b6137d1952660b99bf077eae0ddc0f40b4ea9ff6308e4f461fd0e34c7b4b35b4ad79f3e42e4d0077c9d2947db642d0add032f2413d580748ba786a8abbf029";
   sha512.source = "36b85f870cd9b006f89df594193877a2188635be840636ae9300f511e5ab2a1ea60eac7f927ccb3e9832ab01972bf585460b47cf7ef30f36a6049ab0ce0fd95b";
@@ -44797,6 +46442,9 @@ twoxtwogame = {
 txfonts = {
   revision = 15878;
   stripPrefix = 0;
+  fontMaps = [
+    "Map txfonts.map"
+  ];
   sha512.run = "2e6a195791067ec85f4eeaea5970467c97915dfa48f59d17b5a73c90ba221de1b41ed35502c6714335cd190af05ccaefc6cd5855c5f35f49bd8e15a2b4ca0726";
   sha512.doc = "f19a988305799931023026f714b63ee539ebaddcd39e9be1f1bf765cc4cc89428b626ff4d6bfc91ea2f324f08cf09b618b6a0f8db6b01dc9d8685618daa1e2d1";
   hasRunfiles = true;
@@ -44805,6 +46453,9 @@ txfonts = {
 txfontsb = {
   revision = 54512;
   stripPrefix = 0;
+  fontMaps = [
+    "Map gptimes.map"
+  ];
   sha512.run = "7b73b199b6d1f109b14154ff659089b2f3c36feaad10c26fdca80f5c4ab464f8a52fdd52a6191a89538661a3a9cac8fc45748cddd09b6e32e79f23db9e8586e9";
   sha512.doc = "982d29750320bc1709ff8329effb3f7bedc6ded888a537aeb7f080c6fc37414956b1b1e149225cea3f3a60982575fbc943433cd4f9cc5e5d61c596973c07b3ed";
   sha512.source = "f9e4d922abced380458f9fbb25c25a55d55e3a4b938c612bde03c0dd60d55573735816acd745c2785356e5956078615ada3c1396148f8d84a6ba9a805f4ae0fa";
@@ -44825,6 +46476,9 @@ txgreeks = {
 txuprcal = {
   revision = 43327;
   stripPrefix = 0;
+  fontMaps = [
+    "Map TXUprCal.map"
+  ];
   sha512.run = "f6840ff0846b52130b65c81513d4bf358dfea413ac6d7f324eab592b96d5277d7036e5d991dbfc1ecf6376fd35baaf0351818eed69a21b6ba88e25f878a41ef1";
   sha512.doc = "f5bd216c689b0368bbbfe29f7fbd57bb7c02344d8696af488fdd7f1078fc5ad9ac7ad5565f1408b7b7d19224093d1418c1e3d8920b8cb0cece770811576c894a";
   hasRunfiles = true;
@@ -45110,6 +46764,9 @@ ufrgscca = {
 uhc = {
   revision = 16791;
   stripPrefix = 0;
+  fontMaps = [
+    "Map umj.map"
+  ];
   sha512.run = "b5e722e7a72d2efcd89c969c10291779a2885603817374e4318f59b4042b8890df967503016d08a91e30ba8cbbc6f1838843644f06cf44766a7096efdd3bf905";
   sha512.doc = "c37c5041d155f9a175a6761154211a683405d094850cc829a6b942afcb93af987b4049e663d260ae2b066827007d8c6576fdcd5d14d3ff599f031b13c00e162f";
   hasRunfiles = true;
@@ -45587,6 +47244,9 @@ universa = {
 universalis = {
   revision = 64505;
   stripPrefix = 0;
+  fontMaps = [
+    "Map universalis.map"
+  ];
   sha512.run = "4fee20d63395348a021573af4e4e8897f267d69cc59dd7dd8e9fd6ec06041fbb00608dd3adc103b1886638e9783fdb010fbccdebd3ee7cf91a4b57dfd85b67b9";
   sha512.doc = "79c500724365b3fec6f25dc49dd019ca23d0d3bfc9889f75f10a090250eb1614549c8f3ef215102fe5d5ea8c317bd1f1b60557133be0afe376cfd74d73d67fea";
   hasRunfiles = true;
@@ -45800,6 +47460,12 @@ uptex = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "uptex-base" "uptex-fonts" ];
     }
   ];
+  fontMaps = [
+    "KanjiMap uptex-@jaEmbed@@jaVariant@.map"
+    "KanjiMap uptex-ko-@koEmbed@.map"
+    "KanjiMap uptex-sc-@scEmbed@.map"
+    "KanjiMap uptex-tc-@tcEmbed@.map"
+  ];
   sha512.run = "fea7d0156a1f8b8a66fc061d454c1318fe98e6c1a3c618fd9e31fda4246c7a55684df6e01b986d0c296a7a9458c3489af0e4bb2142341a95e5279da97668b4a1";
   sha512.doc = "edd326824f93b2e893ac9bc7b6f498178427477138c2e068a3cffddfef5ac658cfad2671454caa6c222bf165a2d4a16964fa67eed86c01342d119053f31a3fa3";
   hasManpages = true;
@@ -46169,6 +47835,9 @@ velthuis = {
   deps = [
     "xetex-devanagari"
   ];
+  fontMaps = [
+    "MixedMap dvng.map"
+  ];
   sha512.run = "b7901813517790a92a921b1202c39a058d53a4159634cae79960ec7ce2da08acb757b307b5066ab1251e4b460234fd9dd98c2e404c05fc6384c656472302e3ec";
   sha512.doc = "06a9330410b55052759e18efa8720ef65f0f3dc8a2f15d3c0a0c8f70edaf8de65eeef8ec10a9a376b4b285b1c8f619278f68e9a2bd7ba1622da72b6ff488f8f7";
   hasManpages = true;
@@ -46200,6 +47869,13 @@ venndiagram = {
 venturisadf = {
   revision = 19444;
   stripPrefix = 0;
+  fontMaps = [
+    "Map yv1.map"
+    "Map yv2.map"
+    "Map yv3.map"
+    "Map yvo.map"
+    "Map yvt.map"
+  ];
   sha512.run = "0f6b7369c1d589f9725897182f854f008b73dbda47078285635e87d480011bea0610da81512416b0963aa55487d646cd2a957002552ef2b8609d4536c0dd96bf";
   sha512.doc = "b46066744794a8ae1443b18bf1f6ce3d586c8ee8fa5c3273db608751979089b2407a6feab421a3c3c738a682e83e2f44bc5ac86eef1d51fa914ed0f0df985bcb";
   sha512.source = "2deac2b1cd151e41ea604d99209174b28de33d9f9358353b7d8b120c8e3cf45552947497e6d54cdf4024f5a071c39246221fd25cbca09cee7984755036993a40";
@@ -46400,6 +48076,18 @@ vmargin = {
 vntex = {
   revision = 62837;
   stripPrefix = 0;
+  fontMaps = [
+    "Map arevvn.map"
+    "Map chartervn.map"
+    "Map cmbrightvn.map"
+    "Map concretevn.map"
+    "Map grotesqvn.map"
+    "Map txttvn.map"
+    "Map urwvn.map"
+    "Map vntopia.map"
+    "MixedMap vnrother.map"
+    "MixedMap vnrtext.map"
+  ];
   sha512.run = "f6a4396c473b6b0dd067c88911457a21ed393cd1d10edc90db0122fefedca2a6809ff50c34932d28bc1d6774ee176a165002d24062f8b6b949e85cb1468747ee";
   sha512.doc = "dc5f2b41cfe273a14278abc75490adceff6c50698de384130310a70370a3e341280d874f398027e8b2af2fd266beb2f470d414218862097ad718e5daa157928d";
   sha512.source = "bf8835b8e7dbd8f1ba5dfd28ee572635360f6f99818b40bb0daef4bd632ae68e1945f96dca6f0e3238fe42113c025c5e41dacd4e756476472fdbb4bdeaea3d3c";
@@ -46476,6 +48164,14 @@ vwcol = {
 wadalab = {
   revision = 42428;
   stripPrefix = 0;
+  fontMaps = [
+    "Map dgj.map"
+    "Map dmj.map"
+    "Map mc2j.map"
+    "Map mcj.map"
+    "Map mr2j.map"
+    "Map mrj.map"
+  ];
   sha512.run = "2d603ccfa92e8ef9abe91f5afaf490c7c8476061679f7a54c22879bb90b4d874f9e0e533e25aafb94fee2ff512f689ec96d25ed7ed42d0ae90c5e05985daadeb";
   sha512.doc = "f9c35379b396dfb563c66a05d200c405f03de96e22ec94de3a9f0c99ada057db21d31b43d59391bc0175479b5f150435f8e704fa40f6b58f2c116bbda3ec4603";
   hasRunfiles = true;
@@ -46552,6 +48248,9 @@ wasy-type1 = {
   deps = [
     "wasy"
   ];
+  fontMaps = [
+    "MixedMap wasy.map"
+  ];
   sha512.run = "d7131c025bd97bdaf62697feb698da97d175783e4b0502d3e85b60a663f46a0520268a6063956afaddc6308ddd21954992bf8d216049cb324133e3760ac20825";
   sha512.doc = "d9c88d39deabe19393df0b6d83bddd644e347592735cd7511dc70374ea015cd7fdf36ac9f320b44c612c8276eee3d7cd94f9e0b26de050c0771c85ec7dbae53c";
   hasRunfiles = true;
@@ -46858,6 +48557,9 @@ xbmks = {
 xcharter = {
   revision = 67742;
   stripPrefix = 0;
+  fontMaps = [
+    "Map XCharter.map"
+  ];
   sha512.run = "9e71217c7df0e41de44aa8cfe09b36955910ccca4337d878b0f18f4352f52d14b9dc1cafae01e9b06ed1a094282bb73b25e5328ccbf60e6070b57262e106018f";
   sha512.doc = "04b1aa9efceb7b87551ffb6743605861ebe695118376940fa84e8c3a8b0ff7c073d86850713f8df98381c674fff210bd2f4dddfd82de4f152945207ec4c44354";
   hasRunfiles = true;
@@ -47794,6 +49496,9 @@ xymtex = {
 xypic = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap xypic.map"
+  ];
   sha512.run = "431451f2028cc87d2d22b4d6ce95ac8f216755da312301195ba7af46146382cf76c27f9964a94817e90afdcdbc7a01dbd887d45808296984fa0b3a3a1770b46d";
   sha512.doc = "9664336d5bd14145603a8c3e861f8fdf062cd4587b8f739a29d93ac78a946c06a0985da4f011030df575276bd43555e55ba467eb4c640d60b2db0a07be706908";
   hasRunfiles = true;
@@ -47992,6 +49697,9 @@ yfonts-otf = {
 yfonts-t1 = {
   revision = 36013;
   stripPrefix = 0;
+  fontMaps = [
+    "Map yfrak.map"
+  ];
   sha512.run = "ec4cfa0d4f08f506b3bf7a3acc8e303ba51c7761f32498f040e062264e595bebe64a4f5adc7d6ab5aa2180c55b817d0124d5b07b276cb39c775539113a08f490";
   sha512.doc = "dd37c5163de0bdcce937a1866a48d9f924faff81da11e566e9525a6d5a81ae82419ee7eaebdff1cd8512957a878f849f43e9cd71dd39625e6dc0e2ba18f4ac9b";
   hasRunfiles = true;
@@ -48001,6 +49709,9 @@ yfonts-t1 = {
 yhmath = {
   revision = 54377;
   stripPrefix = 0;
+  fontMaps = [
+    "MixedMap yhmath.map"
+  ];
   sha512.run = "88476f5355d041f1920c4f0f954853828bdfaf27b9d0441982a38e3dfe79b40377a83614794024ee8c8463eaf5d1c350bff033f1c53e031451ab7cd095e14948";
   sha512.doc = "56fb12fcc4099f14c5746727b3c3051d84097cd8a715023545c3a2fafcc5a5abe55980a12e4384f674ef6cad2c7d6dab2beb8374e4cb3af81f711c2e8320d97b";
   sha512.source = "57a97c1310cfefcc453d031dd3c4701bac2a36c04f435f7a823e1b83671afccadc33d213e9578f4bbf806b6c73aaf33d3816dcafa86fb4447d53659e11f83072";
@@ -48059,6 +49770,9 @@ yquant = {
 ysabeau = {
   revision = 69663;
   stripPrefix = 0;
+  fontMaps = [
+    "Map ysabeau.map"
+  ];
   sha512.run = "c5545488723a4408a771c083d191942fc7b10e85e6c2df65e6ae0839dcaa7202459ba8774497562b7e55f432fdcca904de132ac7d89fbf3d935aa238ff63fede";
   sha512.doc = "a37a971140b1ac12724f2710e6f017690ef151aed9a88ed00bd00cd80ca6ca8524b0347b34bf83cf8e2e34fb000e4ac53c1a8a88684a0e3792e4cded362513ae";
   hasRunfiles = true;
@@ -48078,6 +49792,9 @@ ytableau = {
 zapfchan = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map uzc.map"
+  ];
   sha512.run = "a5a8a672e1753cd39b44dfb43b9b83673f7bd20dfb4e4640630ba0908c228dd75dda7933432d6d6f7e2c4920d554aa8cd41a523ebe665832edbc4aa7b8034332";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -48085,6 +49802,9 @@ zapfchan = {
 zapfding = {
   revision = 61719;
   stripPrefix = 0;
+  fontMaps = [
+    "Map uzd.map"
+  ];
   sha512.run = "3e0503c2d4e30c8d727caa1d9438d4c6b12c3a15729eae65d5c4a8dd9ab0d0c8eee2f63138e9d267f4ae98ef7607388888f7acd78e189a5c322bda22827166fe";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
diff --git a/pkgs/tools/video/go2rtc/default.nix b/pkgs/tools/video/go2rtc/default.nix
index 8ee378d6c264f..12bb7f2b0b0f3 100644
--- a/pkgs/tools/video/go2rtc/default.nix
+++ b/pkgs/tools/video/go2rtc/default.nix
@@ -16,10 +16,6 @@ buildGoModule rec {
 
   vendorHash = "sha256-KEW3ykEZvL6y1VacDIqtHW9B2RLHlHC29aqJjkEnRqQ=";
 
-  buildFlagArrays = [
-    "-trimpath"
-  ];
-
   CGO_ENABLED = 0;
 
   ldflags = [
diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
index 594b7a30b2ed4..3b7c7bf4033bc 100644
--- a/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -1,4 +1,5 @@
 { lib, python3, fetchFromGitHub, glibcLocales, git }:
+
 let
   changeVersion = overrideFunc: version: hash: overrideFunc (oldAttrs: rec {
     inherit version;
@@ -13,8 +14,10 @@ let
       cement = changeVersion super.cement.overridePythonAttrs "2.8.2" "sha256-h2XtBSwGHXTk0Bia3cM9Jo3lRMohmyWdeXdB9yXkItI=";
     };
   };
+
 in
-with localPython.pkgs; buildPythonApplication rec {
+
+localPython.pkgs.buildPythonApplication rec {
   pname = "awsebcli";
   version = "3.20.10";
   format = "setuptools";
@@ -31,7 +34,7 @@ with localPython.pkgs; buildPythonApplication rec {
     substituteInPlace setup.py --replace "scripts=['bin/eb']," ""
   '';
 
-  nativeBuildInputs = [
+  nativeBuildInputs = with localPython.pkgs; [
     pythonRelaxDepsHook
   ];
 
@@ -39,7 +42,7 @@ with localPython.pkgs; buildPythonApplication rec {
     glibcLocales
   ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with localPython.pkgs; [
     blessed
     botocore
     cement
@@ -64,7 +67,7 @@ with localPython.pkgs; buildPythonApplication rec {
     "termcolor"
   ];
 
-  nativeCheckInputs = [
+  nativeCheckInputs = with localPython.pkgs; [
     pytestCheckHook
     pytest-socket
     mock
diff --git a/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch b/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
index 57fcef6fe661b..9389a045e38c9 100644
--- a/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
+++ b/pkgs/tools/virtualization/cloud-init/0001-add-nixos-support.patch
@@ -93,7 +93,7 @@ index 00000000..67c049b8
 +        return (self.hostname_conf_fn, sys_hostname)
 +
 +    def _read_hostname_conf(self, filename):
-+        conf = HostnameConf(util.load_file(filename))
++        conf = HostnameConf(util.load_text_file(filename))
 +        conf.parse()
 +        return conf
 +
diff --git a/pkgs/tools/virtualization/cloudmonkey/default.nix b/pkgs/tools/virtualization/cloudmonkey/default.nix
index b7a9ec918cb9b..ffde81b8f1b03 100644
--- a/pkgs/tools/virtualization/cloudmonkey/default.nix
+++ b/pkgs/tools/virtualization/cloudmonkey/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloudmonkey";
-  version = "6.3.0";
+  version = "6.4.0";
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "cloudstack-cloudmonkey";
     rev = version;
-    sha256 = "sha256-FoouZ2udtZ68W5p32Svr8yAn0oBdWMupn1LEzqY04Oc=";
+    sha256 = "sha256-mkEGOZw7GDIFnYUpgvCetA4dU9R1m4q6MOUDG0TWN64=";
   };
 
   vendorHash = null;
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index f040c2e5b4aab..879d822f931a1 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -59,6 +59,7 @@ mapAliases ({
   AusweisApp2 = ausweisapp; # Added 2023-11-08
   a4term = a4; # Added 2023-10-06
   adtool = throw "'adtool' has been removed, as it was broken and unmaintained";
+  advcpmv = throw "'advcpmv' has been removed, as it is not being actively maintained and break recent coreutils."; # Added 2024-03-29
   aether = throw "aether has been removed from nixpkgs; upstream unmaintained, security issues"; # Added 2023-10-03
   airfield = throw "airfield has been removed due to being unmaintained"; # Added 2023-05-19
   alertmanager-bot = throw "alertmanager-bot is broken and has been archived by upstream"; # Added 2023-07-28
@@ -78,6 +79,7 @@ mapAliases ({
   arcanPackages = throw "arcanPackages was removed and its sub-attributes were promoted to top-level"; # Added 2023-11-26
   archiveopteryx = throw "archiveopteryx depended on an unsupported version of OpenSSL and was unmaintained"; # Added 2024-01-03
   ardour_6 = throw "ardour_6 has been removed in favor of newer versions"; # Added 2023-10-13
+  aria = aria2; # Added 2024-03-26
   aseprite-unfree = aseprite; # Added 2023-08-26
   asls = throw "asls has been removed: abandoned by upstream"; # Added 2023-03-16
   asterisk_16 = throw "asterisk_16: Asterisk 16 is end of life and has been removed"; # Added 2023-04-19
@@ -500,6 +502,7 @@ mapAliases ({
   haxe_3_2 = throw "'haxe_3_2' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
   haxe_3_4 = throw "'haxe_3_4' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
   hepmc = throw "'hepmc' has been renamed to/replaced by 'hepmc2'"; # Converted to throw 2023-09-10
+  hikari = throw "hikari has been removed from nixpkgs, it was unmaintained and required wlroots_0_15 at the time of removal"; # Added 2024-03-28
   hip = throw "'hip' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
   hipcc = throw "'hipcc' has been replaced with 'rocmPackages.hipcc'"; # Added 2023-10-08
   hipchat = throw "'hipchat' has been discontinued since 2019; upstream recommends Slack."; # Added 2023-12-02
@@ -607,6 +610,7 @@ mapAliases ({
   libcap_pam = throw "'libcap_pam' has been replaced with 'libcap'"; # Converted to throw 2023-09-10
   libclc = llvmPackages_latest.libclc; # Added 2023-10-28
   libcxxabi = throw "'libcxxabi' was merged into 'libcxx'"; # Converted to throw 2024-03-08
+  libdwarf_20210528 = throw "'libdwarf_20210528' has been removed because it is not used in nixpkgs, move to libdwarf"; # Added 2024-03-23
   libgme = game-music-emu; # Added 2022-07-20
   libgpgerror = libgpg-error; # Added 2021-09-04
   libheimdal = heimdal; # Added 2022-11-18
@@ -1194,7 +1198,7 @@ mapAliases ({
   tdesktop = telegram-desktop; # Added 2023-04-07
   telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28
   teleport_11 = throw "teleport 11 has been removed as it is EOL. Please upgrade to Teleport 12 or later"; # Added 2023-11-27
-  teleprompter = throw "teleprompter has been removed. reason: upstream dead and does not work with recent electron versions"; # Adedd 2024-03-14
+  teleprompter = throw "teleprompter has been removed. reason: upstream dead and does not work with recent electron versions"; # Added 2024-03-14
   tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08
   testVersion = testers.testVersion; # Added 2022-04-20
   tfplugindocs = terraform-plugin-docs; # Added 2023-11-01
@@ -1285,6 +1289,7 @@ mapAliases ({
   win-virtio = virtio-win; # Added 2023-10-17
   win-signed-gplpv-drivers = throw "win-signed-gplpv-drivers has been removed from nixpkgs, as it's unmaintained: https://help.univention.com/t/installing-signed-gplpv-drivers/21828"; # Added 2023-08-17
   wlroots_0_14 = throw "'wlroots_0_14' has been removed in favor of newer versions"; # Added 2023-07-29
+  wlroots_0_15 = throw "'wlroots_0_15' has been removed in favor of newer versions"; # Added 2024-03-28
   wordpress6_1 = throw "'wordpress6_1' has been removed in favor of the latest version"; # Added 2023-10-10
   wordpress6_2 = throw "'wordpress6_2' has been removed in favor of the latest version"; # Added 2023-10-10
   wormhole-rs = magic-wormhole-rs; # Added 2022-05-30. preserve, reason: Arch package name, main binary name
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b92751cf6120a..881ce4ea45bae 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -816,7 +816,7 @@ with pkgs;
 
   enum4linux = callPackage ../tools/security/enum4linux { };
 
-  enum4linux-ng = python3Packages.callPackage ../tools/security/enum4linux-ng { };
+  enum4linux-ng = callPackage ../tools/security/enum4linux-ng { };
 
   enumerepo = callPackage ../tools/security/enumerepo {};
 
@@ -2738,6 +2738,7 @@ with pkgs;
     # Dependency twain requires an older version of http2, and we cannot mix
     # versions of transitive dependencies.
     http2 = final.http2_3_0_3;
+    warp = final.warp_3_3_30;
   });
 
   mame = libsForQt5.callPackage ../applications/emulators/mame { };
@@ -3678,9 +3679,7 @@ with pkgs;
 
   cudd = callPackage ../development/libraries/cudd { };
 
-  cue = callPackage ../development/tools/cue { };
-
-  writeCueValidator = callPackage ../development/tools/cue/validator.nix { };
+  inherit (cue) writeCueValidator;
 
   cuelsp = callPackage ../development/tools/cuelsp { };
 
@@ -4195,7 +4194,6 @@ with pkgs;
   aria2 = callPackage ../tools/networking/aria2 {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  aria = aria2;
 
   as-tree = callPackage ../tools/misc/as-tree { };
 
@@ -4709,8 +4707,6 @@ with pkgs;
     protobuf = protobuf_21;
   };
 
-  consul = callPackage ../servers/consul { };
-
   consul-alerts = callPackage ../servers/monitoring/consul-alerts { };
 
   consul-template = callPackage ../tools/system/consul-template { };
@@ -7835,7 +7831,10 @@ with pkgs;
 
   choose = callPackage ../tools/text/choose { };
 
-  d2 = callPackage ../tools/text/d2 { };
+  d2 = callPackage ../tools/text/d2 {
+    # Failed tests
+    buildGoModule = buildGo121Module;
+  };
 
   ddev = callPackage ../applications/virtualization/ddev { };
 
@@ -8075,8 +8074,6 @@ with pkgs;
 
   flux = callPackage ../development/compilers/flux { };
 
-  fido2luks = callPackage ../tools/security/fido2luks { };
-
   fierce = callPackage ../tools/security/fierce { };
 
   figlet = callPackage ../tools/misc/figlet { };
@@ -8772,8 +8769,6 @@ with pkgs;
 
   halftone = callPackage ../applications/graphics/halftone { };
 
-  halloy = callPackage ../applications/networking/irc/halloy { };
-
   harminv = callPackage ../development/libraries/science/chemistry/harminv { };
 
   igrep = callPackage ../tools/text/igrep {
@@ -11378,8 +11373,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  onthespot = libsForQt5.callPackage ../applications/misc/onthespot { };
-
   opencorsairlink = callPackage ../tools/misc/opencorsairlink { };
 
   openfpgaloader = callPackage ../development/embedded/fpga/openfpgaloader { };
@@ -13128,7 +13121,7 @@ with pkgs;
 
   sipsak = callPackage ../tools/networking/sipsak { };
 
-  sipvicious = python3Packages.callPackage ../tools/security/sipvicious { };
+  sipvicious = callPackage ../tools/security/sipvicious { };
 
   siril = callPackage ../applications/science/astronomy/siril { };
 
@@ -14101,8 +14094,6 @@ with pkgs;
 
   typos = callPackage ../development/tools/typos { };
 
-  typst-live = callPackage ../tools/typesetting/typst-live { };
-
   tz = callPackage ../tools/misc/tz { };
 
   u9fs = callPackage ../servers/u9fs { };
@@ -16527,6 +16518,31 @@ with pkgs;
     targetLlvm = targetPackages.llvmPackages_17.llvm or llvmPackages_17.llvm;
   }));
 
+  inherit
+    (rec {
+      llvmPackages_18 = recurseIntoAttrs (callPackage ../development/compilers/llvm/18 ({
+        inherit (stdenvAdapters) overrideCC;
+        buildLlvmTools = buildPackages.llvmPackages_18.tools;
+        targetLlvmLibraries = targetPackages.llvmPackages_18.libraries or llvmPackages_18.libraries;
+        targetLlvm = targetPackages.llvmPackages_18.llvm or llvmPackages_18.llvm;
+      }));
+
+      clang_18 = llvmPackages_18.clang;
+      lld_18 = llvmPackages_18.lld;
+      lldb_18 = llvmPackages_18.lldb;
+      llvm_18 = llvmPackages_18.llvm;
+
+      clang-tools_18 = callPackage ../development/tools/clang-tools {
+        llvmPackages = llvmPackages_18;
+      };
+    })
+      llvmPackages_18
+      clang_18
+      lld_18
+      lldb_18
+      llvm_18
+      clang-tools_18;
+
   lorri = callPackage ../tools/misc/lorri {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
@@ -16859,7 +16875,6 @@ with pkgs;
   cargo-diet = callPackage ../development/tools/rust/cargo-diet { };
   cargo-dist = callPackage ../development/tools/rust/cargo-dist { };
   cargo-espmonitor = callPackage ../development/tools/rust/cargo-espmonitor { };
-  cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
   cargo-hakari = callPackage ../development/tools/rust/cargo-hakari { };
   cargo-feature = callPackage ../development/tools/rust/cargo-feature { };
   cargo-fund = callPackage ../development/tools/rust/cargo-fund {
@@ -17147,8 +17162,6 @@ with pkgs;
   vcard = python3Packages.toPythonApplication python3Packages.vcard;
 
   inherit (callPackage ../development/compilers/vala { })
-    vala_0_48
-    vala_0_54
     vala_0_56
     vala;
 
@@ -20058,7 +20071,9 @@ with pkgs;
 
   vtable-dumper = callPackage ../development/tools/misc/vtable-dumper { };
 
-  wails = callPackage ../development/tools/wails { };
+  wails = callPackage ../development/tools/wails {
+    stdenv = gccStdenv;
+  };
 
   wasmer-pack = callPackage ../development/tools/misc/wasmer-pack { };
 
@@ -22282,7 +22297,6 @@ with pkgs;
 
   libdwarf = callPackage ../development/libraries/libdwarf { };
   dwarfdump = libdwarf.bin;
-  libdwarf_20210528 = callPackage ../development/libraries/libdwarf/20210528.nix { };
 
   libe57format = callPackage ../development/libraries/libe57format { };
 
@@ -24110,18 +24124,28 @@ with pkgs;
 
   protobuf = protobuf_24;
 
-  protobuf_25 = callPackage ../development/libraries/protobuf/25.nix { };
-  protobuf_24 = callPackage ../development/libraries/protobuf/24.nix { };
-  protobuf_23 = callPackage ../development/libraries/protobuf/23.nix {
-    abseil-cpp = abseil-cpp_202301;
-  };
-  protobuf_21 = callPackage ../development/libraries/protobuf/21.nix {
-    abseil-cpp = abseil-cpp_202103;
-  };
-
-  protobuf3_20 = callPackage ../development/libraries/protobuf/3.20.nix {
-    abseil-cpp = abseil-cpp_202103;
-  };
+  inherit
+    ({
+      protobuf_26 = callPackage ../development/libraries/protobuf/26.nix { };
+      protobuf_25 = callPackage ../development/libraries/protobuf/25.nix { };
+      protobuf_24 = callPackage ../development/libraries/protobuf/24.nix { };
+      protobuf_23 = callPackage ../development/libraries/protobuf/23.nix {
+        abseil-cpp = abseil-cpp_202301;
+      };
+      protobuf_21 = callPackage ../development/libraries/protobuf/21.nix {
+        abseil-cpp = abseil-cpp_202103;
+      };
+      protobuf3_20 = callPackage ../development/libraries/protobuf/3.20.nix {
+        abseil-cpp = abseil-cpp_202103;
+      };
+    })
+    protobuf_26
+    protobuf_25
+    protobuf_24
+    protobuf_23
+    protobuf_21
+    protobuf3_20
+    ;
 
   protobufc = callPackage ../development/libraries/protobufc { };
 
@@ -25019,9 +25043,7 @@ with pkgs;
 
   vcg = callPackage ../development/libraries/vcg { };
 
-  vencord = callPackage ../misc/vencord { };
-
-  vencord-web-extension = callPackage ../misc/vencord { buildWebExtension = true; };
+  vencord-web-extension = callPackage ../by-name/ve/vencord/package.nix { buildWebExtension = true; };
 
   vid-stab = callPackage ../development/libraries/vid-stab {
     inherit (llvmPackages) openmp;
@@ -25574,17 +25596,17 @@ with pkgs;
   };
 
   # Steel Bank Common Lisp
-  sbcl_2_4_1 = wrapLisp {
-    pkg = callPackage ../development/compilers/sbcl { version = "2.4.1"; };
+  sbcl_2_4_2 = wrapLisp {
+    pkg = callPackage ../development/compilers/sbcl { version = "2.4.2"; };
     faslExt = "fasl";
     flags = [ "--dynamic-space-size" "3000" ];
   };
-  sbcl_2_4_2 = wrapLisp {
-    pkg = callPackage ../development/compilers/sbcl { version = "2.4.2"; };
+  sbcl_2_4_3 = wrapLisp {
+    pkg = callPackage ../development/compilers/sbcl { version = "2.4.3"; };
     faslExt = "fasl";
     flags = [ "--dynamic-space-size" "3000" ];
   };
-  sbcl = sbcl_2_4_2;
+  sbcl = sbcl_2_4_3;
 
   sbclPackages = recurseIntoAttrs sbcl.pkgs;
 
@@ -26820,6 +26842,8 @@ with pkgs;
 
   sampler = callPackage ../applications/misc/sampler { };
 
+  scalene = with python3Packages; toPythonApplication scalene;
+
   scalr-cli = callPackage ../tools/admin/scalr-cli { };
 
   scaphandre = callPackage ../servers/scaphandre { };
@@ -29809,8 +29833,6 @@ with pkgs;
 
   anilibria-winmaclinux = libsForQt5.callPackage ../applications/video/anilibria-winmaclinux { };
 
-  masterpdfeditor = libsForQt5.callPackage ../applications/misc/masterpdfeditor { };
-
   masterpdfeditor4 = libsForQt5.callPackage ../applications/misc/masterpdfeditor4 { };
 
   master_me = callPackage ../applications/audio/master_me {
@@ -30513,7 +30535,7 @@ with pkgs;
   daktilo = callPackage ../tools/misc/daktilo { };
 
   darcs = haskell.lib.compose.disableCabalFlag "library"
-    (haskell.lib.compose.justStaticExecutables haskell.packages.ghc94.darcs);
+    (haskell.lib.compose.justStaticExecutables haskellPackages.darcs);
 
   darkman = callPackage ../applications/misc/darkman { };
 
@@ -30950,7 +30972,7 @@ with pkgs;
 
   faircamp = callPackage ../applications/misc/faircamp { };
 
-  famistudio = callPackage ../applications/audio/famistudio { };
+  famistudio = darwin.apple_sdk_11_0.callPackage ../applications/audio/famistudio { };
 
   fasttext = callPackage ../applications/science/machine-learning/fasttext { };
 
@@ -32034,7 +32056,6 @@ with pkgs;
   super-productivity = callPackage ../applications/office/super-productivity { };
 
   inherit (callPackages ../development/libraries/wlroots {})
-    wlroots_0_15
     wlroots_0_16
     wlroots_0_17
     wlroots;
@@ -32065,10 +32086,6 @@ with pkgs;
 
   wbg = callPackage ../applications/misc/wbg { };
 
-  hikari = callPackage ../applications/window-managers/hikari {
-    wlroots = wlroots_0_15;
-  };
-
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
   };
@@ -34129,8 +34146,6 @@ with pkgs;
 
   pop-launcher = callPackage ../applications/misc/pop-launcher { };
 
-  pot = callPackage ../applications/misc/pot { };
-
   pothos = libsForQt5.callPackage ../applications/radio/pothos { };
 
   potrace = callPackage ../applications/graphics/potrace { };
@@ -34871,7 +34886,7 @@ with pkgs;
 
   stalonetray = callPackage ../applications/window-managers/stalonetray { };
 
-  inherit (ocaml-ng.ocamlPackages_4_12) stog;
+  inherit (ocaml-ng.ocamlPackages) stog;
 
   stp = callPackage ../applications/science/logic/stp { };
 
@@ -35746,7 +35761,7 @@ with pkgs;
   weave-gitops = callPackage ../applications/networking/cluster/weave-gitops { };
 
   wayfire = callPackage ../applications/window-managers/wayfire/default.nix {
-    wlroots = wlroots_0_16;
+    wlroots = wlroots_0_17;
   };
   wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { };
 
@@ -37157,9 +37172,7 @@ with pkgs;
 
   hase = callPackage ../games/hase { };
 
-  hedgewars = libsForQt5.callPackage ../games/hedgewars {
-    inherit (haskellPackages) ghcWithPackages;
-  };
+  hedgewars = libsForQt5.callPackage ../games/hedgewars { };
 
   hikounomizu = callPackage ../games/hikounomizu { };
 
@@ -38484,9 +38497,7 @@ with pkgs;
 
   getdp = callPackage ../applications/science/math/getdp { };
 
-  gurobi = callPackage ../applications/science/math/gurobi {
-    python3 = python310;
-  };
+  gurobi = callPackage ../applications/science/math/gurobi { };
 
   jags = callPackage ../applications/science/math/jags { };
 
@@ -41306,8 +41317,6 @@ with pkgs;
 
   xmcp = callPackage ../tools/X11/xmcp { };
 
-  yesplaymusic = callPackage ../applications/audio/yesplaymusic { };
-
   ymuse = callPackage ../applications/audio/ymuse { };
 
   zeyple = callPackage ../misc/zeyple { };
diff --git a/pkgs/top-level/cuda-packages.nix b/pkgs/top-level/cuda-packages.nix
index 4b8ad4646485e..53c5bd82e5640 100644
--- a/pkgs/top-level/cuda-packages.nix
+++ b/pkgs/top-level/cuda-packages.nix
@@ -26,6 +26,7 @@
   lib,
   newScope,
   pkgs,
+  config,
   __attrsFailEvaluation ? true,
 }:
 let
@@ -85,7 +86,7 @@ let
       (strings.replaceStrings ["."] ["_"] (versions.majorMinor version))
     ];
 
-  composedExtension = fixedPoints.composeManyExtensions [
+  composedExtension = fixedPoints.composeManyExtensions ([
     (import ../development/cuda-modules/setup-hooks/extension.nix)
     (callPackage ../development/cuda-modules/cuda/extension.nix {inherit cudaVersion;})
     (callPackage ../development/cuda-modules/cuda/overrides.nix {inherit cudaVersion;})
@@ -108,7 +109,9 @@ let
     })
     (callPackage ../development/cuda-modules/cuda-samples/extension.nix {inherit cudaVersion;})
     (callPackage ../development/cuda-modules/cuda-library-samples/extension.nix {})
-  ];
+  ] ++ lib.optionals config.allowAliases [
+    (import ../development/cuda-modules/aliases.nix)
+  ]);
 
   cudaPackages = customisation.makeScope newScope (
     fixedPoints.extends composedExtension passthruFunction
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index b0c098ddcaa80..ddfd8146b53d0 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -505,7 +505,7 @@ in {
     ghcHEAD = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghcHEAD;
       ghc = bh.compiler.ghcHEAD;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.10.x.nix { };
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.12.x.nix { };
     };
 
     ghcjs = packages.ghcjs810;
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 01f26e8287d3e..90900ad01fcc9 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -540,9 +540,7 @@ in {
       virtualbox = pkgs.virtualboxHardened;
     };
 
-    virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions {
-      virtualbox = pkgs.virtualboxHardened;
-    };
+    virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
 
     vm-tools = callPackage ../os-specific/linux/vm-tools { };
 
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index d74746e08c598..9513160a476cd 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -1724,6 +1724,8 @@ let
     stdune = callPackage ../development/ocaml-modules/stdune { };
 
     stog = callPackage ../applications/misc/stog { };
+    stog_asy = callPackage ../applications/misc/stog/asy.nix { };
+    stog_markdown = callPackage ../applications/misc/stog/markdown.nix { };
 
     stringext = callPackage ../development/ocaml-modules/stringext { };
 
@@ -2001,6 +2003,8 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_5_1 = mkOcamlPackages (callPackage ../development/compilers/ocaml/5.1.nix { });
 
+  ocamlPackages_5_2 = mkOcamlPackages (callPackage ../development/compilers/ocaml/5.2.nix { });
+
   ocamlPackages_latest = ocamlPackages_5_1;
 
   ocamlPackages = ocamlPackages_5_1;
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index b3b361b871935..eacc43f6be5b9 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -12099,10 +12099,10 @@ with self; {
 
   HTTPBody = buildPerlPackage {
     pname = "HTTP-Body";
-    version = "1.22";
+    version = "1.23";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.22.tar.gz";
-      hash = "sha256-/A0sWFs70VMtkmCZZdWJ4Mh804DnzKQvua0KExEicpc=";
+      url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.23.tar.gz";
+      hash = "sha256-7OmB9BYWNaL7piFdAlcZXlOMTyNDhFMFAd/bahvY1jY=";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ HTTPMessage ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 496add3884623..ad629d03a3665 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -783,6 +783,8 @@ self: super: with self; {
 
   asgi-csrf = callPackage ../development/python-modules/asgi-csrf { };
 
+  asgi-lifespan = callPackage ../development/python-modules/asgi-lifespan { };
+
   asgi-logger = callPackage ../development/python-modules/asgi-logger { };
 
   asgineer = callPackage ../development/python-modules/asgineer { };
@@ -1390,6 +1392,8 @@ self: super: with self; {
 
   basemap-data = callPackage ../development/python-modules/basemap-data { };
 
+  bases = callPackage ../development/python-modules/bases { };
+
   bash-kernel = callPackage ../development/python-modules/bash-kernel { };
 
   bashlex = callPackage ../development/python-modules/bashlex { };
@@ -2459,6 +2463,18 @@ self: super: with self; {
 
   cpyparsing = callPackage ../development/python-modules/cpyparsing { };
 
+  craft-application-1 = callPackage ../development/python-modules/craft-application-1 { };
+
+  craft-archives = callPackage ../development/python-modules/craft-archives { };
+
+  craft-cli = callPackage ../development/python-modules/craft-cli { };
+
+  craft-grammar = callPackage ../development/python-modules/craft-grammar { };
+
+  craft-parts = callPackage ../development/python-modules/craft-parts { };
+
+  craft-providers = callPackage ../development/python-modules/craft-providers { };
+
   cram = callPackage ../development/python-modules/cram { };
 
   cramjam = callPackage ../development/python-modules/cramjam { };
@@ -5134,12 +5150,7 @@ self: super: with self; {
 
   guppy3 = callPackage ../development/python-modules/guppy3 { };
 
-  gurobipy = if stdenv.hostPlatform.isDarwin then
-    callPackage ../development/python-modules/gurobipy/darwin.nix { }
-  else if stdenv.hostPlatform.system == "x86_64-linux" then
-    callPackage ../development/python-modules/gurobipy/linux.nix { }
-  else
-    throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}";
+  gurobipy = callPackage ../development/python-modules/gurobipy { };
 
   guzzle-sphinx-theme = callPackage ../development/python-modules/guzzle-sphinx-theme { };
 
@@ -6768,14 +6779,28 @@ self: super: with self; {
 
   llama-index-embeddings-google = callPackage ../development/python-modules/llama-index-embeddings-google { };
 
+  llama-index-embeddings-huggingface = callPackage ../development/python-modules/llama-index-embeddings-huggingface { };
+
+  llama-index-embeddings-ollama = callPackage ../development/python-modules/llama-index-embeddings-ollama { };
+
   llama-index-embeddings-openai = callPackage ../development/python-modules/llama-index-embeddings-openai { };
 
+  llama-index-graph-stores-nebula = callPackage ../development/python-modules/llama-index-graph-stores-nebula { };
+
+  llama-index-graph-stores-neo4j = callPackage ../development/python-modules/llama-index-graph-stores-neo4j { };
+
+  llama-index-graph-stores-neptune = callPackage ../development/python-modules/llama-index-graph-stores-neptune { };
+
   llama-index-indices-managed-llama-cloud = callPackage ../development/python-modules/llama-index-indices-managed-llama-cloud { };
 
   llama-index-legacy = callPackage ../development/python-modules/llama-index-legacy { };
 
+  llama-index-llms-ollama = callPackage ../development/python-modules/llama-index-llms-ollama { };
+
   llama-index-llms-openai = callPackage ../development/python-modules/llama-index-llms-openai { };
 
+  llama-index-llms-openai-like = callPackage ../development/python-modules/llama-index-llms-openai-like { };
+
   llama-index-multi-modal-llms-openai = callPackage ../development/python-modules/llama-index-multi-modal-llms-openai { };
 
   llama-index-program-openai = callPackage ../development/python-modules/llama-index-program-openai { };
@@ -6800,6 +6825,12 @@ self: super: with self; {
 
   llama-index-vector-stores-chroma = callPackage ../development/python-modules/llama-index-vector-stores-chroma { };
 
+  llama-index-vector-stores-google = callPackage ../development/python-modules/llama-index-vector-stores-google { };
+
+  llama-index-vector-stores-postgres = callPackage ../development/python-modules/llama-index-vector-stores-postgres { };
+
+  llama-index-vector-stores-qdrant = callPackage ../development/python-modules/llama-index-vector-stores-qdrant { };
+
   llama-parse = callPackage ../development/python-modules/llama-parse { };
 
   llamaindex-py-client = callPackage ../development/python-modules/llamaindex-py-client { };
@@ -7356,6 +7387,7 @@ self: super: with self; {
   mizani = callPackage ../development/python-modules/mizani { };
 
   mkdocs = callPackage ../development/python-modules/mkdocs { };
+  mkdocs-autolinks-plugin = callPackage ../development/python-modules/mkdocs-autolinks-plugin { };
   mkdocs-autorefs = callPackage ../development/python-modules/mkdocs-autorefs { };
   mkdocs-drawio-exporter = callPackage ../development/python-modules/mkdocs-drawio-exporter { };
   mkdocs-exclude = callPackage ../development/python-modules/mkdocs-exclude { };
@@ -8507,6 +8539,8 @@ self: super: with self; {
 
   ndtypes = callPackage ../development/python-modules/ndtypes { };
 
+  nebula3-python = callPackage ../development/python-modules/nebula3-python { };
+
   nengo = callPackage ../development/python-modules/nengo { };
 
   neo = callPackage ../development/python-modules/neo { };
@@ -9829,6 +9863,8 @@ self: super: with self; {
 
   pysiaalarm = callPackage ../development/python-modules/pysiaalarm { };
 
+  pysilero-vad = callPackage ../development/python-modules/pysilero-vad { };
+
   pysimplesoap = callPackage ../development/python-modules/pysimplesoap { };
 
   pyskyqhub = callPackage ../development/python-modules/pyskyqhub { };
@@ -10270,6 +10306,8 @@ self: super: with self; {
 
   pulsectl-asyncio = callPackage ../development/python-modules/pulsectl-asyncio { };
 
+  pulsar = callPackage ../development/python-modules/pulsar { };
+
   pulsectl = callPackage ../development/python-modules/pulsectl { };
 
   pure-cdb = callPackage ../development/python-modules/pure-cdb { };
@@ -10604,6 +10642,8 @@ self: super: with self; {
 
   pydantic-settings = callPackage ../development/python-modules/pydantic-settings { };
 
+  pydantic-yaml-0 = callPackage ../development/python-modules/pydantic-yaml-0 { };
+
   pydash = callPackage ../development/python-modules/pydash { };
 
   pydata-google-auth = callPackage ../development/python-modules/pydata-google-auth { };
@@ -11485,6 +11525,8 @@ self: super: with self; {
 
   pyric = callPackage ../development/python-modules/pyric { };
 
+  pyring-buffer = callPackage ../development/python-modules/pyring-buffer { };
+
   pyrisco = callPackage ../development/python-modules/pyrisco { };
 
   pyrituals = callPackage ../development/python-modules/pyrituals { };
@@ -13123,6 +13165,8 @@ self: super: with self; {
 
   roman = callPackage ../development/python-modules/roman { };
 
+  romy = callPackage ../development/python-modules/romy { };
+
   roombapy = callPackage ../development/python-modules/roombapy { };
 
   roonapi = callPackage ../development/python-modules/roonapi { };
@@ -13305,6 +13349,8 @@ self: super: with self; {
 
   sasmodels = callPackage ../development/python-modules/sasmodels { };
 
+  scalene = callPackage ../development/python-modules/scalene { };
+
   scales = callPackage ../development/python-modules/scales { };
 
   scancode-toolkit = callPackage ../development/python-modules/scancode-toolkit { };
@@ -13433,6 +13479,8 @@ self: super: with self; {
 
   securetar = callPackage ../development/python-modules/securetar { };
 
+  securityreporter = callPackage ../development/python-modules/securityreporter { };
+
   sectools = callPackage ../development/python-modules/sectools { };
 
   seedir = callPackage ../development/python-modules/seedir { };
@@ -13811,12 +13859,16 @@ self: super: with self; {
 
   snakemake-interface-executor-plugins = callPackage ../development/python-modules/snakemake-interface-executor-plugins { };
 
+  snakemake-interface-report-plugins = callPackage ../development/python-modules/snakemake-interface-report-plugins { };
+
   snakemake-interface-storage-plugins = callPackage ../development/python-modules/snakemake-interface-storage-plugins { };
 
   snakebite = callPackage ../development/python-modules/snakebite { };
 
   snakeviz = callPackage ../development/python-modules/snakeviz { };
 
+  snap-helpers = callPackage ../development/python-modules/snap-helpers { };
+
   snapcast = callPackage ../development/python-modules/snapcast { };
 
   snapshottest = callPackage ../development/python-modules/snapshottest { };
@@ -13941,6 +13993,10 @@ self: super: with self; {
 
   spatial-image = callPackage ../development/python-modules/spatial-image { };
 
+  spdx = callPackage ../development/python-modules/spdx { };
+
+  spdx-lookup = callPackage ../development/python-modules/spdx-lookup { };
+
   spdx-tools = callPackage ../development/python-modules/spdx-tools { };
 
   speaklater = callPackage ../development/python-modules/speaklater { };
@@ -14101,6 +14157,8 @@ self: super: with self; {
 
   sphinx-mdinclude = callPackage ../development/python-modules/sphinx-mdinclude { };
 
+  sphinx-rtd-dark-mode = callPackage ../development/python-modules/sphinx-rtd-dark-mode { };
+
   sphinx-rtd-theme = callPackage ../development/python-modules/sphinx-rtd-theme { };
 
   sphinx-serve = callPackage ../development/python-modules/sphinx-serve { };
@@ -14203,6 +14261,8 @@ self: super: with self; {
 
   sseclient-py = callPackage ../development/python-modules/sseclient-py { };
 
+  sse-starlette = callPackage ../development/python-modules/sse-starlette { };
+
   sshfs = callPackage ../development/python-modules/sshfs { };
 
   sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
@@ -14219,6 +14279,8 @@ self: super: with self; {
 
   starlette = callPackage ../development/python-modules/starlette { };
 
+  starlette-context = callPackage ../development/python-modules/starlette-context { };
+
   starlette-wtf = callPackage ../development/python-modules/starlette-wtf { };
 
   starkbank-ecdsa = callPackage ../development/python-modules/starkbank-ecdsa { };
@@ -14556,6 +14618,8 @@ self: super: with self; {
 
   tencentcloud-sdk-python = callPackage ../development/python-modules/tencentcloud-sdk-python { };
 
+  tendo = callPackage ../development/python-modules/tendo { };
+
   tensorboard-data-server = callPackage ../development/python-modules/tensorboard-data-server { };
 
   tensorboard-plugin-profile = callPackage ../development/python-modules/tensorboard-plugin-profile { };
@@ -16031,6 +16095,8 @@ self: super: with self; {
 
   typing-inspect = callPackage ../development/python-modules/typing-inspect { };
 
+  typing-validation = callPackage ../development/python-modules/typing-validation { };
+
   typish = callPackage ../development/python-modules/typish { };
 
   typogrify = callPackage ../development/python-modules/typogrify { };
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index c3ea17b85d6c2..1941733d0029e 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -270,6 +270,7 @@ let
         "ghc92"
         "ghc94"
         "ghc96"
+        "ghc98"
       ] (compilerName: {
         inherit (packagePlatforms pkgs.haskell.packages.${compilerName})
           haskell-language-server;
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
index 232c48c739b15..c220d1275051b 100644
--- a/pkgs/top-level/ruby-packages.nix
+++ b/pkgs/top-level/ruby-packages.nix
@@ -835,10 +835,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ffcxmrm1dnqip6xq9hsrycz4dggk8pj3cd6q99ji6024npjaal6";
+      sha256 = "0vpj7mxfyjjyhqmxrbwgf03b4m4wq4bmcbka66jarp1nsqsxya28";
       type = "gem";
     };
-    version = "7.8.0";
+    version = "8.0.0";
   };
   dnsruby = {
     dependencies = ["simpleidn"];
@@ -846,10 +846,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zh7qi60zwzy184rdmmp55d857ss96f2lad78gcwnpr1223q4mj";
+      sha256 = "069402nn1sb63bslp9p5mcbn90zzzj6549ykxa4km0klb1l1klxr";
       type = "gem";
     };
-    version = "1.71.0";
+    version = "1.72.0";
   };
   do_sqlite3 = {
     dependencies = ["data_objects"];
@@ -2429,10 +2429,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0csspzqrg7s2v2wdp6vqqs1rra6w5ilpgnps5h52ig6rp7x2i389";
+      sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z";
       type = "gem";
     };
-    version = "0.4.0.1";
+    version = "0.5.0";
   };
   net-ssh = {
     groups = ["default"];
@@ -2459,10 +2459,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
+      sha256 = "15iwbiij52x6jhdbl0rkcldnhfndmsy0sbnsygkr9vhskfqrp72m";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.7.1";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -2470,10 +2470,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "173zavvxlwyi48lfskk48wcrdbkvjlhjhvy4jpcrfx72rpjjx4k8";
+      sha256 = "0j72sg8n8834vbw2x8glcp46y5r2dls2pj64ll7rmf6mri9s52j9";
       type = "gem";
     };
-    version = "1.16.2";
+    version = "1.16.3";
   };
   observer = {
     groups = ["default"];
@@ -2807,10 +2807,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m76b32zh6mgql7mzfx36rijnygjl2nzkdj909mn87isfgzdf9jl";
+      sha256 = "0x3mijjklsrlzfmwqp7x58fla7sk8pfwijhk988nmba787r8rf9g";
       type = "gem";
     };
-    version = "3.0.9.1";
+    version = "3.0.10";
   };
   rack-protection = {
     dependencies = ["base64" "rack"];
@@ -2988,10 +2988,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14wnrpd1kl43ynk1wwwgv9avsw84d1lrvlfyrjy3d4h7h7ndnqzp";
+      sha256 = "0ib3cnf4yllvw070gr4bz94sbmqx3haqc5f846fsvdcs494vgxrr";
       type = "gem";
     };
-    version = "6.6.2";
+    version = "6.6.3.1";
   };
   re2 = {
     dependencies = ["mini_portile2"];
@@ -3042,10 +3042,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1swaj27qiix9r92hcvjxf6fzd817i7lfgfg2r50ifs41407rzhq3";
+      sha256 = "0irk5j73aqhyv54q3vs88y5rp9a5fkvbdif7zn5q7m5d51h2375w";
       type = "gem";
     };
-    version = "0.21.0";
+    version = "0.21.1";
   };
   redis-rack = {
     dependencies = ["rack-session" "redis-store"];
@@ -3085,10 +3085,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zx7sdh11p4z77c3f9ka6f065mgl6xwbamnsq4rrgwk310qhn41n";
+      sha256 = "1dr6dl0fsj66z3w0q90v467nswn5shmfq1rfsqjh4wzyldq4ak9c";
       type = "gem";
     };
-    version = "0.4.3";
+    version = "0.5.0";
   };
   rest-client = {
     dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
@@ -3235,10 +3235,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cf7fn4dwf45r3nhnda0dhnwn8qghswyqbfxr2ippb3z8a6gmc8v";
+      sha256 = "16jayzjaaglhx69s6b83acpdzcxxccfkcn69gfpkimf2j64zlm7c";
       type = "gem";
     };
-    version = "1.20.2";
+    version = "1.21.0";
   };
   ruby-graphviz = {
     dependencies = ["rexml"];
@@ -3278,10 +3278,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0scavp3jlgzbg7bh6y5rd110aak03l9zw56smazahq3lcjxgfc49";
+      sha256 = "1548gmj14xrc91lp7yzn0q23g6cjn8r7xfdlv2qarzi9k2a92l5m";
       type = "gem";
     };
-    version = "0.14.5";
+    version = "0.15.0";
   };
   ruby-lxc = {
     groups = ["default"];
@@ -3604,10 +3604,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xnq3zdrnwhncfxvrhvkil26dq9v1h196i54l936l36zxdhnf383";
+      sha256 = "10fja24vp16ggxdaw77hcdk0rcz47qpdv8nn2wsgqdr04rrfjjvd";
       type = "gem";
     };
-    version = "0.5.11292";
+    version = "0.5.11319";
   };
   sqlite3 = {
     dependencies = ["mini_portile2"];
@@ -3615,10 +3615,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "137xkh8jnk3xyajvzmn2390yzs13hnb37jylr0sm02d3zrshf18n";
+      sha256 = "073hd24qwx9j26cqbk0jma0kiajjv9fb8swv9rnz8j4mf0ygcxzs";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.7.3";
   };
   stringio = {
     groups = ["default"];
@@ -3708,10 +3708,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17cwh2ivvkfzv7m0m3rpyagwqz20mcincvjvz7cg3g21xzannqys";
+      sha256 = "0i686137n188lj75nnhfpjz5zs8b4iak8iwpwciwb8lywm860nmv";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.20.0";
   };
   tilt = {
     groups = ["default"];