about summary refs log tree commit diff
path: root/nixpkgs
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-12-07 14:04:47 +0100
committerAlyssa Ross <hi@alyssa.is>2023-12-07 14:04:47 +0100
commitba08e4e99b00a6916c4360de7288a7bfcef85328 (patch)
tree347c8b6ad50fcaafc08e50f1307a861378650440 /nixpkgs
parent190fd93d11701ad81af757be6260df9635bdb41a (diff)
parent2c7f3c0fb7c08a0814627611d9d7d45ab6d75335 (diff)
downloadnixlib-ba08e4e99b00a6916c4360de7288a7bfcef85328.tar
nixlib-ba08e4e99b00a6916c4360de7288a7bfcef85328.tar.gz
nixlib-ba08e4e99b00a6916c4360de7288a7bfcef85328.tar.bz2
nixlib-ba08e4e99b00a6916c4360de7288a7bfcef85328.tar.lz
nixlib-ba08e4e99b00a6916c4360de7288a7bfcef85328.tar.xz
nixlib-ba08e4e99b00a6916c4360de7288a7bfcef85328.tar.zst
nixlib-ba08e4e99b00a6916c4360de7288a7bfcef85328.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs')
-rw-r--r--nixpkgs/.editorconfig3
-rw-r--r--nixpkgs/.github/CODEOWNERS3
-rw-r--r--nixpkgs/.github/ISSUE_TEMPLATE/bug_report.md2
-rw-r--r--nixpkgs/.github/ISSUE_TEMPLATE/build_failure.md2
-rw-r--r--nixpkgs/.github/ISSUE_TEMPLATE/missing_documentation.md2
-rw-r--r--nixpkgs/.github/ISSUE_TEMPLATE/out_of_date_package_report.md2
-rw-r--r--nixpkgs/.github/ISSUE_TEMPLATE/packaging_request.md2
-rw-r--r--nixpkgs/.github/ISSUE_TEMPLATE/unreproducible_package.md2
-rw-r--r--nixpkgs/.github/PULL_REQUEST_TEMPLATE.md2
-rw-r--r--nixpkgs/.github/workflows/periodic-merge-24h.yml1
-rw-r--r--nixpkgs/.github/workflows/periodic-merge-6h.yml1
-rw-r--r--nixpkgs/lib/customisation.nix7
-rw-r--r--nixpkgs/lib/licenses.nix6
-rw-r--r--nixpkgs/lib/systems/default.nix3
-rw-r--r--nixpkgs/maintainers/maintainer-list.nix64
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/hydra-report.hs36
-rw-r--r--nixpkgs/maintainers/scripts/luarocks-packages.csv1
-rw-r--r--nixpkgs/maintainers/team-list.nix1
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/luks-file-systems.section.md42
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2311.section.md4
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md18
-rw-r--r--nixpkgs/nixos/modules/config/mysql.nix57
-rw-r--r--nixpkgs/nixos/modules/module-list.nix3
-rw-r--r--nixpkgs/nixos/modules/programs/screen.nix38
-rw-r--r--nixpkgs/nixos/modules/programs/tsm-client.nix299
-rw-r--r--nixpkgs/nixos/modules/services/backup/postgresql-backup.nix5
-rw-r--r--nixpkgs/nixos/modules/services/backup/tsm.nix11
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix4
-rw-r--r--nixpkgs/nixos/modules/services/desktops/ayatana-indicators.nix58
-rw-r--r--nixpkgs/nixos/modules/services/hardware/thinkfan.nix2
-rw-r--r--nixpkgs/nixos/modules/services/home-automation/home-assistant.nix4
-rw-r--r--nixpkgs/nixos/modules/services/matrix/appservice-irc.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/ankisyncd.nix6
-rw-r--r--nixpkgs/nixos/modules/services/misc/guix/default.nix394
-rw-r--r--nixpkgs/nixos/modules/services/misc/preload.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/redmine.nix5
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix10
-rw-r--r--nixpkgs/nixos/modules/services/networking/keepalived/default.nix21
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/mastodon.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/netbox.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/node-red.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix3
-rw-r--r--nixpkgs/nixos/modules/system/boot/clevis.md51
-rw-r--r--nixpkgs/nixos/modules/system/boot/clevis.nix107
-rw-r--r--nixpkgs/nixos/modules/system/boot/luksroot.nix48
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems/bcachefs.nix10
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems/zfs.nix13
-rw-r--r--nixpkgs/nixos/tests/all-terminfo.nix6
-rw-r--r--nixpkgs/nixos/tests/all-tests.nix3
-rw-r--r--nixpkgs/nixos/tests/auth-mysql.nix3
-rw-r--r--nixpkgs/nixos/tests/ayatana-indicators.nix71
-rw-r--r--nixpkgs/nixos/tests/cinnamon-wayland.nix71
-rw-r--r--nixpkgs/nixos/tests/guix/basic.nix38
-rw-r--r--nixpkgs/nixos/tests/guix/default.nix8
-rw-r--r--nixpkgs/nixos/tests/guix/publish.nix95
-rw-r--r--nixpkgs/nixos/tests/guix/scripts/add-existing-files-to-store.scm52
-rw-r--r--nixpkgs/nixos/tests/guix/scripts/create-file-to-store.scm8
-rw-r--r--nixpkgs/nixos/tests/input-remapper.nix5
-rw-r--r--nixpkgs/nixos/tests/installer-systemd-stage-1.nix4
-rw-r--r--nixpkgs/nixos/tests/installer.nix248
-rw-r--r--nixpkgs/nixos/tests/teleport.nix3
-rw-r--r--nixpkgs/nixos/tests/terminal-emulators.nix5
-rw-r--r--nixpkgs/nixos/tests/tsm-client-gui.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix82
-rw-r--r--nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/eartag/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/Cargo.lock1051
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/kid3/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/raysession/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify/linux.nix6
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/backup/proxmox-backup-client/Cargo.lock833
-rw-r--r--nixpkgs/pkgs/applications/backup/proxmox-backup-client/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/display-managers/greetd/gtkgreet.nix4
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/cosmic-edit/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix19
-rw-r--r--nixpkgs/pkgs/applications/editors/greenfoot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/linux.nix3
-rw-r--r--nixpkgs/pkgs/applications/editors/netbeans/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix368
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names1
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/emulators/dosbox/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/emulators/yuzu/sources.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/krita/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/krita/generic.nix3
-rw-r--r--nixpkgs/pkgs/applications/graphics/monado/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/graphics/monado/steamvr_lh-use-old-interface.patch13
-rw-r--r--nixpkgs/pkgs/applications/graphics/normcap/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/upscayl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/binocle/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/chrysalis/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/clipcat/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/collision/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/collision/shards.nix (renamed from nixpkgs/pkgs/applications/misc/collision/collision-shards.nix)33
-rw-r--r--nixpkgs/pkgs/applications/misc/fluidd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/itd/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/khard/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/lscolors/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/rsibreak/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/misc/vym/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json14
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/opera/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/bin.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/eks-node-viewer/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/juju/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/pjsip/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch34
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch26
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch27
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch27
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix11
-rw-r--r--nixpkgs/pkgs/applications/office/skrooge/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/treesheets/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/desktop.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/server.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/flamp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/gridtracker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/inspectrum/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/sdrangel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kallisto/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seqkit/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/why3/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/math/labplot/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/misc/simgrid/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/networking/sumo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mujoco/default.nix242
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mujoco/dependencies.patch114
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mujoco/mujoco-system-deps-dont-fetch.patch538
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mujoco/sdflib-system-deps.patch192
-rw-r--r--nixpkgs/pkgs/applications/search/recoll/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff20
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/contour/default.nix84
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/contour/macos-codesign.diff21
-rw-r--r--nixpkgs/pkgs/applications/version-management/gg/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/got/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/animdl/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/video/davinci-resolve/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/video/hypnotix/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/addons/pvr-hts/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/mpv-webm.nix24
-rw-r--r--nixpkgs/pkgs/applications/virtualization/tart/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/weston/default.nix16
-rw-r--r--nixpkgs/pkgs/build-support/add-driver-runpath/default.nix14
-rw-r--r--nixpkgs/pkgs/build-support/add-driver-runpath/setup-hook.sh29
-rw-r--r--nixpkgs/pkgs/build-support/bintools-wrapper/default.nix6
-rw-r--r--nixpkgs/pkgs/build-support/cc-wrapper/default.nix6
-rw-r--r--nixpkgs/pkgs/build-support/fetchtorrent/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/fetchtorrent/tests.nix26
-rw-r--r--nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.lock120
-rw-r--r--nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.toml11
-rw-r--r--nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix12
-rw-r--r--nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs9
-rw-r--r--nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs22
-rw-r--r--nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs5
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/default.nix13
-rw-r--r--nixpkgs/pkgs/by-name/ab/aba/package.nix14
-rw-r--r--nixpkgs/pkgs/by-name/al/alp/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/ay/ayatana-indicator-messages/package.nix147
-rw-r--r--nixpkgs/pkgs/by-name/bn/bngblaster/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/br/bruno/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock (renamed from nixpkgs/pkgs/applications/editors/cosmic-edit/Cargo.lock)1952
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix97
-rw-r--r--nixpkgs/pkgs/by-name/do/doge/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/em/emojify/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/fl/flarectl/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/fr/framework-system-tools/Cargo.lock1312
-rw-r--r--nixpkgs/pkgs/by-name/fr/framework-system-tools/package.nix45
-rw-r--r--nixpkgs/pkgs/by-name/fr/frankenphp/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/gi/gifgen/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/go/goredo/fix-tests.diff4
-rw-r--r--nixpkgs/pkgs/by-name/go/goredo/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/gu/guix/package.nix11
-rw-r--r--nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix (renamed from nixpkgs/pkgs/tools/misc/handlr-regex/default.nix)6
-rw-r--r--nixpkgs/pkgs/by-name/ha/hayabusa/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/ia/ia-writer-quattro/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/ja/jazz2/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/la/lanraragi/loosen-dep-reqs.patch13
-rw-r--r--nixpkgs/pkgs/by-name/la/lanraragi/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/li/lib3270/package.nix56
-rw-r--r--nixpkgs/pkgs/by-name/li/libdict/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/li/librda/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/li/libv3270/package.nix58
-rw-r--r--nixpkgs/pkgs/by-name/lo/loupe/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ma/majima/package.nix22
-rw-r--r--nixpkgs/pkgs/by-name/ma/material-cursors/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/ni/nimmm/lock.json14
-rw-r--r--nixpkgs/pkgs/by-name/ni/nimmm/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/no/normcap/package.nix117
-rw-r--r--nixpkgs/pkgs/by-name/op/opentype-sanitizer/package.nix44
-rw-r--r--nixpkgs/pkgs/by-name/pa/pam-honeycreds/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/pa/passwdqc/package.nix67
-rw-r--r--nixpkgs/pkgs/by-name/ph/phpunit/package.nix (renamed from nixpkgs/pkgs/development/tools/misc/phpunit/default.nix)4
-rw-r--r--nixpkgs/pkgs/by-name/po/polybar/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/pw/pw3270/package.nix76
-rw-r--r--nixpkgs/pkgs/by-name/py/pywalfox-native/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/re/revup/package.nix66
-rw-r--r--nixpkgs/pkgs/by-name/so/sov/package.nix (renamed from nixpkgs/pkgs/tools/wayland/sov/default.nix)7
-rw-r--r--nixpkgs/pkgs/by-name/sp/spacedrive/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/ss/sshx/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/th/themix-gui/package.nix78
-rw-r--r--nixpkgs/pkgs/by-name/ui/uiua/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ve/vesktop/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/vi/vieb/package.nix (renamed from nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix)8
-rw-r--r--nixpkgs/pkgs/by-name/vi/vinegar/package.nix54
-rw-r--r--nixpkgs/pkgs/by-name/wa/wash-cli/package.nix47
-rw-r--r--nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/vimix-cursor-theme/default.nix33
-rw-r--r--nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/pin.json8
-rw-r--r--nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix21
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix21
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix21
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/pix/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/extensions.json158
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/lomiri/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/lomiri/services/biometryd/default.nix137
-rw-r--r--nixpkgs/pkgs/desktops/lomiri/services/hfd-service/default.nix75
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-panel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix21
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/flix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/default.nix98
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch20
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/patches/default.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/head.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/tvm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/yosys/default.nix12
-rw-r--r--nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/hare-packages/hare-json/default.nix39
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-common.nix35
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix8
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml5
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml102
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml3
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix2
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix1747
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/gauche/boot.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/gauche/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix2
-rwxr-xr-xnixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py295
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmtime/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/accounts-qml-module/default.nix88
-rw-r--r--nixpkgs/pkgs/development/libraries/bzrtp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ctranslate2/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/dlib/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/example-robot-data/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/futuresql/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gr-framework/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/highfive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kpeoplevcard/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libadwaita/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libaec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcue/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/libdatovka/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmpc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libnbd/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libosinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libpqxx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libunicode/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/libzim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mlt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ncurses/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/nng/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/open62541/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/openimageio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pango/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/qzxing/default.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/rure/Cargo.lock4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/spooles/allocate.patch38
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/spooles/transform.patch43
-rw-r--r--nixpkgs/pkgs/development/libraries/spandsp/3.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/termbench-pro/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/tevent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tiledb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wxwidgets/wxGTK32.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/lua-modules/generated-packages.nix23
-rw-r--r--nixpkgs/pkgs/development/misc/avr/libc/default.nix3
-rw-r--r--nixpkgs/pkgs/development/node-packages/overrides.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosomecomfort/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/anchor-kr/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/anitopy/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/approval-utilities/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/approvaltests/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/ariadne/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/ariadne/remove-opentracing.patch12
-rw-r--r--nixpkgs/pkgs/development/python-modules/auth0-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/av/default.nix125
-rw-r--r--nixpkgs/pkgs/development/python-modules/axisregistry/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-identity/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/babelfont/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/betterproto/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/beziers/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/black/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blockfrost-python/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/collidoscope/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/commandlines/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/configupdater/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-glm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dehinter/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-hijack/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/5.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/duecredit/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eggdeps/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/empy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/es-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/faster-whisper/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/flake8-bugbear/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch257
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-themes2/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/font-v/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontawesomefree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontbakery/default.nix146
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontbakery/tests.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontfeatures/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/frozendict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fschat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/garminconnect/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geopy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gflanguages/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/glfw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glfw/search-path.patch11
-rw-r--r--nixpkgs/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch22
-rw-r--r--nixpkgs/pkgs/development/python-modules/glyphsets/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/glyphslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glyphtools/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gptcache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/html2image/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/icontract/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imapclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/inquirer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipykernel/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/jplephem/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kurbopy/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/langsmith/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/latexify-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/license-expression/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/litellm/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/luddite/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/luqum/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailchecker/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/maison/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/manuel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/millheater/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocstrings/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/mujoco/default.nix70
-rw-r--r--nixpkgs/pkgs/development/python-modules/nethsm/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openai/default.nix74
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentsne/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentypespec/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch34
-rw-r--r--nixpkgs/pkgs/development/python-modules/ots-python/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/picobox/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/playwright/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/plone-testing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulumi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-serializable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysignalclirestapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysyncthru/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytikz-allefeld/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyunpack/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/rstr/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/shaperglot/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/sre-yield/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/starline/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/streamlit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stringbrewer/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/torch/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchaudio/0001-setup.py-propagate-cmakeFlags.patch32
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchaudio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/txtorcon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/type-infer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-s3transfer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tzlocal/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufolint/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/vprof/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch25
-rw-r--r--nixpkgs/pkgs/development/python-modules/youseedee/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-component/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-hookable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-testbrowser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-testing/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_testing/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/skaware-packages/s6-man-pages/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/flow/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/bloaty/default.nix46
-rw-r--r--nixpkgs/pkgs/development/tools/buildkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock24
-rw-r--r--nixpkgs/pkgs/development/tools/cucumber/gemset.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/database/litefs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/database/prisma-engines/Cargo.lock345
-rw-r--r--nixpkgs/pkgs/development/tools/database/prisma-engines/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/fastgron/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/fsautocomplete/deps.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/gdtoolkit/default.nix41
-rw-r--r--nixpkgs/pkgs/development/tools/go-task/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/gojq/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/goperf/default.nix38
-rw-r--r--nixpkgs/pkgs/development/tools/heroku/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/konstraint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/melange/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix48
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ycmd/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-update/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/ravedude/default.nix18
-rw-r--r--nixpkgs/pkgs/development/tools/sca2d/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/twilio-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch15
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix42
-rw-r--r--nixpkgs/pkgs/development/tools/vsce/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/yq-go/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/zed/default.nix6
-rw-r--r--nixpkgs/pkgs/games/amoeba/default.nix20
-rw-r--r--nixpkgs/pkgs/games/chiaki4deck/default.nix4
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zandronum/add_gitinfo.patch20
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zandronum/default.nix49
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch14
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zandronum/sqlite.nix4
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch70
-rw-r--r--nixpkgs/pkgs/games/gcompris/default.nix2
-rw-r--r--nixpkgs/pkgs/games/openttd/jgrpp.nix4
-rw-r--r--nixpkgs/pkgs/games/runelite/default.nix3
-rw-r--r--nixpkgs/pkgs/games/starsector/default.nix3
-rw-r--r--nixpkgs/pkgs/games/ultrastardx/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/documentation-highlighter/LICENSE43
-rw-r--r--nixpkgs/pkgs/misc/documentation-highlighter/README.md149
-rw-r--r--nixpkgs/pkgs/misc/documentation-highlighter/highlight.pack.js347
-rw-r--r--nixpkgs/pkgs/misc/documentation-highlighter/loader.js11
-rw-r--r--nixpkgs/pkgs/misc/documentation-highlighter/mono-blue.css33
-rwxr-xr-xnixpkgs/pkgs/misc/documentation-highlighter/update.sh18
-rw-r--r--nixpkgs/pkgs/misc/doge/default.nix19
-rw-r--r--nixpkgs/pkgs/misc/scrcpy/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/autosuspend/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libnss-mysql/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/light/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_mysql/default.nix17
-rw-r--r--nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/etcd/3.4.nix12
-rw-r--r--nixpkgs/pkgs/servers/etcd/3.5.nix10
-rw-r--r--nixpkgs/pkgs/servers/komga/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/krill/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/package.nix2
-rw-r--r--nixpkgs/pkgs/servers/misc/virtiofsd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/monitoring/plugins/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/nosql/immudb/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/nosql/janusgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/owncast/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/prowlarr/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/rmfakecloud/webui.nix6
-rw-r--r--nixpkgs/pkgs/servers/search/opensearch/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/pgpool/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix33
-rw-r--r--nixpkgs/pkgs/servers/sunshine/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/tailscale/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/teleport/11/default.nix19
-rw-r--r--nixpkgs/pkgs/servers/web-apps/netbox/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/netbox/generic.nix2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/nifi/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/zigbee2mqtt/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/admin/berglas/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/ui.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix338
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/simplotask/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch22
-rw-r--r--nixpkgs/pkgs/tools/audio/mpdcron/gemset.nix13
-rw-r--r--nixpkgs/pkgs/tools/backup/bup/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/compression/ouch/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch17
-rw-r--r--nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix1
-rw-r--r--nixpkgs/pkgs/tools/graphics/argyllcms/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/qrcode/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock25
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix35
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/input-remapper/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/esphome/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fend/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/misc/goaccess/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/kak-lsp/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/moar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/panoply/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rkvm/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/snapper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/sshx/default.nix79
-rw-r--r--nixpkgs/pkgs/tools/misc/vrc-get/Cargo.lock (renamed from nixpkgs/pkgs/servers/teleport/11/Cargo.lock)1855
-rw-r--r--nixpkgs/pkgs/tools/misc/vrc-get/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/dirb/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/mockoon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/sing-box/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/whois/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py4
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py4
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py24
-rw-r--r--nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/clevis/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/clevis/tang-timeout.patch13
-rw-r--r--nixpkgs/pkgs/tools/security/cnspec/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/git-credential.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/hibp.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/jsonapi.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/summon.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock6
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/gemset.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/oauth2c/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/pinentry-bemenu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pynitrokey/default.nix77
-rw-r--r--nixpkgs/pkgs/tools/security/qdigidoc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/srm/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch57
-rw-r--r--nixpkgs/pkgs/tools/security/sudo/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/system/openseachest/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/kdiff3/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/languagetool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/tuc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/video/go2rtc/default.nix6
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix1
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix126
-rw-r--r--nixpkgs/pkgs/top-level/hare-third-party.nix4
-rw-r--r--nixpkgs/pkgs/top-level/python-aliases.nix2
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix68
-rw-r--r--nixpkgs/pkgs/top-level/qt5-packages.nix4
-rw-r--r--nixpkgs/pkgs/top-level/qt6-packages.nix2
-rw-r--r--nixpkgs/pkgs/top-level/ruby-packages.nix283
659 files changed, 16947 insertions, 6949 deletions
diff --git a/nixpkgs/.editorconfig b/nixpkgs/.editorconfig
index ebb66b07945c..c4682829e357 100644
--- a/nixpkgs/.editorconfig
+++ b/nixpkgs/.editorconfig
@@ -90,6 +90,9 @@ insert_final_newline = unset
 indent_style = unset
 trim_trailing_whitespace = unset
 
+[pkgs/misc/documentation-highlighter/**]
+insert_final_newline = unset
+
 [pkgs/servers/dict/wordnet_structures.py]
 trim_trailing_whitespace = unset
 
diff --git a/nixpkgs/.github/CODEOWNERS b/nixpkgs/.github/CODEOWNERS
index 78e56796425d..bcc70699fe45 100644
--- a/nixpkgs/.github/CODEOWNERS
+++ b/nixpkgs/.github/CODEOWNERS
@@ -105,6 +105,9 @@
 /nixos/lib/systemd-*.nix                    @NixOS/systemd
 /pkgs/os-specific/linux/systemd             @NixOS/systemd
 
+# Systemd-boot
+/nixos/modules/system/boot/loader/systemd-boot      @JulienMalka
+
 # Images and installer media
 /nixos/modules/installer/cd-dvd/            @samueldr
 /nixos/modules/installer/sd-card/           @samueldr
diff --git a/nixpkgs/.github/ISSUE_TEMPLATE/bug_report.md b/nixpkgs/.github/ISSUE_TEMPLATE/bug_report.md
index ab576c98b6e0..d0473b9473fb 100644
--- a/nixpkgs/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/nixpkgs/.github/ISSUE_TEMPLATE/bug_report.md
@@ -40,7 +40,7 @@ Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
 output here
 ```
 
-### Priorities
+---
 
 Add a :+1: [reaction] to [issues you find important].
 
diff --git a/nixpkgs/.github/ISSUE_TEMPLATE/build_failure.md b/nixpkgs/.github/ISSUE_TEMPLATE/build_failure.md
index ce56a198d452..cd01f2b063c0 100644
--- a/nixpkgs/.github/ISSUE_TEMPLATE/build_failure.md
+++ b/nixpkgs/.github/ISSUE_TEMPLATE/build_failure.md
@@ -38,7 +38,7 @@ Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
 output here
 ```
 
-### Priorities
+---
 
 Add a :+1: [reaction] to [issues you find important].
 
diff --git a/nixpkgs/.github/ISSUE_TEMPLATE/missing_documentation.md b/nixpkgs/.github/ISSUE_TEMPLATE/missing_documentation.md
index fea51087a2af..6f8e583bd346 100644
--- a/nixpkgs/.github/ISSUE_TEMPLATE/missing_documentation.md
+++ b/nixpkgs/.github/ISSUE_TEMPLATE/missing_documentation.md
@@ -30,7 +30,7 @@ assignees: ''
 [open documentation issues]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22
 [open documentation pull requests]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+documentation%22%2C%226.topic%3A+documentation%22
 
-### Priorities
+---
 
 Add a :+1: [reaction] to [issues you find important].
 
diff --git a/nixpkgs/.github/ISSUE_TEMPLATE/out_of_date_package_report.md b/nixpkgs/.github/ISSUE_TEMPLATE/out_of_date_package_report.md
index 7c446a8e9b33..802f47935aee 100644
--- a/nixpkgs/.github/ISSUE_TEMPLATE/out_of_date_package_report.md
+++ b/nixpkgs/.github/ISSUE_TEMPLATE/out_of_date_package_report.md
@@ -27,7 +27,7 @@ There's a high chance that you'll have the new version right away while helping
 
 Note for maintainers: Please tag this issue in your PR.
 
-**Priorities**
+---
 
 Add a :+1: [reaction] to [issues you find important].
 
diff --git a/nixpkgs/.github/ISSUE_TEMPLATE/packaging_request.md b/nixpkgs/.github/ISSUE_TEMPLATE/packaging_request.md
index f85b391b9de3..021c9060ebe5 100644
--- a/nixpkgs/.github/ISSUE_TEMPLATE/packaging_request.md
+++ b/nixpkgs/.github/ISSUE_TEMPLATE/packaging_request.md
@@ -18,7 +18,7 @@ assignees: ''
 * license: mit, bsd, gpl2+ , ...
 * platforms: unix, linux, darwin, ...
 
-**Priorities**
+---
 
 Add a :+1: [reaction] to [issues you find important].
 
diff --git a/nixpkgs/.github/ISSUE_TEMPLATE/unreproducible_package.md b/nixpkgs/.github/ISSUE_TEMPLATE/unreproducible_package.md
index 4b1c322c1153..dd19abaf7588 100644
--- a/nixpkgs/.github/ISSUE_TEMPLATE/unreproducible_package.md
+++ b/nixpkgs/.github/ISSUE_TEMPLATE/unreproducible_package.md
@@ -86,7 +86,7 @@ nix log $(nix path-info --derivation nixpkgs#<package>)
 (please share the relevant fragment of the diffoscope output here, and any
 additional analysis you may have done)
 
-### Priorities
+---
 
 Add a :+1: [reaction] to [issues you find important].
 
diff --git a/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md b/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
index 37ab02aaa233..40ea13f131e8 100644
--- a/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
+++ b/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
@@ -41,7 +41,7 @@ List of open PRs: https://github.com/NixOS/nixpkgs/pulls
 Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-contributions
 -->
 
-### Priorities
+---
 
 Add a :+1: [reaction] to [pull requests you find important].
 
diff --git a/nixpkgs/.github/workflows/periodic-merge-24h.yml b/nixpkgs/.github/workflows/periodic-merge-24h.yml
index 308d9057859e..9ce6a7c74cc1 100644
--- a/nixpkgs/.github/workflows/periodic-merge-24h.yml
+++ b/nixpkgs/.github/workflows/periodic-merge-24h.yml
@@ -13,6 +13,7 @@ on:
     # * is a special character in YAML so you have to quote this string
     # Merge every 24 hours
     - cron:  '0 0 * * *'
+  workflow_dispatch:
 
 permissions:
   contents: read
diff --git a/nixpkgs/.github/workflows/periodic-merge-6h.yml b/nixpkgs/.github/workflows/periodic-merge-6h.yml
index 5d5f86db48f5..f3151ead6a0f 100644
--- a/nixpkgs/.github/workflows/periodic-merge-6h.yml
+++ b/nixpkgs/.github/workflows/periodic-merge-6h.yml
@@ -13,6 +13,7 @@ on:
     # * is a special character in YAML so you have to quote this string
     # Merge every 6 hours
     - cron:  '0 */6 * * *'
+  workflow_dispatch:
 
 permissions:
   contents: read
diff --git a/nixpkgs/lib/customisation.nix b/nixpkgs/lib/customisation.nix
index 5e290230ca4e..4de6f58a6aed 100644
--- a/nixpkgs/lib/customisation.nix
+++ b/nixpkgs/lib/customisation.nix
@@ -4,11 +4,12 @@ let
   inherit (builtins)
     intersectAttrs;
   inherit (lib)
-    functionArgs isFunction mirrorFunctionArgs isAttrs setFunctionArgs levenshteinAtMost
-    optionalAttrs attrNames levenshtein filter elemAt concatStringsSep sort take length
+    functionArgs isFunction mirrorFunctionArgs isAttrs setFunctionArgs
+    optionalAttrs attrNames filter elemAt concatStringsSep sort take length
     filterAttrs optionalString flip pathIsDirectory head pipe isDerivation listToAttrs
     mapAttrs seq flatten deepSeq warnIf isInOldestRelease extends
     ;
+  inherit (lib.strings) levenshtein levenshteinAtMost;
 
 in
 rec {
@@ -198,7 +199,7 @@ rec {
         + "${loc'}${prettySuggestions (getSuggestions arg)}";
 
       # Only show the error for the first missing argument
-      error = errorForArg missingArgs.${head (attrNames missingArgs)};
+      error = errorForArg (head (attrNames missingArgs));
 
     in if missingArgs == {}
        then makeOverridable f allArgs
diff --git a/nixpkgs/lib/licenses.nix b/nixpkgs/lib/licenses.nix
index 3bce847b03c4..baf92007123d 100644
--- a/nixpkgs/lib/licenses.nix
+++ b/nixpkgs/lib/licenses.nix
@@ -1068,6 +1068,12 @@ in mkLicense lset) ({
     url = "https://github.com/thestk/stk/blob/master/LICENSE";
   };
 
+  sudo = {
+    shortName = "sudo";
+    fullName = "Sudo License (ISC-style)";
+    url = "https://www.sudo.ws/about/license/";
+  };
+
   sustainableUse = {
     shortName = "sustainable";
     fullName = "Sustainable Use License";
diff --git a/nixpkgs/lib/systems/default.nix b/nixpkgs/lib/systems/default.nix
index 0d21175914a3..9eec21cbf21b 100644
--- a/nixpkgs/lib/systems/default.nix
+++ b/nixpkgs/lib/systems/default.nix
@@ -324,7 +324,8 @@ rec {
               "riscv64" = "riscv64gc";
             }.${cpu.name} or cpu.name;
             vendor_ = final.rust.platform.vendor;
-          in rust.config
+          # TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL.
+          in args.rust.rustcTarget or args.rustc.config
             or "${cpu_}-${vendor_}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
 
           # The name of the rust target if it is standard, or the json file
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix
index de681b37fa65..5ce24431c00a 100644
--- a/nixpkgs/maintainers/maintainer-list.nix
+++ b/nixpkgs/maintainers/maintainer-list.nix
@@ -787,6 +787,12 @@
     githubId = 2335822;
     name = "Alexandre Esteves";
   };
+  alex-fu27 = {
+     email = "alex.fu27@gmail.com";
+     github = "alex-fu27";
+     githubId = 49982580;
+     name = "Alexander Fuchs";
+  };
   alexnortung = {
     name = "alexnortung";
     email = "alex_nortung@live.dk";
@@ -2463,6 +2469,12 @@
     githubId = 37907;
     name = "Julian Stecklina";
   };
+  bloveless = {
+    email = "brennon.loveless@gmail.com";
+    github = "bloveless";
+    githubId = 535135;
+    name = "Brennon Loveless";
+  };
   bluescreen303 = {
     email = "mathijs@bluescreen303.nl";
     github = "bluescreen303";
@@ -6555,6 +6567,12 @@
     githubId = 67984144;
     name = "Gerhard Schwanzer";
   };
+  gernotfeichter = {
+    email = "gernotfeichter@gmail.com";
+    github = "gernotfeichter";
+    githubId = 23199375;
+    name = "Gernot Feichter";
+  };
   gerschtli = {
     email = "tobias.happ@gmx.de";
     github = "Gerschtli";
@@ -12235,7 +12253,7 @@
   moni = {
     email = "lythe1107@gmail.com";
     matrix = "@fortuneteller2k:matrix.org";
-    github = "moni";
+    github = "moni-dz";
     githubId = 20619776;
     name = "moni";
   };
@@ -13931,6 +13949,18 @@
     githubId = 6931743;
     name = "pasqui23";
   };
+  passivelemon = {
+    email = "jeremyseber@gmail.com";
+    github = "PassiveLemon";
+    githubId = 72527881;
+    name = "PassiveLemon";
+  };
+  patricksjackson = {
+    email = "patrick@jackson.dev";
+    github = "patricksjackson";
+    githubId = 160646;
+    name = "Patrick Jackson";
+  };
   patryk27 = {
     email = "pwychowaniec@pm.me";
     github = "Patryk27";
@@ -15230,6 +15260,12 @@
     githubId = 816465;
     name = "Redvers Davies";
   };
+  redxtech = {
+    email = "gabe@gabedunn.dev";
+    github = "redxtech";
+    githubId = 18155001;
+    name = "Gabe Dunn";
+  };
   reedrw = {
     email = "reedrw5601@gmail.com";
     github = "reedrw";
@@ -15329,6 +15365,15 @@
     githubId = 44014925;
     name = "Rexx Larsson";
   };
+  RGBCube = {
+    name = "RGBCube";
+    email = "rgbsphere+nixpkgs@gmail.com";
+    github = "RGBCube";
+    githubId = 78925721;
+    keys = [{
+      fingerprint = "jPaU3Vpm/GN0tUuDg72n2+bd9dDMWe4bnKM325eP7eI";
+    }];
+  };
   rgnns = {
     email = "jglievano@gmail.com";
     github = "rgnns";
@@ -17239,6 +17284,12 @@
     githubId = 327943;
     name = "Scott Zhu Reeves";
   };
+  starzation = {
+    email = "nixpkgs@starzation.net";
+    github = "starzation";
+    githubId = 145975416;
+    name = "Starzation";
+  };
   stasjok = {
     name = "Stanislav Asunkin";
     email = "nixpkgs@stasjok.ru";
@@ -18757,6 +18808,11 @@
     githubId = 347983;
     name = "Udo Spallek";
   };
+  ufUNnxagpM = {
+    github = "ufUNnxagpM";
+    githubId = 12422133;
+    name = "Chromo-residuum-opec";
+  };
   ulrikstrid = {
     email = "ulrik.strid@outlook.com";
     github = "ulrikstrid";
@@ -19744,6 +19800,12 @@
     githubId = 3992240;
     name = "Elijah Rum";
   };
+  x0ba = {
+    name = "x0ba";
+    email = "dax@omg.lol";
+    github = "x0ba";
+    githubId = 64868985;
+  };
   x3ro = {
     name = "^x3ro";
     email = "nix@x3ro.dev";
diff --git a/nixpkgs/maintainers/scripts/haskell/hydra-report.hs b/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
index 2ce3ecb2ae70..8b4f798cc543 100755
--- a/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
+++ b/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
@@ -382,22 +382,22 @@ data BuildState
 
 icon :: BuildState -> Text
 icon = \case
-   Failed -> ":x:"
-   DependencyFailed -> ":heavy_exclamation_mark:"
-   OutputLimitExceeded -> ":warning:"
+   Failed -> "❌"
+   DependencyFailed -> "❗"
+   OutputLimitExceeded -> "⚠️"
    Unknown x -> "unknown code " <> showT x
-   TimedOut -> ":hourglass::no_entry_sign:"
-   Canceled -> ":no_entry_sign:"
-   Unfinished -> ":hourglass_flowing_sand:"
-   HydraFailure -> ":construction:"
-   Success -> ":heavy_check_mark:"
+   TimedOut -> "⌛🚫"
+   Canceled -> "🚫"
+   Unfinished -> "⏳"
+   HydraFailure -> "🚧"
+   Success -> "✅"
 
 platformIcon :: Platform -> Text
 platformIcon (Platform x) = case x of
-   "x86_64-linux" -> ":penguin:"
-   "aarch64-linux" -> ":iphone:"
-   "x86_64-darwin" -> ":apple:"
-   "aarch64-darwin" -> ":green_apple:"
+   "x86_64-linux" -> "🐧"
+   "aarch64-linux" -> "📱"
+   "x86_64-darwin" -> "🍎"
+   "aarch64-darwin" -> "🍏"
    _ -> x
 
 platformIsOS :: OS -> Platform -> Bool
@@ -626,7 +626,7 @@ printBuildSummary eval@Eval{id} fetchTime summary topBrokenRdeps =
          <> optionalHideableList "#### Unmaintained packages with failed dependency" (unmaintainedList (failedDeps summary))
          <> optionalHideableList "#### Unmaintained packages with unknown error" (unmaintainedList (unknownErr summary))
          <> optionalHideableList "#### Top 50 broken packages, sorted by number of reverse dependencies" (brokenLine <$> topBrokenRdeps)
-         <> ["","*:arrow_heading_up:: The number of packages that depend (directly or indirectly) on this package (if any). If two numbers are shown the first (lower) number considers only packages which currently have enabled hydra jobs, i.e. are not marked broken. The second (higher) number considers all packages.*",""]
+         <> ["","*⤴️: The number of packages that depend (directly or indirectly) on this package (if any). If two numbers are shown the first (lower) number considers only packages which currently have enabled hydra jobs, i.e. are not marked broken. The second (higher) number considers all packages.*",""]
          <> footer
   where
    footer = ["*Report generated with [maintainers/scripts/haskell/hydra-report.hs](https://github.com/NixOS/nixpkgs/blob/haskell-updates/maintainers/scripts/haskell/hydra-report.hs)*"]
@@ -651,7 +651,7 @@ printBuildSummary eval@Eval{id} fetchTime summary topBrokenRdeps =
    brokenLine :: (PkgName, Int) -> Text
    brokenLine (PkgName name, rdeps) =
       "[" <> name <> "](https://packdeps.haskellers.com/reverse/" <> name <>
-      ") :arrow_heading_up: " <> Text.pack (show rdeps) <> "  "
+      ") ⤴️ " <> Text.pack (show rdeps) <> "  "
 
    numSummary = statusToNumSummary summary
 
@@ -733,7 +733,7 @@ printBuildSummary eval@Eval{id} fetchTime summary topBrokenRdeps =
          , Text.pack
             ( if summaryReverseDeps entry > 0
                then
-                  " :arrow_heading_up: " <> show (summaryUnbrokenReverseDeps entry) <>
+                  " ⤴️ " <> show (summaryUnbrokenReverseDeps entry) <>
                   " | " <> show (summaryReverseDeps entry)
                else ""
             )
@@ -750,9 +750,9 @@ printBuildSummary eval@Eval{id} fetchTime summary topBrokenRdeps =
          )
 
    tldr = case (errors, warnings) of
-            ([],[]) -> [":green_circle: **Ready to merge** (if there are no [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"]
-            ([],_) -> [":yellow_circle: **Potential issues** (and possibly [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"]
-            _ -> [":red_circle: **Branch not mergeable**"]
+            ([],[]) -> ["🟢 **Ready to merge** (if there are no [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"]
+            ([],_) -> ["🟡 **Potential issues** (and possibly [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"]
+            _ -> ["🔴 **Branch not mergeable**"]
    warnings =
       if' (Unfinished > maybe Success worstState maintainedJob) "`maintained` jobset failed." <>
       if' (Unfinished == maybe Success worstState mergeableJob) "`mergeable` jobset is not finished." <>
diff --git a/nixpkgs/maintainers/scripts/luarocks-packages.csv b/nixpkgs/maintainers/scripts/luarocks-packages.csv
index 78cfca24d96b..c0f416edcb9e 100644
--- a/nixpkgs/maintainers/scripts/luarocks-packages.csv
+++ b/nixpkgs/maintainers/scripts/luarocks-packages.csv
@@ -73,6 +73,7 @@ luaposix,,,,34.1.1-1,,vyp lblasc
 luarepl,,,,,,
 luarocks-build-rust-mlua,,,,,,mrcjkb
 luasec,,,,,,flosse
+luasnip,,,,,,
 luasocket,,,,,,
 luasql-sqlite3,,,,,,vyp
 luassert,,,,,,
diff --git a/nixpkgs/maintainers/team-list.nix b/nixpkgs/maintainers/team-list.nix
index 55037d9a7204..389aca1123b6 100644
--- a/nixpkgs/maintainers/team-list.nix
+++ b/nixpkgs/maintainers/team-list.nix
@@ -317,6 +317,7 @@ with lib.maintainers; {
       das-g
       imincik
       nh2
+      nialov
       sikmir
       willcohen
     ];
diff --git a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.section.md b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.section.md
index b5d0407d1659..7615b95aef42 100644
--- a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.section.md
+++ b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.section.md
@@ -42,8 +42,12 @@ boot.loader.grub.enableCryptodisk = true;
 
 ## FIDO2 {#sec-luks-file-systems-fido2}
 
-NixOS also supports unlocking your LUKS-Encrypted file system using a
-FIDO2 compatible token. In the following example, we will create a new
+NixOS also supports unlocking your LUKS-Encrypted file system using a FIDO2
+compatible token.
+
+### Without systemd in initrd {#sec-luks-file-systems-fido2-legacy}
+
+In the following example, we will create a new
 FIDO2 credential and add it as a new key to our existing device
 `/dev/sda2`:
 
@@ -75,3 +79,37 @@ as [Trezor](https://trezor.io/).
 ```nix
 boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess = true;
 ```
+
+### systemd Stage 1 {#sec-luks-file-systems-fido2-systemd}
+
+If systemd stage 1 is enabled, it handles unlocking of LUKS-enrypted volumes
+during boot. The following example enables systemd stage1 and adds support for
+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";
+  };
+  systemd.enable = true;
+};
+```
+
+All tokens that should be used for unlocking the LUKS2-encrypted volume must
+first be enrolled using [systemd-cryptenroll](https://www.freedesktop.org/software/systemd/man/systemd-cryptenroll.html).
+In the following example, a new key slot for the first discovered token is
+added to the LUKS volume.
+
+```ShellSession
+# systemd-cryptenroll --fido2-device=auto /dev/sda2
+```
+
+Existing key slots are left intact, unless `--wipe-slot=` is specified. It is
+recommened to add a recovery key that should be stored in a secure physical
+location and can be entered wherever a password would be entered.
+
+```ShellSession
+# systemd-cryptenroll --recovery-key /dev/sda2
+```
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2311.section.md b/nixpkgs/nixos/doc/manual/release-notes/rl-2311.section.md
index 760c58d5050e..e693067561a4 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2311.section.md
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2311.section.md
@@ -71,7 +71,9 @@ Make sure to also check the many updates in the [Nixpkgs library](#sec-release-2
 - `services.mastodon` doesn't support providing a TCP port to its `streaming`
   component anymore, as upstream implemented parallelization by running
   multiple instances instead of running multiple processes in one instance.
-  Please create a PR if you are interested in this feature.
+  Please create a PR if you are interested in this feature.\
+  Due to this, the desired number of such instances
+  {option}`services.mastodon.streamingProcesses` now needs to be declared explicitly.
 
 - The `services.hostapd` module was rewritten to support `passwordFile` like
   options, WPA3-SAE, and management of multiple interfaces. This breaks
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md b/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md
index 749ebc5cb13b..9191a204a7a1 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -8,15 +8,20 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
-- Create the first release note entry in this section!
+- `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment.
 
 ## New Services {#sec-release-24.05-new-services}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
+- [Guix](https://guix.gnu.org), a functional package manager inspired by Nix. Available as [services.guix](#opt-services.guix.enable).
+
 - [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable).
 
 - [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
+The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server softwares.
+
+- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
 
 ## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
 
@@ -29,6 +34,10 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
+- `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
+
+- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release.
+
 - 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.
@@ -38,4 +47,11 @@ In addition to numerous new and upgraded packages, this release has the followin
   existing process, but will need to start that process from gdb (so it is a
   child). Or you can set `boot.kernel.sysctl."kernel.yama.ptrace_scope"` to 0.
 
+- Gitea 1.21 upgrade has several breaking changes, including:
+  - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
+  - New instances of Gitea using MySQL now ignore the `[database].CHARSET` config option and always use the `utf8mb4` charset, existing instances should migrate via the `gitea doctor convert` CLI command.
+
 - The `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
+
+- QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
+  The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.
diff --git a/nixpkgs/nixos/modules/config/mysql.nix b/nixpkgs/nixos/modules/config/mysql.nix
index 95c9ba76663e..4f72d22c4f0e 100644
--- a/nixpkgs/nixos/modules/config/mysql.nix
+++ b/nixpkgs/nixos/modules/config/mysql.nix
@@ -6,6 +6,8 @@ let
   cfg = config.users.mysql;
 in
 {
+  meta.maintainers = [ maintainers.netali ];
+
   options = {
     users.mysql = {
       enable = mkEnableOption (lib.mdDoc "Authentication against a MySQL/MariaDB database");
@@ -358,7 +360,7 @@ in
       user = "root";
       group = "root";
       mode = "0600";
-      # password will be added from password file in activation script
+      # password will be added from password file in systemd oneshot
       text = ''
         users.host=${cfg.host}
         users.db_user=${cfg.user}
@@ -423,34 +425,45 @@ in
       mode = "0600";
       user = config.services.nscd.user;
       group = config.services.nscd.group;
-      # password will be added from password file in activation script
+      # password will be added from password file in systemd oneshot
       text = ''
         username ${cfg.user}
       '';
     };
 
-    # preStart script to append the password from the password file
-    # to the configuration files. It also fixes the owner of the
-    # libnss-mysql-root.cfg because it is changed to root after the
-    # password is appended.
-    systemd.services.mysql.preStart = ''
-      if [[ -r ${cfg.passwordFile} ]]; then
-        org_umask=$(umask)
-        umask 0077
+    systemd.services.mysql-auth-pw-init = {
+      description = "Adds the mysql password to the mysql auth config files";
+
+      before = [ "nscd.service" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        Type = "oneshot";
+        User = "root";
+        Group = "root";
+      };
 
-        conf_nss="$(mktemp)"
-        cp /etc/libnss-mysql-root.cfg $conf_nss
-        printf 'password %s\n' "$(cat ${cfg.passwordFile})" >> $conf_nss
-        mv -fT "$conf_nss" /etc/libnss-mysql-root.cfg
-        chown ${config.services.nscd.user}:${config.services.nscd.group} /etc/libnss-mysql-root.cfg
+      restartTriggers = [
+        config.environment.etc."security/pam_mysql.conf".source
+        config.environment.etc."libnss-mysql.cfg".source
+        config.environment.etc."libnss-mysql-root.cfg".source
+      ];
 
-        conf_pam="$(mktemp)"
-        cp /etc/security/pam_mysql.conf $conf_pam
-        printf 'users.db_passwd=%s\n' "$(cat ${cfg.passwordFile})" >> $conf_pam
-        mv -fT "$conf_pam" /etc/security/pam_mysql.conf
+      script = ''
+        if [[ -r ${cfg.passwordFile} ]]; then
+          umask 0077
+          conf_nss="$(mktemp)"
+          cp /etc/libnss-mysql-root.cfg $conf_nss
+          printf 'password %s\n' "$(cat ${cfg.passwordFile})" >> $conf_nss
+          mv -fT "$conf_nss" /etc/libnss-mysql-root.cfg
+          chown ${config.services.nscd.user}:${config.services.nscd.group} /etc/libnss-mysql-root.cfg
 
-        umask $org_umask
-      fi
-    '';
+          conf_pam="$(mktemp)"
+          cp /etc/security/pam_mysql.conf $conf_pam
+          printf 'users.db_passwd=%s\n' "$(cat ${cfg.passwordFile})" >> $conf_pam
+          mv -fT "$conf_pam" /etc/security/pam_mysql.conf
+        fi
+      '';
+    };
   };
 }
diff --git a/nixpkgs/nixos/modules/module-list.nix b/nixpkgs/nixos/modules/module-list.nix
index 2b06951cfb72..43bf477cb215 100644
--- a/nixpkgs/nixos/modules/module-list.nix
+++ b/nixpkgs/nixos/modules/module-list.nix
@@ -442,6 +442,7 @@
   ./services/databases/surrealdb.nix
   ./services/databases/victoriametrics.nix
   ./services/desktops/accountsservice.nix
+  ./services/desktops/ayatana-indicators.nix
   ./services/desktops/bamf.nix
   ./services/desktops/blueman.nix
   ./services/desktops/cpupower-gui.nix
@@ -684,6 +685,7 @@
   ./services/misc/gollum.nix
   ./services/misc/gpsd.nix
   ./services/misc/greenclip.nix
+  ./services/misc/guix
   ./services/misc/headphones.nix
   ./services/misc/heisenbridge.nix
   ./services/misc/homepage-dashboard.nix
@@ -1424,6 +1426,7 @@
   ./system/activation/bootspec.nix
   ./system/activation/top-level.nix
   ./system/boot/binfmt.nix
+  ./system/boot/clevis.nix
   ./system/boot/emergency-mode.nix
   ./system/boot/grow-partition.nix
   ./system/boot/initrd-network.nix
diff --git a/nixpkgs/nixos/modules/programs/screen.nix b/nixpkgs/nixos/modules/programs/screen.nix
index 68de9e52d7be..41bfb5d7809a 100644
--- a/nixpkgs/nixos/modules/programs/screen.nix
+++ b/nixpkgs/nixos/modules/programs/screen.nix
@@ -1,33 +1,41 @@
 { config, lib, pkgs, ... }:
 
 let
-  inherit (lib) mkOption mkIf types;
   cfg = config.programs.screen;
 in
 
 {
-  ###### interface
-
   options = {
     programs.screen = {
+      enable = lib.mkEnableOption (lib.mdDoc "screen, a basic terminal multiplexer");
+
+      package = lib.mkPackageOptionMD pkgs "screen" { };
 
-      screenrc = mkOption {
-        default = "";
-        description = lib.mdDoc ''
-          The contents of /etc/screenrc file.
+      screenrc = lib.mkOption {
+        type = with lib.types; nullOr lines;
+        example = ''
+          defscrollback 10000
+          startup_message off
         '';
-        type = types.lines;
+        description = lib.mdDoc "The contents of {file}`/etc/screenrc` file";
       };
     };
   };
 
-  ###### implementation
-
-  config = mkIf (cfg.screenrc != "") {
-    environment.etc.screenrc.text = cfg.screenrc;
-
-    environment.systemPackages = [ pkgs.screen ];
+  config = {
+    # TODO: Added in 24.05, remove before 24.11
+    assertions = [
+      {
+        assertion = cfg.screenrc != null -> cfg.enable;
+        message = "`programs.screen.screenrc` has been configured, but `programs.screen.enable` is not true";
+      }
+    ];
+  } // lib.mkIf cfg.enable {
+    environment.etc.screenrc = {
+      enable = cfg.screenrc != null;
+      text = cfg.screenrc;
+    };
+    environment.systemPackages = [ cfg.package ];
     security.pam.services.screen = {};
   };
-
 }
diff --git a/nixpkgs/nixos/modules/programs/tsm-client.nix b/nixpkgs/nixos/modules/programs/tsm-client.nix
index 6cb225d102de..45d436221ee3 100644
--- a/nixpkgs/nixos/modules/programs/tsm-client.nix
+++ b/nixpkgs/nixos/modules/programs/tsm-client.nix
@@ -1,193 +1,144 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:  # XXX migration code for freeform settings: `options` can be removed in 2025
+let optionsGlobal = options; in
 
 let
 
-  inherit (builtins) length map;
-  inherit (lib.attrsets) attrNames filterAttrs hasAttr mapAttrs mapAttrsToList optionalAttrs;
+  inherit (lib.attrsets) attrNames attrValues mapAttrsToList removeAttrs;
+  inherit (lib.lists) all allUnique concatLists elem isList map;
   inherit (lib.modules) mkDefault mkIf;
-  inherit (lib.options) literalExpression mkEnableOption mkOption mkPackageOption;
-  inherit (lib.strings) concatLines optionalString toLower;
-  inherit (lib.types) addCheck attrsOf lines nonEmptyStr nullOr package path port str strMatching submodule;
+  inherit (lib.options) mkEnableOption mkOption mkPackageOption;
+  inherit (lib.strings) concatLines match optionalString toLower;
+  inherit (lib.trivial) isInt;
+  inherit (lib.types) addCheck attrsOf coercedTo either enum int lines listOf nonEmptyStr nullOr oneOf path port singleLineStr strMatching submodule;
 
-  # Checks if given list of strings contains unique
-  # elements when compared without considering case.
-  # Type: checkIUnique :: [string] -> bool
-  # Example: checkIUnique ["foo" "Foo"] => false
-  checkIUnique = lst:
-    let
-      lenUniq = l: length (lib.lists.unique l);
-    in
-      lenUniq lst == lenUniq (map toLower lst);
+  scalarType =
+    # see the option's description below for the
+    # handling/transformation of each possible type
+    oneOf [ (enum [ true null ]) int path singleLineStr ];
 
   # TSM rejects servername strings longer than 64 chars.
-  servernameType = strMatching ".{1,64}";
+  servernameType = strMatching "[^[:space:]]{1,64}";
 
   serverOptions = { name, config, ... }: {
-    options.name = mkOption {
+    freeformType = attrsOf (either scalarType (listOf scalarType));
+    # Client system-options file directives are explained here:
+    # https://www.ibm.com/docs/en/storage-protect/8.1.20?topic=commands-processing-options
+    options.servername = mkOption {
       type = servernameType;
+      default = name;
       example = "mainTsmServer";
       description = lib.mdDoc ''
         Local name of the IBM TSM server,
-        must be uncapitalized and no longer than 64 chars.
-        The value will be used for the
-        `server`
-        directive in {file}`dsm.sys`.
+        must not contain space or more than 64 chars.
       '';
     };
-    options.server = mkOption {
+    options.tcpserveraddress = mkOption {
       type = nonEmptyStr;
       example = "tsmserver.company.com";
       description = lib.mdDoc ''
         Host/domain name or IP address of the IBM TSM server.
-        The value will be used for the
-        `tcpserveraddress`
-        directive in {file}`dsm.sys`.
       '';
     };
-    options.port = mkOption {
+    options.tcpport = mkOption {
       type = addCheck port (p: p<=32767);
       default = 1500;  # official default
       description = lib.mdDoc ''
         TCP port of the IBM TSM server.
-        The value will be used for the
-        `tcpport`
-        directive in {file}`dsm.sys`.
         TSM does not support ports above 32767.
       '';
     };
-    options.node = mkOption {
+    options.nodename = mkOption {
       type = nonEmptyStr;
       example = "MY-TSM-NODE";
       description = lib.mdDoc ''
         Target node name on the IBM TSM server.
-        The value will be used for the
-        `nodename`
-        directive in {file}`dsm.sys`.
       '';
     };
     options.genPasswd = mkEnableOption (lib.mdDoc ''
       automatic client password generation.
-      This option influences the
-      `passwordaccess`
-      directive in {file}`dsm.sys`.
+      This option does *not* cause a line in
+      {file}`dsm.sys` by itself, but generates a
+      corresponding `passwordaccess` directive.
       The password will be stored in the directory
-      given by the option {option}`passwdDir`.
+      given by the option {option}`passworddir`.
       *Caution*:
       If this option is enabled and the server forces
       to renew the password (e.g. on first connection),
       a random password will be generated and stored
     '');
-    options.passwdDir = mkOption {
-      type = path;
+    options.passwordaccess = mkOption {
+      type = enum [ "generate" "prompt" ];
+      visible = false;
+    };
+    options.passworddir = mkOption {
+      type = nullOr path;
+      default = null;
       example = "/home/alice/tsm-password";
       description = lib.mdDoc ''
         Directory that holds the TSM
         node's password information.
-        The value will be used for the
-        `passworddir`
-        directive in {file}`dsm.sys`.
       '';
     };
-    options.includeExclude = mkOption {
-      type = lines;
-      default = "";
+    options.inclexcl = mkOption {
+      type = coercedTo lines
+        (pkgs.writeText "inclexcl.dsm.sys")
+        (nullOr path);
+      default = null;
       example = ''
         exclude.dir     /nix/store
         include.encrypt /home/.../*
       '';
       description = lib.mdDoc ''
-        `include.*` and
-        `exclude.*` directives to be
-        used when sending files to the IBM TSM server.
-        The lines will be written into a file that the
-        `inclexcl`
-        directive in {file}`dsm.sys` points to.
-      '';
-    };
-    options.extraConfig = mkOption {
-      # TSM option keys are case insensitive;
-      # we have to ensure there are no keys that
-      # differ only by upper and lower case.
-      type = addCheck
-        (attrsOf (nullOr str))
-        (attrs: checkIUnique (attrNames attrs));
-      default = {};
-      example.compression = "yes";
-      example.passwordaccess = null;
-      description = lib.mdDoc ''
-        Additional key-value pairs for the server stanza.
-        Values must be strings, or `null`
-        for the key not to be used in the stanza
-        (e.g. to overrule values generated by other options).
-      '';
-    };
-    options.text = mkOption {
-      type = lines;
-      example = literalExpression
-        ''lib.modules.mkAfter "compression no"'';
-      description = lib.mdDoc ''
-        Additional text lines for the server stanza.
-        This option can be used if certion configuration keys
-        must be used multiple times or ordered in a certain way
-        as the {option}`extraConfig` option can't
-        control the order of lines in the resulting stanza.
-        Note that the `server`
-        line at the beginning of the stanza is
-        not part of this option's value.
+        Text lines with `include.*` and `exclude.*` directives
+        to be used when sending files to the IBM TSM server,
+        or an absolute path pointing to a file with such lines.
       '';
     };
-    options.stanza = mkOption {
-      type = str;
-      internal = true;
-      visible = false;
-      description = lib.mdDoc "Server stanza text generated from the options.";
-    };
-    config.name = mkDefault name;
-    # Client system-options file directives are explained here:
-    # https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=commands-processing-options
-    config.extraConfig =
-      mapAttrs (lib.trivial.const mkDefault) (
-        {
-          commmethod = "v6tcpip";  # uses v4 or v6, based on dns lookup result
-          tcpserveraddress = config.server;
-          tcpport = builtins.toString config.port;
-          nodename = config.node;
-          passwordaccess = if config.genPasswd then "generate" else "prompt";
-          passworddir = ''"${config.passwdDir}"'';
-        } // optionalAttrs (config.includeExclude!="") {
-          inclexcl = ''"${pkgs.writeText "inclexcl.dsm.sys" config.includeExclude}"'';
-        }
-      );
-    config.text =
-      let
-        attrset = filterAttrs (k: v: v!=null) config.extraConfig;
-        mkLine = k: v: k + optionalString (v!="") "  ${v}";
-        lines = mapAttrsToList mkLine attrset;
-      in
-        concatLines lines;
-    config.stanza = ''
-      server  ${config.name}
-      ${config.text}
-    '';
+    config.commmethod = mkDefault "v6tcpip";  # uses v4 or v6, based on dns lookup result
+    config.passwordaccess = if config.genPasswd then "generate" else "prompt";
+    # XXX migration code for freeform settings, these can be removed in 2025:
+    options.warnings = optionsGlobal.warnings;
+    options.assertions = optionsGlobal.assertions;
+    imports = let inherit (lib.modules) mkRemovedOptionModule mkRenamedOptionModule; in [
+      (mkRemovedOptionModule [ "extraConfig" ] "Please just add options directly to the server attribute set, cf. the description of `programs.tsmClient.servers`.")
+      (mkRemovedOptionModule [ "text" ] "Please just add options directly to the server attribute set, cf. the description of `programs.tsmClient.servers`.")
+      (mkRenamedOptionModule [ "name" ] [ "servername" ])
+      (mkRenamedOptionModule [ "server" ] [ "tcpserveraddress" ])
+      (mkRenamedOptionModule [ "port" ] [ "tcpport" ])
+      (mkRenamedOptionModule [ "node" ] [ "nodename" ])
+      (mkRenamedOptionModule [ "passwdDir" ] [ "passworddir" ])
+      (mkRenamedOptionModule [ "includeExclude" ] [ "inclexcl" ])
+    ];
   };
 
   options.programs.tsmClient = {
     enable = mkEnableOption (lib.mdDoc ''
-      IBM Spectrum Protect (Tivoli Storage Manager, TSM)
+      IBM Storage Protect (Tivoli Storage Manager, TSM)
       client command line applications with a
       client system-options file "dsm.sys"
     '');
     servers = mkOption {
-      type = attrsOf (submodule [ serverOptions ]);
+      type = attrsOf (submodule serverOptions);
       default = {};
       example.mainTsmServer = {
-        server = "tsmserver.company.com";
-        node = "MY-TSM-NODE";
-        extraConfig.compression = "yes";
+        tcpserveraddress = "tsmserver.company.com";
+        nodename = "MY-TSM-NODE";
+        compression = "yes";
       };
       description = lib.mdDoc ''
         Server definitions ("stanzas")
         for the client system-options file.
+        The name of each entry will be used for
+        the internal `servername` by default.
+        Each attribute will be transformed into a line
+        with a key-value pair within the server's stanza.
+        Integers as values will be
+        canonically turned into strings.
+        The boolean value `true` will be turned
+        into a line with just the attribute's name.
+        The value `null` will not generate a line.
+        A list as values generates an entry for
+        each value, according to the rules above.
       '';
     };
     defaultServername = mkOption {
@@ -222,45 +173,107 @@ let
         to add paths to the client system-options file.
       '';
     };
-    wrappedPackage = mkOption {
-      type = package;
-      readOnly = true;
-      description = lib.mdDoc ''
-        The TSM client derivation, wrapped with the path
-        to the client system-options file "dsm.sys".
-        This option is to provide the effective derivation
+    wrappedPackage = mkPackageOption pkgs "tsm-client" {
+      default = null;
+      extraDescription = ''
+        This option is to provide the effective derivation,
+        wrapped with the path to the
+        client system-options file "dsm.sys".
+        It should not be changed, but exists
         for other modules that want to call TSM executables.
       '';
-    };
+    } // { readOnly = true; };
   };
 
   cfg = config.programs.tsmClient;
+  servernames = map (s: s.servername) (attrValues cfg.servers);
 
-  assertions = [
-    {
-      assertion = checkIUnique (mapAttrsToList (k: v: v.name) cfg.servers);
+  assertions =
+    [
+      {
+        assertion = allUnique (map toLower servernames);
+        message = ''
+          TSM server names
+          (option `programs.tsmClient.servers`)
+          contain duplicate name
+          (note that server names are case insensitive).
+        '';
+      }
+      {
+        assertion = (cfg.defaultServername!=null)->(elem cfg.defaultServername servernames);
+        message = ''
+          TSM default server name
+          `programs.tsmClient.defaultServername="${cfg.defaultServername}"`
+          not found in server names in
+          `programs.tsmClient.servers`.
+        '';
+      }
+    ] ++ (mapAttrsToList (name: serverCfg: {
+      assertion = all (key: null != match "[^[:space:]]+" key) (attrNames serverCfg);
       message = ''
-        TSM servernames contain duplicate name
-        (note that case doesn't matter!)
+        TSM server setting names in
+        `programs.tsmClient.servers.${name}.*`
+        contain spaces, but that's not allowed.
+      '';
+    }) cfg.servers) ++ (mapAttrsToList (name: serverCfg: {
+      assertion = allUnique (map toLower (attrNames serverCfg));
+      message = ''
+        TSM server setting names in
+        `programs.tsmClient.servers.${name}.*`
+        contain duplicate names
+        (note that setting names are case insensitive).
+      '';
+    }) cfg.servers)
+    # XXX migration code for freeform settings, this can be removed in 2025:
+    ++ (enrichMigrationInfos "assertions" (addText: { assertion, message }: { inherit assertion; message = addText message; }));
+
+  makeDsmSysLines = key: value:
+    # Turn a key-value pair from the server options attrset
+    # into zero (value==null), one (scalar value) or
+    # more (value is list) configuration stanza lines.
+    if isList value then map (makeDsmSysLines key) value else  # recurse into list
+    if value == null then [ ] else  # skip `null` value
+    [ ("  ${key}${
+      if value == true then "" else  # just output key if value is `true`
+      if isInt value then "  ${builtins.toString value}" else
+      if path.check value then "  \"${value}\"" else  # enclose path in ".."
+      if singleLineStr.check value then "  ${value}" else
+      throw "assertion failed: cannot convert type"  # should never happen
+    }") ];
+
+  makeDsmSysStanza = {servername, ... }@serverCfg:
+    let
+      # drop special values that should not go into server config block
+      attrs = removeAttrs serverCfg [ "servername" "genPasswd"
+        # XXX migration code for freeform settings, these can be removed in 2025:
+        "assertions" "warnings"
+        "extraConfig" "text"
+        "name" "server" "port" "node" "passwdDir" "includeExclude"
+      ];
+    in
+      ''
+        servername  ${servername}
+        ${concatLines (concatLists (mapAttrsToList makeDsmSysLines attrs))}
       '';
-    }
-    {
-      assertion = (cfg.defaultServername!=null)->(hasAttr cfg.defaultServername cfg.servers);
-      message = "TSM defaultServername not found in list of servers";
-    }
-  ];
 
   dsmSysText = ''
-    ****  IBM Spectrum Protect (Tivoli Storage Manager)
+    ****  IBM Storage Protect (Tivoli Storage Manager)
     ****  client system-options file "dsm.sys".
     ****  Do not edit!
     ****  This file is generated by NixOS configuration.
 
     ${optionalString (cfg.defaultServername!=null) "defaultserver  ${cfg.defaultServername}"}
 
-    ${concatLines (mapAttrsToList (k: v: v.stanza) cfg.servers)}
+    ${concatLines (map makeDsmSysStanza (attrValues cfg.servers))}
   '';
 
+  # XXX migration code for freeform settings, this can be removed in 2025:
+  enrichMigrationInfos = what: how: concatLists (
+    mapAttrsToList
+    (name: serverCfg: map (how (text: "In `programs.tsmClient.servers.${name}`: ${text}")) serverCfg."${what}")
+    cfg.servers
+  );
+
 in
 
 {
@@ -275,6 +288,8 @@ in
       dsmSysApi = dsmSysCli;
     };
     environment.systemPackages = [ cfg.wrappedPackage ];
+    # XXX migration code for freeform settings, this can be removed in 2025:
+    warnings = enrichMigrationInfos "warnings" (addText: addText);
   };
 
   meta.maintainers = [ lib.maintainers.yarny ];
diff --git a/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix b/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix
index d3c6f3104fc5..82067d8ade34 100644
--- a/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix
+++ b/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix
@@ -17,8 +17,8 @@ let
 
       compressCmd = getAttr cfg.compression {
         "none" = "cat";
-        "gzip" = "${pkgs.gzip}/bin/gzip -c -${toString cfg.compressionLevel}";
-        "zstd" = "${pkgs.zstd}/bin/zstd -c -${toString cfg.compressionLevel}";
+        "gzip" = "${pkgs.gzip}/bin/gzip -c -${toString cfg.compressionLevel} --rsyncable";
+        "zstd" = "${pkgs.zstd}/bin/zstd -c -${toString cfg.compressionLevel} --rsyncable";
       };
 
       mkSqlPath = prefix: suffix: "${cfg.location}/${db}${prefix}.sql${suffix}";
@@ -178,4 +178,5 @@ in {
     })
   ];
 
+  meta.maintainers = with lib.maintainers; [ Scrumplex ];
 }
diff --git a/nixpkgs/nixos/modules/services/backup/tsm.nix b/nixpkgs/nixos/modules/services/backup/tsm.nix
index c4de0b16d47d..6798b18b3af7 100644
--- a/nixpkgs/nixos/modules/services/backup/tsm.nix
+++ b/nixpkgs/nixos/modules/services/backup/tsm.nix
@@ -3,6 +3,7 @@
 let
 
   inherit (lib.attrsets) hasAttr;
+  inherit (lib.meta) getExe';
   inherit (lib.modules) mkDefault mkIf;
   inherit (lib.options) mkEnableOption mkOption;
   inherit (lib.types) nonEmptyStr nullOr;
@@ -10,7 +11,7 @@ let
   options.services.tsmBackup = {
     enable = mkEnableOption (lib.mdDoc ''
       automatic backups with the
-      IBM Spectrum Protect (Tivoli Storage Manager, TSM) client.
+      IBM Storage Protect (Tivoli Storage Manager, TSM) client.
       This also enables
       {option}`programs.tsmClient.enable`
     '');
@@ -78,10 +79,10 @@ in
   config = mkIf cfg.enable {
     inherit assertions;
     programs.tsmClient.enable = true;
-    programs.tsmClient.servers.${cfg.servername}.passwdDir =
+    programs.tsmClient.servers.${cfg.servername}.passworddir =
       mkDefault "/var/lib/tsm-backup/password";
     systemd.services.tsm-backup = {
-      description = "IBM Spectrum Protect (Tivoli Storage Manager) Backup";
+      description = "IBM Storage Protect (Tivoli Storage Manager) Backup";
       # DSM_LOG needs a trailing slash to have it treated as a directory.
       # `/var/log` would be littered with TSM log files otherwise.
       environment.DSM_LOG = "/var/log/tsm-backup/";
@@ -89,12 +90,12 @@ in
       environment.HOME = "/var/lib/tsm-backup";
       serviceConfig = {
         # for exit status description see
-        # https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=clients-client-return-codes
+        # https://www.ibm.com/docs/en/storage-protect/8.1.20?topic=clients-client-return-codes
         SuccessExitStatus = "4 8";
         # The `-se` option must come after the command.
         # The `-optfile` option suppresses a `dsm.opt`-not-found warning.
         ExecStart =
-          "${cfgPrg.wrappedPackage}/bin/dsmc ${cfg.command} -se='${cfg.servername}' -optfile=/dev/null";
+          "${getExe' cfgPrg.wrappedPackage "dsmc"} ${cfg.command} -se='${cfg.servername}' -optfile=/dev/null";
         LogsDirectory = "tsm-backup";
         StateDirectory = "tsm-backup";
         StateDirectoryMode = "0750";
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
index b906788209b1..2a836c24dda3 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -128,9 +128,7 @@ in {
         '';
       };
 
-      package = mkPackageOption pkgs "python3Packages.buildbot-worker" {
-        example = "python2Packages.buildbot-worker";
-      };
+      package = mkPackageOption pkgs "buildbot-worker" { };
 
       packages = mkOption {
         default = with pkgs; [ git ];
diff --git a/nixpkgs/nixos/modules/services/desktops/ayatana-indicators.nix b/nixpkgs/nixos/modules/services/desktops/ayatana-indicators.nix
new file mode 100644
index 000000000000..abc687bbd43d
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/ayatana-indicators.nix
@@ -0,0 +1,58 @@
+{ config
+, pkgs
+, lib
+, ...
+}:
+
+let
+  cfg = config.services.ayatana-indicators;
+in
+{
+  options.services.ayatana-indicators = {
+    enable = lib.mkEnableOption (lib.mdDoc ''
+      Ayatana Indicators, a continuation of Canonical's Application Indicators
+    '');
+
+    packages = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      default = [ ];
+      example = lib.literalExpression "with pkgs; [ ayatana-indicator-messages ]";
+      description = lib.mdDoc ''
+        List of packages containing Ayatana Indicator services
+        that should be brought up by the SystemD "ayatana-indicators" user target.
+
+        Packages specified here must have passthru.ayatana-indicators set correctly.
+
+        If, how, and where these indicators are displayed will depend on your DE.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment = {
+      systemPackages = cfg.packages;
+
+      pathsToLink = [
+        "/share/ayatana"
+      ];
+    };
+
+    # libayatana-common's ayatana-indicators.target with explicit Wants & Before to bring up requested indicator services
+    systemd.user.targets."ayatana-indicators" =
+      let
+        indicatorServices = lib.lists.flatten
+          (map
+            (pkg:
+              (map (ind: "${ind}.service") pkg.passthru.ayatana-indicators))
+            cfg.packages);
+      in
+      {
+        description = "Target representing the lifecycle of the Ayatana Indicators. Each indicator should be bound to it in its individual service file";
+        partOf = [ "graphical-session.target" ];
+        wants = indicatorServices;
+        before = indicatorServices;
+      };
+  };
+
+  meta.maintainers = with lib.maintainers; [ OPNA2608 ];
+}
diff --git a/nixpkgs/nixos/modules/services/hardware/thinkfan.nix b/nixpkgs/nixos/modules/services/hardware/thinkfan.nix
index 8fa7b456f20e..cca35f492b8e 100644
--- a/nixpkgs/nixos/modules/services/hardware/thinkfan.nix
+++ b/nixpkgs/nixos/modules/services/hardware/thinkfan.nix
@@ -217,6 +217,8 @@ in {
 
     systemd.services = {
       thinkfan.environment.THINKFAN_ARGS = escapeShellArgs ([ "-c" configFile ] ++ cfg.extraArgs);
+      thinkfan.serviceConfig.Restart = "on-failure";
+      thinkfan.serviceConfig.RestartSec = "30s";
 
       # must be added manually, see issue #81138
       thinkfan.wantedBy = [ "multi-user.target" ];
diff --git a/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix b/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix
index 54fd3e17292f..6aa0ae9eba47 100644
--- a/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix
+++ b/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix
@@ -455,10 +455,10 @@ in {
           ln -s /etc/home-assistant/configuration.yaml "${cfg.configDir}/configuration.yaml"
         '';
         copyLovelaceConfig = if cfg.lovelaceConfigWritable then ''
+          rm -f "${cfg.configDir}/ui-lovelace.yaml"
           cp --no-preserve=mode ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
         '' else ''
-          rm -f "${cfg.configDir}/ui-lovelace.yaml"
-          ln -s /etc/home-assistant/ui-lovelace.yaml "${cfg.configDir}/ui-lovelace.yaml"
+          ln -fs /etc/home-assistant/ui-lovelace.yaml "${cfg.configDir}/ui-lovelace.yaml"
         '';
         copyCustomLovelaceModules = if cfg.customLovelaceModules != [] then ''
           mkdir -p "${cfg.configDir}/www"
diff --git a/nixpkgs/nixos/modules/services/matrix/appservice-irc.nix b/nixpkgs/nixos/modules/services/matrix/appservice-irc.nix
index d153ffc2ace8..c79cd799b4d0 100644
--- a/nixpkgs/nixos/modules/services/matrix/appservice-irc.nix
+++ b/nixpkgs/nixos/modules/services/matrix/appservice-irc.nix
@@ -214,7 +214,7 @@ in {
         RestrictRealtime = true;
         PrivateMounts = true;
         SystemCallFilter = [
-          "@system-service @pkey"
+          "@system-service @pkey @chown"
           "~@privileged @resources"
         ];
         SystemCallArchitectures = "native";
diff --git a/nixpkgs/nixos/modules/services/misc/ankisyncd.nix b/nixpkgs/nixos/modules/services/misc/ankisyncd.nix
index e4de46e19a8f..f5acfbb0ee96 100644
--- a/nixpkgs/nixos/modules/services/misc/ankisyncd.nix
+++ b/nixpkgs/nixos/modules/services/misc/ankisyncd.nix
@@ -46,6 +46,12 @@ in
     };
 
     config = mkIf cfg.enable {
+      warnings = [
+        ''
+        `services.ankisyncd` has been replaced by `services.anki-sync-server` and will be removed after
+        24.05 because anki-sync-server(-rs and python) are not maintained.
+        ''
+      ];
       networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
 
       systemd.services.ankisyncd = {
diff --git a/nixpkgs/nixos/modules/services/misc/guix/default.nix b/nixpkgs/nixos/modules/services/misc/guix/default.nix
new file mode 100644
index 000000000000..00e84dc74554
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/guix/default.nix
@@ -0,0 +1,394 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.services.guix;
+
+  package = cfg.package.override { inherit (cfg) stateDir storeDir; };
+
+  guixBuildUser = id: {
+    name = "guixbuilder${toString id}";
+    group = cfg.group;
+    extraGroups = [ cfg.group ];
+    createHome = false;
+    description = "Guix build user ${toString id}";
+    isSystemUser = true;
+  };
+
+  guixBuildUsers = numberOfUsers:
+    builtins.listToAttrs (map
+      (user: {
+        name = user.name;
+        value = user;
+      })
+      (builtins.genList guixBuildUser numberOfUsers));
+
+  # A set of Guix user profiles to be linked at activation.
+  guixUserProfiles = {
+    # The current Guix profile that is created through `guix pull`.
+    "current-guix" = "\${XDG_CONFIG_HOME}/guix/current";
+
+    # The default Guix profile similar to $HOME/.nix-profile from Nix.
+    "guix-profile" = "$HOME/.guix-profile";
+  };
+
+  # All of the Guix profiles to be used.
+  guixProfiles = lib.attrValues guixUserProfiles;
+
+  serviceEnv = {
+    GUIX_LOCPATH = "${cfg.stateDir}/guix/profiles/per-user/root/guix-profile/lib/locale";
+    LC_ALL = "C.UTF-8";
+  };
+in
+{
+  meta.maintainers = with lib.maintainers; [ foo-dogsquared ];
+
+  options.services.guix = with lib; {
+    enable = mkEnableOption "Guix build daemon service";
+
+    group = mkOption {
+      type = types.str;
+      default = "guixbuild";
+      example = "guixbuild";
+      description = ''
+        The group of the Guix build user pool.
+      '';
+    };
+
+    nrBuildUsers = mkOption {
+      type = types.ints.unsigned;
+      description = ''
+        Number of Guix build users to be used in the build pool.
+      '';
+      default = 10;
+      example = 20;
+    };
+
+    extraArgs = mkOption {
+      type = with types; listOf str;
+      default = [ ];
+      example = [ "--max-jobs=4" "--debug" ];
+      description = ''
+        Extra flags to pass to the Guix daemon service.
+      '';
+    };
+
+    package = mkPackageOption pkgs "guix" {
+      extraDescription = ''
+        It should contain {command}`guix-daemon` and {command}`guix`
+        executable.
+      '';
+    };
+
+    storeDir = mkOption {
+      type = types.path;
+      default = "/gnu/store";
+      description = ''
+        The store directory where the Guix service will serve to/from. Take
+        note Guix cannot take advantage of substitutes if you set it something
+        other than {file}`/gnu/store` since most of the cached builds are
+        assumed to be in there.
+
+        ::: {.warning}
+        This will also recompile all packages because the normal cache no
+        longer applies.
+        :::
+      '';
+    };
+
+    stateDir = mkOption {
+      type = types.path;
+      default = "/var";
+      description = ''
+        The state directory where Guix service will store its data such as its
+        user-specific profiles, cache, and state files.
+
+        ::: {.warning}
+        Changing it to something other than the default will rebuild the
+        package.
+        :::
+      '';
+      example = "/gnu/var";
+    };
+
+    publish = {
+      enable = mkEnableOption "substitute server for your Guix store directory";
+
+      generateKeyPair = mkOption {
+        type = types.bool;
+        description = ''
+          Whether to generate signing keys in {file}`/etc/guix` which are
+          required to initialize a substitute server. Otherwise,
+          `--public-key=$FILE` and `--private-key=$FILE` can be passed in
+          {option}`services.guix.publish.extraArgs`.
+        '';
+        default = true;
+        example = false;
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 8181;
+        example = 8200;
+        description = ''
+          Port of the substitute server to listen on.
+        '';
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "guix-publish";
+        description = ''
+          Name of the user to change once the server is up.
+        '';
+      };
+
+      extraArgs = mkOption {
+        type = with types; listOf str;
+        description = ''
+          Extra flags to pass to the substitute server.
+        '';
+        default = [];
+        example = [
+          "--compression=zstd:6"
+          "--discover=no"
+        ];
+      };
+    };
+
+    gc = {
+      enable = mkEnableOption "automatic garbage collection service for Guix";
+
+      extraArgs = mkOption {
+        type = with types; listOf str;
+        default = [ ];
+        description = ''
+          List of arguments to be passed to {command}`guix gc`.
+
+          When given no option, it will try to collect all garbage which is
+          often inconvenient so it is recommended to set [some
+          options](https://guix.gnu.org/en/manual/en/html_node/Invoking-guix-gc.html).
+        '';
+        example = [
+          "--delete-generations=1m"
+          "--free-space=10G"
+          "--optimize"
+        ];
+      };
+
+      dates = lib.mkOption {
+        type = types.str;
+        default = "03:15";
+        example = "weekly";
+        description = ''
+          How often the garbage collection occurs. This takes the time format
+          from {manpage}`systemd.time(7)`.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      environment.systemPackages = [ package ];
+
+      users.users = guixBuildUsers cfg.nrBuildUsers;
+      users.groups.${cfg.group} = { };
+
+      # Guix uses Avahi (through guile-avahi) both for the auto-discovering and
+      # advertising substitute servers in the local network.
+      services.avahi.enable = lib.mkDefault true;
+      services.avahi.publish.enable = lib.mkDefault true;
+      services.avahi.publish.userServices = lib.mkDefault true;
+
+      # It's similar to Nix daemon so there's no question whether or not this
+      # should be sandboxed.
+      systemd.services.guix-daemon = {
+        environment = serviceEnv;
+        script = ''
+          ${lib.getExe' package "guix-daemon"} \
+            --build-users-group=${cfg.group} \
+            ${lib.escapeShellArgs cfg.extraArgs}
+        '';
+        serviceConfig = {
+          OOMPolicy = "continue";
+          RemainAfterExit = "yes";
+          Restart = "always";
+          TasksMax = 8192;
+        };
+        unitConfig.RequiresMountsFor = [
+          cfg.storeDir
+          cfg.stateDir
+        ];
+        wantedBy = [ "multi-user.target" ];
+      };
+
+      # This is based from Nix daemon socket unit from upstream Nix package.
+      # Guix build daemon has support for systemd-style socket activation.
+      systemd.sockets.guix-daemon = {
+        description = "Guix daemon socket";
+        before = [ "multi-user.target" ];
+        listenStreams = [ "${cfg.stateDir}/guix/daemon-socket/socket" ];
+        unitConfig = {
+          RequiresMountsFor = [
+            cfg.storeDir
+            cfg.stateDir
+          ];
+          ConditionPathIsReadWrite = "${cfg.stateDir}/guix/daemon-socket";
+        };
+        wantedBy = [ "socket.target" ];
+      };
+
+      systemd.mounts = [{
+        description = "Guix read-only store directory";
+        before = [ "guix-daemon.service" ];
+        what = cfg.storeDir;
+        where = cfg.storeDir;
+        type = "none";
+        options = "bind,ro";
+
+        unitConfig.DefaultDependencies = false;
+        wantedBy = [ "guix-daemon.service" ];
+      }];
+
+      # Make transferring files from one store to another easier with the usual
+      # case being of most substitutes from the official Guix CI instance.
+      system.activationScripts.guix-authorize-keys = ''
+        for official_server_keys in ${package}/share/guix/*.pub; do
+          ${lib.getExe' package "guix"} archive --authorize < $official_server_keys
+        done
+      '';
+
+      # Link the usual Guix profiles to the home directory. This is useful in
+      # ephemeral setups where only certain part of the filesystem is
+      # persistent (e.g., "Erase my darlings"-type of setup).
+      system.userActivationScripts.guix-activate-user-profiles.text = let
+        linkProfileToPath = acc: profile: location: let
+          guixProfile = "${cfg.stateDir}/guix/profiles/per-user/\${USER}/${profile}";
+          in acc + ''
+            [ -d "${guixProfile}" ] && ln -sf "${guixProfile}" "${location}"
+          '';
+
+        activationScript = lib.foldlAttrs linkProfileToPath "" guixUserProfiles;
+      in ''
+        # Don't export this please! It is only expected to be used for this
+        # activation script and nothing else.
+        XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
+
+        # Linking the usual Guix profiles into the home directory.
+        ${activationScript}
+      '';
+
+      # GUIX_LOCPATH is basically LOCPATH but for Guix libc which in turn used by
+      # virtually every Guix-built packages. This is so that Guix-installed
+      # applications wouldn't use incompatible locale data and not touch its host
+      # system.
+      environment.sessionVariables.GUIX_LOCPATH = lib.makeSearchPath "lib/locale" guixProfiles;
+
+      # What Guix profiles export is very similar to Nix profiles so it is
+      # acceptable to list it here. Also, it is more likely that the user would
+      # want to use packages explicitly installed from Guix so we're putting it
+      # first.
+      environment.profiles = lib.mkBefore guixProfiles;
+    }
+
+    (lib.mkIf cfg.publish.enable {
+      systemd.services.guix-publish = {
+        description = "Guix remote store";
+        environment = serviceEnv;
+
+        # Mounts will be required by the daemon service anyways so there's no
+        # need add RequiresMountsFor= or something similar.
+        requires = [ "guix-daemon.service" ];
+        after = [ "guix-daemon.service" ];
+        partOf = [ "guix-daemon.service" ];
+
+        preStart = lib.mkIf cfg.publish.generateKeyPair ''
+          # Generate the keypair if it's missing.
+          [ -f "/etc/guix/signing-key.sec" ] && [ -f "/etc/guix/signing-key.pub" ] || \
+            ${lib.getExe' package "guix"} archive --generate-key || {
+              rm /etc/guix/signing-key.*;
+              ${lib.getExe' package "guix"} archive --generate-key;
+            }
+        '';
+        script = ''
+          ${lib.getExe' package "guix"} publish \
+            --user=${cfg.publish.user} --port=${builtins.toString cfg.publish.port} \
+            ${lib.escapeShellArgs cfg.publish.extraArgs}
+        '';
+
+        serviceConfig = {
+          Restart = "always";
+          RestartSec = 10;
+
+          ProtectClock = true;
+          ProtectHostname = true;
+          ProtectKernelTunables = true;
+          ProtectKernelModules = true;
+          ProtectControlGroups = true;
+          SystemCallFilter = [
+            "@system-service"
+            "@debug"
+            "@setuid"
+          ];
+
+          RestrictNamespaces = true;
+          RestrictAddressFamilies = [
+            "AF_UNIX"
+            "AF_INET"
+            "AF_INET6"
+          ];
+
+          # While the permissions can be set, it is assumed to be taken by Guix
+          # daemon service which it has already done the setup.
+          ConfigurationDirectory = "guix";
+
+          AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
+          CapabilityBoundingSet = [
+            "CAP_NET_BIND_SERVICE"
+            "CAP_SETUID"
+            "CAP_SETGID"
+          ];
+        };
+        wantedBy = [ "multi-user.target" ];
+      };
+
+      users.users.guix-publish = lib.mkIf (cfg.publish.user == "guix-publish") {
+        description = "Guix publish user";
+        group = config.users.groups.guix-publish.name;
+        isSystemUser = true;
+      };
+      users.groups.guix-publish = {};
+    })
+
+    (lib.mkIf cfg.gc.enable {
+      # This service should be handled by root to collect all garbage by all
+      # users.
+      systemd.services.guix-gc = {
+        description = "Guix garbage collection";
+        startAt = cfg.gc.dates;
+        script = ''
+          ${lib.getExe' package "guix"} gc ${lib.escapeShellArgs cfg.gc.extraArgs}
+        '';
+
+        serviceConfig = {
+          Type = "oneshot";
+
+          MemoryDenyWriteExecute = true;
+          PrivateDevices = true;
+          PrivateNetworks = true;
+          ProtectControlGroups = true;
+          ProtectHostname = true;
+          ProtectKernelTunables = true;
+          SystemCallFilter = [
+            "@default"
+            "@file-system"
+            "@basic-io"
+            "@system-service"
+          ];
+        };
+      };
+
+      systemd.timers.guix-gc.timerConfig.Persistent = true;
+    })
+  ]);
+}
diff --git a/nixpkgs/nixos/modules/services/misc/preload.nix b/nixpkgs/nixos/modules/services/misc/preload.nix
index 19b2531087dd..d26e2c3d383e 100644
--- a/nixpkgs/nixos/modules/services/misc/preload.nix
+++ b/nixpkgs/nixos/modules/services/misc/preload.nix
@@ -19,7 +19,7 @@ in {
 
       serviceConfig = {
         EnvironmentFile = "${cfg.package}/etc/conf.d/preload";
-        ExecStart = "${getExe cfg.package} --foreground $PRELOAD_OPTS";
+        ExecStart = "${getExe cfg.package} -l '' --foreground $PRELOAD_OPTS";
         Type = "simple";
         # Only preload data during CPU idle time
         IOSchedulingClass = 3;
diff --git a/nixpkgs/nixos/modules/services/misc/redmine.nix b/nixpkgs/nixos/modules/services/misc/redmine.nix
index e3941d2e29de..b517170cda21 100644
--- a/nixpkgs/nixos/modules/services/misc/redmine.nix
+++ b/nixpkgs/nixos/modules/services/misc/redmine.nix
@@ -264,9 +264,12 @@ in
       { assertion = cfg.database.passwordFile != null || cfg.database.socket != null;
         message = "one of services.redmine.database.socket or services.redmine.database.passwordFile must be set";
       }
-      { assertion = cfg.database.createLocally -> cfg.database.user == cfg.user && cfg.database.user == cfg.database.name;
+      { assertion = cfg.database.createLocally -> cfg.database.user == cfg.user;
         message = "services.redmine.database.user must be set to ${cfg.user} if services.redmine.database.createLocally is set true";
       }
+      { assertion = pgsqlLocal -> cfg.database.user == cfg.database.name;
+        message = "services.redmine.database.user and services.redmine.database.name must be the same when using a local postgresql database";
+      }
       { assertion = cfg.database.createLocally -> cfg.database.socket != null;
         message = "services.redmine.database.socket must be set if services.redmine.database.createLocally is set to true";
       }
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix
index db5c4d15be66..b36a09c60920 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix
@@ -55,12 +55,12 @@ in
       RuntimeDirectory = "prometheus-mongodb-exporter";
       ExecStart = ''
         ${getExe pkgs.prometheus-mongodb-exporter} \
-          --mongodb.uri=${cfg.uri}
+          --mongodb.uri="${cfg.uri}" \
           ${if cfg.collectAll then "--collect-all" else concatMapStringsSep " " (x: "--collect.${x}") cfg.collector} \
-          --collector.collstats=${concatStringsSep "," cfg.collStats} \
-          --collector.indexstats=${concatStringsSep "," cfg.indexStats} \
-          --web.listen-address=${cfg.listenAddress}:${toString cfg.port} \
-          --web.telemetry-path=${cfg.telemetryPath} \
+          ${optionalString (length cfg.collStats > 0) "--mongodb.collstats-colls=${concatStringsSep "," cfg.collStats}"} \
+          ${optionalString (length cfg.indexStats > 0) "--mongodb.indexstats-colls=${concatStringsSep "," cfg.indexStats}"} \
+          --web.listen-address="${cfg.listenAddress}:${toString cfg.port}" \
+          --web.telemetry-path="${cfg.telemetryPath}" \
           ${escapeShellArgs cfg.extraFlags}
       '';
     };
diff --git a/nixpkgs/nixos/modules/services/networking/keepalived/default.nix b/nixpkgs/nixos/modules/services/networking/keepalived/default.nix
index 29fbea5545c3..429a47c3962c 100644
--- a/nixpkgs/nixos/modules/services/networking/keepalived/default.nix
+++ b/nixpkgs/nixos/modules/services/networking/keepalived/default.nix
@@ -150,6 +150,14 @@ in
         '';
       };
 
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = lib.mdDoc ''
+          Whether to automatically allow VRRP and AH packets in the firewall.
+        '';
+      };
+
       enableScriptSecurity = mkOption {
         type = types.bool;
         default = false;
@@ -282,6 +290,19 @@ in
 
     assertions = flatten (map vrrpInstanceAssertions vrrpInstances);
 
+    networking.firewall = lib.mkIf cfg.openFirewall {
+      extraCommands = ''
+        # Allow VRRP and AH packets
+        ip46tables -A nixos-fw -p vrrp -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
+        ip46tables -A nixos-fw -p ah -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
+      '';
+
+      extraStopCommands = ''
+        ip46tables -D nixos-fw -p vrrp -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
+        ip46tables -D nixos-fw -p ah -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
+      '';
+    };
+
     systemd.timers.keepalived-boot-delay = {
       description = "Keepalive Daemon delay to avoid instant transition to MASTER state";
       after = [ "network.target" "network-online.target" "syslog.target" ];
diff --git a/nixpkgs/nixos/modules/services/web-apps/mastodon.nix b/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
index 8686506b1c28..7b00ce35eb1a 100644
--- a/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
@@ -229,7 +229,7 @@ in {
       streamingProcesses = lib.mkOption {
         description = lib.mdDoc ''
           Number of processes used by the mastodon-streaming service.
-          Recommended is the amount of your CPU cores minus one.
+          Please define this explicitly, recommended is the amount of your CPU cores minus one.
         '';
         type = lib.types.ints.positive;
         example = 3;
diff --git a/nixpkgs/nixos/modules/services/web-apps/netbox.nix b/nixpkgs/nixos/modules/services/web-apps/netbox.nix
index 3b9434e3d345..88d40b3abc52 100644
--- a/nixpkgs/nixos/modules/services/web-apps/netbox.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/netbox.nix
@@ -317,7 +317,7 @@ in {
 
         serviceConfig = defaultServiceConfig // {
           ExecStart = ''
-            ${pkgs.python3Packages.gunicorn}/bin/gunicorn netbox.wsgi \
+            ${pkg.gunicorn}/bin/gunicorn netbox.wsgi \
               --bind ${cfg.listenAddress}:${toString cfg.port} \
               --pythonpath ${pkg}/opt/netbox/netbox
           '';
diff --git a/nixpkgs/nixos/modules/services/web-apps/node-red.nix b/nixpkgs/nixos/modules/services/web-apps/node-red.nix
index d775042fed16..de78f05a98ca 100644
--- a/nixpkgs/nixos/modules/services/web-apps/node-red.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/node-red.nix
@@ -19,7 +19,7 @@ in
   options.services.node-red = {
     enable = mkEnableOption (lib.mdDoc "the Node-RED service");
 
-    package = mkPackageOption pkgs "node-red" { };
+    package = mkPackageOption pkgs "nodePackages.node-red" { };
 
     openFirewall = mkOption {
       type = types.bool;
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index a882bb140d21..e9cadf219468 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -200,8 +200,7 @@ in
         })
       ];
 
-      # https://salsa.debian.org/cinnamon-team/cinnamon/-/commit/f87c64f8d35ba406eb11ad442989a0716f6620cf#
-      xdg.portal.config.x-cinnamon.default = mkDefault [ "xapp" "gtk" ];
+      xdg.portal.configPackages = mkDefault [ pkgs.cinnamon.cinnamon-common ];
 
       # Override GSettings schemas
       environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
diff --git a/nixpkgs/nixos/modules/system/boot/clevis.md b/nixpkgs/nixos/modules/system/boot/clevis.md
new file mode 100644
index 000000000000..91eb728a919e
--- /dev/null
+++ b/nixpkgs/nixos/modules/system/boot/clevis.md
@@ -0,0 +1,51 @@
+# Clevis {#module-boot-clevis}
+
+[Clevis](https://github.com/latchset/clevis)
+is a framework for automated decryption of resources.
+Clevis allows for secure unattended disk decryption during boot, using decryption policies that must be satisfied for the data to decrypt.
+
+
+## Create a JWE file containing your secret {#module-boot-clevis-create-secret}
+
+The first step is to embed your secret in a [JWE](https://en.wikipedia.org/wiki/JSON_Web_Encryption) file.
+JWE files have to be created through the clevis command line. 3 types of policies are supported:
+
+1) TPM policies
+
+Secrets are pinned against the presence of a TPM2 device, for example:
+```
+echo hi | clevis encrypt tpm2 '{}' > hi.jwe
+```
+2) Tang policies
+
+Secrets are pinned against the presence of a Tang server, for example:
+```
+echo hi | clevis encrypt tang '{"url": "http://tang.local"}' > hi.jwe
+```
+
+3) Shamir Secret Sharing
+
+Using Shamir's Secret Sharing ([sss](https://en.wikipedia.org/wiki/Shamir%27s_secret_sharing)), secrets are pinned using a combination of the two preceding policies. For example:
+```
+echo hi | clevis encrypt sss \
+'{"t": 2, "pins": {"tpm2": {"pcr_ids": "0"}, "tang": {"url": "http://tang.local"}}}' \
+> hi.jwe
+```
+
+For more complete documentation on how to generate a secret with clevis, see the [clevis documentation](https://github.com/latchset/clevis).
+
+
+## Activate unattended decryption of a resource at boot {#module-boot-clevis-activate}
+
+In order to activate unattended decryption of a resource at boot, enable the `clevis` module:
+
+```
+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;
+```
+
+Only `bcachefs`, `zfs` and `luks` encrypted devices are supported at this time.
diff --git a/nixpkgs/nixos/modules/system/boot/clevis.nix b/nixpkgs/nixos/modules/system/boot/clevis.nix
new file mode 100644
index 000000000000..0c72590f9385
--- /dev/null
+++ b/nixpkgs/nixos/modules/system/boot/clevis.nix
@@ -0,0 +1,107 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.boot.initrd.clevis;
+  systemd = config.boot.initrd.systemd;
+  supportedFs = [ "zfs" "bcachefs" ];
+in
+{
+  meta.maintainers = with maintainers; [ julienmalka camillemndn ];
+  meta.doc = ./clevis.md;
+
+  options = {
+    boot.initrd.clevis.enable = mkEnableOption (lib.mdDoc "Clevis in initrd");
+
+
+    boot.initrd.clevis.package = mkOption {
+      type = types.package;
+      default = pkgs.clevis;
+      defaultText = "pkgs.clevis";
+      description = lib.mdDoc "Clevis package";
+    };
+
+    boot.initrd.clevis.devices = mkOption {
+      description = "Encrypted devices that need to be unlocked at boot using Clevis";
+      default = { };
+      type = types.attrsOf (types.submodule ({
+        options.secretFile = mkOption {
+          description = lib.mdDoc "Clevis JWE file used to decrypt the device at boot, in concert with the chosen pin (one of TPM2, Tang server, or SSS).";
+          type = types.path;
+        };
+      }));
+    };
+
+    boot.initrd.clevis.useTang = mkOption {
+      description = "Whether the Clevis JWE file used to decrypt the devices uses a Tang server as a pin.";
+      default = false;
+      type = types.bool;
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    # Implementation of clevis unlocking for the supported filesystems are located directly in the respective modules.
+
+
+    assertions = (attrValues (mapAttrs
+      (device: _: {
+        assertion = (any (fs: fs.device == device && (elem fs.fsType supportedFs)) config.system.build.fileSystems) || (hasAttr device config.boot.initrd.luks.devices);
+        message = ''
+          No filesystem or LUKS device with the name ${device} is declared in your configuration.'';
+      })
+      cfg.devices));
+
+
+    warnings =
+      if cfg.useTang && !config.boot.initrd.network.enable && !config.boot.initrd.systemd.network.enable
+      then [ "In order to use a Tang pinned secret you must configure networking in initrd" ]
+      else [ ];
+
+    boot.initrd = {
+      extraUtilsCommands = mkIf (!systemd.enable) ''
+        copy_bin_and_libs ${pkgs.jose}/bin/jose
+        copy_bin_and_libs ${pkgs.curl}/bin/curl
+        copy_bin_and_libs ${pkgs.bash}/bin/bash
+
+        copy_bin_and_libs ${pkgs.tpm2-tools}/bin/.tpm2-wrapped
+        mv $out/bin/{.tpm2-wrapped,tpm2}
+        cp {${pkgs.tpm2-tss},$out}/lib/libtss2-tcti-device.so.0
+
+        copy_bin_and_libs ${cfg.package}/bin/.clevis-wrapped
+        mv $out/bin/{.clevis-wrapped,clevis}
+
+        for BIN in ${cfg.package}/bin/clevis-decrypt*; do
+          copy_bin_and_libs $BIN
+        done
+
+        for BIN in $out/bin/clevis{,-decrypt{,-null,-tang,-tpm2}}; do
+          sed -i $BIN -e 's,${pkgs.bash},,' -e 's,${pkgs.coreutils},,'
+        done
+
+        sed -i $out/bin/clevis-decrypt-tpm2 -e 's,tpm2_,tpm2 ,'
+      '';
+
+      secrets = lib.mapAttrs' (name: value: nameValuePair "/etc/clevis/${name}.jwe" value.secretFile) cfg.devices;
+
+      systemd = {
+        extraBin = mkIf systemd.enable {
+          clevis = "${cfg.package}/bin/clevis";
+          curl = "${pkgs.curl}/bin/curl";
+        };
+
+        storePaths = mkIf systemd.enable [
+          cfg.package
+          "${pkgs.jose}/bin/jose"
+          "${pkgs.curl}/bin/curl"
+          "${pkgs.tpm2-tools}/bin/tpm2_createprimary"
+          "${pkgs.tpm2-tools}/bin/tpm2_flushcontext"
+          "${pkgs.tpm2-tools}/bin/tpm2_load"
+          "${pkgs.tpm2-tools}/bin/tpm2_unseal"
+        ];
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/system/boot/luksroot.nix b/nixpkgs/nixos/modules/system/boot/luksroot.nix
index ca560d63f3bd..8bd9e71cb3a9 100644
--- a/nixpkgs/nixos/modules/system/boot/luksroot.nix
+++ b/nixpkgs/nixos/modules/system/boot/luksroot.nix
@@ -1,9 +1,11 @@
-{ config, options, lib, pkgs, ... }:
+{ config, options, lib, utils, pkgs, ... }:
 
 with lib;
 
 let
   luks = config.boot.initrd.luks;
+  clevis = config.boot.initrd.clevis;
+  systemd = config.boot.initrd.systemd;
   kernelPackages = config.boot.kernelPackages;
   defaultPrio = (mkOptionDefault {}).priority;
 
@@ -594,7 +596,7 @@ in
       '';
 
       type = with types; attrsOf (submodule (
-        { name, ... }: { options = {
+        { config, name, ... }: { options = {
 
           name = mkOption {
             visible = false;
@@ -894,6 +896,19 @@ in
             '';
           };
         };
+
+        config = mkIf (clevis.enable && (hasAttr name clevis.devices)) {
+          preOpenCommands = mkIf (!systemd.enable) ''
+            mkdir -p /clevis-${name}
+            mount -t ramfs none /clevis-${name}
+            clevis decrypt < /etc/clevis/${name}.jwe > /clevis-${name}/decrypted
+          '';
+          keyFile = "/clevis-${name}/decrypted";
+          fallbackToPassword = !systemd.enable;
+          postOpenCommands = mkIf (!systemd.enable) ''
+            umount /clevis-${name}
+          '';
+        };
       }));
     };
 
@@ -1081,6 +1096,35 @@ in
     boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands);
     boot.initrd.postDeviceCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands);
 
+    boot.initrd.systemd.services = let devicesWithClevis = filterAttrs (device: _: (hasAttr device clevis.devices)) luks.devices; in
+      mkIf (clevis.enable && systemd.enable) (
+        (mapAttrs'
+          (name: _: nameValuePair "cryptsetup-clevis-${name}" {
+            wantedBy = [ "systemd-cryptsetup@${utils.escapeSystemdPath name}.service" ];
+            before = [
+              "systemd-cryptsetup@${utils.escapeSystemdPath name}.service"
+              "initrd-switch-root.target"
+              "shutdown.target"
+            ];
+            wants = [ "systemd-udev-settle.service" ] ++ optional clevis.useTang "network-online.target";
+            after = [ "systemd-modules-load.service" "systemd-udev-settle.service" ] ++ optional clevis.useTang "network-online.target";
+            script = ''
+              mkdir -p /clevis-${name}
+              mount -t ramfs none /clevis-${name}
+              umask 277
+              clevis decrypt < /etc/clevis/${name}.jwe > /clevis-${name}/decrypted
+            '';
+            conflicts = [ "initrd-switch-root.target" "shutdown.target" ];
+            unitConfig.DefaultDependencies = "no";
+            serviceConfig = {
+              Type = "oneshot";
+              RemainAfterExit = true;
+              ExecStop = "${config.boot.initrd.systemd.package.util-linux}/bin/umount /clevis-${name}";
+            };
+          })
+          devicesWithClevis)
+      );
+
     environment.systemPackages = [ pkgs.cryptsetup ];
   };
 }
diff --git a/nixpkgs/nixos/modules/tasks/filesystems/bcachefs.nix b/nixpkgs/nixos/modules/tasks/filesystems/bcachefs.nix
index f28fd5cde9c1..639ff87841b6 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems/bcachefs.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems/bcachefs.nix
@@ -57,7 +57,15 @@ let
   # bcachefs does not support mounting devices with colons in the path, ergo we don't (see #49671)
   firstDevice = fs: lib.head (lib.splitString ":" fs.device);
 
-  openCommand = name: fs: ''
+  openCommand = name: fs: if config.boot.initrd.clevis.enable && (lib.hasAttr (firstDevice fs) config.boot.initrd.clevis.devices) then ''
+    if clevis decrypt < /etc/clevis/${firstDevice fs}.jwe | bcachefs unlock ${firstDevice fs}
+    then
+      printf "unlocked ${name} using clevis\n"
+    else
+      printf "falling back to interactive unlocking...\n"
+      tryUnlock ${name} ${firstDevice fs}
+    fi
+  '' else ''
     tryUnlock ${name} ${firstDevice fs}
   '';
 
diff --git a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
index 72bc79f31b68..784040f0ce9e 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
@@ -17,6 +17,9 @@ let
   cfgZED = config.services.zfs.zed;
 
   selectModulePackage = package: config.boot.kernelPackages.${package.kernelModuleAttribute};
+  clevisDatasets = map (e: e.device) (filter (e: e.device != null && (hasAttr e.device config.boot.initrd.clevis.devices) && e.fsType == "zfs" && (fsNeededForBoot e)) config.system.build.fileSystems);
+
+
   inInitrd = any (fs: fs == "zfs") config.boot.initrd.supportedFilesystems;
   inSystem = any (fs: fs == "zfs") config.boot.supportedFilesystems;
 
@@ -120,12 +123,12 @@ let
       # but don't *require* it, because mounts shouldn't be killed if it's stopped.
       # In the future, hopefully someone will complete this:
       # https://github.com/zfsonlinux/zfs/pull/4943
-      wants = [ "systemd-udev-settle.service" ];
+      wants = [ "systemd-udev-settle.service" ] ++ optional (config.boot.initrd.clevis.useTang) "network-online.target";
       after = [
         "systemd-udev-settle.service"
         "systemd-modules-load.service"
         "systemd-ask-password-console.service"
-      ];
+      ] ++ optional (config.boot.initrd.clevis.useTang) "network-online.target";
       requiredBy = getPoolMounts prefix pool ++ [ "zfs-import.target" ];
       before = getPoolMounts prefix pool ++ [ "zfs-import.target" ];
       unitConfig = {
@@ -154,6 +157,9 @@ let
           poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
         fi
         if poolImported "${pool}"; then
+        ${optionalString config.boot.initrd.clevis.enable (concatMapStringsSep "\n" (elem: "clevis decrypt < /etc/clevis/${elem}.jwe | zfs load-key ${elem} || true ") (filter (p: (elemAt (splitString "/" p) 0) == pool) clevisDatasets))}
+
+
           ${optionalString keyLocations.hasKeys ''
             ${keyLocations.command} | while IFS=$'\t' read ds kl ks; do
               {
@@ -623,6 +629,9 @@ in
               fi
               poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
             fi
+
+            ${optionalString config.boot.initrd.clevis.enable (concatMapStringsSep "\n" (elem: "clevis decrypt < /etc/clevis/${elem}.jwe | zfs load-key ${elem}") (filter (p: (elemAt (splitString "/" p) 0) == pool) clevisDatasets))}
+
             ${if isBool cfgZfs.requestEncryptionCredentials
               then optionalString cfgZfs.requestEncryptionCredentials ''
                 zfs load-key -a
diff --git a/nixpkgs/nixos/tests/all-terminfo.nix b/nixpkgs/nixos/tests/all-terminfo.nix
index dd47c66ee1c1..2f5e56f09f26 100644
--- a/nixpkgs/nixos/tests/all-terminfo.nix
+++ b/nixpkgs/nixos/tests/all-terminfo.nix
@@ -10,7 +10,11 @@ import ./make-test-python.nix ({ pkgs, ... }: rec {
         let
           o = builtins.tryEval drv;
         in
-        o.success && lib.isDerivation o.value && o.value ? outputs && builtins.elem "terminfo" o.value.outputs;
+        o.success &&
+        lib.isDerivation o.value &&
+        o.value ? outputs &&
+        builtins.elem "terminfo" o.value.outputs &&
+        !o.value.meta.broken;
       terminfos = lib.filterAttrs infoFilter pkgs;
       excludedTerminfos = lib.filterAttrs (_: drv: !(builtins.elem drv.terminfo config.environment.systemPackages)) terminfos;
       includedOuts = lib.filterAttrs (_: drv: builtins.elem drv.out config.environment.systemPackages) terminfos;
diff --git a/nixpkgs/nixos/tests/all-tests.nix b/nixpkgs/nixos/tests/all-tests.nix
index 1ed0f760c9a2..e0572e3bed9c 100644
--- a/nixpkgs/nixos/tests/all-tests.nix
+++ b/nixpkgs/nixos/tests/all-tests.nix
@@ -135,6 +135,7 @@ in {
   authelia = handleTest ./authelia.nix {};
   avahi = handleTest ./avahi.nix {};
   avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
+  ayatana-indicators = handleTest ./ayatana-indicators.nix {};
   babeld = handleTest ./babeld.nix {};
   bazarr = handleTest ./bazarr.nix {};
   bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
@@ -187,6 +188,7 @@ in {
   chrony = handleTestOn ["aarch64-linux" "x86_64-linux"] ./chrony.nix {};
   chrony-ptp = handleTestOn ["aarch64-linux" "x86_64-linux"] ./chrony-ptp.nix {};
   cinnamon = handleTest ./cinnamon.nix {};
+  cinnamon-wayland = handleTest ./cinnamon-wayland.nix {};
   cjdns = handleTest ./cjdns.nix {};
   clickhouse = handleTest ./clickhouse.nix {};
   cloud-init = handleTest ./cloud-init.nix {};
@@ -357,6 +359,7 @@ in {
   grow-partition = runTest ./grow-partition.nix;
   grub = handleTest ./grub.nix {};
   guacamole-server = handleTest ./guacamole-server.nix {};
+  guix = handleTest ./guix {};
   gvisor = handleTest ./gvisor.nix {};
   hadoop = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop; };
   hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
diff --git a/nixpkgs/nixos/tests/auth-mysql.nix b/nixpkgs/nixos/tests/auth-mysql.nix
index 0ed4b050a69a..77a69eb1cd58 100644
--- a/nixpkgs/nixos/tests/auth-mysql.nix
+++ b/nixpkgs/nixos/tests/auth-mysql.nix
@@ -84,7 +84,7 @@ in
           getpwuid = ''
             SELECT name, 'x', uid, gid, name, CONCAT('/home/', name), "/run/current-system/sw/bin/bash" \
             FROM users \
-            WHERE id=%1$u \
+            WHERE uid=%1$u \
             LIMIT 1
           '';
           getspnam = ''
@@ -140,6 +140,7 @@ in
 
     machine.wait_for_unit("multi-user.target")
     machine.wait_for_unit("mysql.service")
+    machine.wait_until_succeeds("cat /etc/security/pam_mysql.conf | grep users.db_passwd")
     machine.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
 
     with subtest("Local login"):
diff --git a/nixpkgs/nixos/tests/ayatana-indicators.nix b/nixpkgs/nixos/tests/ayatana-indicators.nix
new file mode 100644
index 000000000000..bc7ff75f390f
--- /dev/null
+++ b/nixpkgs/nixos/tests/ayatana-indicators.nix
@@ -0,0 +1,71 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: let
+  user = "alice";
+in {
+  name = "ayatana-indicators";
+
+  meta = {
+    maintainers = with lib.maintainers; [ OPNA2608 ];
+  };
+
+  nodes.machine = { config, ... }: {
+    imports = [
+      ./common/auto.nix
+      ./common/user-account.nix
+    ];
+
+    test-support.displayManager.auto = {
+      enable = true;
+      inherit user;
+    };
+
+    services.xserver = {
+      enable = true;
+      desktopManager.mate.enable = true;
+      displayManager.defaultSession = lib.mkForce "mate";
+    };
+
+    services.ayatana-indicators = {
+      enable = true;
+      packages = with pkgs; [
+        ayatana-indicator-messages
+      ];
+    };
+
+    # Services needed by some indicators
+    services.accounts-daemon.enable = true; # messages
+  };
+
+  # TODO session indicator starts up in a semi-broken state, but works fine after a restart. maybe being started before graphical session is truly up & ready?
+  testScript = { nodes, ... }: let
+    runCommandPerIndicatorService = command: lib.strings.concatMapStringsSep "\n" command nodes.machine.systemd.user.targets."ayatana-indicators".wants;
+  in ''
+    start_all()
+    machine.wait_for_x()
+
+    # Desktop environment should reach graphical-session.target
+    machine.wait_for_unit("graphical-session.target", "${user}")
+
+    # MATE relies on XDG autostart to bring up the indicators.
+    # Not sure *when* XDG autostart fires them up, and awaiting pgrep success seems to misbehave?
+    machine.sleep(10)
+
+    # Now check if all indicators were brought up successfully, and kill them for later
+  '' + (runCommandPerIndicatorService (service: let serviceExec = builtins.replaceStrings [ "." ] [ "-" ] service; in ''
+    machine.succeed("pgrep -f ${serviceExec}")
+    machine.succeed("pkill -f ${serviceExec}")
+  '')) + ''
+
+    # Ayatana target is the preferred way of starting up indicators on SystemD session, the graphical session is responsible for starting this if it supports them.
+    # Mate currently doesn't do this, so start it manually for checking (https://github.com/mate-desktop/mate-indicator-applet/issues/63)
+    machine.systemctl("start ayatana-indicators.target", "${user}")
+    machine.wait_for_unit("ayatana-indicators.target", "${user}")
+
+    # Let all indicator services do their startups, potential post-launch crash & restart cycles so we can properly check for failures
+    # Not sure if there's a better way of awaiting this without false-positive potential
+    machine.sleep(10)
+
+    # Now check if all indicator services were brought up successfully
+  '' + runCommandPerIndicatorService (service: ''
+    machine.wait_for_unit("${service}", "${user}")
+  '');
+})
diff --git a/nixpkgs/nixos/tests/cinnamon-wayland.nix b/nixpkgs/nixos/tests/cinnamon-wayland.nix
new file mode 100644
index 000000000000..58dddbbb0866
--- /dev/null
+++ b/nixpkgs/nixos/tests/cinnamon-wayland.nix
@@ -0,0 +1,71 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "cinnamon-wayland";
+
+  meta.maintainers = lib.teams.cinnamon.members;
+
+  nodes.machine = { nodes, ... }: {
+    imports = [ ./common/user-account.nix ];
+    services.xserver.enable = true;
+    services.xserver.desktopManager.cinnamon.enable = true;
+    services.xserver.displayManager = {
+      autoLogin.enable = true;
+      autoLogin.user = nodes.machine.users.users.alice.name;
+      defaultSession = "cinnamon-wayland";
+    };
+  };
+
+  enableOCR = true;
+
+  testScript = { nodes, ... }:
+    let
+      user = nodes.machine.users.users.alice;
+      env = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${toString user.uid}/bus";
+      su = command: "su - ${user.name} -c '${env} ${command}'";
+
+      # Call javascript in cinnamon (the shell), returns a tuple (success, output),
+      # where `success` is true if the dbus call was successful and `output` is what
+      # the javascript evaluates to.
+      eval = name: su "gdbus call --session -d org.Cinnamon -o /org/Cinnamon -m org.Cinnamon.Eval ${name}";
+    in
+    ''
+      machine.wait_for_unit("display-manager.service")
+
+      with subtest("Wait for wayland server"):
+          machine.wait_for_file("/run/user/${toString user.uid}/wayland-0")
+
+      with subtest("Check that logging in has given the user ownership of devices"):
+          machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
+
+      with subtest("Wait for the Cinnamon shell"):
+          # Correct output should be (true, '2')
+          # https://github.com/linuxmint/cinnamon/blob/5.4.0/js/ui/main.js#L183-L187
+          machine.wait_until_succeeds("${eval "Main.runState"} | grep -q 'true,..2'")
+
+      with subtest("Check if Cinnamon components actually start"):
+          for i in ["csd-media-keys", "xapp-sn-watcher", "nemo-desktop"]:
+            machine.wait_until_succeeds(f"pgrep -f {i}")
+          machine.wait_until_succeeds("journalctl -b --grep 'Loaded applet menu@cinnamon.org'")
+          machine.wait_until_succeeds("journalctl -b --grep 'calendar@cinnamon.org: Calendar events supported'")
+
+      with subtest("Open Cinnamon Settings"):
+          machine.succeed("${su "cinnamon-settings themes >&2 &"}")
+          machine.wait_until_succeeds("${eval "global.display.focus_window.wm_class"} | grep -i 'cinnamon-settings'")
+          machine.wait_for_text('(Style|Appearance|Color)')
+          machine.sleep(2)
+          machine.screenshot("cinnamon_settings")
+
+      with subtest("Check if screensaver works"):
+          # This is not supported at the moment.
+          # https://trello.com/b/HHs01Pab/cinnamon-wayland
+          machine.execute("${su "cinnamon-screensaver-command -l >&2 &"}")
+          machine.wait_until_succeeds("journalctl -b --grep 'Cinnamon Screensaver is unavailable on Wayland'")
+
+      with subtest("Open GNOME Terminal"):
+          machine.succeed("${su "dbus-launch gnome-terminal"}")
+          machine.wait_until_succeeds("${eval "global.display.focus_window.wm_class"} | grep -i 'gnome-terminal'")
+          machine.sleep(2)
+
+      with subtest("Check if Cinnamon has ever coredumped"):
+          machine.fail("coredumpctl --json=short | grep -E 'cinnamon|nemo'")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/guix/basic.nix b/nixpkgs/nixos/tests/guix/basic.nix
new file mode 100644
index 000000000000..7f90bdeeb1e0
--- /dev/null
+++ b/nixpkgs/nixos/tests/guix/basic.nix
@@ -0,0 +1,38 @@
+# Take note the Guix store directory is empty. Also, we're trying to prevent
+# Guix from trying to downloading substitutes because of the restricted
+# access (assuming it's in a sandboxed environment).
+#
+# So this test is what it is: a basic test while trying to use Guix as much as
+# we possibly can (including the API) without triggering its download alarm.
+
+import ../make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "guix-basic";
+  meta.maintainers = with lib.maintainers; [ foo-dogsquared ];
+
+  nodes.machine = { config, ... }: {
+    environment.etc."guix/scripts".source = ./scripts;
+    services.guix.enable = true;
+  };
+
+  testScript = ''
+    import pathlib
+
+    machine.wait_for_unit("multi-user.target")
+    machine.wait_for_unit("guix-daemon.service")
+
+    # Can't do much here since the environment has restricted network access.
+    with subtest("Guix basic package management"):
+      machine.succeed("guix build --dry-run --verbosity=0 hello")
+      machine.succeed("guix show hello")
+
+    # This is to see if the Guix API is usable and mostly working.
+    with subtest("Guix API scripting"):
+      scripts_dir = pathlib.Path("/etc/guix/scripts")
+
+      text_msg = "Hello there, NixOS!"
+      text_store_file = machine.succeed(f"guix repl -- {scripts_dir}/create-file-to-store.scm '{text_msg}'")
+      assert machine.succeed(f"cat {text_store_file}") == text_msg
+
+      machine.succeed(f"guix repl -- {scripts_dir}/add-existing-files-to-store.scm {scripts_dir}")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/guix/default.nix b/nixpkgs/nixos/tests/guix/default.nix
new file mode 100644
index 000000000000..a017668c05a7
--- /dev/null
+++ b/nixpkgs/nixos/tests/guix/default.nix
@@ -0,0 +1,8 @@
+{ system ? builtins.currentSystem
+, pkgs ? import ../../.. { inherit system; }
+}:
+
+{
+  basic = import ./basic.nix { inherit system pkgs; };
+  publish = import ./publish.nix { inherit system pkgs; };
+}
diff --git a/nixpkgs/nixos/tests/guix/publish.nix b/nixpkgs/nixos/tests/guix/publish.nix
new file mode 100644
index 000000000000..6dbe8f99ebd6
--- /dev/null
+++ b/nixpkgs/nixos/tests/guix/publish.nix
@@ -0,0 +1,95 @@
+# Testing out the substitute server with two machines in a local network. As a
+# bonus, we'll also test a feature of the substitute server being able to
+# advertise its service to the local network with Avahi.
+
+import ../make-test-python.nix ({ pkgs, lib, ... }: let
+  publishPort = 8181;
+  inherit (builtins) toString;
+in {
+  name = "guix-publish";
+
+  meta.maintainers = with lib.maintainers; [ foo-dogsquared ];
+
+  nodes = let
+    commonConfig = { config, ... }: {
+      # We'll be using '--advertise' flag with the
+      # substitute server which requires Avahi.
+      services.avahi = {
+        enable = true;
+        nssmdns = true;
+        publish = {
+          enable = true;
+          userServices = true;
+        };
+      };
+    };
+  in {
+    server = { config, lib, pkgs, ... }: {
+      imports = [ commonConfig ];
+
+      services.guix = {
+        enable = true;
+        publish = {
+          enable = true;
+          port = publishPort;
+
+          generateKeyPair = true;
+          extraArgs = [ "--advertise" ];
+        };
+      };
+
+      networking.firewall.allowedTCPPorts = [ publishPort ];
+    };
+
+    client = { config, lib, pkgs, ... }: {
+      imports = [ commonConfig ];
+
+      services.guix = {
+        enable = true;
+
+        extraArgs = [
+          # Force to only get all substitutes from the local server. We don't
+          # have anything in the Guix store directory and we cannot get
+          # anything from the official substitute servers anyways.
+          "--substitute-urls='http://server.local:${toString publishPort}'"
+
+          # Enable autodiscovery of the substitute servers in the local
+          # network. This machine shouldn't need to import the signing key from
+          # the substitute server since it is automatically done anyways.
+          "--discover=yes"
+        ];
+      };
+    };
+  };
+
+  testScript = ''
+    import pathlib
+
+    start_all()
+
+    scripts_dir = pathlib.Path("/etc/guix/scripts")
+
+    for machine in machines:
+      machine.wait_for_unit("multi-user.target")
+      machine.wait_for_unit("guix-daemon.service")
+      machine.wait_for_unit("avahi-daemon.service")
+
+    server.wait_for_unit("guix-publish.service")
+    server.wait_for_open_port(${toString publishPort})
+    server.succeed("curl http://localhost:${toString publishPort}/")
+
+    # Now it's the client turn to make use of it.
+    substitute_server = "http://server.local:${toString publishPort}"
+    client.wait_for_unit("network-online.target")
+    response = client.succeed(f"curl {substitute_server}")
+    assert "Guix Substitute Server" in response
+
+    # Authorizing the server to be used as a substitute server.
+    client.succeed(f"curl -O {substitute_server}/signing-key.pub")
+    client.succeed("guix archive --authorize < ./signing-key.pub")
+
+    # Since we're using the substitute server with the `--advertise` flag, we
+    # might as well check it.
+    client.succeed("avahi-browse --resolve --terminate _guix_publish._tcp | grep '_guix_publish._tcp'")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/guix/scripts/add-existing-files-to-store.scm b/nixpkgs/nixos/tests/guix/scripts/add-existing-files-to-store.scm
new file mode 100644
index 000000000000..fa47320b6a51
--- /dev/null
+++ b/nixpkgs/nixos/tests/guix/scripts/add-existing-files-to-store.scm
@@ -0,0 +1,52 @@
+;; A simple script that adds each file given from the command-line into the
+;; store and checks them if it's the same.
+(use-modules (guix)
+             (srfi srfi-1)
+             (ice-9 ftw)
+             (rnrs io ports))
+
+;; This is based from tests/derivations.scm from Guix source code.
+(define* (directory-contents dir #:optional (slurp get-bytevector-all))
+         "Return an alist representing the contents of DIR"
+         (define prefix-len (string-length dir))
+         (sort (file-system-fold (const #t)
+                                 (lambda (path stat result)
+                                   (alist-cons (string-drop path prefix-len)
+                                               (call-with-input-file path slurp)
+                                               result))
+                                 (lambda (path stat result) result)
+                                 (lambda (path stat result) result)
+                                 (lambda (path stat result) result)
+                                 (lambda (path stat errno result) result)
+                                 '()
+                                 dir)
+               (lambda (e1 e2)
+                 (string<? (car e1) (car e2)))))
+
+(define* (check-if-same store drv path)
+         "Check if the given path and its store item are the same"
+         (let* ((filetype (stat:type (stat drv))))
+           (case filetype
+             ((regular)
+              (and (valid-path? store drv)
+                   (equal? (call-with-input-file path get-bytevector-all)
+                           (call-with-input-file drv get-bytevector-all))))
+             ((directory)
+              (and (valid-path? store drv)
+                   (equal? (directory-contents path)
+                           (directory-contents drv))))
+             (else #f))))
+
+(define* (add-and-check-item-to-store store path)
+         "Add PATH to STORE and check if the contents are the same"
+         (let* ((store-item (add-to-store store
+                                          (basename path)
+                                          #t "sha256" path))
+                (is-same (check-if-same store store-item path)))
+           (if (not is-same)
+             (exit 1))))
+
+(with-store store
+            (map (lambda (path)
+                   (add-and-check-item-to-store store (readlink* path)))
+                 (cdr (command-line))))
diff --git a/nixpkgs/nixos/tests/guix/scripts/create-file-to-store.scm b/nixpkgs/nixos/tests/guix/scripts/create-file-to-store.scm
new file mode 100644
index 000000000000..467e4c4fd53f
--- /dev/null
+++ b/nixpkgs/nixos/tests/guix/scripts/create-file-to-store.scm
@@ -0,0 +1,8 @@
+;; A script that creates a store item with the given text and prints the
+;; resulting store item path.
+(use-modules (guix))
+
+(with-store store
+            (display (add-text-to-store store "guix-basic-test-text"
+                                        (string-join
+                                          (cdr (command-line))))))
diff --git a/nixpkgs/nixos/tests/input-remapper.nix b/nixpkgs/nixos/tests/input-remapper.nix
index 1b0350063f7f..2ef55a01b290 100644
--- a/nixpkgs/nixos/tests/input-remapper.nix
+++ b/nixpkgs/nixos/tests/input-remapper.nix
@@ -46,7 +46,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
       machine.execute("su - sybil -c input-remapper-gtk >&2 &")
 
       machine.wait_for_text("Input Remapper")
-      machine.wait_for_text("Preset")
-      machine.wait_for_text("Change Key")
+      machine.wait_for_text("Device")
+      machine.wait_for_text("Presets")
+      machine.wait_for_text("Editor")
     '';
   })
diff --git a/nixpkgs/nixos/tests/installer-systemd-stage-1.nix b/nixpkgs/nixos/tests/installer-systemd-stage-1.nix
index 1b4c92b584b9..d0c01a779ef1 100644
--- a/nixpkgs/nixos/tests/installer-systemd-stage-1.nix
+++ b/nixpkgs/nixos/tests/installer-systemd-stage-1.nix
@@ -32,6 +32,10 @@
     stratisRoot
     swraid
     zfsroot
+    clevisLuks
+    clevisLuksFallback
+    clevisZfs
+    clevisZfsFallback
     ;
 
 }
diff --git a/nixpkgs/nixos/tests/installer.nix b/nixpkgs/nixos/tests/installer.nix
index e9ec28749850..f7fc168eba8c 100644
--- a/nixpkgs/nixos/tests/installer.nix
+++ b/nixpkgs/nixos/tests/installer.nix
@@ -12,6 +12,7 @@ let
   # The configuration to install.
   makeConfig = { bootLoader, grubDevice, grubIdentifier, grubUseEfi
                , extraConfig, forceGrubReinstallCount ? 0, flake ? false
+               , clevisTest
                }:
     pkgs.writeText "configuration.nix" ''
       { config, lib, pkgs, modulesPath, ... }:
@@ -52,6 +53,15 @@ let
 
         boot.initrd.secrets."/etc/secret" = ./secret;
 
+        ${optionalString clevisTest ''
+          boot.kernelParams = [ "console=tty0" "ip=192.168.1.1:::255.255.255.0::eth1:none" ];
+          boot.initrd = {
+            availableKernelModules = [ "tpm_tis" ];
+            clevis = { enable = true; useTang = true; };
+            network.enable = true;
+          };
+          ''}
+
         users.users.alice = {
           isNormalUser = true;
           home = "/home/alice";
@@ -71,7 +81,7 @@ let
   # partitions and filesystems.
   testScriptFun = { bootLoader, createPartitions, grubDevice, grubUseEfi, grubIdentifier
                   , postInstallCommands, preBootCommands, postBootCommands, extraConfig
-                  , testSpecialisationConfig, testFlakeSwitch
+                  , testSpecialisationConfig, testFlakeSwitch, clevisTest, clevisFallbackTest
                   }:
     let iface = "virtio";
         isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi);
@@ -79,12 +89,16 @@ let
     in if !isEfi && !pkgs.stdenv.hostPlatform.isx86 then ''
       machine.succeed("true")
     '' else ''
+      import subprocess
+      tpm_folder = os.environ['NIX_BUILD_TOP']
       def assemble_qemu_flags():
           flags = "-cpu max"
           ${if (system == "x86_64-linux" || system == "i686-linux")
             then ''flags += " -m 1024"''
             else ''flags += " -m 768 -enable-kvm -machine virt,gic-version=host"''
           }
+          ${optionalString clevisTest ''flags += f" -chardev socket,id=chrtpm,path={tpm_folder}/swtpm-sock -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0"''}
+          ${optionalString clevisTest ''flags += " -device virtio-net-pci,netdev=vlan1,mac=52:54:00:12:11:02 -netdev vde,id=vlan1,sock=\"$QEMU_VDE_SOCKET_1\""''}
           return flags
 
 
@@ -110,8 +124,45 @@ let
       def create_machine_named(name):
           return create_machine({**default_flags, "name": name})
 
+      class Tpm:
+            def __init__(self):
+                self.start()
+
+            def start(self):
+                self.proc = subprocess.Popen(["${pkgs.swtpm}/bin/swtpm",
+                    "socket",
+                    "--tpmstate", f"dir={tpm_folder}/swtpm",
+                    "--ctrl", f"type=unixio,path={tpm_folder}/swtpm-sock",
+                    "--tpm2"
+                    ])
+
+                # Check whether starting swtpm failed
+                try:
+                    exit_code = self.proc.wait(timeout=0.2)
+                    if exit_code is not None and exit_code != 0:
+                        raise Exception("failed to start swtpm")
+                except subprocess.TimeoutExpired:
+                    pass
+
+            """Check whether the swtpm process exited due to an error"""
+            def check(self):
+                exit_code = self.proc.poll()
+                if exit_code is not None and exit_code != 0:
+                    raise Exception("swtpm process died")
+
+
+      os.mkdir(f"{tpm_folder}/swtpm")
+      tpm = Tpm()
+      tpm.check()
+
+      start_all()
+      ${optionalString clevisTest ''
+      tang.wait_for_unit("sockets.target")
+      tang.wait_for_unit("network-online.target")
+      machine.wait_for_unit("network-online.target")
+      ''}
+      machine.wait_for_unit("multi-user.target")
 
-      machine.start()
 
       with subtest("Assert readiness of login prompt"):
           machine.succeed("echo hello")
@@ -127,13 +178,23 @@ let
           machine.copy_from_host(
               "${ makeConfig {
                     inherit bootLoader grubDevice grubIdentifier
-                            grubUseEfi extraConfig;
+                            grubUseEfi extraConfig clevisTest;
                   }
               }",
               "/mnt/etc/nixos/configuration.nix",
           )
           machine.copy_from_host("${pkgs.writeText "secret" "secret"}", "/mnt/etc/nixos/secret")
 
+      ${optionalString clevisTest ''
+        with subtest("Create the Clevis secret with Tang"):
+             machine.wait_for_unit("network-online.target")
+             machine.succeed('echo -n password | clevis encrypt sss \'{"t": 2, "pins": {"tpm2": {}, "tang": {"url": "http://192.168.1.2"}}}\' -y > /mnt/etc/nixos/clevis-secret.jwe')''}
+
+      ${optionalString clevisFallbackTest ''
+        with subtest("Shutdown Tang to check fallback to interactive prompt"):
+            tang.shutdown()
+      ''}
+
       with subtest("Perform the installation"):
           machine.succeed("nixos-install < /dev/null >&2")
 
@@ -200,7 +261,7 @@ let
           machine.copy_from_host_via_shell(
               "${ makeConfig {
                     inherit bootLoader grubDevice grubIdentifier
-                            grubUseEfi extraConfig;
+                            grubUseEfi extraConfig clevisTest;
                     forceGrubReinstallCount = 1;
                   }
               }",
@@ -229,7 +290,7 @@ let
       machine.copy_from_host_via_shell(
           "${ makeConfig {
                 inherit bootLoader grubDevice grubIdentifier
-                grubUseEfi extraConfig;
+                grubUseEfi extraConfig clevisTest;
                 forceGrubReinstallCount = 2;
               }
           }",
@@ -303,7 +364,7 @@ let
         """)
         machine.copy_from_host_via_shell(
           "${makeConfig {
-               inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig;
+               inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest;
                forceGrubReinstallCount = 1;
                flake = true;
             }}",
@@ -379,6 +440,8 @@ let
     , enableOCR ? false, meta ? {}
     , testSpecialisationConfig ? false
     , testFlakeSwitch ? false
+    , clevisTest ? false
+    , clevisFallbackTest ? false
     }:
     makeTest {
       inherit enableOCR;
@@ -416,13 +479,13 @@ let
           virtualisation.rootDevice = "/dev/vdb";
           virtualisation.bootLoaderDevice = "/dev/vda";
           virtualisation.qemu.diskInterface = "virtio";
-
-          # We don't want to have any networking in the guest whatsoever.
-          # Also, if any vlans are enabled, the guest will reboot
-          # (with a different configuration for legacy reasons),
-          # and spend 5 minutes waiting for the vlan interface to show up
-          # (which will never happen).
-          virtualisation.vlans = [];
+          virtualisation.qemu.options = mkIf (clevisTest) [
+            "-chardev socket,id=chrtpm,path=$NIX_BUILD_TOP/swtpm-sock"
+            "-tpmdev emulator,id=tpm0,chardev=chrtpm"
+            "-device tpm-tis,tpmdev=tpm0"
+          ];
+          # We don't want to have any networking in the guest apart from the clevis tests.
+          virtualisation.vlans = mkIf (!clevisTest) [];
 
           boot.loader.systemd-boot.enable = mkIf (bootLoader == "systemd-boot") true;
 
@@ -471,7 +534,7 @@ let
           in [
             (pkgs.grub2.override { inherit zfsSupport; })
             (pkgs.grub2_efi.override { inherit zfsSupport; })
-          ]);
+          ]) ++ optionals clevisTest [ pkgs.klibc ];
 
           nix.settings = {
             substituters = mkForce [];
@@ -480,12 +543,21 @@ let
           };
         };
 
+      } // optionalAttrs clevisTest {
+        tang = {
+          services.tang = {
+            enable = true;
+            listenStream = [ "80" ];
+            ipAddressAllow = [ "192.168.1.0/24" ];
+          };
+          networking.firewall.allowedTCPPorts = [ 80 ];
+        };
       };
 
       testScript = testScriptFun {
         inherit bootLoader createPartitions postInstallCommands preBootCommands postBootCommands
                 grubDevice grubIdentifier grubUseEfi extraConfig
-                testSpecialisationConfig testFlakeSwitch;
+                testSpecialisationConfig testFlakeSwitch clevisTest clevisFallbackTest;
       };
     };
 
@@ -586,6 +658,145 @@ let
       zfs = super.zfs.overrideAttrs(_: {meta.platforms = [];});}
     )];
   };
+
+ mkClevisBcachefsTest = { fallback ? false }: makeInstallerTest "clevis-bcachefs${optionalString fallback "-fallback"}" {
+    clevisTest = true;
+    clevisFallbackTest = fallback;
+    enableOCR = fallback;
+    extraInstallerConfig = {
+      imports = [ no-zfs-module ];
+      boot.supportedFilesystems = [ "bcachefs" ];
+      environment.systemPackages = with pkgs; [ keyutils clevis ];
+    };
+    createPartitions = ''
+      machine.succeed(
+        "flock /dev/vda parted --script /dev/vda -- mklabel msdos"
+        + " mkpart primary ext2 1M 100MB"
+        + " mkpart primary linux-swap 100M 1024M"
+        + " mkpart primary 1024M -1s",
+        "udevadm settle",
+        "mkswap /dev/vda2 -L swap",
+        "swapon -L swap",
+        "keyctl link @u @s",
+        "echo -n password | mkfs.bcachefs -L root --encrypted /dev/vda3",
+        "echo -n password | bcachefs unlock /dev/vda3",
+        "echo -n password | mount -t bcachefs /dev/vda3 /mnt",
+        "mkfs.ext3 -L boot /dev/vda1",
+        "mkdir -p /mnt/boot",
+        "mount LABEL=boot /mnt/boot",
+        "udevadm settle")
+    '';
+    extraConfig = ''
+      boot.initrd.clevis.devices."/dev/vda3".secretFile = "/etc/nixos/clevis-secret.jwe";
+
+      # We override what nixos-generate-config has generated because we do
+      # not know the UUID in advance.
+      fileSystems."/" = lib.mkForce { device = "/dev/vda3"; fsType = "bcachefs"; };
+    '';
+    preBootCommands = ''
+      tpm = Tpm()
+      tpm.check()
+    '' + optionalString fallback ''
+      machine.start()
+      machine.wait_for_text("enter passphrase for")
+      machine.send_chars("password\n")
+    '';
+  };
+
+  mkClevisLuksTest = { fallback ? false }: makeInstallerTest "clevis-luks${optionalString fallback "-fallback"}" {
+    clevisTest = true;
+    clevisFallbackTest = fallback;
+    enableOCR = fallback;
+    extraInstallerConfig = {
+      environment.systemPackages = with pkgs; [ clevis ];
+    };
+    createPartitions = ''
+      machine.succeed(
+        "flock /dev/vda parted --script /dev/vda -- mklabel msdos"
+        + " mkpart primary ext2 1M 100MB"
+        + " mkpart primary linux-swap 100M 1024M"
+        + " mkpart primary 1024M -1s",
+        "udevadm settle",
+        "mkswap /dev/vda2 -L swap",
+        "swapon -L swap",
+        "modprobe dm_mod dm_crypt",
+        "echo -n password | cryptsetup luksFormat -q /dev/vda3 -",
+        "echo -n password | cryptsetup luksOpen --key-file - /dev/vda3 crypt-root",
+        "mkfs.ext3 -L nixos /dev/mapper/crypt-root",
+        "mount LABEL=nixos /mnt",
+        "mkfs.ext3 -L boot /dev/vda1",
+        "mkdir -p /mnt/boot",
+        "mount LABEL=boot /mnt/boot",
+        "udevadm settle")
+    '';
+    extraConfig = ''
+      boot.initrd.clevis.devices."crypt-root".secretFile = "/etc/nixos/clevis-secret.jwe";
+    '';
+    preBootCommands = ''
+      tpm = Tpm()
+      tpm.check()
+    '' + optionalString fallback ''
+      machine.start()
+      ${if systemdStage1 then ''
+      machine.wait_for_text("Please enter")
+      '' else ''
+      machine.wait_for_text("Passphrase for")
+      ''}
+      machine.send_chars("password\n")
+    '';
+  };
+
+  mkClevisZfsTest = { fallback ? false }: makeInstallerTest "clevis-zfs${optionalString fallback "-fallback"}" {
+    clevisTest = true;
+    clevisFallbackTest = fallback;
+    enableOCR = fallback;
+    extraInstallerConfig = {
+      boot.supportedFilesystems = [ "zfs" ];
+      environment.systemPackages = with pkgs; [ clevis ];
+    };
+    createPartitions = ''
+      machine.succeed(
+        "flock /dev/vda parted --script /dev/vda -- mklabel msdos"
+        + " mkpart primary ext2 1M 100MB"
+        + " mkpart primary linux-swap 100M 1024M"
+        + " mkpart primary 1024M -1s",
+        "udevadm settle",
+        "mkswap /dev/vda2 -L swap",
+        "swapon -L swap",
+        "zpool create -O mountpoint=legacy rpool /dev/vda3",
+        "echo -n password | zfs create"
+        + " -o encryption=aes-256-gcm -o keyformat=passphrase rpool/root",
+        "mount -t zfs rpool/root /mnt",
+        "mkfs.ext3 -L boot /dev/vda1",
+        "mkdir -p /mnt/boot",
+        "mount LABEL=boot /mnt/boot",
+        "udevadm settle")
+    '';
+    extraConfig = ''
+      boot.initrd.clevis.devices."rpool/root".secretFile = "/etc/nixos/clevis-secret.jwe";
+      boot.zfs.requestEncryptionCredentials = true;
+
+
+      # Using by-uuid overrides the default of by-id, and is unique
+      # to the qemu disks, as they don't produce by-id paths for
+      # some reason.
+      boot.zfs.devNodes = "/dev/disk/by-uuid/";
+      networking.hostId = "00000000";
+    '';
+    preBootCommands = ''
+      tpm = Tpm()
+      tpm.check()
+    '' + optionalString fallback ''
+      machine.start()
+      ${if systemdStage1 then ''
+      machine.wait_for_text("Enter key for rpool/root")
+      '' else ''
+      machine.wait_for_text("Key load error")
+      ''}
+      machine.send_chars("password\n")
+    '';
+  };
+
 in {
 
   # !!! `parted mkpart' seems to silently create overlapping partitions.
@@ -1175,6 +1386,13 @@ in {
       )
     '';
   };
+} // {
+  clevisBcachefs = mkClevisBcachefsTest { };
+  clevisBcachefsFallback = mkClevisBcachefsTest { fallback = true; };
+  clevisLuks = mkClevisLuksTest { };
+  clevisLuksFallback = mkClevisLuksTest { fallback = true; };
+  clevisZfs = mkClevisZfsTest { };
+  clevisZfsFallback = mkClevisZfsTest { fallback = true; };
 } // optionalAttrs systemdStage1 {
   stratisRoot = makeInstallerTest "stratisRoot" {
     createPartitions = ''
diff --git a/nixpkgs/nixos/tests/teleport.nix b/nixpkgs/nixos/tests/teleport.nix
index cdf762b12844..d68917c6c7ac 100644
--- a/nixpkgs/nixos/tests/teleport.nix
+++ b/nixpkgs/nixos/tests/teleport.nix
@@ -9,7 +9,8 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
 let
   packages = with pkgs; {
     "default" = teleport;
-    "11" = teleport_11;
+    "12" = teleport_12;
+    "13" = teleport_13;
   };
 
   minimal = package: {
diff --git a/nixpkgs/nixos/tests/terminal-emulators.nix b/nixpkgs/nixos/tests/terminal-emulators.nix
index 2306c03c18e7..efaac03e1983 100644
--- a/nixpkgs/nixos/tests/terminal-emulators.nix
+++ b/nixpkgs/nixos/tests/terminal-emulators.nix
@@ -23,9 +23,8 @@ with pkgs.lib;
 let tests = {
       alacritty.pkg = p: p.alacritty;
 
-      # times out after spending many hours
-      #contour.pkg = p: p.contour;
-      #contour.cmd = "contour $command";
+      contour.pkg = p: p.contour;
+      contour.cmd = "contour early-exit-threshold 0 execute $command";
 
       cool-retro-term.pkg = p: p.cool-retro-term;
       cool-retro-term.colourTest = false; # broken by gloss effect
diff --git a/nixpkgs/nixos/tests/tsm-client-gui.nix b/nixpkgs/nixos/tests/tsm-client-gui.nix
index e11501da53d0..c9632546db6e 100644
--- a/nixpkgs/nixos/tests/tsm-client-gui.nix
+++ b/nixpkgs/nixos/tests/tsm-client-gui.nix
@@ -18,9 +18,9 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
       defaultServername = "testserver";
       servers.testserver = {
         # 192.0.0.8 is a "dummy address" according to RFC 7600
-        server = "192.0.0.8";
-        node = "SOME-NODE";
-        passwdDir = "/tmp";
+        tcpserveraddress = "192.0.0.8";
+        nodename = "SOME-NODE";
+        passworddir = "/tmp";
       };
     };
   };
diff --git a/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix b/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix
index c36de2cb878d..dd7604939f0f 100644
--- a/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix
+++ b/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix
@@ -1,18 +1,53 @@
-{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
-, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
-, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
-, libsepol, libsysprof-capture, libthai, libxkbcommon, lv2, pcre, pkg-config
-, python3, sqlite, stdenv }:
-
+{ alsa-lib
+, at-spi2-core
+, cmake
+, curl
+, dbus
+, libepoxy
+, fetchFromGitHub
+, freeglut
+, freetype
+, gtk3
+, lib
+, libGL
+, libXcursor
+, libXdmcp
+, libXext
+, libXinerama
+, libXrandr
+, libXtst
+, libdatrie
+, libjack2
+, libpsl
+, libselinux
+, libsepol
+, libsysprof-capture
+, libthai
+, libuuid
+, libxkbcommon
+, lv2
+, pcre
+, pcre2
+, pkg-config
+, python3
+, sqlite
+, gcc11Stdenv
+, webkitgtk
+}:
+let
+  # JUCE version in submodules is incompatible with GCC12
+  # See here: https://forum.juce.com/t/build-fails-on-fedora-wrong-c-version/50902/2
+  stdenv = gcc11Stdenv;
+in
 stdenv.mkDerivation rec {
   pname = "CHOWTapeModel";
-  version = "2.10.0";
+  version = "2.11.4";
 
   src = fetchFromGitHub {
     owner = "jatinchowdhury18";
     repo = "AnalogTapeModel";
     rev = "v${version}";
-    sha256 = "sha256-iuT7OBRBtMkjcTHayCcne1mNqkcxzKnEYl62n65V7Z4=";
+    sha256 = "sha256-WriHi68Y6hAsrwE+74JtVlAKUR9lfTczj6UK9h2FOGM=";
     fetchSubmodules = true;
   };
 
@@ -41,36 +76,51 @@ stdenv.mkDerivation rec {
     libsepol
     libsysprof-capture
     libthai
+    libuuid
     libxkbcommon
     lv2
     pcre
+    pcre2
     python3
     sqlite
-    gcc-unwrapped
+    webkitgtk
   ];
 
+  # Link-time-optimization fails without these
   cmakeFlags = [
-    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
-    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
+    "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
+    "-DCMAKE_NM=${stdenv.cc.cc}/bin/gcc-nm"
   ];
 
+  cmakeBuildType = "Release";
+
   postPatch = "cd Plugin";
 
   installPhase = ''
-    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/CHOWTapeModel/
-    cd CHOWTapeModel_artefacts/Release
-    cp libCHOWTapeModel_SharedCode.a  $out/lib
+    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/lib/clap $out/bin $out/share/doc/CHOWTapeModel/
+    cd CHOWTapeModel_artefacts/${cmakeBuildType}
     cp -r LV2/CHOWTapeModel.lv2 $out/lib/lv2
     cp -r VST3/CHOWTapeModel.vst3 $out/lib/vst3
+    cp -r CLAP/CHOWTapeModel.clap $out/lib/clap
     cp Standalone/CHOWTapeModel  $out/bin
     cp ../../../../Manual/ChowTapeManual.pdf $out/share/doc/CHOWTapeModel/
   '';
 
+  # JUCE dlopens these, make sure they are in rpath
+  # Otherwise, segfault will happen
+  NIX_LDFLAGS = (toString [
+    "-lX11"
+    "-lXext"
+    "-lXcursor"
+    "-lXinerama"
+    "-lXrandr"
+  ]);
+
   meta = with lib; {
     homepage = "https://github.com/jatinchowdhury18/AnalogTapeModel";
     description =
-      "Physical modelling signal processing for analog tape recording. LV2, VST3 and standalone";
+      "Physical modelling signal processing for analog tape recording. LV2, VST3, CLAP, and standalone";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ magnetophon ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix b/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
index e74b660b1c54..de4f8b3db98a 100644
--- a/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
+++ b/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "alsa-scarlett-gui";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "geoffreybennett";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wzBOPTs8PTHzu5RpKwKhx552E7QnDx2Zn4OFaes8Q2I=";
+    sha256 = "sha256-lIwDNyzuvolDhTVCslCtUfbsC/TxKtxQF97h0zYxp9k=";
   };
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
diff --git a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
index f2627d65ff56..2c08477d07a0 100644
--- a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
@@ -41,7 +41,7 @@ assert gtk2Support || gtk3Support;
 let
   inherit (lib) optionals;
 
-  version = "1.9.5";
+  version = "1.9.6";
 in clangStdenv.mkDerivation {
   pname = "deadbeef";
   inherit version;
@@ -51,7 +51,7 @@ in clangStdenv.mkDerivation {
     repo = "deadbeef";
     fetchSubmodules = true;
     rev = version;
-    hash = "sha256-dSSIaJxHYUVOmuJN2t5UZSC3ZP5732/qVXSZAuWYr0Q=";
+    hash = "sha256-Q6hL4fOFPHn26ZqvrebgTMTgQZrhbXCEhM4ZFzNeyJE=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/eartag/default.nix b/nixpkgs/pkgs/applications/audio/eartag/default.nix
index f6ae96a5ec4a..02c1b7e8bf22 100644
--- a/nixpkgs/pkgs/applications/audio/eartag/default.nix
+++ b/nixpkgs/pkgs/applications/audio/eartag/default.nix
@@ -10,6 +10,7 @@
 , glib
 , gobject-introspection
 , desktop-file-utils
+, appstream
 , appstream-glib
 , gtk4
 , librsvg
@@ -18,7 +19,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "eartag";
-  version = "0.4.3";
+  version = "0.5.1";
   format = "other";
 
   src = fetchFromGitLab {
@@ -26,7 +27,7 @@ python3Packages.buildPythonApplication rec {
     owner = "World";
     repo = pname;
     rev = version;
-    hash = "sha256-0nkaKLkUnJiNTs7/qe+c4Lkst/ItHD1RKAERCo2O2ms=";
+    hash = "sha256-tHBEz4sZsWOxDkdUd/3zMta8vOhuzv4G01dtjKBX/D0=";
   };
 
   postPatch = ''
@@ -41,6 +42,7 @@ python3Packages.buildPythonApplication rec {
     ninja
     glib
     desktop-file-utils
+    appstream
     appstream-glib
     pkg-config
     gettext
diff --git a/nixpkgs/pkgs/applications/audio/gnome-podcasts/Cargo.lock b/nixpkgs/pkgs/applications/audio/gnome-podcasts/Cargo.lock
index ee4b4ac20a83..622534ee0f83 100644
--- a/nixpkgs/pkgs/applications/audio/gnome-podcasts/Cargo.lock
+++ b/nixpkgs/pkgs/applications/audio/gnome-podcasts/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.2"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
 dependencies = [
  "memchr",
 ]
@@ -32,7 +32,7 @@ version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170"
 dependencies = [
- "html5ever 0.26.0",
+ "html5ever",
  "maplit",
  "once_cell",
  "tendril",
@@ -56,15 +56,15 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "atom_syndication"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca96cb38e3d8236f1573a84bbc55e130bd1ae07df770e36d0cf221ea7a50e36c"
+checksum = "571832dcff775e26562e8e6930cd483de5587301d40d3a3b85d532b6383e15a7"
 dependencies = [
  "chrono",
  "derive_builder",
@@ -75,9 +75,9 @@ dependencies = [
 
 [[package]]
 name = "atomic_refcell"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31"
+checksum = "112ef6b3f6cb3cb6fc5b6b494ef7a848492cff1ab0ef4de10b0f7d572861c905"
 
 [[package]]
 name = "autocfg"
@@ -87,9 +87,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "backtrace"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
@@ -102,9 +102,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.2"
+version = "0.21.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53"
 
 [[package]]
 name = "bitflags"
@@ -114,9 +114,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
+name = "block"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "bumpalo"
@@ -132,13 +138,13 @@ checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
 
 [[package]]
 name = "cairo-rs"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab3603c4028a5e368d09b51c8b624b9a46edcd7c3778284077a6125af73c9f0a"
+checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "cairo-sys-rs",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
  "thiserror",
@@ -146,26 +152,29 @@ dependencies = [
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1"
+checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff"
 dependencies = [
- "glib-sys 0.17.10",
+ "glib-sys 0.18.1",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.3"
+version = "0.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c"
+checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -179,9 +188,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "95ed24df0632f708f5f6d8082675bef2596f7084dee3dd55f632290bf35bfe0f"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -189,7 +198,7 @@ dependencies = [
  "num-traits",
  "time 0.1.45",
  "wasm-bindgen",
- "winapi",
+ "windows-targets",
 ]
 
 [[package]]
@@ -209,59 +218,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "ctor"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
-dependencies = [
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "darling"
 version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -307,6 +263,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "deranged"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+
+[[package]]
 name = "derive_builder"
 version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -339,27 +301,27 @@ dependencies = [
 
 [[package]]
 name = "diesel"
-version = "2.1.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7a532c1f99a0f596f6960a60d1e119e91582b24b39e2d83a190e61262c3ef0c"
+checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88"
 dependencies = [
  "chrono",
  "diesel_derives",
  "libsqlite3-sys",
  "r2d2",
- "time 0.3.22",
+ "time 0.3.28",
 ]
 
 [[package]]
 name = "diesel_derives"
-version = "2.1.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74398b79d81e52e130d991afeed9c86034bb1b7735f46d2f5bf7deb261d80303"
+checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554"
 dependencies = [
  "diesel_table_macro_syntax",
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -379,7 +341,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
 dependencies = [
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -399,15 +361,15 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.32"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
  "cfg-if",
 ]
@@ -427,15 +389,15 @@ dependencies = [
 
 [[package]]
 name = "equivalent"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.1"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
 dependencies = [
  "errno-dragonfly",
  "libc",
@@ -454,12 +416,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "1.9.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
+checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
 
 [[package]]
 name = "field-offset"
@@ -579,7 +538,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -614,58 +573,56 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "695d6bc846438c5708b07007537b9274d883373dd30858ca881d7d71b5540717"
+checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3"
 dependencies = [
- "bitflags 1.3.2",
  "gdk-pixbuf-sys",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
 ]
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
 dependencies = [
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "gdk4"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3abf96408a26e3eddf881a7f893a1e111767137136e347745e8ea6ed12731ff"
+checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c"
 dependencies = [
- "bitflags 1.3.2",
  "cairo-rs",
  "gdk-pixbuf",
  "gdk4-sys",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "pango",
 ]
 
 [[package]]
 name = "gdk4-sys"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bc92aa1608c089c49393d014c38ac0390d01e4841e1fedaa75dbcef77aaed64"
+checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "pango-sys",
  "pkg-config",
@@ -674,17 +631,6 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
@@ -696,8 +642,9 @@ dependencies = [
 
 [[package]]
 name = "gettext-rs"
-version = "0.4.2"
-source = "git+https://github.com/danigm/gettext-rs?branch=no-gettext#61938b9f5f1d3bdc31f9839f53fabe5ccf136a78"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
 dependencies = [
  "gettext-sys",
  "locale_config",
@@ -705,31 +652,32 @@ dependencies = [
 
 [[package]]
 name = "gettext-sys"
-version = "0.19.9"
-source = "git+https://github.com/danigm/gettext-rs?branch=no-gettext#61938b9f5f1d3bdc31f9839f53fabe5ccf136a78"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
 dependencies = [
  "cc",
+ "temp-dir",
 ]
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
 
 [[package]]
 name = "gio"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6973e92937cf98689b6a054a9e56c657ed4ff76de925e36fc331a15f0c5d30a"
+checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524"
 dependencies = [
- "bitflags 1.3.2",
  "futures-channel",
  "futures-core",
  "futures-io",
  "futures-util",
  "gio-sys",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
  "pin-project-lite",
@@ -739,12 +687,12 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ccf87c30a12c469b6d958950f6a9c09f2be20b7773f7e70d20b867fdf2628c3"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
  "winapi",
@@ -772,20 +720,20 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3fad45ba8d4d2cea612b432717e834f48031cd8853c8aaf43b2c79fec8d144b"
+checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
  "futures-task",
  "futures-util",
  "gio-sys",
- "glib-macros 0.17.10",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-macros 0.18.0",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "memchr",
  "once_cell",
@@ -810,17 +758,16 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26"
+checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0"
 dependencies = [
- "anyhow",
  "heck",
  "proc-macro-crate",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -835,9 +782,9 @@ dependencies = [
 
 [[package]]
 name = "glib-sys"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
 dependencies = [
  "libc",
  "system-deps",
@@ -862,33 +809,33 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
 dependencies = [
- "glib-sys 0.17.10",
+ "glib-sys 0.18.1",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "graphene-rs"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "def4bb01265b59ed548b05455040d272d989b3012c42d4c1bbd39083cb9b40d9"
+checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401"
 dependencies = [
- "glib 0.17.10",
+ "glib 0.18.1",
  "graphene-sys",
  "libc",
 ]
 
 [[package]]
 name = "graphene-sys"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1856fc817e6a6675e36cea0bd9a3afe296f5d9709d1e2d3182803ac77f0ab21d"
+checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59"
 dependencies = [
- "glib-sys 0.17.10",
+ "glib-sys 0.18.1",
  "libc",
  "pkg-config",
  "system-deps",
@@ -896,14 +843,13 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f01ef44fa7cac15e2da9978529383e6bee03e570ba5bf7036b4c10a15cc3a3c"
+checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5"
 dependencies = [
- "bitflags 1.3.2",
  "cairo-rs",
  "gdk4",
- "glib 0.17.10",
+ "glib 0.18.1",
  "graphene-rs",
  "gsk4-sys",
  "libc",
@@ -912,14 +858,14 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c07a84fb4dcf1323d29435aa85e2f5f58bef564342bef06775ec7bd0da1f01b0"
+checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "graphene-sys",
  "libc",
  "pango-sys",
@@ -928,22 +874,21 @@ dependencies = [
 
 [[package]]
 name = "gstreamer"
-version = "0.20.6"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3113531138b4e41968e33fd003a0d1a635ef6e0cbc309dd5004123000863ac54"
+checksum = "f8cdb86791dc39a5443f7d08cf3e7ae9c88a94991aba620d177cb5804838201f"
 dependencies = [
- "bitflags 1.3.2",
  "cfg-if",
  "futures-channel",
  "futures-core",
  "futures-util",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer-sys",
+ "itertools",
  "libc",
  "muldiv",
  "num-integer",
  "num-rational",
- "once_cell",
  "option-operations",
  "paste",
  "pretty-hex",
@@ -953,14 +898,13 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base"
-version = "0.20.5"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b8ff5dfbf7bcaf1466a385b836bad0d8da25759f121458727fdda1f771c69b3"
+checksum = "0fe38a6d5c1e516ce3fd6069e972a540d315448ed69fdadad739e6c6c6eb2a01"
 dependencies = [
  "atomic_refcell",
- "bitflags 1.3.2",
  "cfg-if",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer",
  "gstreamer-base-sys",
  "libc",
@@ -968,12 +912,12 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26114ed96f6668380f5a1554128159e98e06c3a7a8460f216d7cd6dce28f928c"
+checksum = "88b9c029583ed61fa5258076a42df91732dc7f5582044ea7ee66a721641e6af4"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gstreamer-sys",
  "libc",
  "system-deps",
@@ -981,27 +925,25 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-player"
-version = "0.20.5"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec5e04059f117b82ca64c40901610ca9ac1734383437c9fb69afba26c9ebf5a3"
+checksum = "e68dc9772932f6133a9517742918b13ab5414db1f47e19daebc3027a1c3d20d2"
 dependencies = [
- "bitflags 1.3.2",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer",
  "gstreamer-player-sys",
  "gstreamer-video",
  "libc",
- "once_cell",
 ]
 
 [[package]]
 name = "gstreamer-player-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15321aaaf3bb247b4af3e09456a62dc17f030515d6328377a34081d9ed5803c0"
+checksum = "f5ef4d00b43d0aa94e9a518e6ef4a4c504b4b855304a0a5f4ed1493d5e5ca66c"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gstreamer-sys",
  "gstreamer-video-sys",
  "libc",
@@ -1010,41 +952,39 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e56fe047adef7d47dbafa8bc1340fddb53c325e16574763063702fc94b5786d2"
+checksum = "a70e3a99118bcd1221f8a62d7a905bae5e5cc2cda678bb46bf3cd36e0f899d33"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "gstreamer-video"
-version = "0.20.4"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dce97769effde2d779dc4f7037b37106457b74e53f2a711bddc90b30ffeb7e06"
+checksum = "0db8adfc000cd58f8ece0fe6b4beb79e19e4a6135cfb81138fdb016b603f7d60"
 dependencies = [
- "bitflags 1.3.2",
  "cfg-if",
  "futures-channel",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer",
  "gstreamer-base",
  "gstreamer-video-sys",
  "libc",
- "once_cell",
 ]
 
 [[package]]
 name = "gstreamer-video-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66ddb6112d438aac0004d2db6053a572f92b1c5e0e9d6ff6c71d9245f7f73e46"
+checksum = "e0284250a09fa824b21df1a21967eef4a5d85b5e0c1e335ed2ba9b9be1424dae"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gstreamer-base-sys",
  "gstreamer-sys",
  "libc",
@@ -1053,32 +993,30 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.6.6"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b28a32a04cd75cef14a0983f8b0c669e0fe152a0a7725accdeb594e2c764c88b"
+checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c"
 dependencies = [
- "bitflags 1.3.2",
  "cairo-rs",
  "field-offset",
  "futures-channel",
  "gdk-pixbuf",
  "gdk4",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "graphene-rs",
  "gsk4",
  "gtk4-macros",
  "gtk4-sys",
  "libc",
- "once_cell",
  "pango",
 ]
 
 [[package]]
 name = "gtk4-macros"
-version = "0.6.6"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a4d6b61570f76d3ee542d984da443b1cd69b6105264c61afec3abed08c2500f"
+checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
 dependencies = [
  "anyhow",
  "proc-macro-crate",
@@ -1090,16 +1028,16 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f8283f707b07e019e76c7f2934bdd4180c277e08aa93f4c0d8dd07b7a34e22f"
+checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
  "gdk4-sys",
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "graphene-sys",
  "gsk4-sys",
  "libc",
@@ -1109,9 +1047,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.20"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
 dependencies = [
  "bytes",
  "fnv",
@@ -1146,18 +1084,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-
-[[package]]
-name = "home"
-version = "0.5.5"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
-dependencies = [
- "windows-sys",
-]
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
 [[package]]
 name = "html2text"
@@ -1165,25 +1094,11 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74cda84f06c1cc83476f79ae8e2e892b626bdadafcb227baec54c918cadc18a0"
 dependencies = [
- "html5ever 0.26.0",
- "markup5ever 0.11.0",
+ "html5ever",
+ "markup5ever",
  "tendril",
  "unicode-width",
- "xml5ever 0.17.0",
-]
-
-[[package]]
-name = "html5ever"
-version = "0.25.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148"
-dependencies = [
- "log",
- "mac",
- "markup5ever 0.10.1",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "xml5ever",
 ]
 
 [[package]]
@@ -1194,7 +1109,7 @@ checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
 dependencies = [
  "log",
  "mac",
- "markup5ever 0.11.0",
+ "markup5ever",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -1230,9 +1145,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "humansize"
@@ -1263,7 +1178,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2",
+ "socket2 0.4.9",
  "tokio",
  "tower-service",
  "tracing",
@@ -1343,26 +1258,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys",
-]
-
-[[package]]
 name = "ipnet"
 version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1379,12 +1274,12 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.2",
+ "rustix",
  "windows-sys",
 ]
 
@@ -1399,10 +1294,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
-version = "1.0.8"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "js-sys"
@@ -1421,15 +1325,14 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libadwaita"
-version = "0.4.4"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ab9c0843f9f23ff25634df2743690c3a1faffe0a190e60c490878517eb81abf"
+checksum = "06444f4ca05a60693da6e9e2b591bd40a298e65a118a8d5e830771718b3e0253"
 dependencies = [
- "bitflags 1.3.2",
  "gdk-pixbuf",
  "gdk4",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gtk4",
  "libadwaita-sys",
  "libc",
@@ -1438,14 +1341,14 @@ dependencies = [
 
 [[package]]
 name = "libadwaita-sys"
-version = "0.4.4"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4231cb2499a9f0c4cdfa4885414b33e39901ddcac61150bc0bb4ff8a57ede404"
+checksum = "021cfe3d1fcfa82411765a791f7e9b32f35dd98ce88d2e3fa10e7320f5cc8ce7"
 dependencies = [
  "gdk4-sys",
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gtk4-sys",
  "libc",
  "pango-sys",
@@ -1478,24 +1381,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
+name = "linkify"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+checksum = "f1dfa36d52c581e9ec783a7ce2a5e0143da6237be5811a0b3153fedfdbe9f780"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
 
 [[package]]
 name = "locale_config"
-version = "0.2.3"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73ac19ebe45489e5d53b4346d8b90bb3dd03275c5fdf2ce22a982516d86b535c"
+checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
 dependencies = [
  "lazy_static",
+ "objc",
+ "objc-foundation",
  "regex",
  "winapi",
 ]
@@ -1512,9 +1420,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "mac"
@@ -1523,24 +1431,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 
 [[package]]
-name = "maplit"
-version = "1.0.2"
+name = "malloc_buf"
+version = "0.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
 
 [[package]]
-name = "markup5ever"
-version = "0.10.1"
+name = "maplit"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
-dependencies = [
- "log",
- "phf 0.8.0",
- "phf_codegen 0.8.0",
- "string_cache",
- "string_cache_codegen",
- "tendril",
-]
+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
 
 [[package]]
 name = "markup5ever"
@@ -1549,8 +1452,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 dependencies = [
  "log",
- "phf 0.10.1",
- "phf_codegen 0.10.0",
+ "phf",
+ "phf_codegen",
  "string_cache",
  "string_cache_codegen",
  "tendril",
@@ -1558,21 +1461,21 @@ dependencies = [
 
 [[package]]
 name = "markup5ever_rcdom"
-version = "0.1.0"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b"
+checksum = "b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2"
 dependencies = [
- "html5ever 0.25.2",
- "markup5ever 0.10.1",
+ "html5ever",
+ "markup5ever",
  "tendril",
- "xml5ever 0.16.2",
+ "xml5ever",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
 
 [[package]]
 name = "memoffset"
@@ -1709,9 +1612,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
 dependencies = [
  "autocfg",
 ]
@@ -1727,10 +1630,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
 name = "object"
-version = "0.31.1"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
 dependencies = [
  "memchr",
 ]
@@ -1754,11 +1686,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.55"
+version = "0.10.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
+checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1775,7 +1707,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1786,9 +1718,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.90"
+version = "0.9.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
+checksum = "db7e971c2c2bba161b2d2fdf37080177eff520b3bc044787c7f1f5f9e78d869b"
 dependencies = [
  "cc",
  "libc",
@@ -1806,23 +1738,13 @@ dependencies = [
 ]
 
 [[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "pango"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35be456fc620e61f62dff7ff70fbd54dcbaf0a4b920c0f16de1107c47d921d48"
+checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1"
 dependencies = [
- "bitflags 1.3.2",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
  "pango-sys",
@@ -1830,12 +1752,12 @@ dependencies = [
 
 [[package]]
 name = "pango-sys"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3da69f9f3850b0d8990d462f8c709561975e95f689c1cdf0fecdebde78b35195"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
 ]
@@ -1865,9 +1787,9 @@ dependencies = [
 
 [[package]]
 name = "paste"
-version = "1.0.13"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4b27ab7be369122c218afc2079489cdcb4b517c0a3fc386ff11e1fedfcc2b35"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "pathdiff"
@@ -1883,30 +1805,11 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
 
 [[package]]
 name = "phf"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
-dependencies = [
- "phf_shared 0.8.0",
-]
-
-[[package]]
-name = "phf"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
 dependencies = [
- "phf_shared 0.10.0",
-]
-
-[[package]]
-name = "phf_codegen"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
-dependencies = [
- "phf_generator 0.8.0",
- "phf_shared 0.8.0",
+ "phf_shared",
 ]
 
 [[package]]
@@ -1915,18 +1818,8 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
 dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
-dependencies = [
- "phf_shared 0.8.0",
- "rand 0.7.3",
+ "phf_generator",
+ "phf_shared",
 ]
 
 [[package]]
@@ -1935,21 +1828,12 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
 dependencies = [
- "phf_shared 0.10.0",
+ "phf_shared",
  "rand 0.8.5",
 ]
 
 [[package]]
 name = "phf_shared"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "phf_shared"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
@@ -1959,9 +1843,9 @@ dependencies = [
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.10"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -1982,25 +1866,20 @@ dependencies = [
  "ammonia",
  "anyhow",
  "base64",
+ "bytes",
  "chrono",
- "crossbeam-channel",
  "derive_builder",
  "diesel",
  "diesel_migrations",
  "futures",
  "glob",
  "http",
- "hyper",
- "hyper-tls",
  "log",
  "maplit",
  "mime_guess",
- "native-tls",
- "num_cpus",
  "once_cell",
  "pretty_assertions",
  "rand 0.8.5",
- "rayon",
  "reqwest",
  "rfc822_sanitizer",
  "rss",
@@ -2018,7 +1897,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "chrono",
- "crossbeam-channel",
  "fragile",
  "gettext-rs",
  "glob",
@@ -2026,9 +1904,10 @@ dependencies = [
  "gstreamer-player",
  "gtk4",
  "html2text",
- "html5ever 0.25.2",
+ "html5ever",
  "humansize",
  "libadwaita",
+ "linkify",
  "log",
  "markup5ever_rcdom",
  "mpris-player",
@@ -2037,7 +1916,6 @@ dependencies = [
  "podcasts-data",
  "pretty_assertions",
  "pretty_env_logger",
- "rayon",
  "regex",
  "reqwest",
  "serde_json",
@@ -2065,13 +1943,11 @@ checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
 
 [[package]]
 name = "pretty_assertions"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
 dependencies = [
- "ctor",
  "diff",
- "output_vt100",
  "yansi",
 ]
 
@@ -2121,18 +1997,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.63"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "encoding_rs",
  "memchr",
@@ -2140,9 +2016,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.29"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
@@ -2173,41 +2049,17 @@ dependencies = [
 
 [[package]]
 name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
- "rand_pcg",
-]
-
-[[package]]
-name = "rand"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
- "rand_chacha 0.3.1",
+ "rand_chacha",
  "rand_core 0.6.4",
 ]
 
 [[package]]
 name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_chacha"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
@@ -2233,60 +2085,11 @@ checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
 
 [[package]]
 name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_core"
 version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rayon"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
+ "getrandom",
 ]
 
 [[package]]
@@ -2309,9 +2112,21 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2320,9 +2135,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
 name = "remove_dir_all"
@@ -2335,9 +2150,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.18"
+version = "0.11.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
 dependencies = [
  "base64",
  "bytes",
@@ -2362,10 +2177,12 @@ dependencies = [
  "serde_urlencoded",
  "tokio",
  "tokio-native-tls",
+ "tokio-util",
  "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
+ "wasm-streams",
  "web-sys",
  "winreg",
 ]
@@ -2383,9 +2200,9 @@ dependencies = [
 
 [[package]]
 name = "rss"
-version = "2.0.4"
+version = "2.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9acf62e0f3f4b52f61d3a12d6279e3f0b90d4811b0ae888eabdf61a2e7c03a95"
+checksum = "7e6c0ea0e621c2a3aa34850ebd711526f0ac7385921f57d2430a47cecc7b9cbc"
 dependencies = [
  "atom_syndication",
  "derive_builder",
@@ -2410,36 +2227,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.2"
+version = "0.38.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aabcb0461ebd01d6b79945797c27f8529082226cb630a9865a71870ff63532a4"
+checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.3",
+ "linux-raw-sys",
  "windows-sys",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "schannel"
@@ -2461,15 +2264,15 @@ dependencies = [
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "security-framework"
-version = "2.9.1"
+version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -2480,9 +2283,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -2490,35 +2293,35 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
 
 [[package]]
 name = "serde"
-version = "1.0.166"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.166"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.99"
+version = "1.0.105"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
+checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
 dependencies = [
  "itoa",
  "ryu",
@@ -2548,24 +2351,24 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
 
 [[package]]
 name = "socket2"
@@ -2578,6 +2381,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "socket2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
 name = "string_cache"
 version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2586,7 +2399,7 @@ dependencies = [
  "new_debug_unreachable",
  "once_cell",
  "parking_lot",
- "phf_shared 0.10.0",
+ "phf_shared",
  "precomputed-hash",
  "serde",
 ]
@@ -2597,8 +2410,8 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
 dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
+ "phf_generator",
+ "phf_shared",
  "proc-macro2",
  "quote",
 ]
@@ -2622,9 +2435,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.23"
+version = "2.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2646,9 +2459,15 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.8"
+version = "0.12.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+
+[[package]]
+name = "temp-dir"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1c7f239eb94671427157bd93b3694320f3668d4e1eff08c7285366fd777fac"
+checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
 
 [[package]]
 name = "tempdir"
@@ -2662,15 +2481,14 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.6.0"
+version = "3.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
 dependencies = [
- "autocfg",
  "cfg-if",
  "fastrand",
  "redox_syscall",
- "rustix 0.37.22",
+ "rustix",
  "windows-sys",
 ]
 
@@ -2696,22 +2514,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -2727,10 +2545,11 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.22"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd"
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
 dependencies = [
+ "deranged",
  "itoa",
  "serde",
  "time-core",
@@ -2745,9 +2564,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
 
 [[package]]
 name = "time-macros"
-version = "0.2.9"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
+checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
 dependencies = [
  "time-core",
 ]
@@ -2769,18 +2588,17 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.29.1"
+version = "1.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
 dependencies = [
- "autocfg",
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2",
+ "socket2 0.5.3",
  "tokio-macros",
  "windows-sys",
 ]
@@ -2793,7 +2611,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -2822,9 +2640,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.5"
+version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240"
+checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -2843,9 +2661,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.11"
+version = "0.19.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7"
+checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
 dependencies = [
  "indexmap 2.0.0",
  "serde",
@@ -2888,9 +2706,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
 
 [[package]]
 name = "unicase"
-version = "2.6.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
 dependencies = [
  "version_check",
 ]
@@ -2903,9 +2721,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "unicode-normalization"
@@ -2924,9 +2742,9 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -2968,12 +2786,6 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
 version = "0.10.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
@@ -3005,7 +2817,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
  "wasm-bindgen-shared",
 ]
 
@@ -3039,7 +2851,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -3051,6 +2863,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
+name = "wasm-streams"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
 name = "web-sys"
 version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3111,9 +2936,9 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.48.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -3126,90 +2951,76 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "winnow"
-version = "0.4.7"
+version = "0.5.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
+checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "winreg"
-version = "0.10.1"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
 dependencies = [
- "winapi",
+ "cfg-if",
+ "windows-sys",
 ]
 
 [[package]]
 name = "xdg"
-version = "2.5.0"
+version = "2.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688597db5a750e9cad4511cb94729a078e274308099a0382b5b8203bbc767fee"
-dependencies = [
- "home",
-]
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xml-rs"
-version = "0.8.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a56c84a8ccd4258aed21c92f70c0f6dea75356b6892ae27c24139da456f9336"
-
-[[package]]
-name = "xml5ever"
-version = "0.16.2"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9234163818fd8e2418fcde330655e757900d4236acd8cc70fef345ef91f6d865"
-dependencies = [
- "log",
- "mac",
- "markup5ever 0.10.1",
- "time 0.1.45",
-]
+checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1"
 
 [[package]]
 name = "xml5ever"
@@ -3219,7 +3030,7 @@ checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 dependencies = [
  "log",
  "mac",
- "markup5ever 0.11.0",
+ "markup5ever",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
index 2cbdeaad8c7e..1d94f2879e37 100644
--- a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -22,21 +22,18 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-podcasts";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "podcasts";
     rev = version;
-    hash = "sha256-jnuy2UUPklfOYObSJPSqNhqqrfUP7N80pPmnw0rlB9A=";
+    hash = "sha256-LPwCYgAFgUMFQZ0i4ldiuGYGMMWcMqYct3/o7eTIhmU=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "gettext-rs-0.4.2" = "sha256-wyZ1bf0oFcQo8gEi2GEalRUoKMoJYHysu79qcfjd4Ng=";
-    };
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/kid3/default.nix b/nixpkgs/pkgs/applications/audio/kid3/default.nix
index 5dacefa2955c..060f2244f2a9 100644
--- a/nixpkgs/pkgs/applications/audio/kid3/default.nix
+++ b/nixpkgs/pkgs/applications/audio/kid3/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   version = "3.9.4";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/kid3/${finalAttrs.version}/kid3-${finalAttrs.version}.tar.xz";
+    url = "mirror://kde/stable/kid3/${finalAttrs.version}/kid3-${finalAttrs.version}.tar.xz";
     hash = "sha256-xBCWDpYiXeChxIiMPqHG3CyiRau2kUdDJtzcPtvWpSA=";
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/raysession/default.nix b/nixpkgs/pkgs/applications/audio/raysession/default.nix
index f12fd7a15c00..4db6072a4805 100644
--- a/nixpkgs/pkgs/applications/audio/raysession/default.nix
+++ b/nixpkgs/pkgs/applications/audio/raysession/default.nix
@@ -1,12 +1,12 @@
-{ lib, fetchurl, buildPythonApplication, libjack2, pydbus, pyliblo, pyqt5, which, bash, qt5 }:
+{ lib, fetchurl, buildPythonApplication, libjack2, pyliblo, pyqt5, which, bash, qt5 }:
 
 buildPythonApplication rec {
   pname = "raysession";
-  version = "0.13.1";
+  version = "0.14.2";
 
   src = fetchurl {
     url = "https://github.com/Houston4444/RaySession/releases/download/v${version}/RaySession-${version}-source.tar.gz";
-    sha256 = "sha256-iiFRtX43u9BHe7a4ojza7kav+dMW9e05dPi7Gf9d1GM=";
+    sha256 = "sha256-qEN3zBK/goRLIZaU06XXm8H5yj4Qjj/NH+bkHkjhLaw=";
   };
 
   postPatch = ''
@@ -25,7 +25,7 @@ buildPythonApplication rec {
     qt5.wrapQtAppsHook
   ];
   buildInputs = [ libjack2 bash ];
-  propagatedBuildInputs = [ pydbus pyliblo pyqt5 ];
+  propagatedBuildInputs = [ pyliblo pyqt5 ];
 
   dontWrapQtApps = true; # The program is a python script.
 
diff --git a/nixpkgs/pkgs/applications/audio/spotify/linux.nix b/nixpkgs/pkgs/applications/audio/spotify/linux.nix
index 16b3e7bdd5de..5bbdde57a324 100644
--- a/nixpkgs/pkgs/applications/audio/spotify/linux.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify/linux.nix
@@ -14,14 +14,14 @@ let
   # If an update breaks things, one of those might have valuable info:
   # https://aur.archlinux.org/packages/spotify/
   # https://community.spotify.com/t5/Desktop-Linux
-  version = "1.2.22.982.g794acc0a";
+  version = "1.2.25.1011.g0348b2ea";
   # To get the latest stable revision:
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
   # To get general information:
   # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
   # More examples of api usage:
   # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
-  rev = "70";
+  rev = "73";
 
   deps = [
     alsa-lib
@@ -86,7 +86,7 @@ stdenv.mkDerivation {
   # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
-    hash = "sha512-oxDUZqyMLxCbUBb1A+BBznByQ1rZAJcEIkaSUQ93/k1DX3rTaBHzEXmBtJhmN6L8L3fw1pa9GvE7eDaD8+jeGg==";
+    hash = "sha512-93A+0YfP2/HnQOhSMw3UZ374bpS5ccQqb7a+e4RPSKvyT54wcI6hpmRn8CVo02oLo0yI2hho3Bu3ggsJLVgzbw==";
   };
 
   nativeBuildInputs = [ wrapGAppsHook makeShellWrapper squashfsTools ];
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
index da97e45b63f6..1980fae8e194 100644
--- a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
+++ b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
@@ -22,14 +22,14 @@
 
 stdenv.mkDerivation rec {
   pname = "deja-dup";
-  version = "44.2";
+  version = "45.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "deja-dup";
     rev = version;
-    hash = "sha256-TnyH2tIvzG1B2hbDPyFyaTArfuMJaP6GKw6yahwsQ1Q=";
+    hash = "sha256-2vNAppy8fYYcxH3ci4B6bUIl2sO5NC6yA13y9iU4V/A=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/backup/proxmox-backup-client/Cargo.lock b/nixpkgs/pkgs/applications/backup/proxmox-backup-client/Cargo.lock
index 38d5f82f1c38..18d7726b3cb5 100644
--- a/nixpkgs/pkgs/applications/backup/proxmox-backup-client/Cargo.lock
+++ b/nixpkgs/pkgs/applications/backup/proxmox-backup-client/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[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",
 ]
@@ -18,41 +18,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 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 = "aho-corasick"
-version = "1.0.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
-
-[[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",
-]
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "autocfg"
@@ -62,15 +40,15 @@ 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",
 ]
@@ -83,22 +61,22 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "bindgen"
-version = "0.64.0"
+version = "0.68.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.1",
  "cexpr",
  "clang-sys",
  "lazy_static",
  "lazycell",
  "peeking_take_while",
- "proc-macro2 1.0.63",
- "quote 1.0.29",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
  "regex",
  "rustc-hash",
  "shlex",
- "syn 1.0.109",
+ "syn 2.0.39",
  "which",
 ]
 
@@ -109,24 +87,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[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 = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
@@ -198,9 +183,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "endian-type"
@@ -229,36 +214,31 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.9.3"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
- "atty",
  "humantime",
+ "is-terminal",
  "log",
  "regex",
  "termcolor",
 ]
 
 [[package]]
-name = "errno"
-version = "0.3.1"
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys",
-]
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "errno"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -273,35 +253,35 @@ dependencies = [
 
 [[package]]
 name = "fd-lock"
-version = "3.0.12"
+version = "3.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642"
+checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
 dependencies = [
  "cfg-if",
  "rustix",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "filetime"
-version = "0.2.21"
+version = "0.2.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153"
+checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall",
- "windows-sys",
+ "redox_syscall 0.3.5",
+ "windows-sys 0.48.0",
 ]
 
 [[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]]
@@ -327,18 +307,18 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -351,9 +331,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -361,15 +341,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -378,38 +358,38 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 2.0.22",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -425,9 +405,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "libc",
@@ -436,9 +416,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -448,9 +428,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "h2"
-version = "0.3.20"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
 dependencies = [
  "bytes",
  "fnv",
@@ -467,27 +447,15 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash",
-]
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "hex"
@@ -504,14 +472,14 @@ version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -537,9 +505,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "humantime"
@@ -564,7 +532,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2",
+ "socket2 0.4.10",
  "tokio",
  "tower-service",
  "tracing",
@@ -573,9 +541,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -583,45 +551,45 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
- "autocfg",
+ "equivalent",
  "hashbrown",
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.11"
+name = "is-terminal"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
- "hermit-abi 0.3.1",
- "libc",
- "windows-sys",
+ "hermit-abi",
+ "rustix",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -640,9 +608,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libloading"
@@ -655,6 +623,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
 name = "libudev-sys"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -666,21 +645,21 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.3.8"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -708,15 +687,6 @@ 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"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
@@ -726,13 +696,13 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
 dependencies = [
  "libc",
  "wasi",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -750,7 +720,7 @@ version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cc",
  "cfg-if",
  "libc",
@@ -759,16 +729,15 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "libc",
  "memoffset 0.7.1",
  "pin-utils",
- "static_assertions",
 ]
 
 [[package]]
@@ -787,15 +756,15 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.1",
+ "hermit-abi",
  "libc",
 ]
 
 [[package]]
 name = "object"
-version = "0.30.4"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
 dependencies = [
  "memchr",
 ]
@@ -808,11 +777,11 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "openssl"
-version = "0.10.55"
+version = "0.10.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
+checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.1",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -827,16 +796,16 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 2.0.22",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.90"
+version = "0.9.96"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
+checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f"
 dependencies = [
  "cc",
  "libc",
@@ -846,11 +815,9 @@ dependencies = [
 
 [[package]]
 name = "pathpatterns"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6e0644c02bcf32e41bcfd11d29d67c31480910717dc15ad59f968c736c0a99a"
+version = "0.3.0"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "libc",
 ]
 
@@ -876,14 +843,14 @@ dependencies = [
 
 [[package]]
 name = "pbs-buildcfg"
-version = "3.0.1"
+version = "3.1.2"
 
 [[package]]
 name = "pbs-client"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "bitflags",
+ "bitflags 1.3.2",
  "bytes",
  "futures",
  "h2",
@@ -893,7 +860,7 @@ dependencies = [
  "lazy_static",
  "libc",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "openssl",
  "pathpatterns",
  "pbs-api-types",
@@ -933,7 +900,7 @@ dependencies = [
  "hex",
  "lazy_static",
  "libc",
- "nix 0.26.2",
+ "nix 0.26.4",
  "once_cell",
  "openssl",
  "pbs-api-types",
@@ -962,7 +929,7 @@ dependencies = [
  "lazy_static",
  "libc",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "openssl",
  "pathpatterns",
  "pbs-api-types",
@@ -996,7 +963,7 @@ dependencies = [
  "lazy_static",
  "libc",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "proxmox-fuse",
  "proxmox-sys",
  "proxmox-time",
@@ -1009,7 +976,7 @@ name = "pbs-key-config"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "nix 0.26.2",
+ "nix 0.26.4",
  "openssl",
  "pbs-api-types",
  "pbs-tools",
@@ -1042,13 +1009,13 @@ name = "pbs-tape"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "bitflags",
+ "bitflags 1.3.2",
  "endian_trait",
  "hex",
  "lazy_static",
  "libc",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "pbs-api-types",
  "pbs-config",
  "proxmox-io",
@@ -1081,7 +1048,7 @@ dependencies = [
  "lazy_static",
  "libc",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "nom",
  "openssl",
  "pbs-api-types",
@@ -1108,15 +1075,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 = "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"
@@ -1141,21 +1108,21 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.63"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "proxmox-api-macro"
-version = "1.0.4"
+version = "1.0.6"
 dependencies = [
  "anyhow",
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 1.0.109",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1173,7 +1140,7 @@ dependencies = [
 
 [[package]]
 name = "proxmox-auth-api"
-version = "0.3.0"
+version = "0.3.2"
 dependencies = [
  "anyhow",
  "lazy_static",
@@ -1185,14 +1152,14 @@ dependencies = [
 
 [[package]]
 name = "proxmox-backup"
-version = "3.0.1"
+version = "3.1.2"
 
 [[package]]
 name = "proxmox-backup-banner"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "nix 0.26.2",
+ "nix 0.26.4",
 ]
 
 [[package]]
@@ -1204,7 +1171,7 @@ dependencies = [
  "hyper",
  "libc",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "openssl",
  "pathpatterns",
  "pbs-api-types",
@@ -1290,10 +1257,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "proxmox-human-byte"
+name = "proxmox-http-error"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "http",
+ "serde",
+]
+
+[[package]]
+name = "proxmox-human-byte"
+version = "0.1.2"
+dependencies = [
+ "anyhow",
  "proxmox-schema",
  "proxmox-serde",
  "serde",
@@ -1313,16 +1289,17 @@ version = "1.1.0"
 
 [[package]]
 name = "proxmox-router"
-version = "1.3.1"
+version = "2.1.1"
 dependencies = [
  "anyhow",
  "env_logger",
  "http",
  "hyper",
  "libc",
- "nix 0.26.2",
+ "nix 0.26.4",
  "percent-encoding",
  "proxmox-async",
+ "proxmox-http-error",
  "proxmox-lang",
  "proxmox-schema",
  "rustyline",
@@ -1334,7 +1311,7 @@ dependencies = [
 
 [[package]]
 name = "proxmox-schema"
-version = "1.3.7"
+version = "2.0.2"
 dependencies = [
  "anyhow",
  "lazy_static",
@@ -1347,7 +1324,7 @@ dependencies = [
 
 [[package]]
 name = "proxmox-section-config"
-version = "1.0.2"
+version = "2.0.0"
 dependencies = [
  "anyhow",
  "hex",
@@ -1374,29 +1351,29 @@ version = "0.3.0"
 dependencies = [
  "anyhow",
  "libc",
- "nix 0.26.2",
+ "nix 0.26.4",
  "proxmox-sys",
 ]
 
 [[package]]
 name = "proxmox-sortable-macro"
-version = "0.1.2"
+version = "0.1.3"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 1.0.109",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "proxmox-sys"
-version = "0.5.0"
+version = "0.5.2"
 dependencies = [
  "anyhow",
  "base64",
  "lazy_static",
  "libc",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "proxmox-io",
  "proxmox-lang",
  "proxmox-time",
@@ -1410,7 +1387,7 @@ name = "proxmox-time"
 version = "1.1.5"
 dependencies = [
  "anyhow",
- "bitflags",
+ "bitflags 1.3.2",
  "js-sys",
  "lazy_static",
  "libc",
@@ -1430,7 +1407,7 @@ dependencies = [
 name = "pxar"
 version = "0.10.2"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "endian_trait",
  "libc",
  "siphasher",
@@ -1444,7 +1421,7 @@ dependencies = [
  "anyhow",
  "futures",
  "log",
- "nix 0.26.2",
+ "nix 0.26.4",
  "pathpatterns",
  "pbs-client",
  "pbs-pxar-fuse",
@@ -1469,11 +1446,11 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.29"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
- "proc-macro2 1.0.63",
+ "proc-macro2 1.0.70",
 ]
 
 [[package]]
@@ -1488,29 +1465,50 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+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 = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[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",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1519,9 +1517,9 @@ 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 = "rustc-demangle"
@@ -1537,16 +1535,15 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.37.20"
+version = "0.38.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0"
+checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.1",
  "errno",
- "io-lifetimes",
  "libc",
  "linux-raw-sys",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1555,7 +1552,7 @@ version = "9.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "clipboard-win",
  "dirs-next",
@@ -1575,9 +1572,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "same-file"
@@ -1590,35 +1587,35 @@ dependencies = [
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.164"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.164"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 2.0.22",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.99"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -1627,18 +1624,18 @@ dependencies = [
 
 [[package]]
 name = "serde_plain"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6018081315db179d0ce57b1fe4b62a12a0028c9cf9bbef868c9cf477b3c34ae"
+checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 
 [[package]]
 name = "signal-hook-registry"
@@ -1651,46 +1648,50 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "smawk"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
 ]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "socket2"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
 
 [[package]]
 name = "str-buf"
@@ -1711,31 +1712,20 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616"
-dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
  "unicode-ident",
 ]
 
 [[package]]
 name = "tar"
-version = "0.4.38"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
 dependencies = [
  "filetime",
  "libc",
@@ -1744,9 +1734,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
  "winapi-util",
 ]
@@ -1764,22 +1754,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 2.0.22",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1799,11 +1789,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.29.0"
+version = "1.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374442f06ee49c3a28a8fc9f01a2596fed7559c6b99b31279c3261778e77d84f"
+checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
 dependencies = [
- "autocfg",
  "backtrace",
  "bytes",
  "libc",
@@ -1811,20 +1800,20 @@ dependencies = [
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2",
+ "socket2 0.5.5",
  "tokio-macros",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 2.0.22",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1852,9 +1841,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",
@@ -1872,20 +1861,19 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "pin-project-lite",
  "tracing-core",
 ]
 
 [[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",
 ]
@@ -1914,19 +1902,15 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
 
 [[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"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
-dependencies = [
- "hashbrown",
- "regex",
-]
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
@@ -1945,9 +1929,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[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"
@@ -1957,9 +1941,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -1979,16 +1963,10 @@ 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 = "walkdir"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -2011,9 +1989,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2021,57 +1999,58 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 2.0.22",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
- "quote 1.0.29",
+ "quote 1.0.33",
  "wasm-bindgen-macro-support",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
- "proc-macro2 1.0.63",
- "quote 1.0.29",
- "syn 2.0.22",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "which"
-version = "4.4.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix",
 ]
 
 [[package]]
@@ -2092,9 +2071,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -2111,98 +2090,161 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[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.48.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.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",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[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.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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "xattr"
-version = "0.2.3"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc"
+checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "xdg"
-version = "2.5.0"
+version = "2.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688597db5a750e9cad4511cb94729a078e274308099a0382b5b8203bbc767fee"
-dependencies = [
- "home",
-]
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "zstd"
-version = "0.12.3+zstd.1.5.2"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806"
+checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
 dependencies = [
  "zstd-safe",
 ]
 
 [[package]]
 name = "zstd-safe"
-version = "6.0.5+zstd.1.5.4"
+version = "6.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56d9e60b4b1758206c238a10165fbcae3ca37b01744e394c463463f6529d23b"
+checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
 dependencies = [
  "libc",
  "zstd-sys",
@@ -2210,24 +2252,31 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "bindgen",
  "cc",
- "libc",
  "pkg-config",
 ]
 
 [[patch.unused]]
+name = "proxmox-ldap"
+version = "0.2.1"
+
+[[patch.unused]]
+name = "proxmox-metrics"
+version = "0.3.0"
+
+[[patch.unused]]
 name = "proxmox-rest-server"
-version = "0.4.1"
+version = "0.5.1"
 
 [[patch.unused]]
 name = "proxmox-subscription"
-version = "0.4.0"
+version = "0.4.2"
 
 [[patch.unused]]
 name = "proxmox-tfa"
-version = "4.0.3"
+version = "4.1.0"
diff --git a/nixpkgs/pkgs/applications/backup/proxmox-backup-client/default.nix b/nixpkgs/pkgs/applications/backup/proxmox-backup-client/default.nix
index 8e6da71a1ead..77b674d9a1d1 100644
--- a/nixpkgs/pkgs/applications/backup/proxmox-backup-client/default.nix
+++ b/nixpkgs/pkgs/applications/backup/proxmox-backup-client/default.nix
@@ -1,37 +1,39 @@
-{ lib,
-  fetchgit,
-  rustPlatform,
-  pkg-config,
-  openssl,
-  fuse3,
-  libuuid,
-  acl,
-  libxcrypt,
-  git,
-  installShellFiles,
-  sphinx,
-  stdenv,
-  fetchpatch,
-  testers,
-  proxmox-backup-client,
+{ lib
+, fetchgit
+, rustPlatform
+, pkg-config
+, openssl
+, fuse3
+, libuuid
+, acl
+, libxcrypt
+, git
+, installShellFiles
+, sphinx
+, stdenv
+, fetchpatch
+, testers
+, proxmox-backup-client
 }:
 
 let
   pname = "proxmox-backup-client";
-  version = "3.0.1";
+  version = "3.1.2";
 
   proxmox-backup_src = fetchgit {
     url = "git://git.proxmox.com/git/proxmox-backup.git";
     rev = "v${version}";
     name = "proxmox-backup";
-    hash = "sha256-a6dPBZBBh//iANXoPmOdgxYO0qNszOYI3QtrjQr4Cxc=";
+    hash = "sha256-G4wadZelQHlveVhuOpu0FjLvfegoimoxlw3Fe8DhsQA=";
   };
 
+  # Same revision as used in
+  # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=proxmox-backup-client
   proxmox_src = fetchgit {
     url = "git://git.proxmox.com/git/proxmox.git";
-    rev = "2a070da0651677411a245f1714895235b1caf584";
+    rev = "50b79198f83659e77b810fe0eedaa79b140744db";
     name = "proxmox";
-    hash = "sha256-WH6oW2MB2yN1Y2zqOuXewI9jHqev/xLcJtb7D1J4aUE=";
+    hash = "sha256-ffkOXGqe0xjvvhouzemcQ8qNdmJx70x10ny2uhYAYaI=";
   };
 
   proxmox-fuse_src = fetchgit {
@@ -43,16 +45,30 @@ let
 
   proxmox-pxar_src = fetchgit {
     url = "git://git.proxmox.com/git/pxar.git";
-    rev = "6ad046f9f92b40413f59cc5f4c23d2bafdf141f2";
+    rev = "fab647085426dc39c25c137575a3b8fc575c4b78";
     name = "pxar";
-    hash = "sha256-I9kk27oN9BDQpnLDWltjZMrh2yJitCpcD/XAhkmtJUg=";
+    hash = "sha256-tedQDQUFSGUZCChGcRRJsh7lIozfispLCLeX1OuUc4k=";
   };
+
+  proxmox-pathpatterns_src = fetchgit {
+    url = "git://git.proxmox.com/git/pathpatterns.git";
+    rev = "5f625aacbd6f81d97a1c6f5476fb38769d069f26"; # 0.3.0
+    name = "pathpatterns";
+    hash = "sha256-717XSlvQdvP0Q516fEx04rsrLCk3QI8frTD5NMmkSr4=";
+  };
+
 in
 
 rustPlatform.buildRustPackage {
   inherit pname version;
 
-  srcs = [ proxmox-backup_src proxmox_src proxmox-fuse_src proxmox-pxar_src ];
+  srcs = [
+    proxmox-backup_src
+    proxmox_src
+    proxmox-fuse_src
+    proxmox-pxar_src
+    proxmox-pathpatterns_src
+  ];
 
   sourceRoot = proxmox-backup_src.name;
 
@@ -64,15 +80,15 @@ rustPlatform.buildRustPackage {
     # works in combination with the other three repos being checked out.
     (fetchpatch {
       name = "0001-re-route-dependencies-not-available-on-crates.io-to-.patch";
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-re-route-dependencies-not-available-on-crates.io-to-.patch?h=proxmox-backup-client&id=83a1f4dfcb04bd181b11954b1d9f5ddfcb72b3d0";
-      hash = "sha256-2YZtjbpYSbRk6rmpjKJeIO+V0YN5PrKsISONXMj4RG0=";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-re-route-dependencies-not-available-on-crates.io-to-.patch?h=proxmox-backup-client&id=33ef762d3b3a8a0300117efada8d957f6d0cfa07";
+      hash = "sha256-hBct1NVFum7WG0sgdE7DdvjfnC6KPlLG9r4syxgYKWA=";
     })
     # This patch prevents the generation of the man-pages for other components inside the repo,
     # which would require them too be built too. Thus avoid wasting resources and just skip them.
     (fetchpatch {
       name = "0002-docs-drop-all-but-client-man-pages.patch";
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0002-docs-drop-all-but-client-man-pages.patch?h=proxmox-backup-client&id=83a1f4dfcb04bd181b11954b1d9f5ddfcb72b3d0";
-      hash = "sha256-oJKQs4SwJvX5Zd0/l/vVr66aPO7Y4AC8byJHg9t1IhY=";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/0002-docs-drop-all-but-client-man-pages.patch?h=proxmox-backup-client&id=33ef762d3b3a8a0300117efada8d957f6d0cfa07";
+      hash = "sha256-DvWm18udvOpcma0V3JY06Lhn+h0BDPhNqrNOyrgpvWk=";
     })
     # `make docs` assumes that the binaries are located under `target/{debug,release}`, but due
     # to how `buildRustPackage` works, they get put under `target/$RUSTC_TARGET/{debug,release}`.
diff --git a/nixpkgs/pkgs/applications/display-managers/greetd/gtkgreet.nix b/nixpkgs/pkgs/applications/display-managers/greetd/gtkgreet.nix
index cc78e8758489..674257e8526e 100644
--- a/nixpkgs/pkgs/applications/display-managers/greetd/gtkgreet.nix
+++ b/nixpkgs/pkgs/applications/display-managers/greetd/gtkgreet.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkgreet";
-  version = "0.7";
+  version = "0.8";
 
   src = fetchFromSourcehut {
     owner = "~kennylevinsen";
     repo = pname;
     rev = version;
-    sha256 = "ms+2FdtzzNlmlzNxFhu4cpX5H+5H+9ZOtZ0p8uVA3lo=";
+    sha256 = "sha256-GKBYql0hzqB6uY87SsAqHwf3qLAr7xznMnAjRtP4HS8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
index c1007e07b79b..d49689255b98 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lightdm-slick-greeter";
-  version = "1.8.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "slick-greeter";
     rev = version;
-    sha256 = "sha256-OSL4Ls3bCua5ut8zWodeIH1SfevCbsS7BgBJYdcJaVE=";
+    sha256 = "sha256-2iwH8npCfo4z1K4WQNP2Pd32PJTkCX/rT0+1RTrBO8E=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/editors/cosmic-edit/default.nix b/nixpkgs/pkgs/applications/editors/cosmic-edit/default.nix
deleted file mode 100644
index 2adfc012bc6c..000000000000
--- a/nixpkgs/pkgs/applications/editors/cosmic-edit/default.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, rust
-, rustPlatform
-, cmake
-, makeWrapper
-, cosmic-icons
-, just
-, pkg-config
-, libxkbcommon
-, glib
-, gtk3
-, libinput
-, fontconfig
-, freetype
-, wayland
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "cosmic-edit";
-  version = "unstable-2023-11-02";
-
-  src = fetchFromGitHub {
-    owner = "pop-os";
-    repo = "cosmic-edit";
-    rev = "ee2dea71e6e21967bc705046f9650407d07cdada";
-    sha256 = "sha256-27j9Imlyzwy2yjpNsWWcX0qW38ZxMDkht1Eaggr4NYY=";
-  };
-
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
-      "cosmic-config-0.1.0" = "sha256-VKvJ7cNwMLLs6ElpgP6xwsBUnD5MDApwWl7rrb/Lr/U=";
-      "cosmic-text-0.10.0" = "sha256-g9y2qZ2ivpDtZAtsXqMXgGjUFi9QZx/weMhk7hmnB3E=";
-      "sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
-      "smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
-      "softbuffer-0.2.0" = "sha256-VD2GmxC58z7Qfu/L+sfENE+T8L40mvUKKSfgLmCTmjY=";
-      "taffy-0.3.11" = "sha256-0hXOEj6IjSW8e1t+rvxBFX6V9XRum3QO2Des1XlHJEw=";
-      "winit-0.28.6" = "sha256-FhW6d2XnXCGJUMoT9EMQew9/OPXiehy/JraeCiVd76M=";
-    };
-  };
-
-  postPatch = ''
-    substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
-  '';
-
-  nativeBuildInputs = [ cmake just pkg-config makeWrapper ];
-  buildInputs = [ libxkbcommon libinput fontconfig freetype wayland glib gtk3 ];
-
-  dontUseJustBuild = true;
-
-  justFlags = [
-    "--set"
-    "prefix"
-    (placeholder "out")
-    "--set"
-    "bin-src"
-    "target/${rust.lib.toRustTargetSpecShort stdenv.hostPlatform}/release/cosmic-edit"
-  ];
-
- postInstall = ''
-    wrapProgram "$out/bin/${pname}" \
-      --suffix XDG_DATA_DIRS : "${cosmic-icons}/share"
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/pop-os/cosmic-edit";
-    description = "Text Editor for the COSMIC Desktop Environment";
-    license = licenses.gpl3Only;
-    mainProgram = "cosmic-edit";
-    maintainers = with maintainers; [ ahoneybun ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix b/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix
index 5625dfbb3aa9..c48550f8680a 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix
@@ -329,15 +329,16 @@ mkDerivation (finalAttrs: {
     "--with-xml2=yes"
   ]
   ++ (lib.optional stdenv.isDarwin (lib.withFeature withNS "ns"))
-  ++ lib.optional (!withToolkitScrollBars) "--without-toolkit-scroll-bars"
-  ++ lib.optional withNativeCompilation "--with-native-compilation"
-  ++ lib.optional withImageMagick "--with-imagemagick"
-  ++ lib.optional withTreeSitter "--with-tree-sitter"
-  ++ lib.optional withXinput2 "--with-xinput2"
-  ++ lib.optional withXwidgets "--with-xwidgets"
-  ++ lib.optional withSmallJaDic "--with-small-ja-dic"
-  ++ lib.optional (!withCompressInstall) "--without-compress-install"
-  ;
+  ++ [
+    (lib.withFeature withCompressInstall "compress-install")
+    (lib.withFeature withToolkitScrollBars "toolkit-scroll-bars")
+    (lib.withFeature withNativeCompilation "native-compilation")
+    (lib.withFeature withImageMagick "imagemagick")
+    (lib.withFeature withSmallJaDic "small-ja-dic")
+    (lib.withFeature withTreeSitter "tree-sitter")
+    (lib.withFeature withXinput2 "xinput2")
+    (lib.withFeature withXwidgets "xwidgets")
+  ];
 
   env = lib.optionalAttrs withNativeCompilation {
     NATIVE_FULL_AOT = "1";
diff --git a/nixpkgs/pkgs/applications/editors/greenfoot/default.nix b/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
index 6ca6f35246d3..cc195fbeb116 100644
--- a/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
+++ b/nixpkgs/pkgs/applications/editors/greenfoot/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "greenfoot";
-  version = "3.8.1";
+  version = "3.8.2";
 
   src = fetchurl {
     # We use the deb here. First instinct might be to go for the "generic" JAR
     # download, but that is actually a graphical installer that is much harder
     # to unpack than the deb.
     url = "https://www.greenfoot.org/download/files/Greenfoot-linux-${builtins.replaceStrings ["."] [""] version}.deb";
-    sha256 = "sha256-utGSAbP74O1t1iEoN0CwiZVc8HxdCxhozPPMwQCtkEE=";
+    hash = "sha256-wpmgWtx2jTDjt+7p6HcjU/uy1PRmnAHpJ1rOYb+hV+U=";
   };
 
   nativeBuildInputs = [ dpkg wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/linux.nix b/nixpkgs/pkgs/applications/editors/jetbrains/linux.nix
index 4a89ae202858..46cf00ea2131 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/linux.nix
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/linux.nix
@@ -120,7 +120,8 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
     item=${desktopItem}
 
     wrapProgram  "$out/$pname/bin/${loName}.sh" \
-      --prefix PATH : "$out/libexec/${pname}:${lib.makeBinPath [ jdk coreutils gnugrep which git python3 ]}" \
+      --prefix PATH : "$out/libexec/${pname}:${lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
+      --suffix PATH : "${lib.makeBinPath [ python3 ]}" \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath extraLdPath}" \
       ${lib.concatStringsSep " " extraWrapperArgs} \
       --set-default JDK_HOME "$jdk" \
diff --git a/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
index a2d7f13338a9..2159a60c0323 100644
--- a/nixpkgs/pkgs/applications/editors/netbeans/default.nix
+++ b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "19";
+  version = "20";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    hash = "sha256-jfcO3WMH0Ir1+VfpZhaRcykTIoTmxA5DK8ZO8orP1Jg=";
+    hash = "sha256-hseSusJiUqdnhIyOBtELProeMjrGdKa22h0VkbML80E=";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix b/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
index 1083aa39ee20..fc08f823148b 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
@@ -185,12 +185,12 @@ final: prev:
 
   LeaderF = buildVimPlugin {
     pname = "LeaderF";
-    version = "2023-11-30";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "001b12c022babbe433bc53f8ecdac1c202c57977";
-      sha256 = "0m722w9vzmxxn1km3czpj5n80cwdhviw0l7zjawgwa8ip8bd63kr";
+      rev = "ee827173e5a3977ef764302083a4df07b4568cf3";
+      sha256 = "1w7m48h27h5dk5swy8ibynl74f11xrv704cyafgdbg9a3w5qv15l";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
@@ -305,12 +305,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPlugin {
     pname = "SchemaStore.nvim";
-    version = "2023-11-30";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "5bfeb36550018438c2c7ef58f91174f79d99a28a";
-      sha256 = "192rq8dzfckyz9vpvf489zbqxmd33r8mw6frdrm8fa9xq1q1i0ab";
+      rev = "c4f2d408542f07592a34c3a68171d36c612741b9";
+      sha256 = "0j1qng5sp5h9b478ajjx9fcx88k8sfj26s19lxi76g7a00yzm0b6";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -691,12 +691,12 @@ final: prev:
 
   asyncomplete-buffer-vim = buildVimPlugin {
     pname = "asyncomplete-buffer.vim";
-    version = "2020-06-26";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "asyncomplete-buffer.vim";
-      rev = "018bcf0f712ce0fde3f1f2eaabd7004fccb2d34a";
-      sha256 = "0ixc37gzgsf93sl52fa3ywz6bw7cn1406fgimmy5rz0d62b0y8yi";
+      rev = "a7afcf4f1f0ee8beaec4b3a20d814160ab097d8d";
+      sha256 = "0x9rr9v2b6zc2ch1v11vmqd65iyq33vi28f4s3xg1q7y5358ksd1";
     };
     meta.homepage = "https://github.com/prabirshrestha/asyncomplete-buffer.vim/";
   };
@@ -739,12 +739,12 @@ final: prev:
 
   asyncomplete-tags-vim = buildVimPlugin {
     pname = "asyncomplete-tags.vim";
-    version = "2021-04-29";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "asyncomplete-tags.vim";
-      rev = "041af0565f2c16634277cd29d2429c573af1dac4";
-      sha256 = "0i1ahg96j1ixyps0lfzl7w7skd64y6br1zn3bms447341zw4lc0k";
+      rev = "e458dc448b40d69eb1d4722fa30ce848521bd3d0";
+      sha256 = "1n74m1s0npnih1mdpxw1c0x7jhqkzrkncjb0zpa7r1ibl1ij0gwj";
     };
     meta.homepage = "https://github.com/prabirshrestha/asyncomplete-tags.vim/";
   };
@@ -2287,12 +2287,12 @@ final: prev:
 
   conform-nvim = buildVimPlugin {
     pname = "conform.nvim";
-    version = "2023-11-30";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "conform.nvim";
-      rev = "3fc2c956d99216b2816f07d2b946020ba2e02457";
-      sha256 = "1hv712cn3vn4gnr01a9maq787nb13x8nwachksnik49bq28g43g6";
+      rev = "e8ac7f1a9a3973ecce6942b2f26d16e65902aa70";
+      sha256 = "127shx9vzq9rkjk44xpr24w76b51fywwrni6nvrdq29swqdpk9yw";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/conform.nvim/";
@@ -2348,12 +2348,12 @@ final: prev:
 
   copilot-lua = buildVimPlugin {
     pname = "copilot.lua";
-    version = "2023-11-28";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "zbirenbaum";
       repo = "copilot.lua";
-      rev = "3665ed0f3ef3ad68673df7195789d134d0d1fdb0";
-      sha256 = "1vsyjxqzq57ckmj942i018r1zg56l908fg8i5z3rv4qyqrwjz725";
+      rev = "38a41d0d78f8823cc144c99784528b9a68bdd608";
+      sha256 = "05v2cxa10s98pk7w0g3g8p440bz6n2r2k4ygxz9vkbcjf39kgjaj";
     };
     meta.homepage = "https://github.com/zbirenbaum/copilot.lua/";
   };
@@ -2480,12 +2480,12 @@ final: prev:
 
   csv-vim = buildVimPlugin {
     pname = "csv.vim";
-    version = "2023-09-28";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "4fd88346aed02123aa5daa1a363868a576c6fdcf";
-      sha256 = "10c2hgzhnv1zr461hvp4cnxpfs0aja43whjimdsb5sjd4xk5x7cc";
+      rev = "962f88787ec6873eba1c7dbbd81d2723f1ee3c4b";
+      sha256 = "11gwamrqqmcy5jvbmnmyvx94pknlx3ppvyk4b6vhm4dghwmhq9nb";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -2998,12 +2998,12 @@ final: prev:
 
   direnv-vim = buildVimPlugin {
     pname = "direnv.vim";
-    version = "2023-06-26";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "direnv";
       repo = "direnv.vim";
-      rev = "165031fa2c8dbb1e78dfd7054fe064ea926384cb";
-      sha256 = "0g8k839x7588azm29iacvvqlgvznfziw8gwcdc251q9ra3z59ynh";
+      rev = "ab2a7e08dd630060cd81d7946739ac7442a4f269";
+      sha256 = "1hhwfnaj9ibz17ggxvhzrkinghfy51fqfa0bs482z484jpvjc31g";
     };
     meta.homepage = "https://github.com/direnv/direnv.vim/";
   };
@@ -3046,24 +3046,24 @@ final: prev:
 
   dressing-nvim = buildVimPlugin {
     pname = "dressing.nvim";
-    version = "2023-11-07";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "dressing.nvim";
-      rev = "fe3071330a0720ce3695ac915820c8134b22d1b0";
-      sha256 = "0a76mkvgya5hygfjbk2wbha18fhwhv6kmkxgvda053z325505mc6";
+      rev = "8b7ae53d7f04f33be3439a441db8071c96092d19";
+      sha256 = "1gj3apvif9bfz1vqrxr6xmj5p7byjq5qdjv159lnm09hca3vfdnb";
     };
     meta.homepage = "https://github.com/stevearc/dressing.nvim/";
   };
 
   dropbar-nvim = buildVimPlugin {
     pname = "dropbar.nvim";
-    version = "2023-11-25";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "Bekaboo";
       repo = "dropbar.nvim";
-      rev = "3b7978b382ef09ca84b4248f1033df4f346889f4";
-      sha256 = "1yf4jihacmblw8vynspv68d3iyb8ydp57qza6mff5x4xxcpbkfsr";
+      rev = "2b7c2d53363cb3d93376904dac3ea6d52dd900c5";
+      sha256 = "0kwsdil034a1cqy0ccyhy7hpzn4pnxcb0b4g0p3y09wk935mwdrk";
     };
     meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/";
   };
@@ -3118,12 +3118,12 @@ final: prev:
 
   editorconfig-vim = buildVimPlugin {
     pname = "editorconfig-vim";
-    version = "2023-11-26";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "editorconfig";
       repo = "editorconfig-vim";
-      rev = "7eec46701ec7a954a6cb0b0e348ad7c13a893425";
-      sha256 = "17jfdlik09nqma3kb12kx0y0svjndcc6ay4589k83zm2cy4wd0h9";
+      rev = "95cb75e21d11206dad4bd3895c99459bdaa13dd1";
+      sha256 = "19nqk6hw0w29a14dwykqpcfahcjnkyjafha01fa82i967hrg3dj6";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
@@ -3649,12 +3649,12 @@ final: prev:
 
   fzf-lua = buildVimPlugin {
     pname = "fzf-lua";
-    version = "2023-11-30";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "474af4d6e2f0ebfbb5df85ca7827b67949717bae";
-      sha256 = "0236ccalzkwv2qzspqdglnkvpflzcppllp4v5bn6v1lbnlyqj7dm";
+      rev = "a1a2d0f42eaec400cc6918a8e898fc1f9c4dbc5f";
+      sha256 = "14pdspy8932fh5w247vqs0fyywb6mwg1af9sk5irgxfsv7c0xlg2";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
@@ -3877,12 +3877,12 @@ final: prev:
 
   go-nvim = buildVimPlugin {
     pname = "go.nvim";
-    version = "2023-11-28";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "go.nvim";
-      rev = "e0528b5868b8c488fb6eaf1a4f7b298976d419a5";
-      sha256 = "08xh4i09akm13gaj5zzlqlhcrr1i21jwqzxljf7i5wklpw7hf03c";
+      rev = "7b7c20029a817ef51f6b498388488e9850fe45ac";
+      sha256 = "0qbgmg9kvhxz4akmxd56lwr2zjxrayccgiynkcfnqakvya271jji";
     };
     meta.homepage = "https://github.com/ray-x/go.nvim/";
   };
@@ -4080,24 +4080,24 @@ final: prev:
 
   harpoon = buildVimPlugin {
     pname = "harpoon";
-    version = "2023-10-10";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "harpoon";
-      rev = "c1aebbad9e3d13f20bedb8f2ce8b3a94e39e424a";
-      sha256 = "0wqxg31z7gi7ap8r0057lpadywx3d245ghlljr6mkmp0jz3waad5";
+      rev = "581da797f9d66485f841525af596255270c2bcf5";
+      sha256 = "1fnxjwsrsm0qdf9a20nfxy58dy1dv8l70w4ipqn4lh0hd36ziacr";
     };
     meta.homepage = "https://github.com/ThePrimeagen/harpoon/";
   };
 
   haskell-tools-nvim = buildNeovimPlugin {
     pname = "haskell-tools.nvim";
-    version = "2023-11-26";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "8bfbba643d908e8757d591cf01e2241dd46b0858";
-      sha256 = "05np6ahzf6mk6ksfak12y7iwgfkrpkwhgf366bqlbk236g3k7sk0";
+      rev = "b345179204a3c4fd38b8d7699989d51d7d6febfe";
+      sha256 = "1yzcap9drf9nl2ygmwl8b8napfx8fkx4wmrrhazb1p25921srs0m";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -4271,12 +4271,12 @@ final: prev:
 
   hotpot-nvim = buildVimPlugin {
     pname = "hotpot.nvim";
-    version = "2023-10-20";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "hotpot.nvim";
-      rev = "eb5531b5f6285656408d1ed07b4d9bcc8067bad4";
-      sha256 = "0yl1l11dp58mg3bfk42ydcc7s2fxnnz6nlkkc09kxmdf4gxwr3wc";
+      rev = "05d9325e14ee1af9114b5c4586d1b200e75ccac9";
+      sha256 = "1ffhx1i9p7a13k6qmpry507ypk45sff6api5nnnc709bd7360743";
     };
     meta.homepage = "https://github.com/rktjmp/hotpot.nvim/";
   };
@@ -4391,12 +4391,12 @@ final: prev:
 
   inc-rename-nvim = buildVimPlugin {
     pname = "inc-rename.nvim";
-    version = "2023-11-26";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "smjonas";
       repo = "inc-rename.nvim";
-      rev = "14922a84777702244a499b43134b9d04e640cbcd";
-      sha256 = "161gh780mxm8vfvdbfxbbvww36byx4zxhw0simvx2cqfxfik3gi0";
+      rev = "a48c7cec5c4f00d7438dce5fadb55f4d715ef9f2";
+      sha256 = "08qwjv7dwgs03dvv7dxgm4hqrcsvvbn1r3f4xkj1g3ppr9pzqhva";
     };
     meta.homepage = "https://github.com/smjonas/inc-rename.nvim/";
   };
@@ -4439,12 +4439,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPlugin {
     pname = "indent-blankline.nvim";
-    version = "2023-10-30";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "29be0919b91fb59eca9e90690d76014233392bef";
-      sha256 = "0z8n9d6f4qiq8m4ai1r2xz90955cp6cikqprq74ivfch3icrzdi1";
+      rev = "dbd90bb689ff10d21fee6792eb8928f0584b5860";
+      sha256 = "1fbx8l5m09qyis4d767gmmwa9rgify6vwjvj3b1jqfzhlz1fmd24";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -4860,12 +4860,12 @@ final: prev:
 
   leap-nvim = buildVimPlugin {
     pname = "leap.nvim";
-    version = "2023-10-22";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "leap.nvim";
-      rev = "b6ae80f8fc9993638608fc1a51c6ab0eeb12618c";
-      sha256 = "19nffffmczlqfsgjs10hqs9abgbygiv0ns64apk7gzf5anjaj0z1";
+      rev = "d55acc28ecc1f3ab3c396afd1f8b11a239285d9b";
+      sha256 = "0g4savdihdh15lddh5yj8vq5py9flzl59dqc93w6yx2kvj1r9ad2";
     };
     meta.homepage = "https://github.com/ggandor/leap.nvim/";
   };
@@ -5016,12 +5016,12 @@ final: prev:
 
   lightspeed-nvim = buildVimPlugin {
     pname = "lightspeed.nvim";
-    version = "2022-10-21";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "lightspeed.nvim";
-      rev = "299eefa6a9e2d881f1194587c573dad619fdb96f";
-      sha256 = "1697plp2f6r5vmayi4xw23lj69pc31r3zh3p07rzxgl2ir4zrj1z";
+      rev = "fcc72d8a4d5f4ebba62d8a3a0660f88f1b5c3b05";
+      sha256 = "1006047i88h1sad2xdi6h26vy13wnh4mnsdqqp4gpvh2sg6avnd5";
     };
     meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
   };
@@ -5279,12 +5279,12 @@ final: prev:
 
   lspsaga-nvim = buildVimPlugin {
     pname = "lspsaga.nvim";
-    version = "2023-11-21";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "lspsaga.nvim";
-      rev = "d3dfaea0125315110ea720c337ab88aa451d75e7";
-      sha256 = "07bm8gvzx68cdy7jkhva3caqjqazrh5hnhr3yi1qa6g1vlmnb0f7";
+      rev = "e9f08958e5f8410cadaa6388844788aedec5f78a";
+      sha256 = "1rhrjh36nlwrms9ikd3vfmvf1lh5m8wqx79n82g68lkaxch6g8v1";
     };
     meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
   };
@@ -5325,14 +5325,14 @@ final: prev:
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
-  luasnip = buildVimPlugin {
+  luasnip = buildNeovimPlugin {
     pname = "luasnip";
-    version = "2023-11-28";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "1def35377854535bb3b0f4cc7a33c083cdb12571";
-      sha256 = "1g34ivzymgv214rpmwcmv91l4gp29q4r6cbv8xszzvxmc7dxcgkr";
+      rev = "f03089854a8e15594a01562fa7192d0009a6fbe7";
+      sha256 = "1ghr6h14004gydf5gjxny4szb0v9brydv1j8rd3x1z87m0jp7hk6";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
@@ -5436,24 +5436,24 @@ final: prev:
 
   mason-lspconfig-nvim = buildVimPlugin {
     pname = "mason-lspconfig.nvim";
-    version = "2023-11-28";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason-lspconfig.nvim";
-      rev = "41674c9d50f23cfa3e11f0ca964eb9100c2a8922";
-      sha256 = "030vyd0n45kd9j33kb20v8kx9pg66702525gnjbcrv5a8npldm1q";
+      rev = "4eb8e15e3c0757303d4c6dea64d2981fc679e990";
+      sha256 = "0ng3zhxcxdkpwd4zy17yl51h7bhknd3qv8j6rkbq1js237zv027p";
     };
     meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/";
   };
 
   mason-tool-installer-nvim = buildVimPlugin {
     pname = "mason-tool-installer.nvim";
-    version = "2023-10-10";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "WhoIsSethDaniel";
       repo = "mason-tool-installer.nvim";
-      rev = "e4f34741daa9cf95de68a603d3e7a6844a69fdf0";
-      sha256 = "1pk19mlssn6f4pqm2j0kf9841nmxd0scphhrrd02w81gmsr912zh";
+      rev = "8b70e7f1e0a4119c1234c3bde4a01c241cabcc74";
+      sha256 = "1jxk8hz4p84f725f35hdkqnk6dnkanly86k89n7p551qwjs21mv0";
     };
     meta.homepage = "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/";
   };
@@ -5556,12 +5556,12 @@ final: prev:
 
   mini-nvim = buildVimPlugin {
     pname = "mini.nvim";
-    version = "2023-11-28";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "964fab7fecd14f66a69a96162f8aa816480690fd";
-      sha256 = "1vxbjidpxhjbrbhg5kl4x4dcsn77nfybzbnlq4yjcpcsrmf8ms5i";
+      rev = "6d1cbcaec421b3768088b4047e78ce22e5503b99";
+      sha256 = "1924d432sym9qbp2q9h9gj5ky81vnxq1y4zzfrg5ay76clplaa95";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
@@ -6036,12 +6036,12 @@ final: prev:
 
   neogit = buildVimPlugin {
     pname = "neogit";
-    version = "2023-11-30";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "NeogitOrg";
       repo = "neogit";
-      rev = "1ab1504ab87016e1d12b8f23543532a3006adb3b";
-      sha256 = "147k8rxcqqp85l1mjklak0bfzbwn2gkxkm4ykw01srkzy5jlhdwp";
+      rev = "d0e87541130b2cf62d7f8a54487ef99560232fb6";
+      sha256 = "16mmrhn83k8jrjavxbzq5ql32q2c9jqdgfx3a6hd2iv810y664qi";
     };
     meta.homepage = "https://github.com/NeogitOrg/neogit/";
   };
@@ -6108,12 +6108,12 @@ final: prev:
 
   neorg = buildVimPlugin {
     pname = "neorg";
-    version = "2023-11-28";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "f4466457396717d10d2d235d019e0a80e1770087";
-      sha256 = "07gs0hdgy7q5sq3cj29jc8qlwsjmr74hqgy0l38pljbqxajigsww";
+      rev = "bf3daa2229c60f92f48ac6d7db3049b65fd01371";
+      sha256 = "0si90zng5x0p6qcrzzib8gifbxxw3m3sqbh22jiwwdjxwr3vhy9d";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -6253,12 +6253,12 @@ final: prev:
 
   neotest-haskell = buildVimPlugin {
     pname = "neotest-haskell";
-    version = "2023-11-26";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "c028b2c02d3ee749d8b485162ed2318cc241185f";
-      sha256 = "0w9xci72fdyya9lpsr159p4zyknscsxfjys5dr06s44ncj5mv12g";
+      rev = "51729f549b048890bb9d76b502c63a0a2ba29556";
+      sha256 = "0myx63bpb23wai2fc8zcjx9dsq8l1jysgp1al2wxgqmn8k3b26vl";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
@@ -6337,12 +6337,12 @@ final: prev:
 
   neotest-rust = buildVimPlugin {
     pname = "neotest-rust";
-    version = "2023-11-21";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "rouge8";
       repo = "neotest-rust";
-      rev = "46428d9013023f516a61274a78b0cee87fb7e8bc";
-      sha256 = "0k6fqifyxa0m01jrxv9yxv6rzval36j1dps2awbccna0mxjjgjhp";
+      rev = "48c1e146ed0eb775fef6aca75903baf3cedadc01";
+      sha256 = "1dsxhs05qcrq8kwz9y34a3vx5mvpd2j4k40qj9lcnfz0y2171h2z";
     };
     meta.homepage = "https://github.com/rouge8/neotest-rust/";
   };
@@ -6373,12 +6373,12 @@ final: prev:
 
   neotest-vitest = buildVimPlugin {
     pname = "neotest-vitest";
-    version = "2023-06-23";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "marilari88";
       repo = "neotest-vitest";
-      rev = "41bf2f6b743f2ac5c5e9bd0949cee77ca7f2372c";
-      sha256 = "0bz6h0mh8cyjf2xdnykyiijwmw9vgwvlb9nfzzjvxba8nqzgb4rq";
+      rev = "15972c4791b3d47df82311047835803a072c1da6";
+      sha256 = "0l6x6b2flzr4591002srin58bls26gk58p3rqr8mjcjrm3znbsya";
     };
     meta.homepage = "https://github.com/marilari88/neotest-vitest/";
   };
@@ -6445,12 +6445,12 @@ final: prev:
 
   nerdtree = buildVimPlugin {
     pname = "nerdtree";
-    version = "2023-11-15";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "0cb04e9245b000daf32f04aae5f606011a6aa3b5";
-      sha256 = "1rws27wc2l3qahvbfd5b2i1js9kwldxxsfsn0abah96q2m1i3q85";
+      rev = "9ec27d45a863aeb82fea56cebcb8a75a4e369fc9";
+      sha256 = "17j2q0vdplxz4qjkx140mgxjcj1dghzkz1ijb3vc3i2hl5qfmba1";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
@@ -6589,12 +6589,12 @@ final: prev:
 
   no-neck-pain-nvim = buildVimPlugin {
     pname = "no-neck-pain.nvim";
-    version = "2023-11-29";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "shortcuts";
       repo = "no-neck-pain.nvim";
-      rev = "0311b1654098b28c29a99007844dfa4bfe315b0a";
-      sha256 = "01rx8pf5qkga3x4y9902pwkjh0xifgba4xk6wfr0akn1slwd1g11";
+      rev = "968ad52ee472e950d104303c4c0bfcd3de664fe1";
+      sha256 = "0lqhi74fjvsflx642g04k2zf8i8dxfycmgd7hh0nkc6012b1ma3x";
     };
     meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/";
   };
@@ -6613,12 +6613,12 @@ final: prev:
 
   none-ls-nvim = buildVimPlugin {
     pname = "none-ls.nvim";
-    version = "2023-11-29";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "nvimtools";
       repo = "none-ls.nvim";
-      rev = "3a4826687da4310af379515086d71faca4d21288";
-      sha256 = "1fcln8z31cmmg0dclp8gwiy74pfa4ylic74pdf4mcsaqbm5blkr4";
+      rev = "7bf88cd3b37a411fdacfdca1745408a77a420493";
+      sha256 = "0ynlhj5vskv6laixs79lh334fxxkm0yx1vcgc9vyk9cr19v5109n";
     };
     meta.homepage = "https://github.com/nvimtools/none-ls.nvim/";
   };
@@ -6673,12 +6673,12 @@ final: prev:
 
   nui-nvim = buildNeovimPlugin {
     pname = "nui.nvim";
-    version = "2023-11-26";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "257dccc43b4badc735978f0791d216f7d665b75a";
-      sha256 = "144qi4wvbcycnypyvyc2kk9fadr1bsv7j3zx5h3s0sffy8x4lz0m";
+      rev = "1d044afde83e73c56de8e176615a4a6e7c8cf0e3";
+      sha256 = "08s5anr34vkc8zcac3v7f6rgyankcr0k34y8hkrmc554ak4f1cqq";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
@@ -6925,12 +6925,12 @@ final: prev:
 
   nvim-coverage = buildVimPlugin {
     pname = "nvim-coverage";
-    version = "2023-10-25";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "andythigpen";
       repo = "nvim-coverage";
-      rev = "13e357d4a2a230070c64ede61252225f0b7d3b5e";
-      sha256 = "11pw7izbb9yim3vcijxljhp3l7z39ycscjgqrl5wxaj4j2jvaldw";
+      rev = "cf4b5c61dfac977026a51a2bcad9173c272986ce";
+      sha256 = "08lnmizw9jsncmqs1fl1ilmlh3gq0v0bdal1v30i7qhfigr5wsgc";
     };
     meta.homepage = "https://github.com/andythigpen/nvim-coverage/";
   };
@@ -6949,12 +6949,12 @@ final: prev:
 
   nvim-dap = buildVimPlugin {
     pname = "nvim-dap";
-    version = "2023-11-29";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "13ce59d4852be2bb3cd4967947985cb0ceaff460";
-      sha256 = "0xk8cqb4i5bq4bw5l3idgci8i5r5is4i7451rbxpnzxnb1xj0agf";
+      rev = "d7749eb3d9933a75d2244820308ce442f646c7ae";
+      sha256 = "0plpvvzbhvs9yhjb7413zcypzdmr9437vkn3mybnd93k8rfwsly9";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
@@ -7200,12 +7200,12 @@ final: prev:
 
   nvim-lint = buildVimPlugin {
     pname = "nvim-lint";
-    version = "2023-11-29";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "6f589cb93560581dc2a3b9693658afe865e5649e";
-      sha256 = "0zrqdcz604azwm7342vvqbdxvpqd40rr50qcfj1lfrlxxj46qgb1";
+      rev = "f20f35756e74b91c0b4340d01fee22422bdffefa";
+      sha256 = "1whq19qifw8w6bkm8sl80h0krjyrpsd9zyyq0skfl3bbsn31vlsv";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -7236,12 +7236,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPlugin {
     pname = "nvim-lspconfig";
-    version = "2023-11-30";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "fcf153fbbf1facd16a71d46b92be8be495123a9f";
-      sha256 = "13h9nx74afvabrn51b4wjb6k6svidbmwq5czl03p3rp37lywkxcw";
+      rev = "694aaec65733e2d54d393abf80e526f86726c988";
+      sha256 = "16nrq7gxnk33qgpmcnjd8yq738vd7qpr2x77v7xf84qp2443nbkx";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -7464,12 +7464,12 @@ final: prev:
 
   nvim-scrollview = buildVimPlugin {
     pname = "nvim-scrollview";
-    version = "2023-11-30";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "1b11329ece4cd25884b56c129aedc23ff1665d92";
-      sha256 = "0n7mqssagmq40glaiybmf8d5664665q32d9kbgz00jgnnj9n93ay";
+      rev = "7eb9030662fad8bfbc1df2c6cfc165aa4a8904b2";
+      sha256 = "1245qk1s00svnh57ijamziam8lm3d419a5vf3wry9fdf2lm01j1g";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -7596,12 +7596,12 @@ final: prev:
 
   nvim-treesitter = buildVimPlugin {
     pname = "nvim-treesitter";
-    version = "2023-11-30";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "b41bbcbb9a2c5543d3bfa4cf7e2b0948a5f61ce6";
-      sha256 = "1nsfxaxi2wkbs32kfxsbd23m2xx0fickffjgcprj079bgl64z47k";
+      rev = "0791b5ebb590a2d44e20640c52679df1fc42e8ab";
+      sha256 = "1a6sy62hwb1kclm6czbi1m9vv2xcp7pswgsafrxff96ahkqnbrrm";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -7656,12 +7656,12 @@ final: prev:
 
   nvim-treesitter-textobjects = buildVimPlugin {
     pname = "nvim-treesitter-textobjects";
-    version = "2023-11-30";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "aa7935c60aff501580b7f4872a7082e615ea5be3";
-      sha256 = "0j9fv564l4k1jf29h0mb5vnm2h1x3balrpnmchav527ylcaxhgmm";
+      rev = "ec1c5bdb3d87ac971749fa6c7dbc2b14884f1f6a";
+      sha256 = "1kdfwihk8ci827aq4w6xv7vn2740qpmh6dk892cd6yi0ab4zxvxn";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
@@ -7727,12 +7727,12 @@ final: prev:
 
   nvim-ufo = buildVimPlugin {
     pname = "nvim-ufo";
-    version = "2023-11-28";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-ufo";
-      rev = "c1e75fb93a5413c73221e23d549cc9f208d592fb";
-      sha256 = "0kwxqrbb0n12bq3iqidk8i67ag4g6rdnqzk5gcjjvm6qlvvylggz";
+      rev = "9fa77fb7e4365a053a5303b773aaf5eaf806d1f4";
+      sha256 = "07idni9j2yzv5wxc1amg8w3sbrmn07kqsdm4wza5pz6j444fjksm";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/";
   };
@@ -7871,12 +7871,12 @@ final: prev:
 
   oil-nvim = buildVimPlugin {
     pname = "oil.nvim";
-    version = "2023-11-24";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "oil.nvim";
-      rev = "e89a8f8adeef2dfab851fd056d38ee7afc97c249";
-      sha256 = "1f5201yb7kqbggn0dgpl9p5mnxdxg6ffpfmzih7rzzkp4fhn2vb4";
+      rev = "58340545c6a01e5e9f7966df448714a156db137a";
+      sha256 = "0s3yd9336yqk8s8f07lf0195pn5q0ij1qphp0yaisrpxbfarl63p";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/oil.nvim/";
@@ -8040,12 +8040,12 @@ final: prev:
 
   otter-nvim = buildVimPlugin {
     pname = "otter.nvim";
-    version = "2023-10-25";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "jmbuhr";
       repo = "otter.nvim";
-      rev = "b25537cc5c836f1a485176757da954b775a5b914";
-      sha256 = "0vccwqhhsr4qqwf9jkv0pv1s06qf3mxsgzn67lkwimjsg58ksz9p";
+      rev = "9a3db06bf3abadafb93279648317984ca789b888";
+      sha256 = "16pgvzb2xyak2zxmi0r65w979jzim4m595ag0lcsgr4wvm0vz8j2";
     };
     meta.homepage = "https://github.com/jmbuhr/otter.nvim/";
   };
@@ -8666,12 +8666,12 @@ final: prev:
 
   rest-nvim = buildNeovimPlugin {
     pname = "rest.nvim";
-    version = "2023-11-30";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "rest-nvim";
       repo = "rest.nvim";
-      rev = "45b52200b4a7712a68579d9d13945427e2764725";
-      sha256 = "0xn6yw5yiwj4fmq1yw0cc30g5qcn6sw3v7wps41h1dbrgickj9ld";
+      rev = "84e81a19ab24ccf05c9233d34d4dfce61c233abe";
+      sha256 = "1z6wkszd84xnqfhb1s59rggcipl9dmyxw21yrksg1q7hhcgq1abb";
     };
     meta.homepage = "https://github.com/rest-nvim/rest.nvim/";
   };
@@ -8774,12 +8774,12 @@ final: prev:
 
   rustaceanvim = buildNeovimPlugin {
     pname = "rustaceanvim";
-    version = "2023-11-28";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "rustaceanvim";
-      rev = "bdd7155a18249f39a014115a8832ee770e503812";
-      sha256 = "0abwc7shfqcr31m7gaaxq07ym24s6gz8mkc49f5j0idcfj4k4n1v";
+      rev = "7c1089ad1e35198911992c09cfd24dc15a225985";
+      sha256 = "1lillfkjq0jhq7d5w12brj4x8l88vj168ypihjigngm4gabwrr8f";
     };
     meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
   };
@@ -9015,12 +9015,12 @@ final: prev:
 
   smart-splits-nvim = buildVimPlugin {
     pname = "smart-splits.nvim";
-    version = "2023-10-17";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "smart-splits.nvim";
-      rev = "c8a9173d70cbbd1f6e4a414e49e31df2b32a1362";
-      sha256 = "0hxy3fv6qp7shwh9wgf20q5i8ba2pzng2dd1dvw27aabibk43ba3";
+      rev = "c970c7a3cc7ba635fd73d43c81b40f04c00f5058";
+      sha256 = "0ri4b6q4qqy1cwyhknysnldbrg2yx4cfi2ddgvnn6snq8jhkmjbw";
     };
     meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
   };
@@ -9256,12 +9256,12 @@ final: prev:
 
   srcery-vim = buildVimPlugin {
     pname = "srcery-vim";
-    version = "2023-11-13";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "srcery-colors";
       repo = "srcery-vim";
-      rev = "ffe6b8e975bb2f218cbeb3e785d2f12d9f88b37d";
-      sha256 = "0nwk81y9j5ljjm3k19kf1zmscdxiis4mwan026wv7cqp7f9qhxlr";
+      rev = "e605292319d9c964281d840ac87d3deddfc06559";
+      sha256 = "0b5zj2ilvhkv01n480gd6zylnhc3yhq9p7gcj0f12fn9yfihqdnf";
     };
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
@@ -9727,24 +9727,24 @@ final: prev:
 
   telescope-file-browser-nvim = buildVimPlugin {
     pname = "telescope-file-browser.nvim";
-    version = "2023-11-25";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-file-browser.nvim";
-      rev = "d7c453396a043c265bef1227920628e7b811ff30";
-      sha256 = "1sws2d7gh37ra86nk1pn2j0sgqc7nlaiaqg0z34vxv1qrc1wc33q";
+      rev = "98101b22402cd6d1c7e9a7e0c4718bfc98cb1625";
+      sha256 = "13bnzdsmahk8phcxzm8d343mzmbxahrr34fkn8ylxy1shxbw6mw6";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/";
   };
 
   telescope-frecency-nvim = buildVimPlugin {
     pname = "telescope-frecency.nvim";
-    version = "2023-11-24";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "ca5fa5326fc2b2ebd3269176594c4341ad720ac5";
-      sha256 = "16pqbn4i23j3ynzii5cszfqwrbz54cd8d99hqkqamvsm36q9m5b7";
+      rev = "de410701811f4142315ce89183256a969a08ff9d";
+      sha256 = "1wcbkqlwy6k8jsz0sqk0mqhlm6d0j8l3rdxw8vlwby00fbscs0is";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
@@ -9848,12 +9848,12 @@ final: prev:
 
   telescope-project-nvim = buildVimPlugin {
     pname = "telescope-project.nvim";
-    version = "2023-11-06";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-project.nvim";
-      rev = "5460c6c60d48618c5c746e5b1cad4c3e8262fdae";
-      sha256 = "0mj5sg698idk6lsaw6fd56j206vf0djv5sgaszjm4vffgc7666sb";
+      rev = "1aaf16580a614601a7f7077d9639aeb457dc5559";
+      sha256 = "1g03lnl79245d0vn7ydda4aixd2qbv9kcxc584msk7jwbc58r2xn";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-project.nvim/";
   };
@@ -9969,12 +9969,12 @@ final: prev:
 
   telescope-nvim = buildNeovimPlugin {
     pname = "telescope.nvim";
-    version = "2023-11-27";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "84c5a71d825b6687a55aed6f41e98b92fd8e5454";
-      sha256 = "0a0kj9ixsqny8jxfialq4wxxg7rgl97cgp1cgv5n0lnyw3xkbgbi";
+      rev = "3f5f165447d797576206e3b9bd555ea8db85b6f2";
+      sha256 = "0y9b69cah627dd3298gyizim8qfgq3wp9ajlz1pah0m43xcylkfm";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -10017,12 +10017,12 @@ final: prev:
 
   term-edit-nvim = buildVimPlugin {
     pname = "term-edit.nvim";
-    version = "2023-11-12";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "chomosuke";
       repo = "term-edit.nvim";
-      rev = "aa3369a562b816ff0cec4fa6eddc9c32ac472710";
-      sha256 = "07fd9xqg2ykqnsqb9w6jqypzzl8klih5d67gi42jdawj3n4ijvcs";
+      rev = "e04f69d5828c6e6a4d81c34f75f18762fad50372";
+      sha256 = "1kh70ivd6p9f3xsf09iwyy94gvkzprv08ln52sh44n90s1yr4ql4";
     };
     meta.homepage = "https://github.com/chomosuke/term-edit.nvim/";
   };
@@ -10077,12 +10077,12 @@ final: prev:
 
   text-case-nvim = buildVimPlugin {
     pname = "text-case.nvim";
-    version = "2023-11-30";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "johmsalas";
       repo = "text-case.nvim";
-      rev = "1680642717be198d5b16fc4de9b8080d77111270";
-      sha256 = "1hi1j2xnbqy0zmm06zfgwmikl6hphgkhbnhvdagap9h4nifpn9vz";
+      rev = "ebe3650101a3505044559f71ec4ea4c789292164";
+      sha256 = "01lqj5x0976lpik80i7riy5r8q498ki1nkkmc716xgnbl7021b0g";
     };
     meta.homepage = "https://github.com/johmsalas/text-case.nvim/";
   };
@@ -10438,12 +10438,12 @@ final: prev:
 
   unison = buildVimPlugin {
     pname = "unison";
-    version = "2023-11-30";
+    version = "2023-12-01";
     src = fetchFromGitHub {
       owner = "unisonweb";
       repo = "unison";
-      rev = "d56c7c469b52448164d078e26802b2e3071b17b0";
-      sha256 = "1xflz3f5qm5injgzag7c4l2k4pflhv4knd5gpsxryzyxizlxkadl";
+      rev = "ebf9874e64a8c96041af727d2aa17033a8718f03";
+      sha256 = "1ndm54q3qg2hhcnh1bncjpmknczmngy9n6jgbr2wrxsvrsq8mb06";
     };
     meta.homepage = "https://github.com/unisonweb/unison/";
   };
@@ -12888,12 +12888,12 @@ final: prev:
 
   vim-just = buildVimPlugin {
     pname = "vim-just";
-    version = "2023-11-16";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "NoahTheDuke";
       repo = "vim-just";
-      rev = "fda7259fc3b16af1d16e467c1482aac3bcc4df9a";
-      sha256 = "0rfj8hknzwjp59x51wf99j4ymda4gnc2ly1rl3185dw4p3v7n4ph";
+      rev = "4e3c322be764cde80eab73c8e03c7ac410eb0e19";
+      sha256 = "0ypbbk72h5l9j89i2hsjkcr95is1jd9gsnhchqw6zy8ip7qqa6sb";
     };
     meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
   };
@@ -12924,12 +12924,12 @@ final: prev:
 
   vim-lastplace = buildVimPlugin {
     pname = "vim-lastplace";
-    version = "2023-08-24";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "farmergreg";
       repo = "vim-lastplace";
-      rev = "bb3191b134ade9d1f01014e17c3df91e8911dd5c";
-      sha256 = "0sv05v6q1lkc4xklqly0hf2p4w4schan3gvcf1s6493697hvcc4h";
+      rev = "aaaf3dc8bbe496c3242a4b4635154ccc9414d357";
+      sha256 = "0wz59f6hmkdnv8hfgws20z0qrlpvfkxmdx4943fm1i3hmcdhyi1g";
     };
     meta.homepage = "https://github.com/farmergreg/vim-lastplace/";
   };
@@ -14461,12 +14461,12 @@ final: prev:
 
   vim-slime = buildVimPlugin {
     pname = "vim-slime";
-    version = "2023-11-04";
+    version = "2023-12-02";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "ce6ffa7d5f3d5faf739c07c0409b5e2035c279cc";
-      sha256 = "04w9ybcfc4cyb5ipp8ccpr35r4ja45xasgn149bkqxv747j9hvhp";
+      rev = "a532203bcd7af7f5e571c07b60bba7287076dc19";
+      sha256 = "0jfzah18mzh0iszi6k86k4y571j6jjhg3cyy9ivxcybacppaf2id";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -15591,12 +15591,12 @@ final: prev:
 
   vimtex = buildVimPlugin {
     pname = "vimtex";
-    version = "2023-11-30";
+    version = "2023-12-03";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "941485f8b046ac00763dad2546f0701e85e5e02c";
-      sha256 = "0yxr0k9nflczrgdk1k9dybic4v1yg6pxrnnyg2nnwy14n54z7f2x";
+      rev = "911987d8d65ade51311d512ac98cf39f89a309ea";
+      sha256 = "025qbjs685s0yf9vddwyxz0vc2h1j33mj5s7w2xm8f10a8j5skfz";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -15877,6 +15877,18 @@ final: prev:
     meta.homepage = "https://github.com/tweekmonster/wstrip.vim/";
   };
 
+  wtf-nvim = buildVimPlugin {
+    pname = "wtf.nvim";
+    version = "2023-11-11";
+    src = fetchFromGitHub {
+      owner = "piersolenski";
+      repo = "wtf.nvim";
+      rev = "03775272c9ba88cbaae1d1802078a3f751969350";
+      sha256 = "04xknhrmjvywdxfmng35i8cibxkcdjmz4wz1nmsr3gc09rddfrr3";
+    };
+    meta.homepage = "https://github.com/piersolenski/wtf.nvim/";
+  };
+
   xptemplate = buildVimPlugin {
     pname = "xptemplate";
     version = "2022-09-08";
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index b58346340309..f2122db806eb 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -506,12 +506,12 @@
   };
   elm = buildGrammar {
     language = "elm";
-    version = "0.0.0+rev=debe14f";
+    version = "0.0.0+rev=0ae8d47";
     src = fetchFromGitHub {
       owner = "elm-tooling";
       repo = "tree-sitter-elm";
-      rev = "debe14fad40a8100c679d95c66f599b48111742c";
-      hash = "sha256-tB03/AqoYIMyWFGv3nKlGY/EjNV1/IQyXQsC+0M51V8=";
+      rev = "0ae8d475281a25e9d7ab1068a952ff9a1615c0df";
+      hash = "sha256-MCvzk5sJiA/JgQqI6fyVnjy5mA7bwmZvzWwdKS0PDQc=";
     };
     meta.homepage = "https://github.com/elm-tooling/tree-sitter-elm";
   };
@@ -1921,12 +1921,12 @@
   };
   rbs = buildGrammar {
     language = "rbs";
-    version = "0.0.0+rev=192eda4";
+    version = "0.0.0+rev=23c69a4";
     src = fetchFromGitHub {
       owner = "joker1007";
       repo = "tree-sitter-rbs";
-      rev = "192eda46774fd0281cdd41d372d5b4da86148780";
-      hash = "sha256-Bxgh7K3j0oPvZw7JX3kXFmaEAEKefB0A9ATmrbvXrB8=";
+      rev = "23c69a4fa9803abc9d87b235ca88d52418250041";
+      hash = "sha256-tdxx+feI0UIHkk1eS5VrIuYvOZWpuWF3NEioqrnZ+30=";
     };
     meta.homepage = "https://github.com/joker1007/tree-sitter-rbs";
   };
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix b/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
index ce74644b951e..0b1832494c2d 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -1637,6 +1637,10 @@ self: super: {
     dependencies = with self; [ vimwiki fzf-vim ];
   };
 
+  wtf-nvim = super.wtf-nvim.overrideAttrs {
+    dependencies = with self; [ nui-nvim ];
+  };
+
   YankRing-vim = super.YankRing-vim.overrideAttrs {
     sourceRoot = ".";
   };
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names b/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 7c8ce8972656..cc57f5408dbf 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -1336,6 +1336,7 @@ https://github.com/vim-scripts/wombat256.vim/,,
 https://github.com/lukaszkorecki/workflowish/,,
 https://github.com/andrewferrier/wrapping.nvim/,HEAD,
 https://github.com/tweekmonster/wstrip.vim/,,
+https://github.com/piersolenski/wtf.nvim/,HEAD,
 https://github.com/drmingdrmer/xptemplate/,,
 https://github.com/guns/xterm-color-table.vim/,,
 https://github.com/HerringtonDarkholme/yats.vim/,,
diff --git a/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix b/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix
index 1b804de2b304..a1eb75f8de82 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix
@@ -906,8 +906,8 @@ let
         mktplcRef = {
           name = "vscode-markdownlint";
           publisher = "DavidAnson";
-          version = "0.52.0";
-          sha256 = "sha256-Y8qkcNEvJ/yzT8PDeErRzKGxYBNKKfbNNsJVaFDeIV4=";
+          version = "0.53.0";
+          sha256 = "sha256-ApCX636M51zN9obFqrUHmaJB3YoFmJPQfjKEWf9bosk=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
@@ -1234,8 +1234,8 @@ let
         mktplcRef = {
           name = "elixir-ls";
           publisher = "JakeBecker";
-          version = "0.17.5";
-          sha256 = "sha256-2iOyLNLMQ6Snm0gvv7Yl6von/A9UTfLYrH5l1PoJwUc=";
+          version = "0.17.10";
+          sha256 = "sha256-4/B70DyNlImz60PSTSL5CKihlOJen/tR1/dXGc3s1ZY=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog";
diff --git a/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix b/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
index c994e53f37ef..3b2ab09d1b53 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
@@ -5,7 +5,7 @@ assert lib.versionAtLeast python3.version "3.5";
 let
   publisher = "vadimcn";
   pname = "vscode-lldb";
-  version = "1.9.2";
+  version = "1.10.0";
 
   vscodeExtUniqueId = "${publisher}.${pname}";
   vscodeExtPublisher = publisher;
@@ -15,7 +15,7 @@ let
     owner = "vadimcn";
     repo = "vscode-lldb";
     rev = "v${version}";
-    hash = "sha256-6QmYRlSv8jY3OE3RcYuZt+c3z6GhFc8ESETVfCfF5RI=";
+    hash = "sha256-ExSS5HxDmJJtYypRYJNz7nY0D50gjoDBc4CnJMfgVw8=";
   };
 
   # need to build a custom version of lldb and llvm for enhanced rust support
@@ -25,7 +25,7 @@ let
     pname = "${pname}-adapter";
     inherit version src;
 
-    cargoHash = "sha256-Qq2igtH1XIB+NAEES6hdNZcMbEmaFN69qIJ+gTYupvQ=";
+    cargoHash = "sha256-e/Jki/4pCs0qzaBVR4iiUhdBFmWlTZYREQkuFSoWYFo=";
 
     nativeBuildInputs = [ makeWrapper ];
 
@@ -84,6 +84,12 @@ in stdenv.mkDerivation {
 
   patches = [ ./cmake-build-extension-only.patch ];
 
+  postPatch = ''
+    # temporary patch for forgotten version updates
+    substituteInPlace CMakeLists.txt \
+      --replace "1.9.2" ${version}
+  '';
+
   postConfigure = ''
     cp -r ${nodeDeps}/lib/node_modules .
   '';
diff --git a/nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix b/nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix
index 3c0805e270b4..f26a12884222 100644
--- a/nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/dosbox-x/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , alsa-lib
 , AudioUnit
 , autoreconfHook
@@ -36,6 +37,21 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-YNYtYqcpTOx4xS/LXI53h3S+na8JVpn4w8Dhf4fWNBQ=";
   };
 
+  patches = [
+    # 2 patches which fix stack smashing when launching Windows 3.0
+    # Remove when version > 2023.10.06
+    (fetchpatch {
+      name = "0001-dosbox-x-Attempt-to-fix-graphical-palette-issues-added-by-TTF-fix.patch";
+      url = "https://github.com/joncampbell123/dosbox-x/commit/40bf135f70376b5c3944fe2e972bdb7143439bcc.patch";
+      hash = "sha256-9whtqBkivYVYaPObyTODtwcfjaoK+rLqhCNZ7zVoiGI=";
+    })
+    (fetchpatch {
+      name = "0002-dosbox-x-Fix-Sid-Meiers-Civ-crash.patch";
+      url = "https://github.com/joncampbell123/dosbox-x/compare/cdcfb554999572e758b81edf85a007d398626b78..ac91760d9353c301e1da382f93e596238cf6d336.patch";
+      hash = "sha256-G7HbUhYEi6JJklN1z3JiOTnWLuWb27bMDyB/iGwywuY=";
+    })
+  ];
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -66,6 +82,9 @@ stdenv.mkDerivation (finalAttrs: {
     Cocoa
   ];
 
+  # Tests for SDL_net.h for modem & IPX support, not automatically picked up due to being in SDL2 subdirectory
+  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2_net}/include/SDL2";
+
   configureFlags = [ "--enable-sdl2" ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/emulators/dosbox/default.nix b/nixpkgs/pkgs/applications/emulators/dosbox/default.nix
index d0c9d8450e2b..f17d3a783ba9 100644
--- a/nixpkgs/pkgs/applications/emulators/dosbox/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/dosbox/default.nix
@@ -50,6 +50,9 @@ stdenv.mkDerivation rec {
     libGLU
   ]);
 
+  # Tests for SDL_net.h for modem & IPX support, not automatically picked up due to being in SDL subdirectory
+  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL_net}/include/SDL";
+
   hardeningDisable = [ "format" ];
 
   configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
diff --git a/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix b/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix
index 24997cbdcdc4..640bbcd50acd 100644
--- a/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix
+++ b/nixpkgs/pkgs/applications/emulators/yuzu/sources.nix
@@ -1,19 +1,19 @@
 # Generated by ./update.sh - do not update manually!
-# Last updated: 2023-11-05
+# Last updated: 2023-12-02
 {
   compatList = {
-    rev = "e9c4e5da6e5e88e889c87582dfd826d204ca8782";
+    rev = "3447075b5b565adcef1de0b47dd32c33f3c52e75";
     hash = "sha256:1hdsza3wf9a0yvj6h55gsl7xqvhafvbz1i8paz9kg7l49b0gnlh1";
   };
 
   mainline = {
-    version = "1611";
-    hash = "sha256:18rrw63j2zjwakbn99wbzprb1rpmlznl6gb09ay9sq8brxy7zjsv";
+    version = "1639";
+    hash = "sha256:10wj8yrk4q3sq0fqj6qqd45sjsv0ch3ldbxayirzv002lqb62jcy";
   };
 
   ea = {
-    version = "3966";
-    distHash = "sha256:1p60455s0h3dwigxm2lxdfgxgv4l2ibwybisja1khcy4i8lgss03";
-    fullHash = "sha256:1jq2bfbv9a6i3dlqsdgmi87rccvks45iyybxwf8p6rxdjqh4bvl2";
+    version = "4003";
+    distHash = "sha256:1sr79h3v2nlkr114d14bry5bkgniw1kqq2bxjlzr5x9hlvavz710";
+    fullHash = "sha256:0kx8f8h6l86prxm0v3fxmff43d6swmcrvzy5vg54b55zvqm1byr1";
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
index 6350cec90e95..81a34579c5b0 100644
--- a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
@@ -67,11 +67,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "inkscape";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchurl {
     url = "https://inkscape.org/release/inkscape-${version}/source/archive/xz/dl/inkscape-${version}.tar.xz";
-    sha256 = "sha256-Qh4ANf5bOwVKCGXcgjW+P55uLepUGQ2Sa4gKTOBbANg=";
+    sha256 = "sha256-29GETcRD/l4Q0+mohxROX7ciOFL/8ZHPte963qsOCGs=";
   };
 
   # Inkscape hits the ARGMAX when linking on macOS. It appears to be
diff --git a/nixpkgs/pkgs/applications/graphics/krita/default.nix b/nixpkgs/pkgs/applications/graphics/krita/default.nix
index e8e6a2cc9f86..67d9774a35a9 100644
--- a/nixpkgs/pkgs/applications/graphics/krita/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/krita/default.nix
@@ -1,7 +1,7 @@
-{ callPackage, ... } @ args:
+{ callPackage, ... }:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix {
   version = "5.1.5";
   kde-channel = "stable";
   sha256 = "1lx4x4affkbh47b7w5qvahkkr4db0vcw6h24nykak6gpy2z5wxqw";
-})
+}
diff --git a/nixpkgs/pkgs/applications/graphics/krita/generic.nix b/nixpkgs/pkgs/applications/graphics/krita/generic.nix
index ba53a94f7107..8bf6e26ab9d2 100644
--- a/nixpkgs/pkgs/applications/graphics/krita/generic.nix
+++ b/nixpkgs/pkgs/applications/graphics/krita/generic.nix
@@ -9,7 +9,6 @@
 , version
 , kde-channel
 , sha256
-, callPackage
 }:
 
 mkDerivation rec {
@@ -17,7 +16,7 @@ mkDerivation rec {
   inherit version;
 
   src = fetchurl {
-    url = "https://download.kde.org/${kde-channel}/${pname}/${version}/${pname}-${version}.tar.gz";
+    url = "mirror://kde/${kde-channel}/krita/${version}/krita-${version}.tar.gz";
     inherit sha256;
   };
 
diff --git a/nixpkgs/pkgs/applications/graphics/monado/default.nix b/nixpkgs/pkgs/applications/graphics/monado/default.nix
index c8c5e5abb37d..d6109079f2ae 100644
--- a/nixpkgs/pkgs/applications/graphics/monado/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/monado/default.nix
@@ -48,16 +48,16 @@
 , serviceSupport ? true
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "monado";
-  version = "unstable-2023-08-22";
+  version = "unstable-2023-11-09";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "monado";
     repo = "monado";
-    rev = "4cc68f07c0f3c2fee57b01dde28a02e314d3bee6";
-    sha256 = "sha256-VibdOSA/b4RmwwwXrwhivuiukNK10YazYF/p+YnqRZ8=";
+    rev = "e983eecd73b1b91d2dfb356e1bc054e9202b2a7f";
+    hash = "sha256-a4ukfmJbDkhr7P3NMTfbuhXjyOta3WCc5gswX7KUAw0=";
   };
 
   nativeBuildInputs = [
@@ -135,16 +135,13 @@ stdenv.mkDerivation rec {
   patches = [
     # We don't have $HOME/.steam when building
     ./force-enable-steamvr_lh.patch
-
-    # A recent (as of August 2023) SteamVR Beta has upgraded a driver interface which is incompatible with Monado
-    ./steamvr_lh-use-old-interface.patch
   ];
 
   meta = with lib; {
     description = "Open source XR runtime";
     homepage = "https://monado.freedesktop.org/";
     license = licenses.boost;
-    maintainers = with maintainers; [ expipiplus1 prusnak ];
+    maintainers = with maintainers; [ Scrumplex expipiplus1 prusnak ];
     platforms = platforms.linux;
     mainProgram = "monado-cli";
   };
diff --git a/nixpkgs/pkgs/applications/graphics/monado/steamvr_lh-use-old-interface.patch b/nixpkgs/pkgs/applications/graphics/monado/steamvr_lh-use-old-interface.patch
deleted file mode 100644
index d5194956e114..000000000000
--- a/nixpkgs/pkgs/applications/graphics/monado/steamvr_lh-use-old-interface.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp b/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp
-index 24b69fd..5b3a5ca 100644
---- a/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp
-+++ b/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp
-@@ -138,7 +138,7 @@ Context::setup_hmd(const char *serial, vr::ITrackedDeviceServerDriver *driver)
- 	vr::EVRInitError err = driver->Activate(0);
- 	VERIFY(err == vr::VRInitError_None, std::to_string(err).c_str());
- 
--	auto *display = static_cast<vr::IVRDisplayComponent *>(driver->GetComponent(vr::IVRDisplayComponent_Version));
-+	auto *display = static_cast<vr::IVRDisplayComponent *>(driver->GetComponent("IVRDisplayComponent_003"));
- 	VERIFY(display, "IVRDisplayComponent is null");
- #undef VERIFY
- 
diff --git a/nixpkgs/pkgs/applications/graphics/normcap/default.nix b/nixpkgs/pkgs/applications/graphics/normcap/default.nix
deleted file mode 100644
index 820ca9903394..000000000000
--- a/nixpkgs/pkgs/applications/graphics/normcap/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-# From NUR https://github.com/nix-community/nur-combined/blob/6bddae47680482383b5769dd3aa7d82b88e6cbc8/repos/renesat/pkgs/normcap/default.nix
-
-{
-  lib,
-  stdenv,
-  python3,
-  fetchFromGitHub,
-  tesseract4,
-  leptonica,
-  wl-clipboard
-}:
-python3.pkgs.buildPythonApplication rec {
-  pname = "normcap";
-  version = "0.4.4";
-  format = "pyproject";
-
-  src = fetchFromGitHub {
-    owner = "dynobo";
-    repo = "normcap";
-    rev = "v${version}";
-    hash = "sha256-dShtmoqS9TC3PHuwq24OEOhYfBHGhDCma8Du8QCkFuI=";
-  };
-
-  buildInputs = [
-    wl-clipboard
-  ];
-
-  nativeBuildInputs = with python3.pkgs; [
-    poetry-core
-  ];
-
-  propagatedBuildInputs = with python3.pkgs; [
-    tesseract4
-    leptonica
-    pyside6
-
-    # Test
-    toml
-    pytest-qt
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml --replace 'PySide6-Essentials = "6.5.1"' ""
-  '';
-
-  meta = with lib; {
-    description = "OCR powered screen-capture tool to capture information instead of images";
-    homepage = "https://dynobo.github.io/normcap/";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ cafkafk ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix b/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
index 00d41bf9b293..51c0f306f92d 100644
--- a/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, fftw
+{ stdenv, lib, fetchFromGitHub, fftw
 , qtbase, qmake, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/applications/graphics/upscayl/default.nix b/nixpkgs/pkgs/applications/graphics/upscayl/default.nix
index a892a0263a1e..1b6ea4857791 100644
--- a/nixpkgs/pkgs/applications/graphics/upscayl/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/upscayl/default.nix
@@ -4,11 +4,11 @@
   lib,
 }: let
   pname = "upscayl";
-  version = "2.9.1";
+  version = "2.9.4";
 
   src = fetchurl {
     url = "https://github.com/upscayl/upscayl/releases/download/v${version}/upscayl-${version}-linux.AppImage";
-    hash = "sha256-x7tNGWXrg4hkr4d5QK4Z/cOmGGdbWLJ/GIASZjmiL4w=";
+    hash = "sha256-H9/z0NIqGGJPipioWvv67vIFQ46RZr5+ycm3NQrO9ZE=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/misc/binocle/default.nix b/nixpkgs/pkgs/applications/misc/binocle/default.nix
index 84d43f5eb989..02b1b4c7b5d5 100644
--- a/nixpkgs/pkgs/applications/misc/binocle/default.nix
+++ b/nixpkgs/pkgs/applications/misc/binocle/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "binocle";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-L4l8Gl7Ok/TWqHjNujPx8Qk3UWebs0SgOQNyBNtpnZo=";
+    sha256 = "sha256-WAk7xIrCRfVofn4w+gP5E3wnSZbXm/6MZWlNmtoLm20=";
   };
 
-  cargoHash = "sha256-9d0MNQ7jEJKpGbjVtl1XBoOBEVNKDgFouSMrcZ7tXNU=";
+  cargoHash = "sha256-ZmY88WcoQiDLSXkBbnE/+jPX713qh6n+nyNXeWWTBKA=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/nixpkgs/pkgs/applications/misc/chrysalis/default.nix b/nixpkgs/pkgs/applications/misc/chrysalis/default.nix
index f5c6da15bd99..bb445422d030 100644
--- a/nixpkgs/pkgs/applications/misc/chrysalis/default.nix
+++ b/nixpkgs/pkgs/applications/misc/chrysalis/default.nix
@@ -35,13 +35,13 @@ in appimageTools.wrapType2 rec {
         $out/share/applications/Chrysalis.desktop \
         --replace 'Exec=Chrysalis' 'Exec=${pname}'
 
-    cp -r ${appimageContents}/usr/share/icons $out/share
+    install -Dm444 ${appimageContents}/usr/share/icons/hicolor/256x256/chrysalis.png -t $out/share/pixmaps
   '';
 
   meta = with lib; {
     description = "A graphical configurator for Kaleidoscope-powered keyboards";
     homepage = "https://github.com/keyboardio/Chrysalis";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ aw ];
     platforms = [ "x86_64-linux" ];
     mainProgram = pname;
diff --git a/nixpkgs/pkgs/applications/misc/clipcat/default.nix b/nixpkgs/pkgs/applications/misc/clipcat/default.nix
index c09d1f7e09ea..c7f5c265127f 100644
--- a/nixpkgs/pkgs/applications/misc/clipcat/default.nix
+++ b/nixpkgs/pkgs/applications/misc/clipcat/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "clipcat";
-  version = "0.8.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "xrelkd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2Sh8VakHeAotdw1kkpRgNtLj1gnH1Ei7OC9INF/lkZo=";
+    hash = "sha256-6L6u8inHkiEz7lp3T0a237z3JQwGDWKXtTBVNIKct64=";
   };
 
-  cargoHash = "sha256-cgyvIu56Ab3h6tgyQxtGsR0UPxgL65vb7fUAc0lMj5Q=";
+  cargoHash = "sha256-uzIqIGjCZEmChM3uVAnAp7eTIznTLXW/4t+NVoryjtk=";
 
   nativeBuildInputs = [
     protobuf
diff --git a/nixpkgs/pkgs/applications/misc/collision/default.nix b/nixpkgs/pkgs/applications/misc/collision/default.nix
index a77d0b34a75e..f550e48ba954 100644
--- a/nixpkgs/pkgs/applications/misc/collision/default.nix
+++ b/nixpkgs/pkgs/applications/misc/collision/default.nix
@@ -13,16 +13,16 @@
 }:
 crystal.buildCrystalPackage rec {
   pname = "Collision";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "GeopJr";
     repo = "Collision";
     rev = "v${version}";
-    hash = "sha256-YNMtiMSzDqBlJJTUntRtL6oXg+IuyAobQ4FYcwOdOas=";
+    hash = "sha256-Qxe4ILDdfYfxu95EvKRTvkAOgDIZDiLymBlZouBWn0M=";
   };
   patches = [ ./make.patch ];
-  shardsFile = ./collision-shards.nix;
+  shardsFile = ./shards.nix;
 
   # Crystal compiler has a strange issue with OpenSSL. The project will not compile due to
   # main_module:(.text+0x6f0): undefined reference to `SSL_library_init'
diff --git a/nixpkgs/pkgs/applications/misc/collision/collision-shards.nix b/nixpkgs/pkgs/applications/misc/collision/shards.nix
index 0c2725504154..e7e93781eb68 100644
--- a/nixpkgs/pkgs/applications/misc/collision/collision-shards.nix
+++ b/nixpkgs/pkgs/applications/misc/collision/shards.nix
@@ -4,16 +4,6 @@
     rev = "v1.0.0";
     sha256 = "1y27m4170rr4532j56grzhwbz8hj6z7j3zfkd0jnfwnsxclks1kc";
   };
-  non-blocking-spawn = {
-    url = "https://github.com/geopjr/non-blocking-spawn.git";
-    rev = "v1.0.5";
-    sha256 = "139gr87zlw0k9kf6pf9k2d88aa9x3kcnfg34qpbqrwsrck7708za";
-  };
-  version_from_shard = {
-    url = "https://github.com/hugopl/version_from_shard.git";
-    rev = "v1.2.5";
-    sha256 = "0xizj0q4rd541rwjbx04cjifc2gfx4l5v6q2y7gmd0ndjmkgb8ik";
-  };
   gio = {
     url = "https://github.com/hugopl/gio.cr.git";
     rev = "v0.1.0";
@@ -21,22 +11,27 @@
   };
   gtk4 = {
     url = "https://github.com/hugopl/gtk4.cr.git";
-    rev = "v0.13.0";
-    sha256 = "0xsrcsh5qvwm9l7cywxpw49rfv94mkkqcliws4zkhxgr9isnirbm";
+    rev = "v0.15.0";
+    sha256 = "100j5k4sfc2dpj3nplzjcaxw1bwy3hsy5cw93asg00kda9h8dbb1";
   };
   harfbuzz = {
     url = "https://github.com/hugopl/harfbuzz.cr.git";
-    rev = "v0.1.0";
-    sha256 = "1lcb778b4k34sqxg979fpl425bbzf2gikjf2m5aj6x1fzxn46jg0";
+    rev = "v0.2.0";
+    sha256 = "06wgqxwyib5416yp53j2iwcbr3bl4jjxb1flm7z103l365par694";
+  };
+  libadwaita = {
+    url = "https://github.com/geopjr/libadwaita.cr.git";
+    rev = "cffabb56e911d2a90c53c2fd14d6bd08bf5ac446";
+    sha256 = "0gcq04vgxg0vff9fcalgzq9phq0y76diihkzhlfn91bdxwkx7rl3";
+  };
+  non-blocking-spawn = {
+    url = "https://github.com/geopjr/non-blocking-spawn.git";
+    rev = "v1.0.5";
+    sha256 = "139gr87zlw0k9kf6pf9k2d88aa9x3kcnfg34qpbqrwsrck7708za";
   };
   pango = {
     url = "https://github.com/hugopl/pango.cr.git";
     rev = "v0.2.0";
     sha256 = "0dl3qrhi2ybylmvzx1x5gsznp2pcdkc50waxrljxwnf5avn8ixsf";
   };
-  libadwaita = {
-    url = "https://github.com/geopjr/libadwaita.cr.git";
-    rev = "203737fc96bb48e1a710cb68e896d2c5b9c1a6e5";
-    sha256 = "11c2knxncjnwg4cgppfllxwgli1hf6sjyyx4ii8rgmnbird6xcmh";
-  };
 }
diff --git a/nixpkgs/pkgs/applications/misc/fluidd/default.nix b/nixpkgs/pkgs/applications/misc/fluidd/default.nix
index bb47e1a251ad..2f3c3b99dd41 100644
--- a/nixpkgs/pkgs/applications/misc/fluidd/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fluidd/default.nix
@@ -2,12 +2,12 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "fluidd";
-  version = "1.26.0";
+  version = "1.26.3";
 
   src = fetchurl {
     name = "fluidd-v${version}.zip";
     url = "https://github.com/cadriel/fluidd/releases/download/v${version}/fluidd.zip";
-    sha256 = "sha256-Y0d3TgSLrxA2kPWlHrNC8GlEcD7s4VZR2YZlderZ3gI=";
+    sha256 = "sha256-42Whp2U6gq8vOjmQnU4Yy8EBsQ21av7wIQhMVFmiFfU=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix b/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix
index c1cd58a50e47..defaad0d2c97 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix
@@ -20,14 +20,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-firmware";
-  version = "43.2";
+  version = "45.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "gnome-firmware";
     rev = version;
-    sha256 = "oplypNSj028cVBn+eJxNm5pJltp7Cw5Oto/L39pI0vA=";
+    sha256 = "sha256-KVyxOl7RdL80ZiEyiT+XGa/6Ss2g+5y+LIrR9TSRE+I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/itd/default.nix b/nixpkgs/pkgs/applications/misc/itd/default.nix
index 945e8978d82a..ce95eb69bc4f 100644
--- a/nixpkgs/pkgs/applications/misc/itd/default.nix
+++ b/nixpkgs/pkgs/applications/misc/itd/default.nix
@@ -8,10 +8,10 @@ buildGoModule rec {
   pname = "itd";
   version = "1.1.0";
 
-  # https://gitea.arsenm.dev/Arsen6331/itd/tags
+  # https://gitea.elara.ws/Elara6331/itd/tags
   src = fetchFromGitea {
-    domain = "gitea.arsenm.dev";
-    owner = "Arsen6331";
+    domain = "gitea.elara.ws";
+    owner = "Elara6331";
     repo = "itd";
     rev = "v${version}";
     hash = "sha256-95/9Qy0HhrX+ORuv6g1T4/Eq1hf539lYG5fTkLeY6B0=";
@@ -34,7 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "itd is a daemon to interact with the PineTime running InfiniTime";
-    homepage = "https://gitea.arsenm.dev/Arsen6331/itd";
+    homepage = "https://gitea.elara.ws/Elara6331/itd";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mindavi raphaelr ];
diff --git a/nixpkgs/pkgs/applications/misc/khard/default.nix b/nixpkgs/pkgs/applications/misc/khard/default.nix
index bc779fb9b65f..0654974eb939 100644
--- a/nixpkgs/pkgs/applications/misc/khard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/khard/default.nix
@@ -1,12 +1,12 @@
 { lib, python3, fetchPypi, khard, testers }:
 
 python3.pkgs.buildPythonApplication rec {
-  version = "0.19.0";
+  version = "0.19.1";
   pname = "khard";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5ki+adfz7m0+FbxC9+IXHLn8oeLKLkASuU15lyDATKQ=";
+    sha256 = "sha256-WfMKDaPD2j6wT02+GO5HY5E7aF2Z7IQY/VdKiMSRxJA=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/applications/misc/lscolors/default.nix b/nixpkgs/pkgs/applications/misc/lscolors/default.nix
index cf1258dfff38..99c330fa6804 100644
--- a/nixpkgs/pkgs/applications/misc/lscolors/default.nix
+++ b/nixpkgs/pkgs/applications/misc/lscolors/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lscolors";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-C7aM9jlChRwPvYnBjLbV+sfbTHDVVi6evIR5PvT9jN4=";
+    hash = "sha256-gLtQIqdU6syTo+Z+P59kIpwEtiGCr/DOom9+jA8Uq98=";
   };
 
-  cargoHash = "sha256-93FAEhl0WFXRq1SaoLRNDd/fy7NyDbeRFgIqUWAssQE=";
+  cargoHash = "sha256-OA9iYGwKElvRaKoyelH9w5ZphoLKrbk8VXwZ2NyLLQY=";
 
   buildFeatures = [ "nu-ansi-term" ];
 
diff --git a/nixpkgs/pkgs/applications/misc/rsibreak/default.nix b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
index 9f765793dc9a..eb0944fd2a03 100644
--- a/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
@@ -4,15 +4,12 @@
   knotifyconfig, kidletime, kwindowsystem, ktextwidgets, kcrash
 }:
 
-let
+mkDerivation rec {
   pname = "rsibreak";
-  version = "0.12";
-  revision = ".13";
-in mkDerivation rec {
-  name = "rsibreak-${version}${revision}";
+  version = "0.12.13";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${version}/${name}.tar.xz";
+    url = "mirror://kde/stable/rsibreak/${version}/rsibreak-${version}.tar.xz";
     sha256 = "N0C+f788fq5yotSC54H2K4WDc6PnGi8Nh/vXL4v0fxo=";
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/vym/default.nix b/nixpkgs/pkgs/applications/misc/vym/default.nix
index 6afadb1b5c79..306d9995ae38 100644
--- a/nixpkgs/pkgs/applications/misc/vym/default.nix
+++ b/nixpkgs/pkgs/applications/misc/vym/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , cmake
 , pkg-config
-, qmake
 , qtbase
 , qtscript
 , qtsvg
diff --git a/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
index 9662b1b54e0d..65ce8374f357 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
@@ -1,15 +1,15 @@
 {
-  "packageVersion": "120.0-1",
+  "packageVersion": "120.0.1-1",
   "source": {
-    "rev": "120.0-1",
-    "sha256": "1wms3kyimmfzl64rbphgap2sm87lwkl0pr24rx4rxf3px3bq97f3"
+    "rev": "120.0.1-1",
+    "sha256": "0kvfa97m7dq1b030d62zblpb445fkbgb2w19bckxwxv7mx36awy7"
   },
   "settings": {
-    "rev": "b587388bdbe63511c478cb8b5f82c2e80040414c",
-    "sha256": "03cw6wh7358pgld4qgs534pl2lnfvwc0xl2yyb3n3pyvmba6cyrp"
+    "rev": "9dac02778ebed3e2614da52c36b7cede45f4f602",
+    "sha256": "0flk6v50cyiaajzcz9gm1hig00vkw9xdbjd5rdxidrmhcqxy24vy"
   },
   "firefox": {
-    "version": "120.0",
-    "sha512": "31d5f9e1d4173280c8de6d9b8551bc6bba5e2c49b84f944f50d42002d5b39c2fb743bc130f26c81160388a102b8301b94a0a378ecdfa6f943860f971a860df8c"
+    "version": "120.0.1",
+    "sha512": "dd0e3eb234d58c39431d1f100834ef4bcc8cfb89ff471a37b948eda4dd3874b63b1979cda39a0db0dd3b4a579b5f09a7d2d1f39d26fd9f2b8d5635e4b8738b6c"
   }
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
index 02e000cf4e65..785c03755c13 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
@@ -41,7 +41,7 @@
 , at-spi2-core
 , autoPatchelfHook
 , wrapGAppsHook
-, qt5
+, qt6
 , proprietaryCodecs ? false
 , vivaldi-ffmpeg-codecs
 }:
@@ -51,11 +51,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "opera";
-  version = "100.0.4815.47";
+  version = "105.0.4970.21";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    hash = "sha256-746imLXqxzf9zK2QEVRuWkLA6m+HHXBYZFUwTD0HEVc=";
+    hash = "sha256-fgbR7qAWKaZgxMeMo1/le8g1/zSoTl+5iIJeKl1Rc3Y=";
   };
 
   unpackPhase = "dpkg-deb -x $src .";
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
     dpkg
     autoPatchelfHook
     wrapGAppsHook
-    qt5.wrapQtAppsHook
+    qt6.wrapQtAppsHook
   ];
 
   buildInputs = [
@@ -103,6 +103,7 @@ stdenv.mkDerivation rec {
     nss
     pango
     stdenv.cc.cc.lib
+    qt6.qtbase
   ];
 
   runtimeDependencies = [
@@ -128,6 +129,9 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp -r usr $out
     cp -r usr/share $out/share
+
+    # we already using QT6, autopatchelf wants to patch this as well
+    rm $out/usr/lib/x86_64-linux-gnu/opera/libqt5_shim.so
     ln -s $out/usr/bin/opera $out/bin/opera
   '';
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/bin.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/bin.nix
index 2ea777728f95..aa2337f86d70 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/palemoon/bin.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/bin.nix
@@ -9,6 +9,7 @@
 , gtk2-x11
 , withGTK3 ? true
 , gtk3
+, libglvnd
 , libXt
 , libpulseaudio
 , makeDesktopItem
@@ -18,7 +19,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "palemoon-bin";
-  version = "32.5.0";
+  version = "32.5.1";
 
   src = fetchzip {
     urls = [
@@ -26,9 +27,9 @@ stdenv.mkDerivation (finalAttrs: {
       "https://rm-us.palemoon.org/release/palemoon-${finalAttrs.version}.linux-x86_64-gtk${if withGTK3 then "3" else "2"}.tar.xz"
     ];
     hash = if withGTK3 then
-      "sha256-1MJ5K9Zc/BHeQwwlq3XyUV8XTFEpPytNyTnsDpE1tBI="
+      "sha256-hWqL/WoRRigw8cNeJImOQLM8hewyS3PYNGr2WYP+cMk="
     else
-      "sha256-xXunZTqoc2A+ilosRUUluxDwewD3xwITF5nb5Lbyv7Y=";
+      "sha256-dlBnXP3WUgQ0spkLRowfzMcPArhGfpowsvwgCA+kvUA=";
   };
 
   preferLocalBuild = true;
@@ -147,6 +148,7 @@ stdenv.mkDerivation (finalAttrs: {
     gappsWrapperArgs+=(
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
         ffmpeg
+        libglvnd
         libpulseaudio
       ]}"
     )
diff --git a/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
index 4abcb0321d8c..41dd4cbb08b9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
@@ -8,13 +8,13 @@
 buildGoModule rec {
   pname = "bosh-cli";
 
-  version = "7.4.1";
+  version = "7.5.0";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-T8fPD0i15U/PzDOAVP0sifLYFHr76jD1o7q+nn+N0cY=";
+    sha256 = "sha256-LWfS722V0ubh4QaUNuGwrvFsVAzA9Hd5xLlDfTG0PBs=";
   };
   vendorHash = null;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
index 4104c40bf045..b116f566c5ce 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "driftctl";
-  version = "0.39.0";
+  version = "0.40.0";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "driftctl";
     rev = "v${version}";
-    sha256 = "sha256-1i5x05q0Mo3E3ExM9qONRtQCH3nO7pXyNqOaAtz7qYE=";
+    sha256 = "sha256-IDKfW0NCEsgKXpHA7SwkHjMeoGAIYITlDVR/vI/b9hk=";
   };
 
-  vendorHash = "sha256-H/+LORl7Bjy1NshjtWDzj13YCrlQQgtBr4+Rz/rxQkY=";
+  vendorHash = "sha256-JFvC9PReziktHSXbltGkGHjVR8hTM1hPJ0OqrZQXRQM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/eks-node-viewer/default.nix b/nixpkgs/pkgs/applications/networking/cluster/eks-node-viewer/default.nix
index 80538f0f111c..33c350b6bcb9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/eks-node-viewer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/eks-node-viewer/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eks-node-viewer";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kfX9BzARDWUOBIu67j60K38uwkRELxd/gXtEHOHAXS8=";
+    sha256 = "sha256-BK84hxbwZSJDO5WoyborJnVBS5pB69jTMU1csgiT0sw=";
   };
 
-  vendorHash = "sha256-7axI7R8cTntc1IcOwVPmPj8MHeIvhbnkYKQdqu5fZOU=";
+  vendorHash = "sha256-EJAL5jNftA/g5H6WUMBJ98EyRp7QJ1C53EKr6GRz71I=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
index 924052c2d9b0..dbd04f026dfa 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -12,9 +12,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.31.2";
+  version = "1.32.0";
 
-  vendorHash = "sha256-5ChPdSIRI+Q3OLW+joukMpIFbUjU4TKpXT4wAARVVP8=";
+  vendorHash = "sha256-MzB+my1NwvZx9qfojuOlTHmuY6CyLFlrgr4UEuC5FBk=";
 
   doCheck = false;
 
@@ -22,7 +22,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "sha256-Ha0liXc2oXJ3dLty1veN5xN5BUKIiNXe8NTGqWDbTD0=";
+    sha256 = "sha256-2EWaMpcr4F1wRzIP1rPg1a/Sjd1x+oo2ee90k4Ie8cU=";
   };
 
   nativeBuildInputs = [ installShellFiles pkg-config which makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index 0d2a26478e7c..96e6d9eec7d2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-PR3vhNfY84vKQaAMKmPPmY7kK3BRxELAC34NfMYXQPk=";
+    hash = "sha256-jjYSvY7NT9G/tcsM+9qHnsL81QKItyVMZZWuD2mpln0=";
   };
 
-  vendorHash = "sha256-qLxUAICm/SGy2iHAbg+12xmId+P335dFyjltYlB45iw=";
+  vendorHash = "sha256-O48QzyQLkt7T9j+CKQG8TcHlmtS+ykoMoCamsEswPjk=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
index 826be33128a1..1bf5980acb4a 100644
--- a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "4.6.1";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = "dnscontrol";
     rev = "v${version}";
-    sha256 = "sha256-FJxr3uq2f8jDG3g06SRO8sTIc6qHqSAOJVYHr4Ug1ag=";
+    hash = "sha256-FcEpUNFPwottpuIsO53voucKULTkWOdbDgEXKYLb9LQ=";
   };
 
-  vendorHash = "sha256-O7uuUkS9kX0TdevSg1mrrPMVl4kMZW3rwoIVb/eaNiM=";
+  vendorHash = "sha256-cW6urAJ3H30HY4Q7JLWFsQebg6YhdGSBgICWMl85v9U=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
index acc6f8948fc0..45c7e556a71d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -109,6 +109,7 @@ stdenv.mkDerivation rec {
     description = "Desktop client for the Matrix protocol";
     homepage = "https://github.com/Nheko-Reborn/nheko";
     license = licenses.gpl3Plus;
+    mainProgram = "nheko";
     maintainers = with maintainers; [ ekleog fpletz ];
     platforms = platforms.all;
     # Should be fixable if a higher clang version is used, see:
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 683b1d7550cb..c545ac79a242 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -1,8 +1,8 @@
 { callPackage }: builtins.mapAttrs (pname: attrs: callPackage ./generic.nix (attrs // { inherit pname; })) {
   signal-desktop = {
     dir = "Signal";
-    version = "6.39.1";
-    hash = "sha256-dDbUpxXpQg1SoVyYO33Nczqf+WmWDPNE6cmw792wjGY=";
+    version = "6.40.0";
+    hash = "sha256-vyXHlycPSyEyv938IKzGM6pdERHHerx2CLY/U+WMrH4=";
   };
   signal-desktop-beta = {
     dir = "Signal Beta";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
index d069e0a1f446..d7cf9a2d2c1e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
@@ -80,14 +80,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "4.11.8";
+  version = "4.12.2";
 
   src = fetchFromGitHub {
     owner = "telegramdesktop";
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-VuMcqbGo1t1J7I8kXdqsw/01Mth9YKEbiy8aNtM3azw=";
+    hash = "sha256-jIOJ7iFF2SMZOBTVzc0ECEZrkXPY060jk3fxt7kIWSg=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix
index dddbfb799396..1964925924cd 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation {
   pname = "tg_owt";
-  version = "unstable-2023-11-01";
+  version = "unstable-2023-11-17";
 
   src = fetchFromGitHub {
     owner = "desktop-app";
     repo = "tg_owt";
-    rev = "71cce98c5fb1d9328892d55f70db711afd5b1aef";
-    sha256 = "sha256-cEow6Hrp00nchfNtuABsLfD07KtlErWxh0NFv2uPQdQ=";
+    rev = "76a3513d7f25d6623d92463fbe6470d9001b66a8";
+    sha256 = "sha256-nubFELIHxn9yQiFGDqcYtVN9rjXizzkiV07ypWY9v48=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
index 6ca9bdc0e764..89405033bcac 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
@@ -6,20 +6,21 @@
 , openssl
 , CoreServices
 , Security
+, SystemConfiguration
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "twitch-tui";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "Xithrius";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-oqsLqmyLrvb8u9cj68OemUfunbP98/BZjmoGl1Mctrk=";
+    hash = "sha256-UPcJHuqDnyg2U3aNtd44dqt2iC2iLkR4wzsOjAByISw=";
   };
 
-  cargoHash = "sha256-DEHMF6sTH3BF8lqOV5G4F3+Tsafrhzr0YLqSgV3gq9I=";
+  cargoHash = "sha256-HFBCLYjrDAPU2EZ1NQ+A0mAFo5jvj79Ghge6+D1PBAg=";
 
   nativeBuildInputs = [
     pkg-config
@@ -30,6 +31,7 @@ rustPlatform.buildRustPackage rec {
   ] ++ lib.optionals stdenv.isDarwin [
     CoreServices
     Security
+    SystemConfiguration
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
index 952ca75bb6af..96854c3cdb62 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
@@ -36,14 +36,14 @@ let
   in
     assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
     stdenv.mkDerivation rec {
-      version = "4.1.1";
+      version = "4.1.2";
       pname = "weechat";
 
       hardeningEnable = [ "pie" ];
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.xz";
-        hash = "sha256-d0I4YU2OY+TT1ac6bLZA7Hb+BsyYK4eoySNlFXkndnU=";
+        hash = "sha256-mpuRD752i7nefHrJRPXbjyM4M/NFsuUF4W7G7zXv+7U=";
       };
 
       # Why is this needed? https://github.com/weechat/weechat/issues/2031
diff --git a/nixpkgs/pkgs/applications/networking/juju/default.nix b/nixpkgs/pkgs/applications/networking/juju/default.nix
index 17d80e496e31..1a914a065b09 100644
--- a/nixpkgs/pkgs/applications/networking/juju/default.nix
+++ b/nixpkgs/pkgs/applications/networking/juju/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "juju";
-  version = "3.2.3";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "juju";
     repo = "juju";
     rev = "juju-${version}";
-    sha256 = "sha256-sUlM4bLy/kluZmGOzMACz92GG46XYKicNPP5k2FPSGA=";
+    sha256 = "sha256-8VSSTeN4a1zvMi4L4dR3q+kWKgYq8Jg1jDvFjEBD7jI=";
   };
 
-  vendorHash = "sha256-mPEixXVuxAqgkBoNqIYnZaFJynHJsnmamaHqyh/svwQ=";
+  vendorHash = "sha256-3hZywUpJe6g8IujbK0hcp12S6OKswLj/YYJGuPG06Es=";
 
   # Disable tests because it attempts to use a mongodb instance
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 896c2a6c269c..b7167d261b21 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -44,11 +44,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.50.1";
+  version = "3.50.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "5CA240m4Mrkbprxg+Zxkte0AjrDrM7wipU8p9I7r1Zg=";
+    sha256 = "D4M1214mmFRHi01tlHLu2s0Kiev3+0+DdWJDMMqqcSA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix b/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix
index aa2853d3bd05..dfff1eeed239 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libutp";
-  version = "unstable-2023-10-16";
+  version = "unstable-2023-11-14";
 
   src = fetchFromGitHub {
     # Use transmission fork from post-3.4-transmission branch
     owner = "transmission";
     repo = pname;
-    rev = "2589200eac82fc91b65979680e4b3c026dff0278";
-    hash = "sha256-wsDqdbMWVm3ubTbg5XClEWutJz1irSIazVLFeCyAAL4=";
+    rev = "52645d6d0fb16009e11d2f84469d2e43b7b6b48a";
+    hash = "sha256-pcPVkDEEtriN9zlEcVFKwKhhh51wpJGxYlcu7bH1RkI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
index 4ed0bad26c6f..1943a395bd7b 100644
--- a/nixpkgs/pkgs/applications/networking/pjsip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "pjsip";
-  version = "2.13.1";
+  version = "2.14";
 
   src = fetchFromGitHub {
     owner = finalAttrs.pname;
     repo = "pjproject";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-R1iKIkWyNCRV2PjQgTqKmJYUgHAZrREanD60Jz6MY1Y=";
+    hash = "sha256-PWCeIvnBAOqbcNYPhIY7hykdvLzoD9lssSViCCPNT68=";
   };
 
   patches = [
@@ -35,12 +35,19 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optional stdenv.isLinux alsa-lib
     ++ lib.optionals stdenv.isDarwin [ AppKit CoreFoundation Security ];
 
+  env = lib.optionalAttrs (stdenv.cc.libcxx != null) {
+    # work around https://github.com/NixOS/nixpkgs/issues/166205
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  } // lib.optionalAttrs stdenv.cc.isClang {
+    CXXFLAGS = "-std=c++11";
+  } // lib.optionalAttrs stdenv.isDarwin {
+    NIX_CFLAGS_LINK = "-headerpad_max_install_names";
+  };
+
   preConfigure = ''
     export LD=$CC
   '';
 
-  NIX_CFLAGS_LINK = lib.optionalString stdenv.isDarwin "-headerpad_max_install_names";
-
   postBuild = lib.optionalString pythonSupport ''
     make -C pjsip-apps/src/swig/python
   '';
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch b/nixpkgs/pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch
new file mode 100644
index 000000000000..8645e0dbfa7d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch
@@ -0,0 +1,25 @@
+From 29b58e29c813d9bf0b31139a19b556614c28638e Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:26:22 +0100
+Subject: [PATCH 1/6] Fix flask 2.3 issue
+
+'Blueprint' object has no attribute 'before_app_first_request'
+---
+ powerdnsadmin/routes/index.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/powerdnsadmin/routes/index.py b/powerdnsadmin/routes/index.py
+index d56ce61..2176bd6 100644
+--- a/powerdnsadmin/routes/index.py
++++ b/powerdnsadmin/routes/index.py
+@@ -46,7 +46,6 @@ index_bp = Blueprint('index',
+                      url_prefix='/')
+ 
+ 
+-@index_bp.before_app_first_request
+ def register_modules():
+     global google
+     global github
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch b/nixpkgs/pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch
new file mode 100644
index 000000000000..9b442d5f3d7d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch
@@ -0,0 +1,34 @@
+From c60a9658fe2ca429327680fbffb86f609d98c52c Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:27:49 +0100
+Subject: [PATCH 2/6] Remove cssrewrite filter
+
+---
+ powerdnsadmin/assets.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/powerdnsadmin/assets.py b/powerdnsadmin/assets.py
+index d46d431..3c582be 100644
+--- a/powerdnsadmin/assets.py
++++ b/powerdnsadmin/assets.py
+@@ -13,7 +13,7 @@ css_login = Bundle(
+     'node_modules/@fortawesome/fontawesome-free/css/all.css',
+     'node_modules/icheck/skins/square/blue.css',
+     'node_modules/admin-lte/dist/css/adminlte.css',
+-    filters=('rcssmin', 'cssrewrite'),
++    filters=('rcssmin'),
+     output='generated/login.css')
+ 
+ js_login = Bundle(
+@@ -37,7 +37,7 @@ css_main = Bundle(
+     'node_modules/admin-lte/dist/css/adminlte.css',
+     'custom/css/custom.css',
+     'node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker.css',
+-    filters=('rcssmin', 'cssrewrite'),
++    filters=('rcssmin'),
+     output='generated/main.css')
+ 
+ js_main = Bundle(
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch b/nixpkgs/pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch
new file mode 100644
index 000000000000..c9956ae22f75
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch
@@ -0,0 +1,25 @@
+From 8c320a34bcca6dc2c1b423a1445235bf178b653e Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:31:02 +0100
+Subject: [PATCH 3/6] Fix flask-migrate 4.0 compatibility
+
+See https://github.com/PowerDNS-Admin/PowerDNS-Admin/issues/1376
+---
+ migrations/env.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/migrations/env.py b/migrations/env.py
+index 4742e14..739d753 100755
+--- a/migrations/env.py
++++ b/migrations/env.py
+@@ -73,7 +73,6 @@ def run_migrations_online():
+     context.configure(connection=connection,
+                       target_metadata=target_metadata,
+                       process_revision_directives=process_revision_directives,
+-                      render_as_batch=config.get_main_option('sqlalchemy.url').startswith('sqlite:'),
+                       **current_app.extensions['migrate'].configure_args)
+ 
+     try:
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch b/nixpkgs/pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch
new file mode 100644
index 000000000000..b1aaa8c531d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch
@@ -0,0 +1,26 @@
+From 4b4ac26ef1cbb0b5b2354c251b216498325d0411 Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:31:50 +0100
+Subject: [PATCH 4/6] Fix flask-session and powerdns-admin compatibility
+
+flask-session and powerdns-admin both try to add sqlalchemy to flask.
+Reuse the database for flask-session.
+---
+ powerdnsadmin/__init__.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/powerdnsadmin/__init__.py b/powerdnsadmin/__init__.py
+index d447a00..653af33 100755
+--- a/powerdnsadmin/__init__.py
++++ b/powerdnsadmin/__init__.py
+@@ -60,6 +60,7 @@ def create_app(config=None):
+     if 'SESSION_TYPE' in os.environ:
+         app.config['SESSION_TYPE'] = os.environ.get('SESSION_TYPE')
+ 
++    app.config['SESSION_SQLALCHEMY'] = models.base.db
+     sess = Session(app)
+ 
+     # create sessions table if using sqlalchemy backend
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch b/nixpkgs/pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch
new file mode 100644
index 000000000000..b6931c25d546
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch
@@ -0,0 +1,27 @@
+From 3eb1a408758b68543c73d5214b467c2905fbea2a Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:32:36 +0100
+Subject: [PATCH 5/6] Use app context to create routes
+
+Routes creates session database tables, so it needs a context.
+---
+ powerdnsadmin/__init__.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/powerdnsadmin/__init__.py b/powerdnsadmin/__init__.py
+index 653af33..bc6f7df 100755
+--- a/powerdnsadmin/__init__.py
++++ b/powerdnsadmin/__init__.py
+@@ -73,7 +73,8 @@ def create_app(config=None):
+     # Load app's components
+     assets.init_app(app)
+     models.init_app(app)
+-    routes.init_app(app)
++    with app.app_context():
++        routes.init_app(app)
+     services.init_app(app)
+ 
+     # Register filters
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch b/nixpkgs/pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch
new file mode 100644
index 000000000000..dd552cc28403
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch
@@ -0,0 +1,27 @@
+From 86dcc9f308d2ca65704953f1ff9fe043d743e536 Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:33:45 +0100
+Subject: [PATCH 6/6] Register modules before starting
+
+Fixes flask 2.3: 'Blueprint' object has no attribute 'before_app_first_request'
+---
+ run.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/run.py b/run.py
+index 5ffcde3..52e719d 100755
+--- a/run.py
++++ b/run.py
+@@ -1,6 +1,9 @@
+ #!/usr/bin/env python3
+ from powerdnsadmin import create_app
++from .powerdnsadmin.routes.index import register_modules
+ 
+ if __name__ == '__main__':
+     app = create_app()
++    with app.app_context():
++        register_modules()
+     app.run(debug=True, host=app.config.get('BIND_ADDRESS', '127.0.0.1'), port=app.config.get('PORT', '9191'))
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
index 1e89c1b2cb46..61a728d983b3 100644
--- a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
@@ -19,6 +19,10 @@ let
     lima lxml passlib pyasn1 pytimeparse pyyaml jinja2 itsdangerous webcolors werkzeug zipp zxcvbn
   ];
 
+  all_patches = [
+    ./0001-Fix-flask-2.3-issue.patch
+  ];
+
   assets = mkYarnPackage {
     inherit src version;
     packageJSON = ./package.json;
@@ -35,9 +39,9 @@ let
     };
 
     nativeBuildInputs = pythonDeps;
-    patchPhase = ''
-      sed -i -r -e "s|'rcssmin',\s?'cssrewrite'|'rcssmin'|g" powerdnsadmin/assets.py
-    '';
+    patches = all_patches ++ [
+      ./0002-Remove-cssrewrite-filter.patch
+    ];
     buildPhase = ''
       # The build process expects the directory to be writable
       # with node_modules at a specific path
@@ -86,15 +90,15 @@ in stdenv.mkDerivation {
     exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app()" "$@"
   '';
 
+  patches = all_patches ++ [
+    ./0003-Fix-flask-migrate-4.0-compatibility.patch
+    ./0004-Fix-flask-session-and-powerdns-admin-compatibility.patch
+    ./0005-Use-app-context-to-create-routes.patch
+    ./0006-Register-modules-before-starting.patch
+  ];
+
   postPatch = ''
     rm -r powerdnsadmin/static powerdnsadmin/assets.py
-    # flask-migrate 4.0 compatibility: https://github.com/PowerDNS-Admin/PowerDNS-Admin/issues/1376
-    substituteInPlace migrations/env.py --replace "render_as_batch=config.get_main_option('sqlalchemy.url').startswith('sqlite:')," ""
-    # flask-session and powerdns-admin both try to add sqlalchemy to flask.
-    # Reuse the database for flask-session
-    substituteInPlace powerdnsadmin/__init__.py --replace "sess = Session(app)" "app.config['SESSION_SQLALCHEMY'] = models.base.db; sess = Session(app)"
-    # Routes creates session database tables, so it needs a context
-    substituteInPlace powerdnsadmin/__init__.py --replace "routes.init_app(app)" "with app.app_context(): routes.init_app(app)"
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
index 4cc21a2269d6..b1e11510530a 100644
--- a/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib
 , makeWrapper, dpkg, fetchurl, autoPatchelfHook
-, curl, libkrb5, lttng-ust, libpulseaudio, gtk3, openssl_1_1, icu70, webkitgtk, librsvg, gdk-pixbuf, libsoup, glib-networking, graphicsmagick_q16, libva, libusb1, hiredis
+, curl, libkrb5, lttng-ust, libpulseaudio, gtk3, openssl_1_1, icu70, webkitgtk, librsvg, gdk-pixbuf, libsoup, glib-networking, graphicsmagick_q16, libva, libusb1, hiredis, xcbutil
 }:
 
 stdenv.mkDerivation rec {
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     hiredis
     libusb1
     libva
+    xcbutil
   ];
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 03d56274bd79..bf14b0321943 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -5,6 +5,7 @@
 , libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
 , libpulseaudio, pcsclite, glib-networking, llvmPackages_12, opencv4
 , libfaketime
+, libinput, libcap, libjson, libsecret, libcanberra-gtk3
 
 , homepage, version, prefix, hash
 
@@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
       ${homepage}
 
       (if you do not find version ${version} there, try at
-      https://www.citrix.com/downloads/workspace-app/
+      https://www.citrix.com/downloads/workspace-app/)
 
       Once you have downloaded the file, please use the following command and re-run the
       installation:
@@ -80,11 +81,16 @@ stdenv.mkDerivation rec {
     gtk_engines
     heimdal
     krb5
+    libcap
+    libcanberra-gtk3
     libcxx
     libcxxabi
+    libinput
     libjpeg
+    libjson
     libpng12
     libpulseaudio
+    libsecret
     libsoup
     libvorbis
     libxml2
@@ -119,6 +125,8 @@ stdenv.mkDerivation rec {
     xorg.libXrender
     xorg.libXtst
     xorg.libxcb
+    xorg.xprop
+    xorg.xdpyinfo
   ];
 
   installPhase = let
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 2422d7eb8efb..f1b1a83102ac 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -33,6 +33,17 @@ let
       x86hash   = "4a7da238286ae28d7baf0fefa1e7e09d077c8bc56c2bf7bec00da42c331bee59";
       x64suffix = "17";
       x86suffix = "17";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest21.html";
+    };
+
+    "23.09.0" = {
+      major     = "23";
+      minor     = "9";
+      patch     = "0";
+      x64hash   = "7b06339654aa27258d6dfa922828b43256e780b282d07109f452246c7aa27514";
+      x86hash   = "95436fb289602cf31c65b7df89da145fc170233cb2e758a2f11116f15b57d382";
+      x64suffix = "24";
+      x86suffix = "24";
       homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
     };
 
diff --git a/nixpkgs/pkgs/applications/office/skrooge/default.nix b/nixpkgs/pkgs/applications/office/skrooge/default.nix
index d070d98d3f55..e59d473a0789 100644
--- a/nixpkgs/pkgs/applications/office/skrooge/default.nix
+++ b/nixpkgs/pkgs/applications/office/skrooge/default.nix
@@ -10,7 +10,7 @@ mkDerivation rec {
   version = "2.28.0";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
+    url = "mirror://kde/stable/skrooge/skrooge-${version}.tar.xz";
     sha256 = "sha256-s2SkGMBx7HVpr1NBUJpqji3PTPnw4RqnkakdQVC5ric=";
   };
 
diff --git a/nixpkgs/pkgs/applications/office/treesheets/default.nix b/nixpkgs/pkgs/applications/office/treesheets/default.nix
index e41dfcd15fa8..c474ae474499 100644
--- a/nixpkgs/pkgs/applications/office/treesheets/default.nix
+++ b/nixpkgs/pkgs/applications/office/treesheets/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "unstable-2023-09-15";
+  version = "unstable-2023-11-13";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "8e1ebe5a55f6a725ba6fe342b4b7604438d9d406";
-    sha256 = "zz2erN/ap6vT56khqbpANu1eV/C9eQ6SBWEV4GNbmEY=";
+    rev = "cbc18fe9910c6f10a9f2c2b8838ed047e00a5415";
+    sha256 = "uzb6gboWEu5GL92OFvcdeoaXYTU7jhzCmpI8LwhNVk0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/trilium/desktop.nix b/nixpkgs/pkgs/applications/office/trilium/desktop.nix
index 48df671bd924..0f701abbbf2c 100644
--- a/nixpkgs/pkgs/applications/office/trilium/desktop.nix
+++ b/nixpkgs/pkgs/applications/office/trilium/desktop.nix
@@ -7,13 +7,13 @@
 
 let
   pname = "trilium-desktop";
-  version = "0.62.2";
+  version = "0.62.3";
 
   linuxSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-  linuxSource.sha256 = "17vg22kzg6346c8fb2kzm5zdspb9p24isd2irxhw7gh2z6vnwh1d";
+  linuxSource.sha256 = "1fw6mbcnqrgk627npsxp7xbyab7108msihlkf5i998rji8vaz64m";
 
   darwinSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-mac-x64-${version}.zip";
-  darwinSource.sha256 = "03y5wkpdf4hc7724sjipgahlp6nh72z0wgm0qsqji5x5sxpambb8";
+  darwinSource.sha256 = "0wp58qjs5a91g80h115xnkkrih741bs3vjdr6wilwcp1blbgnxjj";
 
   meta = metaCommon // {
     mainProgram = "trilium";
diff --git a/nixpkgs/pkgs/applications/office/trilium/server.nix b/nixpkgs/pkgs/applications/office/trilium/server.nix
index a2b6a3338395..270f9751ff80 100644
--- a/nixpkgs/pkgs/applications/office/trilium/server.nix
+++ b/nixpkgs/pkgs/applications/office/trilium/server.nix
@@ -3,8 +3,8 @@
 
 let
   serverSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-  serverSource.sha256 = "0vip61c24n9d6bnpcgg9dwxc604xigmi1ayvm1mmlgah1fk56swg";
-  version = "0.62.2";
+  serverSource.sha256 = "00vb36a6kxdmn8m0nmzpdi2h7qmg63xrwwbq4hvjp2njjf32wki1";
+  version = "0.62.3";
 in stdenv.mkDerivation {
   pname = "trilium-server";
   inherit version;
diff --git a/nixpkgs/pkgs/applications/radio/flamp/default.nix b/nixpkgs/pkgs/applications/radio/flamp/default.nix
index 483fbfc29110..0ac84d9420aa 100644
--- a/nixpkgs/pkgs/applications/radio/flamp/default.nix
+++ b/nixpkgs/pkgs/applications/radio/flamp/default.nix
@@ -10,12 +10,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "flamp";
-  version = "2.2.09";
+  version = "2.2.10";
 
   src = fetchgit {
     url = "https://git.code.sf.net/p/fldigi/flamp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-ev+Ik/e1zQGTH4FeiCDPHbrcXlctencEo4R0+M2Kg+g=";
+    hash = "sha256-c0Q9QD3O8eQxRqaBhr79iuNVtWGC8kl+YWYS4xMgDN4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/radio/gridtracker/default.nix b/nixpkgs/pkgs/applications/radio/gridtracker/default.nix
index 49e13f4ab08d..d3a6d104dc26 100644
--- a/nixpkgs/pkgs/applications/radio/gridtracker/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gridtracker/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gridtracker";
-  version = "1.23.1112";
+  version = "1.23.1202";
 
   src = fetchFromGitLab {
     owner = "gridtracker.org";
     repo = "gridtracker";
     rev = "v${version}";
-    sha256 = "sha256-0A1/P57RtUExxflr2XayHPEyr28B6UDYY7pVCAJpWX0=";
+    sha256 = "sha256-XrHA+h6qAYyZjp/C7+oS3eAvX0ptD+T4UKFzM2ROBCw=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
index 0f0b89d43165..fa5eda7b783b 100644
--- a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
+++ b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
@@ -11,13 +11,13 @@
 
 gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "inspectrum";
-  version = "0.2.3";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "miek";
     repo = "inspectrum";
     rev = "v${version}";
-    sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355";
+    sha256 = "sha256-yY2W2hQpj8TIxiQBSbQHq0J16n74OfIwMDxFt3mLZYc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/radio/sdrangel/default.nix b/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
index 1a986b6b0d18..fc1e6425c1c4 100644
--- a/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
+++ b/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
@@ -52,13 +52,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sdrangel";
-  version = "7.17.0";
+  version = "7.17.1";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "sdrangel";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-v2ESMFAbsYbZVVIHlGCU01QPDorUZyLiUEhexr6zF5o=";
+    hash = "sha256-TMYFKt4nkNKZdlxszbVM55RMidBBD2HTaYc1OqW9/ck=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
index 3ff7ae1161e4..a193fa59238f 100644
--- a/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kallisto";
-  version = "0.50.0";
+  version = "0.50.1";
 
   src = fetchFromGitHub {
     repo = "kallisto";
     owner = "pachterlab";
     rev = "v${version}";
-    sha256 = "sha256-GJ8xMbHrnTzvPoMSczpugbIjh79cT3ngX3tLtwzlfEQ=";
+    sha256 = "sha256-JJZJOl4u6FzngrrMuC2AfD5ry2LBOT8tdz2piH+9LFE=";
   };
 
   nativeBuildInputs = [ autoconf cmake ];
diff --git a/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix b/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
index 32f46e485098..3c6ac4545442 100644
--- a/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "seqkit";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "shenwei356";
     repo = "seqkit";
     rev = "v${version}";
-    sha256 = "sha256-aS8aTh8Lszob9It89shhKyqxCDjFs7zxE3VhMCHYaGM=";
+    sha256 = "sha256-ahCLPYRRH6xIRFhgpjvnw7G1AIOfrkzLKPA8t9+k9gg=";
   };
 
-  vendorHash = "sha256-54kb9Na76+CgW61SnXu7EfO0InH/rjliNRcH2M/gxII=";
+  vendorHash = "sha256-OpLLJdwEW7UnMKr6r8+EDUlpiahfa5k9AkBqcd+SE5k=";
 
   meta = with lib; {
     description = "cross-platform and ultrafast toolkit for FASTA/Q file manipulation";
diff --git a/nixpkgs/pkgs/applications/science/logic/why3/default.nix b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
index df8be359d123..f0567fdda3b6 100644
--- a/nixpkgs/pkgs/applications/science/logic/why3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
@@ -1,13 +1,18 @@
 { callPackage, fetchurl, lib, stdenv
-, ocamlPackages, coqPackages, rubber, hevea, emacs }:
+, ocamlPackages, coqPackages, rubber, hevea, emacs
+, version ? "1.7.0"
+}:
 
 stdenv.mkDerivation rec {
   pname = "why3";
-  version = "1.6.0";
+  inherit version;
 
   src = fetchurl {
     url = "https://why3.gitlabpages.inria.fr/releases/${pname}-${version}.tar.gz";
-    hash = "sha256-hFvM6kHScaCtcHCc6Vezl9CR7BFbiKPoTEh7kj0ZJxw=";
+    hash = {
+      "1.7.0" = "sha256-rygrjzuJVukOvpuXTG/yeoEP98ZFkLQHObgc3My1PVY=";
+      "1.6.0" = "sha256-hFvM6kHScaCtcHCc6Vezl9CR7BFbiKPoTEh7kj0ZJxw=";
+    }."${version}";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/science/math/labplot/default.nix b/nixpkgs/pkgs/applications/science/math/labplot/default.nix
index b790116a58b8..8bb667e1a8fa 100644
--- a/nixpkgs/pkgs/applications/science/math/labplot/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/labplot/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   version = "2.10.1";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/labplot/labplot-${version}.tar.xz";
+    url = "mirror://kde/stable/labplot/labplot-${version}.tar.xz";
     sha256 = "sha256-K24YFRfPtuDf/3uJXz6yDHzjWeZzLThUXgdXya6i2u8=";
   };
 
diff --git a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
index 2df4ce414dcf..a2b04e1877f8 100644
--- a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
@@ -20,14 +20,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "simgrid";
-  version = "3.34";
+  version = "3.35";
 
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EVTpW9jD1h8T2KRlDIqptKS6Wv1dVDfyJbXxrpsgmoo=";
+    sha256 = "sha256-WaFANZiPfiN/utfNZbwyH5mxgJNWafPMCcL863V8w0g=";
   };
 
   propagatedBuildInputs = [ boost ];
diff --git a/nixpkgs/pkgs/applications/science/networking/sumo/default.nix b/nixpkgs/pkgs/applications/science/networking/sumo/default.nix
index a55837af6e38..956691582bda 100644
--- a/nixpkgs/pkgs/applications/science/networking/sumo/default.nix
+++ b/nixpkgs/pkgs/applications/science/networking/sumo/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sumo";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "eclipse";
     repo = "sumo";
     rev = "v${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "sha256-/MKhec4nhz6juTCc5dNrrDAlzldodGjili4vWkzafPM=";
+    sha256 = "sha256-uB7Gy0uX3LsZDeeITyjl7DN76TFJQKgsQs4RoDVfSmY=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/science/robotics/mujoco/default.nix b/nixpkgs/pkgs/applications/science/robotics/mujoco/default.nix
index c4f84e158399..139e1140e7c9 100644
--- a/nixpkgs/pkgs/applications/science/robotics/mujoco/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/mujoco/default.nix
@@ -1,122 +1,184 @@
-{ cmake
+{ cereal_1_3_2
+, cmake
 , fetchFromGitHub
 , fetchFromGitLab
-, git
+, glfw
+, glm
 , lib
-, libGL
+, spdlog
 , stdenv
-, xorg
 }:
 
 let
-  # See https://github.com/deepmind/mujoco/blob/c9246e1f5006379d599e0bcddf159a8616d31441/cmake/MujocoDependencies.cmake#L17-L55
-  abseil-cpp = fetchFromGitHub {
-    owner = "abseil";
-    repo = "abseil-cpp";
-    rev = "c2435f8342c2d0ed8101cb43adfd605fdc52dca2";
-    hash = "sha256-PLoI7ix+reUqkZ947kWzls8lujYqWXk9A9a55UcfahI=";
-  };
-  benchmark = fetchFromGitHub {
-    owner = "google";
-    repo = "benchmark";
-    rev = "2dd015dfef425c866d9a43f2c67d8b52d709acb6";
-    hash = "sha256-pUW9YVaujs/y00/SiPqDgK4wvVsaM7QUp/65k0t7Yr0=";
-  };
-  ccd = fetchFromGitHub {
-    owner = "danfis";
-    repo = "libccd";
-    rev = "7931e764a19ef6b21b443376c699bbc9c6d4fba8";
-    hash = "sha256-TIZkmqQXa0+bSWpqffIgaBela0/INNsX9LPM026x1Wk=";
-  };
-  eigen3 = fetchFromGitLab {
-    owner = "libeigen";
-    repo = "eigen";
-    rev = "211c5dfc6741a5570ad007983c113ef4d144f9f3";
-    hash = "sha256-oT/h8QkL0vwaflh46Zsnu9Db1b65AP6p//nAga8M5jI=";
-  };
-  googletest = fetchFromGitHub {
-    owner = "google";
-    repo = "googletest";
-    rev = "b796f7d44681514f58a683a3a71ff17c94edb0c1";
-    hash = "sha256-LVLEn+e7c8013pwiLzJiiIObyrlbBHYaioO/SWbItPQ=";
-  };
-  lodepng = fetchFromGitHub {
-    owner = "lvandeve";
-    repo = "lodepng";
-    rev = "b4ed2cd7ecf61d29076169b49199371456d4f90b";
-    hash = "sha256-5cCkdj/izP4e99BKfs/Mnwu9aatYXjlyxzzYiMD/y1M=";
-  };
-  qhull = fetchFromGitHub {
-    owner = "qhull";
-    repo = "qhull";
-    rev = "0c8fc90d2037588024d9964515c1e684f6007ecc";
-    hash = "sha256-Ptzxad3ewmKJbbcmrBT+os4b4SR976zlCG9F0nq0x94=";
-  };
-  tinyobjloader = fetchFromGitHub {
-    owner = "tinyobjloader";
-    repo = "tinyobjloader";
-    rev = "1421a10d6ed9742f5b2c1766d22faa6cfbc56248";
-    hash = "sha256-9z2Ne/WPCiXkQpT8Cun/pSGUwgClYH+kQ6Dx1JvW6w0=";
-  };
-  tinyxml2 = fetchFromGitHub {
-    owner = "leethomason";
-    repo = "tinyxml2";
-    rev = "9a89766acc42ddfa9e7133c7d81a5bda108a0ade";
-    hash = "sha256-YGAe4+Ttv/xeou+9FoJjmQCKgzupTYdDhd+gzvtz/88=";
-  };
+  pin = {
+
+    # See https://github.com/google-deepmind/mujoco/blob/3.0.0/cmake/MujocoDependencies.cmake#L17-L64
+    abseil-cpp = fetchFromGitHub {
+      owner = "abseil";
+      repo = "abseil-cpp";
+      rev = "fb3621f4f897824c0dbe0615fa94543df6192f30";
+      hash = "sha256-uNGrTNg5G5xFGtc+BSWE389x0tQ/KxJQLHfebNWas/k=";
+    };
+    benchmark = fetchFromGitHub {
+      owner = "google";
+      repo = "benchmark";
+      rev = "344117638c8ff7e239044fd0fa7085839fc03021";
+      hash = "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME=";
+    };
+    ccd = fetchFromGitHub {
+      owner = "danfis";
+      repo = "libccd";
+      rev = "7931e764a19ef6b21b443376c699bbc9c6d4fba8";
+      hash = "sha256-TIZkmqQXa0+bSWpqffIgaBela0/INNsX9LPM026x1Wk=";
+    };
+    eigen3 = fetchFromGitLab {
+      owner = "libeigen";
+      repo = "eigen";
+      rev = "e8515f78ac098329ab9f8cab21c87caede090a3f";
+      hash = "sha256-HXKtFJsKGpug+wNPjYynTuyaG0igo3oG4rFQktveh1g=";
+    };
+    googletest = fetchFromGitHub {
+      owner = "google";
+      repo = "googletest";
+      rev = "f8d7d77c06936315286eb55f8de22cd23c188571";
+      hash = "sha256-t0RchAHTJbuI5YW4uyBPykTvcjy90JW9AOPNjIhwh6U=";
+    };
+    lodepng = fetchFromGitHub {
+      owner = "lvandeve";
+      repo = "lodepng";
+      rev = "b4ed2cd7ecf61d29076169b49199371456d4f90b";
+      hash = "sha256-5cCkdj/izP4e99BKfs/Mnwu9aatYXjlyxzzYiMD/y1M=";
+    };
+    qhull = fetchFromGitHub {
+      owner = "qhull";
+      repo = "qhull";
+      rev = "0c8fc90d2037588024d9964515c1e684f6007ecc";
+      hash = "sha256-Ptzxad3ewmKJbbcmrBT+os4b4SR976zlCG9F0nq0x94=";
+    };
+    tinyobjloader = fetchFromGitHub {
+      owner = "tinyobjloader";
+      repo = "tinyobjloader";
+      rev = "1421a10d6ed9742f5b2c1766d22faa6cfbc56248";
+      hash = "sha256-9z2Ne/WPCiXkQpT8Cun/pSGUwgClYH+kQ6Dx1JvW6w0=";
+    };
+    tinyxml2 = fetchFromGitHub {
+      owner = "leethomason";
+      repo = "tinyxml2";
+      rev = "9a89766acc42ddfa9e7133c7d81a5bda108a0ade";
+      hash = "sha256-YGAe4+Ttv/xeou+9FoJjmQCKgzupTYdDhd+gzvtz/88=";
+    };
+    marchingcubecpp = fetchFromGitHub {
+      owner = "aparis69";
+      repo = "MarchingCubeCpp";
+      rev = "5b79e5d6bded086a0abe276a4b5a69fc17ae9bf1";
+      hash = "sha256-L0DH1GJZ/3vatQAU/KZj/2xTKE6Fwcw9eQYzLdqX2N4=";
+    };
+
+    tmd = stdenv.mkDerivation rec {
+      name = "TriangleMeshDistance";
+
+      src = fetchFromGitHub {
+        owner = "InteractiveComputerGraphics";
+        repo = name;
+        rev = "e55a15c20551f36242fd6368df099a99de71d43a";
+        hash = "sha256-vj6TMMT8mp7ciLa5nzVAhMWPcAHXq+ZwHlWsRA3uCmg=";
+      };
+
+      installPhase = ''
+        mkdir -p $out/include/tmd
+        cp ${name}/include/tmd/${name}.h $out/include/tmd/
+      '';
+    };
+
+    sdflib = stdenv.mkDerivation rec {
+      name = "SdfLib";
+
+      src = fetchFromGitHub {
+        owner = "UPC-ViRVIG";
+        repo = name;
+        rev = "7c49cfba9bbec763b5d0f7b90b26555f3dde8088";
+        hash = "sha256-5bnQ3rHH9Pw1jRVpZpamFnhIJHWnGm6krgZgIBqNtVg=";
+      };
+
+      patches = [ ./sdflib-system-deps.patch ];
+
+      cmakeFlags = [
+        "-DSDFLIB_USE_ASSIMP=OFF"
+        "-DSDFLIB_USE_OPENMP=OFF"
+        "-DSDFLIB_USE_ENOKI=OFF"
+        "-DSDFLIB_USE_SYSTEM_GLM=ON"
+        "-DSDFLIB_USE_SYSTEM_SPDLOG=ON"
+        "-DSDFLIB_USE_SYSTEM_CEREAL=ON"
+        "-DSDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE=ON"
+      ];
+
+      nativeBuildInputs = [ cmake ];
+      buildInputs = [
+        pin.tmd
+
+        # Mainline. The otherwise pinned glm realease from 2018 does
+        # not build due to test failures and missing files.
+        glm
+
+        spdlog
+        cereal_1_3_2
+      ];
+    };
 
-  # See https://github.com/deepmind/mujoco/blob/c9246e1f5006379d599e0bcddf159a8616d31441/simulate/cmake/SimulateDependencies.cmake#L32-L35
-  glfw3 = fetchFromGitHub {
-    owner = "glfw";
-    repo = "glfw";
-    rev = "7482de6071d21db77a7236155da44c172a7f6c9e";
-    hash = "sha256-4+H0IXjAwbL5mAWfsIVhW0BSJhcWjkQx4j2TrzZ3aIo=";
   };
-in
-stdenv.mkDerivation rec {
+
+in stdenv.mkDerivation rec {
   pname = "mujoco";
-  version = "2.3.7";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
-    owner = "deepmind";
+    owner = "google-deepmind";
     repo = pname;
     rev = version;
-    hash = "sha256-LgpA+iPGqciHuWBSD6/7yvZ7p+vo48ZYKjjrDZSnAwE=";
+    hash = "sha256-UXE+7KDti8RarpoJoo9Ei3TgW/Qdnj3ASRo8uTWhGrU=";
   };
 
-  patches = [ ./dependencies.patch ];
+  patches = [ ./mujoco-system-deps-dont-fetch.patch ];
 
-  nativeBuildInputs = [ cmake git ];
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [
-    libGL
-    xorg.libX11
-    xorg.libXcursor
-    xorg.libXext
-    xorg.libXi
-    xorg.libXinerama
-    xorg.libXrandr
+    pin.sdflib
+    glm
+
+    # non-numerical
+    spdlog
+    cereal_1_3_2
+    glfw
+  ];
+
+  cmakeFlags = [
+    "-DMUJOCO_USE_SYSTEM_sdflib=ON"
+    "-DMUJOCO_SIMULATE_USE_SYSTEM_GLFW=ON"
+    "-DMUJOCO_SAMPLES_USE_SYSTEM_GLFW=ON"
   ];
 
   # Move things into place so that cmake doesn't try downloading dependencies.
   preConfigure = ''
     mkdir -p build/_deps
-    ln -s ${abseil-cpp} build/_deps/abseil-cpp-src
-    ln -s ${benchmark} build/_deps/benchmark-src
-    ln -s ${ccd} build/_deps/ccd-src
-    ln -s ${eigen3} build/_deps/eigen3-src
-    ln -s ${glfw3} build/_deps/glfw3-src
-    ln -s ${googletest} build/_deps/googletest-src
-    ln -s ${lodepng} build/_deps/lodepng-src
-    ln -s ${qhull} build/_deps/qhull-src
-    ln -s ${tinyobjloader} build/_deps/tinyobjloader-src
-    ln -s ${tinyxml2} build/_deps/tinyxml2-src
+    ln -s ${pin.abseil-cpp} build/_deps/abseil-cpp-src
+    ln -s ${pin.benchmark} build/_deps/benchmark-src
+    ln -s ${pin.ccd} build/_deps/ccd-src
+    ln -s ${pin.eigen3} build/_deps/eigen3-src
+    ln -s ${pin.googletest} build/_deps/googletest-src
+    ln -s ${pin.lodepng} build/_deps/lodepng-src
+    ln -s ${pin.qhull} build/_deps/qhull-src
+    ln -s ${pin.tinyobjloader} build/_deps/tinyobjloader-src
+    ln -s ${pin.tinyxml2} build/_deps/tinyxml2-src
+    ln -s ${pin.marchingcubecpp} build/_deps/marchingcubecpp-src
   '';
 
+  passthru.pin = { inherit (pin) lodepng eigen3 abseil-cpp; };
+
   meta = with lib; {
     description = "Multi-Joint dynamics with Contact. A general purpose physics simulator.";
     homepage = "https://mujoco.org/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ samuela ];
+    maintainers = with maintainers; [ samuela tmplt ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/robotics/mujoco/dependencies.patch b/nixpkgs/pkgs/applications/science/robotics/mujoco/dependencies.patch
deleted file mode 100644
index f7dcc06a9e05..000000000000
--- a/nixpkgs/pkgs/applications/science/robotics/mujoco/dependencies.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake
-index 3e322ea..980aace 100644
---- a/cmake/MujocoDependencies.cmake
-+++ b/cmake/MujocoDependencies.cmake
-@@ -87,8 +87,6 @@ set(BUILD_SHARED_LIBS
- if(NOT TARGET lodepng)
-   FetchContent_Declare(
-     lodepng
--    GIT_REPOSITORY https://github.com/lvandeve/lodepng.git
--    GIT_TAG ${MUJOCO_DEP_VERSION_lodepng}
-   )
- 
-   FetchContent_GetProperties(lodepng)
-@@ -127,10 +125,6 @@ findorfetch(
-   qhull
-   LIBRARY_NAME
-   qhull
--  GIT_REPO
--  https://github.com/qhull/qhull.git
--  GIT_TAG
--  ${MUJOCO_DEP_VERSION_qhull}
-   TARGETS
-   qhull
-   EXCLUDE_FROM_ALL
-@@ -151,10 +145,6 @@ findorfetch(
-   tinyxml2
-   LIBRARY_NAME
-   tinyxml2
--  GIT_REPO
--  https://github.com/leethomason/tinyxml2.git
--  GIT_TAG
--  ${MUJOCO_DEP_VERSION_tinyxml2}
-   TARGETS
-   tinyxml2
-   EXCLUDE_FROM_ALL
-@@ -169,10 +159,6 @@ findorfetch(
-   tinyobjloader
-   LIBRARY_NAME
-   tinyobjloader
--  GIT_REPO
--  https://github.com/tinyobjloader/tinyobjloader.git
--  GIT_TAG
--  ${MUJOCO_DEP_VERSION_tinyobjloader}
-   TARGETS
-   tinyobjloader
-   EXCLUDE_FROM_ALL
-@@ -187,10 +173,6 @@ findorfetch(
-   ccd
-   LIBRARY_NAME
-   ccd
--  GIT_REPO
--  https://github.com/danfis/libccd.git
--  GIT_TAG
--  ${MUJOCO_DEP_VERSION_ccd}
-   TARGETS
-   ccd
-   EXCLUDE_FROM_ALL
-@@ -227,10 +209,6 @@ if(MUJOCO_BUILD_TESTS)
-     absl
-     LIBRARY_NAME
-     abseil-cpp
--    GIT_REPO
--    https://github.com/abseil/abseil-cpp.git
--    GIT_TAG
--    ${MUJOCO_DEP_VERSION_abseil}
-     TARGETS
-     absl::core_headers
-     EXCLUDE_FROM_ALL
-@@ -254,10 +232,6 @@ if(MUJOCO_BUILD_TESTS)
-     GTest
-     LIBRARY_NAME
-     googletest
--    GIT_REPO
--    https://github.com/google/googletest.git
--    GIT_TAG
--    ${MUJOCO_DEP_VERSION_gtest}
-     TARGETS
-     gtest
-     gmock
-@@ -288,10 +262,6 @@ if(MUJOCO_BUILD_TESTS)
-     benchmark
-     LIBRARY_NAME
-     benchmark
--    GIT_REPO
--    https://github.com/google/benchmark.git
--    GIT_TAG
--    ${MUJOCO_DEP_VERSION_benchmark}
-     TARGETS
-     benchmark::benchmark
-     benchmark::benchmark_main
-@@ -308,8 +278,6 @@ if(MUJOCO_TEST_PYTHON_UTIL)
- 
-     FetchContent_Declare(
-       Eigen3
--      GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
--      GIT_TAG ${MUJOCO_DEP_VERSION_Eigen3}
-     )
- 
-     FetchContent_GetProperties(Eigen3)
-diff --git a/simulate/cmake/SimulateDependencies.cmake b/simulate/cmake/SimulateDependencies.cmake
-index fa539c2..5985d5a 100644
---- a/simulate/cmake/SimulateDependencies.cmake
-+++ b/simulate/cmake/SimulateDependencies.cmake
-@@ -81,10 +81,6 @@ findorfetch(
-   glfw3
-   LIBRARY_NAME
-   glfw3
--  GIT_REPO
--  https://github.com/glfw/glfw.git
--  GIT_TAG
--  ${MUJOCO_DEP_VERSION_glfw3}
-   TARGETS
-   glfw
-   EXCLUDE_FROM_ALL
diff --git a/nixpkgs/pkgs/applications/science/robotics/mujoco/mujoco-system-deps-dont-fetch.patch b/nixpkgs/pkgs/applications/science/robotics/mujoco/mujoco-system-deps-dont-fetch.patch
new file mode 100644
index 000000000000..15373eb0b60f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/mujoco/mujoco-system-deps-dont-fetch.patch
@@ -0,0 +1,538 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 285250b..32d03e3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -92,7 +92,7 @@ add_subdirectory(src/render)
+ add_subdirectory(src/thread)
+ add_subdirectory(src/ui)
+ 
+-target_compile_definitions(mujoco PRIVATE _GNU_SOURCE CCD_STATIC_DEFINE MUJOCO_DLL_EXPORTS -DMC_IMPLEM_ENABLE)
++target_compile_definitions(mujoco PRIVATE _GNU_SOURCE MUJOCO_DLL_EXPORTS -DMC_IMPLEM_ENABLE)
+ if(MUJOCO_ENABLE_AVX_INTRINSICS)
+   target_compile_definitions(mujoco PUBLIC mjUSEPLATFORMSIMD)
+ endif()
+@@ -117,7 +117,7 @@ target_link_libraries(
+           lodepng
+           qhullstatic_r
+           tinyobjloader
+-          tinyxml2
++          tinyxml2::tinyxml2
+ )
+ 
+ set_target_properties(
+diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake
+index 4e3e2c8..f6143d9 100644
+--- a/cmake/MujocoDependencies.cmake
++++ b/cmake/MujocoDependencies.cmake
+@@ -90,153 +90,203 @@ set(BUILD_SHARED_LIBS
+     CACHE INTERNAL "Build SHARED libraries"
+ )
+ 
++
+ if(NOT TARGET lodepng)
+-  FetchContent_Declare(
++  fetchcontent_declare(
+     lodepng
+-    GIT_REPOSITORY https://github.com/lvandeve/lodepng.git
+-    GIT_TAG ${MUJOCO_DEP_VERSION_lodepng}
+   )
++endif()
++
++if(NOT TARGET lodepng)
++  if(NOT MUJOCO_USE_SYSTEM_lodepng)
++    fetchcontent_declare(
++      lodepng
++      GIT_REPOSITORY https://github.com/lvandeve/lodepng.git
++      GIT_TAG ${MUJOCO_DEP_VERSION_lodepng}
++    )
+ 
+-  FetchContent_GetProperties(lodepng)
+-  if(NOT lodepng_POPULATED)
+-    FetchContent_Populate(lodepng)
+-    # This is not a CMake project.
+-    set(LODEPNG_SRCS ${lodepng_SOURCE_DIR}/lodepng.cpp)
+-    set(LODEPNG_HEADERS ${lodepng_SOURCE_DIR}/lodepng.h)
+-    add_library(lodepng STATIC ${LODEPNG_HEADERS} ${LODEPNG_SRCS})
+-    target_compile_options(lodepng PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+-    target_link_options(lodepng PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+-    target_include_directories(lodepng PUBLIC ${lodepng_SOURCE_DIR})
++    fetchcontent_getproperties(lodepng)
++    if(NOT lodepng_POPULATED)
++      fetchcontent_populate(lodepng)
++      # This is not a CMake project.
++      set(LODEPNG_SRCS ${lodepng_SOURCE_DIR}/lodepng.cpp)
++      set(LODEPNG_HEADERS ${lodepng_SOURCE_DIR}/lodepng.h)
++      add_library(lodepng STATIC ${LODEPNG_HEADERS} ${LODEPNG_SRCS})
++      target_compile_options(lodepng PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
++      target_link_options(lodepng PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++      target_include_directories(lodepng PUBLIC ${lodepng_SOURCE_DIR})
++    endif()
++  else()
++    find_package(lodepng REQUIRED)
+   endif()
+ endif()
+ 
+ if(NOT TARGET marchingcubecpp)
+-  FetchContent_Declare(
++  fetchcontent_declare(
+     marchingcubecpp
+-    GIT_REPOSITORY https://github.com/aparis69/MarchingCubeCpp.git
+-    GIT_TAG ${MUJOCO_DEP_VERSION_MarchingCubeCpp}
+   )
+ 
+-  FetchContent_GetProperties(marchingcubecpp)
++  fetchcontent_getproperties(marchingcubecpp)
+   if(NOT marchingcubecpp_POPULATED)
+-    FetchContent_Populate(marchingcubecpp)
++    fetchcontent_populate(marchingcubecpp)
+     include_directories(${marchingcubecpp_SOURCE_DIR})
+   endif()
+ endif()
+ 
++option(MUJOCO_USE_SYSTEM_qhull "Use installed qhull version." OFF)
++mark_as_advanced(MUJOCO_USE_SYSTEM_qhull)
++
+ set(QHULL_ENABLE_TESTING OFF)
+ 
+ findorfetch(
+   USE_SYSTEM_PACKAGE
+-  OFF
++  ${MUJOCO_USE_SYSTEM_qhull}
+   PACKAGE_NAME
+-  qhull
++  Qhull
+   LIBRARY_NAME
+   qhull
+-  GIT_REPO
+-  https://github.com/qhull/qhull.git
+-  GIT_TAG
+-  ${MUJOCO_DEP_VERSION_qhull}
+   TARGETS
+   qhull
+   EXCLUDE_FROM_ALL
+ )
+-# MuJoCo includes a file from libqhull_r which is not exported by the qhull include directories.
+-# Add it to the target.
+-target_include_directories(
+-  qhullstatic_r INTERFACE $<BUILD_INTERFACE:${qhull_SOURCE_DIR}/src/libqhull_r>
+-)
+-target_compile_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+-target_link_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++
++if(NOT MUJOCO_USE_SYSTEM_qhull)
++  # MuJoCo includes a file from libqhull_r which is not exported by the qhull include directories.
++  # Add it to the target.
++  target_include_directories(
++    qhullstatic_r INTERFACE $<BUILD_INTERFACE:${qhull_SOURCE_DIR}/src/libqhull_r>
++  )
++  target_compile_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
++  target_link_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++else()
++  if(NOT TARGET qhullstatic_r)
++    add_library(qhullstatic_r INTERFACE)
++    set_target_properties(qhullstatic_r PROPERTIES INTERFACE_LINK_LIBRARIES Qhull::qhull_r)
++
++    # Workaround as headers are installed in <prefix>/include/libqhull_r/something.h
++    # but mujoco include them as #include <something.h>
++    get_property(qhull_include_dirs TARGET Qhull::qhull_r PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
++    foreach(qhull_include_dir IN LISTS qhull_include_dirs)
++      target_include_directories(qhullstatic_r INTERFACE ${qhull_include_dirs}/libqhull_r)
++    endforeach()
++    target_include_directories(qhullstatic_r INTERFACE )
++  endif()
++endif()
++
++option(MUJOCO_USE_SYSTEM_tinyxml2 "Use installed tinyxml2 version." OFF)
++mark_as_advanced(MUJOCO_USE_SYSTEM_tinyxml2)
+ 
+ set(tinyxml2_BUILD_TESTING OFF)
+ findorfetch(
+   USE_SYSTEM_PACKAGE
+-  OFF
++  ${MUJOCO_USE_SYSTEM_tinyxml2}
+   PACKAGE_NAME
+   tinyxml2
+   LIBRARY_NAME
+   tinyxml2
+-  GIT_REPO
+-  https://github.com/leethomason/tinyxml2.git
+-  GIT_TAG
+-  ${MUJOCO_DEP_VERSION_tinyxml2}
+   TARGETS
+-  tinyxml2
++  tinyxml2::tinyxml2
+   EXCLUDE_FROM_ALL
+ )
+-target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+-target_link_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++
++if(NOT MUJOCO_USE_SYSTEM_tinyxml2)
++  target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
++  target_link_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++endif()
++
++option(MUJOCO_USE_SYSTEM_tinyobjloader "Use installed tinyobjloader version." OFF)
++mark_as_advanced(MUJOCO_USE_SYSTEM_tinyobjloader)
+ 
+ findorfetch(
+   USE_SYSTEM_PACKAGE
+-  OFF
++  ${MUJOCO_USE_SYSTEM_tinyobjloader}
+   PACKAGE_NAME
+   tinyobjloader
+   LIBRARY_NAME
+   tinyobjloader
+-  GIT_REPO
+-  https://github.com/tinyobjloader/tinyobjloader.git
+-  GIT_TAG
+-  ${MUJOCO_DEP_VERSION_tinyobjloader}
+   TARGETS
+   tinyobjloader
+   EXCLUDE_FROM_ALL
+ )
+ 
++if(MUJOCO_USE_SYSTEM_tinyobjloader)
++  # As of tinyobjloader v2.0.0rc10, the tinyobjloader target is named tinyobjloader in the build,
++  # but tinyobjloader::tinyobjloader when it is installed. To deal with this, if tinyobjloader is
++  # found in the system, we create an ALIAS
++  # The following is equivalent to add_library(tinyobjloader ALIAS tinyobjloader::tinyobjloader),
++  # but compatible with CMake 3.16 . Once the minimum CMake is bumped to CMake 3.18, we can use
++  # the simpler version
++  add_library(tinyobjloader INTERFACE IMPORTED)
++  set_target_properties(tinyobjloader PROPERTIES INTERFACE_LINK_LIBRARIES tinyobjloader::tinyobjloader)
++endif()
++
++option(MUJOCO_USE_SYSTEM_sdflib "Use installed sdflib version." OFF)
++mark_as_advanced(MUJOCO_USE_SYSTEM_sdflib)
++
+ option(SDFLIB_USE_ASSIMP OFF)
+ option(SDFLIB_USE_OPENMP OFF)
+ option(SDFLIB_USE_ENOKI OFF)
++
+ findorfetch(
+   USE_SYSTEM_PACKAGE
+-  OFF
++  ${MUJOCO_USE_SYSTEM_sdflib}
+   PACKAGE_NAME
+-  sdflib
++  SdfLib
+   LIBRARY_NAME
+   sdflib
+-  GIT_REPO
+-  https://github.com/UPC-ViRVIG/SdfLib.git
+-  GIT_TAG
+-  ${MUJOCO_DEP_VERSION_sdflib}
+   TARGETS
+-  SdfLib
++  SdfLib::SdfLib
+   EXCLUDE_FROM_ALL
+ )
+-target_compile_options(SdfLib PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+-target_link_options(SdfLib PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++
++if(NOT MUJOCO_USE_SYSTEM_sdflib)
++  target_compile_options(SdfLib PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
++  target_link_options(SdfLib PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++endif()
++
++option(MUJOCO_USE_SYSTEM_ccd "Use installed ccd version." OFF)
++mark_as_advanced(MUJOCO_USE_SYSTEM_ccd)
+ 
+ set(ENABLE_DOUBLE_PRECISION ON)
+ set(CCD_HIDE_ALL_SYMBOLS ON)
+ findorfetch(
+   USE_SYSTEM_PACKAGE
+-  OFF
++  ${MUJOCO_USE_SYSTEM_ccd}
+   PACKAGE_NAME
+   ccd
+   LIBRARY_NAME
+   ccd
+-  GIT_REPO
+-  https://github.com/danfis/libccd.git
+-  GIT_TAG
+-  ${MUJOCO_DEP_VERSION_ccd}
+   TARGETS
+   ccd
+   EXCLUDE_FROM_ALL
+ )
+-target_compile_options(ccd PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+-target_link_options(ccd PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+-
+-# libCCD has an unconditional `#define _CRT_SECURE_NO_WARNINGS` on Windows.
+-# TODO(stunya): Remove this after https://github.com/danfis/libccd/pull/77 is merged.
+-if(WIN32)
+-  if(MSVC)
+-    # C4005 is the MSVC equivalent of -Wmacro-redefined.
+-    target_compile_options(ccd PRIVATE /wd4005)
+-  else()
+-    target_compile_options(ccd PRIVATE -Wno-macro-redefined)
++
++if(NOT MUJOCO_USE_SYSTEM_ccd)
++  target_compile_options(ccd PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
++  target_link_options(ccd PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++  # This is necessary to ensure that the any library that consumes the ccd
++  # compiled internally by MuJoCo (as static library) has CCD_EXPORT correctly
++  # defined as an empty string. For ccd itself, this is ensured by the variable
++  # CCD_HIDE_ALL_SYMBOLS set to ON before the call to findorfetch
++  # See https://github.com/danfis/libccd/pull/79
++  target_compile_definitions(ccd INTERFACE CCD_STATIC_DEFINE)
++
++  # libCCD has an unconditional `#define _CRT_SECURE_NO_WARNINGS` on Windows.
++  # TODO(stunya): Remove this after https://github.com/danfis/libccd/pull/77 is merged.
++  if(WIN32)
++    if(MSVC)
++      # C4005 is the MSVC equivalent of -Wmacro-redefined.
++      target_compile_options(ccd PRIVATE /wd4005)
++    else()
++      target_compile_options(ccd PRIVATE -Wno-macro-redefined)
++    endif()
+   endif()
+ endif()
+ 
+ if(MUJOCO_BUILD_TESTS)
++  option(MUJOCO_USE_SYSTEM_abseil "Use installed abseil version." OFF)
++  mark_as_advanced(MUJOCO_USE_SYSTEM_abseil)
++
+   set(ABSL_PROPAGATE_CXX_STD ON)
+ 
+   # This specific version of Abseil does not have the following variable. We need to work with BUILD_TESTING
+@@ -249,15 +299,11 @@ if(MUJOCO_BUILD_TESTS)
+   set(ABSL_BUILD_TESTING OFF)
+   findorfetch(
+     USE_SYSTEM_PACKAGE
+-    OFF
++    ${MUJOCO_USE_SYSTEM_abseil}
+     PACKAGE_NAME
+     absl
+     LIBRARY_NAME
+     abseil-cpp
+-    GIT_REPO
+-    https://github.com/abseil/abseil-cpp.git
+-    GIT_TAG
+-    ${MUJOCO_DEP_VERSION_abseil}
+     TARGETS
+     absl::core_headers
+     EXCLUDE_FROM_ALL
+@@ -268,6 +314,9 @@ if(MUJOCO_BUILD_TESTS)
+       CACHE BOOL "Build tests." FORCE
+   )
+ 
++  option(MUJOCO_USE_SYSTEM_gtest "Use installed gtest version." OFF)
++  mark_as_advanced(MUJOCO_USE_SYSTEM_gtest)
++
+   # Avoid linking errors on Windows by dynamically linking to the C runtime.
+   set(gtest_force_shared_crt
+       ON
+@@ -276,22 +325,20 @@ if(MUJOCO_BUILD_TESTS)
+ 
+   findorfetch(
+     USE_SYSTEM_PACKAGE
+-    OFF
++    ${MUJOCO_USE_SYSTEM_gtest}
+     PACKAGE_NAME
+     GTest
+     LIBRARY_NAME
+     googletest
+-    GIT_REPO
+-    https://github.com/google/googletest.git
+-    GIT_TAG
+-    ${MUJOCO_DEP_VERSION_gtest}
+     TARGETS
+-    gtest
+-    gmock
+-    gtest_main
++    GTest::gmock
++    GTest::gtest_main
+     EXCLUDE_FROM_ALL
+   )
+ 
++  option(MUJOCO_USE_SYSTEM_benchmark "Use installed benchmark version." OFF)
++  mark_as_advanced(MUJOCO_USE_SYSTEM_benchmark)
++
+   set(BENCHMARK_EXTRA_FETCH_ARGS "")
+   if(WIN32 AND NOT MSVC)
+     set(BENCHMARK_EXTRA_FETCH_ARGS
+@@ -310,15 +357,11 @@ if(MUJOCO_BUILD_TESTS)
+ 
+   findorfetch(
+     USE_SYSTEM_PACKAGE
+-    OFF
++    ${MUJOCO_USE_SYSTEM_benchmark}
+     PACKAGE_NAME
+     benchmark
+     LIBRARY_NAME
+     benchmark
+-    GIT_REPO
+-    https://github.com/google/benchmark.git
+-    GIT_TAG
+-    ${MUJOCO_DEP_VERSION_benchmark}
+     TARGETS
+     benchmark::benchmark
+     benchmark::benchmark_main
+@@ -328,26 +371,42 @@ if(MUJOCO_BUILD_TESTS)
+ endif()
+ 
+ if(MUJOCO_TEST_PYTHON_UTIL)
++  option(MUJOCO_USE_SYSTEM_Eigen3 "Use installed Eigen3 version." OFF)
++  mark_as_advanced(MUJOCO_USE_SYSTEM_Eigen3)
++
+   add_compile_definitions(EIGEN_MPL2_ONLY)
+-  if(NOT TARGET eigen)
+-    # Support new IN_LIST if() operator.
+-    set(CMAKE_POLICY_DEFAULT_CMP0057 NEW)
++  if(NOT TARGET Eigen3::Eigen)
++    if(NOT MUJOCO_USE_SYSTEM_Eigen3)
++      # Support new IN_LIST if() operator.
++      set(CMAKE_POLICY_DEFAULT_CMP0057 NEW)
++    endif()
+ 
+-    FetchContent_Declare(
++    fetchcontent_declare(
+       Eigen3
+-      GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
+-      GIT_TAG ${MUJOCO_DEP_VERSION_Eigen3}
+     )
+ 
+-    FetchContent_GetProperties(Eigen3)
++    fetchcontent_getproperties(Eigen3)
+     if(NOT Eigen3_POPULATED)
+-      FetchContent_Populate(Eigen3)
++      fetchcontent_populate(Eigen3)
+ 
+       # Mark the library as IMPORTED as a workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/15415
+       add_library(Eigen3::Eigen INTERFACE IMPORTED)
+       set_target_properties(
+         Eigen3::Eigen PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${eigen3_SOURCE_DIR}"
+       )
++
++      fetchcontent_getproperties(Eigen3)
++      # if(NOT Eigen3_POPULATED)
++      #   fetchcontent_populate(Eigen3)
++
++      #   # Mark the library as IMPORTED as a workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/15415
++      #   add_library(Eigen3::Eigen INTERFACE IMPORTED)
++      #   set_target_properties(
++      #     Eigen3::Eigen PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${eigen3_SOURCE_DIR}"
++      #   )
++      # endif()
++    else()
++      find_package(Eigen3 REQUIRED)
+     endif()
+   endif()
+ endif()
+diff --git a/plugin/sdf/CMakeLists.txt b/plugin/sdf/CMakeLists.txt
+index 3e216fc..e7e3a1e 100644
+--- a/plugin/sdf/CMakeLists.txt
++++ b/plugin/sdf/CMakeLists.txt
+@@ -37,7 +37,7 @@ set(MUJOCO_SDF_SRCS
+ add_library(sdf SHARED)
+ target_sources(sdf PRIVATE ${MUJOCO_SDF_SRCS})
+ target_include_directories(sdf PRIVATE ${MUJOCO_SDF_INCLUDE})
+-target_link_libraries(sdf PRIVATE mujoco SdfLib)
++target_link_libraries(sdf PRIVATE mujoco SdfLib::SdfLib)
+ target_compile_options(
+   sdf
+   PRIVATE ${AVX_COMPILE_OPTIONS}
+diff --git a/python/mujoco/util/CMakeLists.txt b/python/mujoco/util/CMakeLists.txt
+index 666a372..d89bb49 100644
+--- a/python/mujoco/util/CMakeLists.txt
++++ b/python/mujoco/util/CMakeLists.txt
+@@ -63,8 +63,8 @@ if(BUILD_TESTING)
+   target_link_libraries(
+     array_traits_test
+     array_traits
+-    gmock
+-    gtest_main
++    GTest::gmock
++    GTest::gtest_main
+   )
+   gtest_add_tests(TARGET array_traits_test SOURCES array_traits_test.cc)
+ 
+@@ -72,8 +72,8 @@ if(BUILD_TESTING)
+   target_link_libraries(
+     func_traits_test
+     func_traits
+-    gmock
+-    gtest_main
++    GTest::gmock
++    GTest::gtest_main
+   )
+   gtest_add_tests(TARGET func_traits_test SOURCES func_traits_test.cc)
+ 
+@@ -81,8 +81,8 @@ if(BUILD_TESTING)
+   target_link_libraries(
+     func_wrap_test
+     func_wrap
+-    gmock
+-    gtest_main
++    GTest::gmock
++    GTest::gtest_main
+   )
+   gtest_add_tests(TARGET func_wrap_test SOURCES func_wrap_test.cc)
+ 
+@@ -90,8 +90,8 @@ if(BUILD_TESTING)
+   target_link_libraries(
+     tuple_tools_test
+     func_wrap
+-    gmock
+-    gtest_main
++    GTest::gmock
++    GTest::gtest_main
+   )
+   gtest_add_tests(TARGET tuple_tools_test SOURCES tuple_tools_test.cc)
+ endif()
+diff --git a/simulate/cmake/SimulateDependencies.cmake b/simulate/cmake/SimulateDependencies.cmake
+index 5141406..75ff788 100644
+--- a/simulate/cmake/SimulateDependencies.cmake
++++ b/simulate/cmake/SimulateDependencies.cmake
+@@ -81,10 +81,6 @@ findorfetch(
+   glfw3
+   LIBRARY_NAME
+   glfw3
+-  GIT_REPO
+-  https://github.com/glfw/glfw.git
+-  GIT_TAG
+-  ${MUJOCO_DEP_VERSION_glfw3}
+   TARGETS
+   glfw
+   EXCLUDE_FROM_ALL
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 6bec911..2a16c21 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -30,7 +30,7 @@ macro(mujoco_test name)
+   )
+ 
+   add_executable(${name} ${name}.cc)
+-  target_link_libraries(${name} gtest_main mujoco)
++  target_link_libraries(${name} GTest::gtest_main mujoco)
+   target_include_directories(${name} PRIVATE ${MUJOCO_TEST_INCLUDE})
+   set_target_properties(${name} PROPERTIES BUILD_RPATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+   # gtest_discover_tests is recommended over gtest_add_tests, but has some issues in Windows.
+@@ -59,20 +59,20 @@ target_link_libraries(
+   PUBLIC absl::core_headers
+          absl::strings
+          absl::synchronization
+-         gtest
+-         gmock
++         GTest::gtest
++         GTest::gmock
+          mujoco::mujoco
+ )
+ target_include_directories(fixture PRIVATE ${mujoco_SOURCE_DIR}/include gmock)
+ 
+ mujoco_test(fixture_test)
+-target_link_libraries(fixture_test fixture gmock)
++target_link_libraries(fixture_test fixture GTest::gmock)
+ 
+ mujoco_test(header_test)
+-target_link_libraries(header_test fixture gmock)
++target_link_libraries(header_test fixture GTest::gmock)
+ 
+ mujoco_test(pipeline_test)
+-target_link_libraries(pipeline_test fixture gmock)
++target_link_libraries(pipeline_test fixture GTest::gmock)
+ 
+ add_subdirectory(benchmark)
+ add_subdirectory(engine)
diff --git a/nixpkgs/pkgs/applications/science/robotics/mujoco/sdflib-system-deps.patch b/nixpkgs/pkgs/applications/science/robotics/mujoco/sdflib-system-deps.patch
new file mode 100644
index 000000000000..ca84c60a63df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/mujoco/sdflib-system-deps.patch
@@ -0,0 +1,192 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 251c456..3d30231 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,7 +27,7 @@ option(SDFLIB_USE_SYSTEM_GLM "Use glm library via find_package instead of downlo
+ option(SDFLIB_USE_SYSTEM_SPDLOG "Use spdlog library via find_package instead of downloading it" OFF)
+ option(SDFLIB_USE_SYSTEM_CEREAL "Use cereal library via find_package instead of downloading it" OFF)
+ option(SDFLIB_USE_SYSTEM_ASSIMP "Use assimp library via find_package instead of downloading it" OFF)
+-
++option(SDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE "Use TriangleMeshDistance library via system includes instead of downloading it" OFF)
+ 
+ if(SDFLIB_DEBUG_INFO)
+     add_compile_definitions(SDFLIB_PRINT_STATISTICS)
+@@ -55,13 +55,52 @@ file(GLOB UTILS_SOURCE_FILES src/utils/*.cpp)
+ file(GLOB UTILS_HEADER_FILES src/utils/*.h)
+ 
+ # Add libraries
+-add_library(${PROJECT_NAME} STATIC  ${SOURCE_FILES} ${HEADER_FILES} ${PUBLIC_HEADER_FILES}
+-                                    ${SDF_SOURCE_FILES} ${SDF_HEADER_FILES}
+-                                    ${UTILS_SOURCE_FILES} ${UTILS_HEADER_FILES})
+-
+-target_include_directories(${PROJECT_NAME} PUBLIC include/)
++add_library(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES} ${PUBLIC_HEADER_FILES}
++                            ${SDF_SOURCE_FILES} ${SDF_HEADER_FILES}
++                            ${UTILS_SOURCE_FILES} ${UTILS_HEADER_FILES})
++add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
++if(BUILD_SHARED_LIBS AND WIN32)
++    set_target_properties(${PROJECT_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
++endif()
++include(GNUInstallDirs)
++target_include_directories(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
++                                                  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+ target_include_directories(${PROJECT_NAME} PRIVATE src/)
+ 
++# Install library and CMake config files
++install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME})
++install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/SdfLib
++        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
++
++install(EXPORT ${PROJECT_NAME}
++        FILE ${PROJECT_NAME}Targets.cmake
++        DESTINATION lib/cmake/${PROJECT_NAME}
++        NAMESPACE ${PROJECT_NAME}::
++)
++
++include(CMakePackageConfigHelpers)
++set(PACKAGE_DEPENDENCIES "")
++if(SDFLIB_USE_SYSTEM_GLM)
++    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(glm)\n")
++endif()
++if(SDFLIB_USE_SYSTEM_SPDLOG)
++    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(spdlog)\n")
++endif()
++if(SDFLIB_USE_SYSTEM_CEREAL)
++    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(cereal)\n")
++endif()
++if(SDFLIB_USE_ASSIMP AND SDFLIB_USE_SYSTEM_ASSIMP)
++    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(assimp)\n")
++endif()
++
++configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in
++                              "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
++                              INSTALL_DESTINATION "lib/cmake/${PROJECT_NAME}"
++                              NO_SET_AND_CHECK_MACRO
++                              NO_CHECK_REQUIRED_COMPONENTS_MACRO)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
++        DESTINATION lib/cmake/${PROJECT_NAME})
++
+ # Add shaders
+ file(GLOB SHADER_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src/render_engine/shaders 
+                        src/render_engine/shaders/*.frag 
+@@ -69,7 +108,7 @@ file(GLOB SHADER_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src/render_engine/sh
+                        src/render_engine/shaders/*.comp)
+ 
+ foreach(SHADER IN LISTS SHADER_FILES)
+-    add_custom_command(OUTPUT ${SHADER}
++add_custom_command(OUTPUT ${SHADER}
+             COMMAND cmake -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/src/render_engine/shaders/${SHADER} $<TARGET_FILE_DIR:${PROJECT_NAME}>/shaders/${SHADER}
+             DEPENDS src/render_engine/shaders/${SHADER}
+         )
+@@ -112,7 +151,10 @@ endif()
+ target_link_libraries(${PROJECT_NAME} PUBLIC ${SDFLIB_GLM_TARGET})
+ target_link_libraries(${PROJECT_NAME} PUBLIC spdlog::spdlog)
+ target_link_libraries(${PROJECT_NAME} PUBLIC cereal::cereal)
+-target_link_libraries(${PROJECT_NAME} PUBLIC icg)
++
++if(NOT SDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE)
++    target_link_libraries(${PROJECT_NAME} PUBLIC TriangleMeshDistance)
++endif()
+ 
+ if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
+     target_link_libraries(${PROJECT_NAME} PUBLIC -lstdc++fs)
+diff --git a/SdfLibConfig.cmake.in b/SdfLibConfig.cmake.in
+new file mode 100644
+index 0000000..9b8265c
+--- /dev/null
++++ b/SdfLibConfig.cmake.in
+@@ -0,0 +1,7 @@
++@PACKAGE_INIT@

++

++include(CMakeFindDependencyMacro)

++

++@PACKAGE_DEPENDENCIES@

++

++include("${CMAKE_CURRENT_LIST_DIR}/SdfLibTargets.cmake")

+diff --git a/include/SdfLib/TrianglesInfluence.h b/include/SdfLib/TrianglesInfluence.h
+index fc2ca52..b276f23 100644
+--- a/include/SdfLib/TrianglesInfluence.h
++++ b/include/SdfLib/TrianglesInfluence.h
+@@ -11,7 +11,7 @@
+ #include "InterpolationMethods.h"
+ #include "utils/Timer.h"
+ #include "utils/GJK.h"
+-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
++#include <tmd/TriangleMeshDistance.h>
+ 
+ #include <vector>
+ #include <array>
+diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt
+index 79f70c1..e2a4f10 100644
+--- a/libs/CMakeLists.txt
++++ b/libs/CMakeLists.txt
+@@ -137,9 +137,10 @@ if(SDFLIB_BUILD_APPS OR SDFLIB_BUILD_DEBUG_APPS)
+ 	target_include_directories(stb_image INTERFACE stb)
+  endif()
+ 
+-# icg
+-add_library(icg INTERFACE)
+-target_include_directories(icg INTERFACE InteractiveComputerGraphics)
++if (NOT SDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE)
++	add_library(TriangleMeshDistance INTERFACE)
++	target_include_directories(TriangleMeshDistance INTERFACE InteractiveComputerGraphics)
++endif()
+ 
+ if(SDFLIB_BUILD_APPS OR SDFLIB_BUILD_DEBUG_APPS)
+ 	# glfw
+diff --git a/libs/InteractiveComputerGraphics/InteractiveComputerGraphics/TriangleMeshDistance.h b/libs/InteractiveComputerGraphics/tmd/TriangleMeshDistance.h
+similarity index 100%
+rename from libs/InteractiveComputerGraphics/InteractiveComputerGraphics/TriangleMeshDistance.h
+rename to libs/InteractiveComputerGraphics/tmd/TriangleMeshDistance.h
+diff --git a/src/tools/ImageQueryTime/main.cpp b/src/tools/ImageQueryTime/main.cpp
+index 357a78b..f4fd9e7 100644
+--- a/src/tools/ImageQueryTime/main.cpp
++++ b/src/tools/ImageQueryTime/main.cpp
+@@ -17,7 +17,7 @@
+ 
+ #define TEST_METHODS 
+ #ifdef TEST_METHODS
+-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
++#include <tmd/TriangleMeshDistance.h>
+ // #include <CGAL/Simple_cartesian.h>
+ // #include <CGAL/AABB_tree.h>
+ // #include <CGAL/AABB_traits.h>
+diff --git a/src/tools/SdfErrorCompare/main.cpp b/src/tools/SdfErrorCompare/main.cpp
+index deef25f..9e402c4 100644
+--- a/src/tools/SdfErrorCompare/main.cpp
++++ b/src/tools/SdfErrorCompare/main.cpp
+@@ -23,7 +23,7 @@ using namespace sdflib;
+ // #define TEST_OPENVDB
+ 
+ #ifdef TEST_ICG
+-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
++#include <tmd/TriangleMeshDistance.h>
+ #endif
+ #ifdef TEST_CGAL
+ #include <CGAL/Simple_cartesian.h>
+diff --git a/src/tools/SdfLibUnity/SdfExportFunc.cpp b/src/tools/SdfLibUnity/SdfExportFunc.cpp
+index ff4e017..7e06ada 100644
+--- a/src/tools/SdfLibUnity/SdfExportFunc.cpp
++++ b/src/tools/SdfLibUnity/SdfExportFunc.cpp
+@@ -1,7 +1,7 @@
+ #include "SdfExportFunc.h"
+ #include "spdlog/sinks/rotating_file_sink.h"
+ 
+-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
++#include <tmd/TriangleMeshDistance.h>
+ 
+ using namespace sdflib;
+ 
+diff --git a/src/tools/SdfOffsets/main.cpp b/src/tools/SdfOffsets/main.cpp
+index b6769d7..07f137b 100644
+--- a/src/tools/SdfOffsets/main.cpp
++++ b/src/tools/SdfOffsets/main.cpp
+@@ -9,7 +9,7 @@
+ #include <glm/gtc/type_ptr.hpp>
+ #include <glm/gtc/matrix_transform.hpp>
+ 
+-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
++#include <tmd/TriangleMeshDistance.h>
+ #include <CGAL/Surface_mesh_default_triangulation_3.h>
+ #include <CGAL/Complex_2_in_triangulation_3.h>
+ #include <CGAL/make_surface_mesh.h>
diff --git a/nixpkgs/pkgs/applications/search/recoll/default.nix b/nixpkgs/pkgs/applications/search/recoll/default.nix
index 51815c26ae07..0560793132d1 100644
--- a/nixpkgs/pkgs/applications/search/recoll/default.nix
+++ b/nixpkgs/pkgs/applications/search/recoll/default.nix
@@ -70,11 +70,11 @@ in
 
 mkDerivation rec {
   pname = "recoll";
-  version = "1.36.0";
+  version = "1.36.2";
 
   src = fetchurl {
     url = "https://www.lesbonscomptes.com/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-vf0o0wBcG3878YD4mTUhni2aTUU9AJkG4an1oaRc4yw=";
+    hash = "sha256-GyQqI3ciRO0TRaAeM4rGu+j/eB4bJlQ7VBTTxUGMNt4=";
   };
 
   configureFlags = [
@@ -169,7 +169,7 @@ mkDerivation rec {
       members, email attachments.
     '';
     homepage = "https://www.lesbonscomptes.com/recoll/";
-    changelog = "https://www.lesbonscomptes.com/recoll/pages/release-${version}.html";
+    changelog = "https://www.lesbonscomptes.com/recoll/pages/release-${versions.majorMinor version}.html";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jcumming ehmry ];
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff b/nixpkgs/pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff
new file mode 100644
index 000000000000..2c958c4ce46d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff
@@ -0,0 +1,20 @@
+diff --git a/src/contour/display/CMakeLists.txt b/src/contour/display/CMakeLists.txt
+index e2e9768c..fc1ea72f 100644
+--- a/src/contour/display/CMakeLists.txt
++++ b/src/contour/display/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ if(CONTOUR_QT_VERSION EQUAL "6")
+-   find_package(Qt6 COMPONENTS Core Gui OpenGLWidgets Widgets REQUIRED)
++   find_package(Qt6 COMPONENTS Core Gui OpenGLWidgets Widgets Multimedia REQUIRED)
+ else()
+    find_package(Qt5 COMPONENTS Gui Widgets REQUIRED)  # apt install qtbase5-dev libqt5gui5
+ endif()
+@@ -31,7 +31,7 @@ endif()
+ target_include_directories(ContourTerminalDisplay PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../..")
+ target_link_libraries(ContourTerminalDisplay vtrasterizer)
+ if(CONTOUR_QT_VERSION EQUAL "6")
+-    target_link_libraries(ContourTerminalDisplay Qt6::Core Qt6::Gui Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Widgets)
++    target_link_libraries(ContourTerminalDisplay Qt6::Core Qt6::Gui Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Widgets Qt6::Multimedia)
+ else()
+     target_link_libraries(ContourTerminalDisplay Qt5::Gui Qt5::Widgets)
+ endif()
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/contour/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/contour/default.nix
index a1692dd255a2..4a50625cc81e 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/contour/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/contour/default.nix
@@ -1,12 +1,16 @@
 { lib
 , stdenv
-, mkDerivation
 , fetchFromGitHub
+, fetchurl
 , cmake
 , pkg-config
 , freetype
 , fontconfig
-, libGL
+, libunicode
+, libutempter
+, termbench-pro
+, qtmultimedia
+, wrapQtAppsHook
 , pcre
 , boost
 , catch2
@@ -16,50 +20,43 @@
 , yaml-cpp
 , ncurses
 , file
-, darwin
+, utmp
+, sigtool
 , nixosTests
+, installShellFiles
 }:
 
-let
-  # Commits refs come from https://github.com/contour-terminal/contour/blob/master/scripts/install-deps.sh
-  libunicode-src = fetchFromGitHub {
-    owner = "contour-terminal";
-    repo = "libunicode";
-    rev = "c2369b6380df1197476b08d3e2d0e96b6446f776";
-    sha256 = "sha256-kq7GpFCkrJG7F9/YEGz3gMTgYzhp/QB8D5b9wwMaLvQ=";
-  };
-
-  termbench-pro-src = fetchFromGitHub {
-    owner = "contour-terminal";
-    repo = "termbench-pro";
-    rev = "cd571e3cebb7c00de9168126b28852f32fb204ed";
-    sha256 = "sha256-dNtOmBu63LFYfiGjXf34C2tiG8pMmsFT4yK3nBnK9WI=";
-  };
-in
-mkDerivation rec {
+stdenv.mkDerivation (final: {
   pname = "contour";
-  version = "0.3.1.200";
+  version = "0.3.12.262";
 
   src = fetchFromGitHub {
     owner = "contour-terminal";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-TpxVC0GFZD3jGISnDWHKEetgVVpznm5k/Vc2dwVfSG4=";
+    repo = "contour";
+    rev = "v${final.version}";
+    hash = "sha256-4R0NyUtsyr3plYfVPom+EjJ5W0Cb/uuaSB5zyJ0yIB4=";
   };
 
   outputs = [ "out" "terminfo" ];
 
+  # fix missing <QtMultimedia/QAudioSink> on Darwin and codesign the binary
+  patches = [ ./contour-cmakelists.diff ./macos-codesign.diff ];
+
   nativeBuildInputs = [
     cmake
     pkg-config
     ncurses
     file
-  ];
+    wrapQtAppsHook
+    installShellFiles
+  ] ++ lib.optionals stdenv.isDarwin [ sigtool ];
 
   buildInputs = [
     fontconfig
     freetype
-    libGL
+    libunicode
+    termbench-pro
+    qtmultimedia
     pcre
     boost
     catch2
@@ -67,38 +64,37 @@ mkDerivation rec {
     microsoft-gsl
     range-v3
     yaml-cpp
-  ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.libs.utmp ];
-
-  preConfigure = ''
-    mkdir -p _deps/sources
+  ]
+  ++ lib.optionals stdenv.isLinux [ libutempter ]
+  ++ lib.optionals stdenv.isDarwin [ utmp ];
 
-    cat > _deps/sources/CMakeLists.txt <<EOF
-    macro(ContourThirdParties_Embed_libunicode)
-        add_subdirectory(\''${ContourThirdParties_SRCDIR}/libunicode EXCLUDE_FROM_ALL)
-    endmacro()
-    macro(ContourThirdParties_Embed_termbench_pro)
-        add_subdirectory(\''${ContourThirdParties_SRCDIR}/termbench_pro EXCLUDE_FROM_ALL)
-    endmacro()
-    EOF
-
-    ln -s ${libunicode-src} _deps/sources/libunicode
-    ln -s ${termbench-pro-src} _deps/sources/termbench_pro
+  cmakeFlags = [ "-DCONTOUR_QT_VERSION=6" ];
 
+  preConfigure = ''
     # Don't fix Darwin app bundle
     sed -i '/fixup_bundle/d' src/contour/CMakeLists.txt
   '';
 
   postInstall = ''
     mkdir -p $out/nix-support $terminfo/share
+  '' + lib.optionalString stdenv.isDarwin ''
+    mkdir $out/Applications
+    installShellCompletion --zsh $out/contour.app/Contents/Resources/shell-integration/shell-integration.zsh
+    installShellCompletion --fish $out/contour.app/Contents/Resources/shell-integration/shell-integration.fish
+    cp -r $out/contour.app/Contents/Resources/terminfo $terminfo/share
+    mv $out/contour.app $out/Applications
+    ln -s $out/bin $out/Applications/contour.app/Contents/MacOS
+  '' + lib.optionalString stdenv.isLinux ''
     mv $out/share/terminfo $terminfo/share/
+    installShellCompletion --zsh $out/share/contour/shell-integration/shell-integration.zsh
+    installShellCompletion --fish $out/share/contour/shell-integration/shell-integration.fish
+  '' + ''
     echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
   '';
 
   passthru.tests.test = nixosTests.terminal-emulators.contour;
 
   meta = with lib; {
-    # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/contour.x86_64-darwin
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Modern C++ Terminal Emulator";
     homepage = "https://github.com/contour-terminal/contour";
     changelog = "https://github.com/contour-terminal/contour/raw/v${version}/Changelog.md";
@@ -107,4 +103,4 @@ mkDerivation rec {
     platforms = platforms.unix;
     mainProgram = "contour";
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/contour/macos-codesign.diff b/nixpkgs/pkgs/applications/terminal-emulators/contour/macos-codesign.diff
new file mode 100644
index 000000000000..8e449dd0a493
--- /dev/null
+++ b/nixpkgs/pkgs/applications/terminal-emulators/contour/macos-codesign.diff
@@ -0,0 +1,21 @@
+diff --git a/src/contour/CMakeLists.txt b/src/contour/CMakeLists.txt
+index 0eebd585..5d0bc3c0 100644
+--- a/src/contour/CMakeLists.txt
++++ b/src/contour/CMakeLists.txt
+@@ -145,6 +145,16 @@ if(CONTOUR_BUILD_WITH_MIMALLOC)
+     target_link_libraries(contour mimalloc)
+ endif()
+ 
++if(APPLE)
++  add_custom_command(
++    TARGET contour POST_BUILD
++    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
++    COMMAND codesign --force --sign - contour.app/Contents/MacOS/contour
++    COMMENT "Codesigning macOS bundle executable"
++    VERBATIM
++  )
++endif()
++
+ if(NOT(WIN32))
+     set(terminfo_file "contour.terminfo")
+     set(terminfo_basedir "${CMAKE_CURRENT_BINARY_DIR}/terminfo")
diff --git a/nixpkgs/pkgs/applications/version-management/gg/default.nix b/nixpkgs/pkgs/applications/version-management/gg/default.nix
index ea701c6f07b3..279e6d0075e7 100644
--- a/nixpkgs/pkgs/applications/version-management/gg/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gg/default.nix
@@ -10,8 +10,8 @@
 }:
 
 let
-  version = "1.3.0";
-  commit = "5bfe79b3632f15c442e8dc51ec206ab76354487f";
+  version = "1.3.1";
+  commit = "b6be8bac78605c21a9670db0e44faf5e1eafe0d4";
 in buildGoModule {
   pname = "gg-scm";
   inherit version;
@@ -20,7 +20,7 @@ in buildGoModule {
     owner = "gg-scm";
     repo = "gg";
     rev = "v${version}";
-    hash = "sha256-5iiu3blNJHDehg3wnvZUmfjFST+zNr89+FAoQu4CSH8=";
+    hash = "sha256-qw0KWhCkJVYRhDBNtiNactWGGMHjBwdQ1Po4lQQbaj4=";
   };
   postPatch = ''
     substituteInPlace cmd/gg/editor_unix.go \
@@ -33,7 +33,7 @@ in buildGoModule {
     "-X" "main.buildCommit=${commit}"
   ];
 
-  vendorHash = "sha256-IU3Ac9rXsyPqRJrPJMW1eNVzQy7qoVBs9XYaLX9c5AU=";
+  vendorHash = "sha256-56Sah030xbWsoOu8r3c3nN2UGHvQORheavebP+Z1Wc8=";
 
   nativeBuildInputs = [ pandoc installShellFiles makeWrapper ];
   nativeCheckInputs = [ bash coreutils git ];
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
index f21e58603368..5cbc4a1bd493 100644
--- a/nixpkgs/pkgs/applications/version-management/gitea/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -20,12 +20,12 @@
 
 buildGoModule rec {
   pname = "gitea";
-  version = "1.20.5";
+  version = "1.21.1";
 
   # 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-cH/AHsFXOdvfSfj9AZUd3l/RlYE06o1ByZu0vvGQuXw=";
+    hash = "sha256-5WEHUMQsQNgrglS+xJ4IWHUl0a6RLLPyx0l+ECJ4R9g=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/version-management/got/default.nix b/nixpkgs/pkgs/applications/version-management/got/default.nix
index f00ee82d1c2f..ee694403f294 100644
--- a/nixpkgs/pkgs/applications/version-management/got/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/got/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "got";
-  version = "0.93";
+  version = "0.94";
 
   src = fetchurl {
     url = "https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz";
-    hash = "sha256-wlcnJr7f3Bd9SEgrKiPlr7pTSjaRj47qwktI2jepINE=";
+    hash = "sha256-hG0/a+sk6uZCxR908YfZCW44qx/SIwwGO9mUaxxHZ3k=";
   };
 
   nativeBuildInputs = [ pkg-config bison ]
diff --git a/nixpkgs/pkgs/applications/video/animdl/default.nix b/nixpkgs/pkgs/applications/video/animdl/default.nix
new file mode 100644
index 000000000000..3f1be6f5833a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/animdl/default.nix
@@ -0,0 +1,63 @@
+{ lib,
+  buildPythonApplication,
+  fetchFromGitHub,
+  poetry-core,
+  anchor-kr,
+  anitopy,
+  click,
+  cssselect,
+  httpx,
+  lxml,
+  packaging,
+  pkginfo,
+  pycryptodomex,
+  pyyaml,
+  regex,
+  rich,
+  tqdm,
+  yarl
+}:
+buildPythonApplication {
+  pname = "animdl";
+  version = "1.7.27";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "justfoolingaround";
+    repo = "animdl";
+    # Using the commit hash because upstream does not have releases. https://github.com/justfoolingaround/animdl/issues/277
+    rev = "c7c3b79198e66695e0bbbc576f9d9b788616957f";
+    hash = "sha256-kn6vCCFhJNlruxoO+PTHVIwTf1E5j1aSdBhrFuGzUq4=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+  propagatedBuildInputs = [
+    anchor-kr
+    anitopy
+    click
+    cssselect
+    httpx
+    lxml
+    packaging
+    pkginfo
+    pycryptodomex
+    pyyaml
+    regex
+    rich
+    tqdm
+    yarl
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "A highly efficient, powerful and fast anime scraper";
+    homepage = "https://github.com/justfoolingaround/animdl";
+    license = licenses.gpl3Only;
+    mainProgram = "animdl";
+    maintainers = with maintainers; [ passivelemon ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix b/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix
index 8070a96a2b4b..5b44ddc042a3 100644
--- a/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix
+++ b/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix
@@ -22,13 +22,16 @@
 , aprutil
 , makeDesktopItem
 , copyDesktopItems
+, jq
+
+, studioVariant ? false
 }:
 
 let
   davinci = (
     stdenv.mkDerivation rec {
-      pname = "davinci-resolve";
-      version = "18.5.1";
+      pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
+      version = "18.6.3";
 
       nativeBuildInputs = [
         (appimage-run.override { buildFHSEnv = buildFHSEnvChroot; } )
@@ -47,19 +50,24 @@ let
         rec {
           outputHashMode = "recursive";
           outputHashAlgo = "sha256";
-          outputHash = "sha256-AZ869hA/WeCf3sxhdDOzD/q30P1NaD18TheBtS1ammQ=";
+          outputHash =
+            if studioVariant
+            then "sha256-OX8PyMhfl0jRdXBNsjlwkCAh8XUNJv8HEbmyAdjIv18="
+            else "sha256-PNzdVxGgXIHM2vi3ChHx67TQBFlCYBOZCiFkDi/RSu4=";
 
           impureEnvVars = lib.fetchers.proxyImpureEnvVars;
 
-          nativeBuildInputs = [ curl ];
+          nativeBuildInputs = [ curl jq ];
 
           # ENV VARS
           SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
 
           # Get linux.downloadId from HTTP response on https://www.blackmagicdesign.com/products/davinciresolve
-          DOWNLOADID = "defc1c6789b7475b9ee4a42daf9ba61d";
           REFERID = "263d62f31cbb49e0868005059abcb0c9";
-          SITEURL = "https://www.blackmagicdesign.com/api/register/us/download/${DOWNLOADID}";
+          DOWNLOADSURL = "https://www.blackmagicdesign.com/api/support/us/downloads.json";
+          SITEURL = "https://www.blackmagicdesign.com/api/register/us/download";
+          PRODUCT = "DaVinci Resolve${lib.optionalString studioVariant " Studio"}";
+          VERSION = version;
 
           USERAGENT = builtins.concatStringsSep " " [
             "User-Agent: Mozilla/5.0 (X11; Linux ${stdenv.hostPlatform.linuxArch})"
@@ -77,10 +85,16 @@ let
             "street" = "Hogeweide 346";
             "state" = "Province of Utrecht";
             "city" = "Utrecht";
-            "product" = "DaVinci Resolve";
+            "product" = PRODUCT;
           };
 
         } ''
+        DOWNLOADID=$(
+          curl --silent --compressed "$DOWNLOADSURL" \
+            | jq --raw-output '.downloads[] | select(.name | test("^'"$PRODUCT $VERSION"'( Update)?$")) | .urls.Linux[0].downloadId'
+        )
+        echo "downloadid is $DOWNLOADID"
+        test -n "$DOWNLOADID"
         RESOLVEURL=$(curl \
           --silent \
           --header 'Host: www.blackmagicdesign.com' \
@@ -95,7 +109,7 @@ let
           --header 'Cookie: _ga=GA1.2.1849503966.1518103294; _gid=GA1.2.953840595.1518103294' \
           --data-ascii "$REQJSON" \
           --compressed \
-          "$SITEURL")
+          "$SITEURL/$DOWNLOADID")
 
         curl \
           --retry 3 --retry-delay 3 \
@@ -111,14 +125,17 @@ let
       # The unpack phase won't generate a directory
       sourceRoot = ".";
 
-      installPhase = ''
+      installPhase = let
+        appimageName = "DaVinci_Resolve_${lib.optionalString studioVariant "Studio_"}${version}_Linux.run";
+      in ''
         runHook preInstall
 
         export HOME=$PWD/home
         mkdir -p $HOME
 
         mkdir -p $out
-        appimage-run ./DaVinci_Resolve_${version}_Linux.run -i -y -n -C $out
+        test -e ${lib.escapeShellArg appimageName}
+        appimage-run ${lib.escapeShellArg appimageName} -i -y -n -C $out
 
         mkdir -p $out/{configs,DolbyVision,easyDCP,Fairlight,GPUCache,logs,Media,"Resolve Disk Database",.crashreport,.license,.LUT}
         runHook postInstall
@@ -162,7 +179,9 @@ let
   );
 in
 buildFHSEnv {
-  name = "davinci-resolve";
+  inherit (davinci) pname version;
+  name = null;
+
   targetPkgs = pkgs: with pkgs; [
     alsa-lib
     aprutil
@@ -201,6 +220,7 @@ buildFHSEnv {
     xorg.libXinerama
     xorg.libXrandr
     xorg.libXrender
+    xorg.libXt
     xorg.libXtst
     xorg.libXxf86vm
     xorg.libxcb
@@ -213,16 +233,22 @@ buildFHSEnv {
     zlib
   ];
 
+  extraBwrapArgs = lib.optionals studioVariant [
+    "--bind \"$HOME\"/.local/share/DaVinciResolve/license ${davinci}/.license"
+  ];
+
   runScript = "${bash}/bin/bash ${
     writeText "davinci-wrapper"
     ''
     export QT_XKB_CONFIG_ROOT="${xkeyboard_config}/share/X11/xkb"
     export QT_PLUGIN_PATH="${davinci}/libs/plugins:$QT_PLUGIN_PATH"
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${davinci}/libs
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib32:${davinci}/libs
     ${davinci}/bin/resolve
     ''
   }";
 
+  passthru = { inherit davinci; };
+
   meta = with lib; {
     description = "Professional video editing, color, effects and audio post-processing";
     homepage = "https://www.blackmagicdesign.com/products/davinciresolve";
diff --git a/nixpkgs/pkgs/applications/video/hypnotix/default.nix b/nixpkgs/pkgs/applications/video/hypnotix/default.nix
index 647f171c8731..bcf09b962483 100644
--- a/nixpkgs/pkgs/applications/video/hypnotix/default.nix
+++ b/nixpkgs/pkgs/applications/video/hypnotix/default.nix
@@ -9,17 +9,18 @@
 , mpv
 , python3
 , wrapGAppsHook
+, yt-dlp
 }:
 
 stdenv.mkDerivation rec {
   pname = "hypnotix";
-  version = "3.7";
+  version = "4.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "hypnotix";
     rev = version;
-    hash = "sha256-H8+KJ9+HLAorGIeljw8H3N8W3E2yYhAno1xy+jI54zM=";
+    hash = "sha256-0iJzlj5FRDXJdh+vWVvZaBJVNru7CfkvJtZUZYKoqPw=";
   };
 
   patches = [
@@ -32,8 +33,12 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace usr/lib/hypnotix/hypnotix.py \
       --replace __DEB_VERSION__ ${version} \
+      --replace /usr/bin/yt-dlp ${yt-dlp}/bin/yt-dlp \
       --replace /usr/share/circle-flags-svg ${circle-flags}/share/circle-flags-svg \
       --replace /usr/share/hypnotix $out/share/hypnotix
+
+    substituteInPlace usr/bin/hypnotix \
+      --replace /usr/lib/hypnotix/hypnotix.py $out/lib/hypnotix/hypnotix.py
   '';
 
   nativeBuildInputs = [
@@ -47,6 +52,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cinnamon.xapp
+    python3 # for patchShebangs
   ];
 
   pythonPath = with python3.pkgs; [
@@ -62,8 +68,7 @@ stdenv.mkDerivation rec {
     runHook preInstall
 
     mkdir -p $out
-    cp -r usr/lib $out
-    cp -r usr/share $out
+    cp -r usr/* $out
 
     glib-compile-schemas $out/share/glib-2.0/schemas
 
@@ -72,8 +77,10 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     buildPythonPath "$out $pythonPath"
-    makeWrapper ${python3.interpreter} $out/bin/hypnotix \
-      --add-flags $out/lib/hypnotix/hypnotix.py \
+
+    # yt-dlp is needed for mpv to play YouTube channels.
+    wrapProgram $out/bin/hypnotix \
+      --prefix PATH : "${lib.makeBinPath [ yt-dlp ]}" \
       --prefix PYTHONPATH : "$program_PYTHONPATH" \
       ''${gappsWrapperArgs[@]}
   '';
diff --git a/nixpkgs/pkgs/applications/video/kodi/addons/pvr-hts/default.nix b/nixpkgs/pkgs/applications/video/kodi/addons/pvr-hts/default.nix
index a3b2e81fa686..16c1520fc5f0 100644
--- a/nixpkgs/pkgs/applications/video/kodi/addons/pvr-hts/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/addons/pvr-hts/default.nix
@@ -2,13 +2,13 @@
 buildKodiBinaryAddon rec {
   pname = "pvr-hts";
   namespace = "pvr.hts";
-  version = "20.6.4";
+  version = "20.6.5";
 
   src = fetchFromGitHub {
     owner = "kodi-pvr";
     repo = "pvr.hts";
     rev = "${version}-${rel}";
-    sha256 = "sha256-IrVz4rHAmaj/ACBNEF0x3kJa3fFPTTT7Pv9GnWJm8Vg=";
+    sha256 = "sha256-NrSLWZn+aeWUKxM/ETvoE4gRo4JZsD1snpLvMLDlpFw=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/default.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/default.nix
index 9d16deb1c529..fb75464ab98e 100644
--- a/nixpkgs/pkgs/applications/video/mpv/scripts/default.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/default.nix
@@ -15,7 +15,7 @@ in lib.recurseIntoAttrs
     inhibit-gnome = callPackage ./inhibit-gnome.nix { };
     mpris = callPackage ./mpris.nix { };
     mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { inherit buildLua; };
-    mpv-webm = callPackage ./mpv-webm.nix { };
+    mpv-webm = callPackage ./mpv-webm.nix { inherit buildLua; };
     mpvacious = callPackage ./mpvacious.nix { inherit buildLua; };
     quality-menu = callPackage ./quality-menu.nix { inherit buildLua; };
     simple-mpv-webui = callPackage ./simple-mpv-webui.nix { inherit buildLua; };
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-webm.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-webm.nix
index 983003d79d71..b155846750dc 100644
--- a/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-webm.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/mpv-webm.nix
@@ -1,30 +1,28 @@
 { lib
-, stdenvNoCC
+, buildLua
 , fetchFromGitHub
 , luaPackages
+, nix-update-script
 }:
 
-stdenvNoCC.mkDerivation {
+buildLua {
   pname = "mpv-webm";
-  version = "unstable-2023-02-23";
+  version = "unstable-2023-11-18";
 
   src = fetchFromGitHub {
     owner = "ekisu";
     repo = "mpv-webm";
-    rev = "a18375932e39e9b2a40d9c7ab52ea367b41e2558";
-    hash = "sha256-aetkQ1gU/6Yys5FJS/N06ED9tCSvL6BAgUGdNmNmpbU=";
+    rev = "6b5863f68275b3dc91c2507284c039ec8a4cbd97";
+    hash = "sha256-rJamBm6FyxWcJO7VXXOUTO9piWCkPfEVdqGKGeJ/h0c=";
   };
 
+  dontBuild = false;
   nativeBuildInputs = [ luaPackages.moonscript ];
+  scriptPath = "build/webm.lua";
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/mpv/scripts
-    install -m 644 build/webm.lua $out/share/mpv/scripts/
-    runHook postInstall
-  '';
-
-  passthru.scriptName = "webm.lua";
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version=branch" ];
+  };
 
   meta = with lib; {
     description = "Simple WebM maker for mpv, with no external dependencies";
diff --git a/nixpkgs/pkgs/applications/virtualization/tart/default.nix b/nixpkgs/pkgs/applications/virtualization/tart/default.nix
index cc924278b9aa..6afe021c36c5 100644
--- a/nixpkgs/pkgs/applications/virtualization/tart/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/tart/default.nix
@@ -10,11 +10,11 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "tart";
-  version = "2.3.0";
+  version = "2.4.1";
 
   src = fetchurl {
     url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart.tar.gz";
-    sha256 = "sha256-LdzP0Vovda0W6uBg71dJlTxP+Qly+c2Shv3xrMmxYDg=";
+    sha256 = "sha256-dCKUwDC7M3u8/8yJQp/v0zy7GuB7SvjnRmTLtodUz80=";
   };
   sourceRoot = ".";
 
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix b/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
index c3058294ca55..c5dbf3766f06 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swaylock-effects";
-  version = "1.6.11";
+  version = "1.7.0.0";
 
   src = fetchFromGitHub {
     owner = "jirutka";
     repo = "swaylock-effects";
     rev = "v${version}";
-    sha256 = "sha256-MKmWVYssO9HAcP5uqwpy9kDa6/kfZyV2NI7ibozt7Ug=";
+    sha256 = "sha256-cuFM+cbUmGfI1EZu7zOsQUj4rA4Uc4nUXcvIfttf9zE=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/window-managers/weston/default.nix b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
index 3d2c720e137c..34532411888c 100644
--- a/nixpkgs/pkgs/applications/window-managers/weston/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch2
+{ lib, stdenv, fetchurl
 , meson, ninja, pkg-config, python3, wayland-scanner
 , cairo, libGL, libdrm, libevdev, libinput, libxkbcommon, mesa, seatd, wayland
 , wayland-protocols, xcbutilcursor
@@ -19,23 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "weston";
-  version = "12.0.2";
+  version = "13.0.0";
 
   src = fetchurl {
     url = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${version}/downloads/weston-${version}.tar.xz";
-    hash = "sha256-62hqfPAJkqI7F/GS/KmohzE+ksNG7jXYV1GWmD1la0o=";
+    hash = "sha256-Uv8dSqI5Si5BbIWjOLYnzpf6cdQ+t2L9Sq8UXTb8eVo=";
   };
 
-  patches = [
-    # ci, backend-vnc: update to Neat VNC 0.7.0
-    # part of https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1051
-    (fetchpatch2 {
-      url = "https://gitlab.freedesktop.org/wayland/weston/-/commit/8895b15f3dfc555a869e310ff6e16ff5dced1336.patch";
-      hash = "sha256-PGAmQhzG8gZcYRaZwhKPlgzfbILIXGAHLSd9dCHAP1A=";
-      excludes = [ ".gitlab-ci.yml" ];
-    })
-  ];
-
   depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [ meson ninja pkg-config python3 wayland-scanner ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/build-support/add-driver-runpath/default.nix b/nixpkgs/pkgs/build-support/add-driver-runpath/default.nix
new file mode 100644
index 000000000000..08547a4453c5
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/add-driver-runpath/default.nix
@@ -0,0 +1,14 @@
+{ lib, stdenv }:
+
+stdenv.mkDerivation {
+  name = "add-driver-runpath";
+
+  # Named "opengl-driver" for legacy reasons, but it is the path to
+  # hardware drivers installed by NixOS
+  driverLink = "/run/opengl-driver" + lib.optionalString stdenv.isi686 "-32";
+
+  buildCommand = ''
+    mkdir -p $out/nix-support
+    substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook
+  '';
+}
diff --git a/nixpkgs/pkgs/build-support/add-driver-runpath/setup-hook.sh b/nixpkgs/pkgs/build-support/add-driver-runpath/setup-hook.sh
new file mode 100644
index 000000000000..86a41a7e2519
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/add-driver-runpath/setup-hook.sh
@@ -0,0 +1,29 @@
+# Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found.
+# This is needed to not rely on LD_LIBRARY_PATH which does not work with setuid
+# executables. Fixes https://github.com/NixOS/nixpkgs/issues/22760. It must be run
+# in postFixup because RUNPATH stripping in fixup would undo it. Note that patchelf
+# actually sets RUNPATH not RPATH, which applies only to dependencies of the binary
+# it set on (including for dlopen), so the RUNPATH must indeed be set on these
+# libraries and would not work if set only on executables.
+addDriverRunpath() {
+    local forceRpath=
+
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            --) shift; break;;
+            --force-rpath) shift; forceRpath=1;;
+            --*)
+                echo "addDriverRunpath: ERROR: Invalid command line" \
+                     "argument: $1" >&2
+                return 1;;
+            *) break;;
+        esac
+    done
+
+    for file in "$@"; do
+        if ! isELF "$file"; then continue; fi
+        local origRpath="$(patchelf --print-rpath "$file")"
+        patchelf --set-rpath "@driverLink@/lib:$origRpath" ${forceRpath:+--force-rpath} "$file"
+    done
+}
+
diff --git a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
index ccd342eaa0d1..dd6032fc52cf 100644
--- a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
@@ -301,12 +301,6 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" relro bindnow"
     ''
 
-    + optionalString (libc != null && targetPlatform.isAvr) ''
-      for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
-        echo "-L${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-cflags
-      done
-    ''
-
     + optionalString stdenv.targetPlatform.isDarwin ''
       echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
     ''
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
index 8ac11436c5f7..539c29a0a774 100644
--- a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
@@ -649,12 +649,6 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" stackprotector"
     ''
 
-    + optionalString (libc != null && targetPlatform.isAvr) ''
-      for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
-        echo "-B${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-crt1-cflags
-      done
-    ''
-
     + optionalString stdenv.targetPlatform.isDarwin ''
         echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
     ''
diff --git a/nixpkgs/pkgs/build-support/fetchtorrent/default.nix b/nixpkgs/pkgs/build-support/fetchtorrent/default.nix
index beb2415df707..126748678bf2 100644
--- a/nixpkgs/pkgs/build-support/fetchtorrent/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchtorrent/default.nix
@@ -14,6 +14,7 @@ in
 , recursiveHash ? true
 , postFetch ? ""
 , postUnpack ? ""
+, meta ? {}
 }:
 let
   afterSuccess = writeShellScript "fetch-bittorrent-done.sh" ''
@@ -30,6 +31,7 @@ let
   jsonConfig = (formats.json {}).generate "jsonConfig" config;
 in
 runCommand name {
+  inherit meta;
   nativeBuildInputs = [ cacert ] ++ (if (backend == "transmission" ) then [ transmission_noSystemd ] else if (backend == "rqbit") then [ rqbit ] else throw "rqbit or transmission are the only available backends for fetchtorrent");
   outputHashAlgo = if hash != "" then null else "sha256";
   outputHash = hash;
diff --git a/nixpkgs/pkgs/build-support/fetchtorrent/tests.nix b/nixpkgs/pkgs/build-support/fetchtorrent/tests.nix
index b36c82c6326f..e8cc3f33878b 100644
--- a/nixpkgs/pkgs/build-support/fetchtorrent/tests.nix
+++ b/nixpkgs/pkgs/build-support/fetchtorrent/tests.nix
@@ -1,25 +1,47 @@
-{ testers, fetchtorrent, ... }:
+{ testers, fetchtorrent, lib, ... }:
+
+let
+  wired-cd.meta.license = [
+    # track 1, 4 and 11
+    {
+      spdxID = "CC NC-SAMPLING+ 1.0 Deed";
+      fullName = "NonCommercial Sampling Plus 1.0 Generic";
+      url = "https://creativecommons.org/licenses/nc-sampling+/1.0/";
+      free = false; # for noncommercial purposes only
+    }
+    # the rest
+    {
+      spdxID = "CC SAMPLING+ 1.0 Deed";
+      fullName = "Sampling Plus 1.0 Generic";
+      url = "https://creativecommons.org/licenses/sampling+/1.0/";
+      free = true; # no use in advertisement
+    }
+  ];
+in
 
 {
   http-link = testers.invalidateFetcherByDrvHash fetchtorrent {
     url = "https://webtorrent.io/torrents/wired-cd.torrent";
     hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
     backend = "transmission";
+    inherit (wired-cd) meta;
   };
   magnet-link = testers.invalidateFetcherByDrvHash fetchtorrent {
     url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent";
     hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
     backend = "transmission";
+    inherit (wired-cd) meta;
   };
   http-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent {
     url = "https://webtorrent.io/torrents/wired-cd.torrent";
     hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
     backend = "rqbit";
+    inherit (wired-cd) meta;
   };
   magnet-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent {
     url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent";
     hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
     backend = "rqbit";
+    inherit (wired-cd) meta;
   };
 }
-
diff --git a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.lock b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.lock
index 4f6e177fd9ae..8ba72a7b76c4 100644
--- a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.lock
+++ b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.lock
@@ -47,9 +47,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "bitflags"
@@ -59,9 +59,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "block-buffer"
@@ -110,9 +110,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -177,9 +177,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.67+curl-8.3.0"
+version = "0.4.68+curl-8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc35d066510b197a0f72de863736641539957628c8a42e70e27c66849e77c34"
+checksum = "b4a0d18d88360e374b16b2273c832b5e57258ffc1d4aa4f96b108e0738d5752f"
 dependencies = [
  "cc",
  "libc",
@@ -208,9 +208,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -221,9 +221,9 @@ dependencies = [
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
 dependencies = [
  "libc",
  "windows-sys",
@@ -267,15 +267,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
 
 [[package]]
 name = "futures-lite"
@@ -304,9 +304,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "libc",
@@ -321,9 +321,9 @@ checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -399,9 +399,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libz-sys"
@@ -417,9 +417,9 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
 
 [[package]]
 name = "log"
@@ -456,9 +456,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9"
 dependencies = [
  "cc",
  "libc",
@@ -468,9 +468,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "percent-encoding"
@@ -542,6 +542,7 @@ dependencies = [
  "digest",
  "env_logger",
  "isahc",
+ "log",
  "rayon",
  "serde",
  "serde_json",
@@ -622,18 +623,18 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.6"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -643,9 +644,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.9"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -654,17 +655,17 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustix"
-version = "0.38.18"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -703,18 +704,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -723,9 +724,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -776,9 +777,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
@@ -786,9 +787,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -797,9 +798,9 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
@@ -810,9 +811,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
  "winapi-util",
 ]
@@ -834,11 +835,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-attributes",
@@ -847,9 +847,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -858,9 +858,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
diff --git a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.toml b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.toml
index 0f7735a6e827..ea121c510c95 100644
--- a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.toml
+++ b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/Cargo.toml
@@ -8,15 +8,16 @@ edition = "2021"
 [dependencies]
 anyhow = "1.0.75"
 backoff = "0.4.0"
-base64 = "0.21.4"
+base64 = "0.21.5"
 digest = "0.10.7"
-env_logger = "0.10.0"
+env_logger = "0.10.1"
 isahc = { version = "1.7.2", default_features = false }
+log = "0.4.20"
 rayon = "1.8.0"
-serde = { version = "1.0.188", features = ["derive"] }
-serde_json = "1.0.107"
+serde = { version = "1.0.193", features = ["derive"] }
+serde_json = "1.0.108"
 sha1 = "0.10.6"
 sha2 = "0.10.8"
-tempfile = "3.8.0"
+tempfile = "3.8.1"
 url = { version = "2.4.1", features = ["serde"] }
 walkdir = "2.4.0"
diff --git a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix
index cfa3366491f2..725f9ba3bb01 100644
--- a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix
+++ b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix
@@ -125,6 +125,18 @@
 
           forceGitDeps = true;
         };
+
+        # This package has a lockfile v1 git dependency with no `dependencies` attribute, since it sementically has no dependencies.
+        jitsiMeet9111 = makeTest {
+          name = "jitsi-meet-9111";
+
+          src = fetchurl {
+            url = "https://raw.githubusercontent.com/jitsi/jitsi-meet/stable/jitsi-meet_9111/package-lock.json";
+            hash = "sha256-NU+eQD4WZ4BMur8uX79uk8wUPsZvIT02KhPWHTmaihk=";
+          };
+
+          hash = "sha256-FhxlJ0HdJMPiWe7+n1HaGLWOr/2HJEPwiS65uqXZM8Y=";
+        };
       };
 
     meta = with lib; {
diff --git a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
index 75133b1b03ea..c49c094b85c6 100644
--- a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
+++ b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
@@ -4,6 +4,7 @@ use serde::{Deserialize, Serialize};
 use sha1::Sha1;
 use sha2::{Sha256, Sha512};
 use std::{
+    fmt::Write as FmtWrite,
     fs::{self, File},
     io::Write,
     path::PathBuf,
@@ -78,10 +79,10 @@ impl Cache {
 
             push_hash_segments(
                 &mut p,
-                &hash
-                    .into_iter()
-                    .map(|n| format!("{n:02x}"))
-                    .collect::<String>(),
+                &hash.into_iter().fold(String::new(), |mut out, n| {
+                    let _ = write!(out, "{n:02x}");
+                    out
+                }),
             );
 
             p
diff --git a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs
index f50a31651d0e..e3580cfca0d3 100644
--- a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs
+++ b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs
@@ -18,23 +18,20 @@ pub(super) fn packages(content: &str) -> anyhow::Result<Vec<Package>> {
         1 => {
             let initial_url = get_initial_url()?;
 
-            lockfile
-                .dependencies
-                .map(|p| to_new_packages(p, &initial_url))
-                .transpose()?
+            to_new_packages(lockfile.dependencies.unwrap_or_default(), &initial_url)?
         }
-        2 | 3 => lockfile.packages.map(|pkgs| {
-            pkgs.into_iter()
-                .filter(|(n, p)| !n.is_empty() && matches!(p.resolved, Some(UrlOrString::Url(_))))
-                .map(|(n, p)| Package { name: Some(n), ..p })
-                .collect()
-        }),
+        2 | 3 => lockfile
+            .packages
+            .unwrap_or_default()
+            .into_iter()
+            .filter(|(n, p)| !n.is_empty() && matches!(p.resolved, Some(UrlOrString::Url(_))))
+            .map(|(n, p)| Package { name: Some(n), ..p })
+            .collect(),
         _ => bail!(
             "We don't support lockfile version {}, please file an issue.",
             lockfile.version
         ),
-    }
-    .expect("lockfile should have packages");
+    };
 
     packages.par_sort_by(|x, y| {
         x.resolved
@@ -182,6 +179,7 @@ impl fmt::Display for Hash {
     }
 }
 
+#[allow(clippy::incorrect_partial_ord_impl_on_ord_type)]
 impl PartialOrd for Hash {
     fn partial_cmp(&self, other: &Hash) -> Option<Ordering> {
         let lhs = self.0.split_once('-')?.0;
diff --git a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
index 880a972e80e9..0bca33f03915 100644
--- a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
+++ b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
@@ -1,5 +1,6 @@
 use anyhow::{anyhow, bail, Context};
 use lock::UrlOrString;
+use log::{debug, info};
 use rayon::prelude::*;
 use serde_json::{Map, Value};
 use std::{
@@ -19,6 +20,8 @@ pub fn lockfile(
     force_git_deps: bool,
     force_empty_cache: bool,
 ) -> anyhow::Result<Vec<Package>> {
+    debug!("parsing lockfile with contents:\n{content}");
+
     let mut packages = lock::packages(content)
         .context("failed to extract packages from lockfile")?
         .into_par_iter()
@@ -46,6 +49,8 @@ pub fn lockfile(
 
         let path = dir.path().join("package");
 
+        info!("recursively parsing lockfile for {} at {path:?}", pkg.name);
+
         let lockfile_contents = fs::read_to_string(path.join("package-lock.json"));
 
         let package_json_path = path.join("package.json");
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/default.nix b/nixpkgs/pkgs/build-support/trivial-builders/default.nix
index 744c7807f463..0b9f696d1cb8 100644
--- a/nixpkgs/pkgs/build-support/trivial-builders/default.nix
+++ b/nixpkgs/pkgs/build-support/trivial-builders/default.nix
@@ -631,6 +631,19 @@ rec {
     let mkEntryFromDrv = drv: { name = drv.name; path = drv; };
     in linkFarm name (map mkEntryFromDrv drvs);
 
+  /*
+    Produce a derivation that links to the target derivation's `/bin`,
+    and *only* `/bin`.
+
+    This is useful when your favourite package doesn't have a separate
+    bin output and other contents of the package's output (e.g. setup
+    hooks) cause trouble when used in your environment.
+  */
+  onlyBin = drv: runCommand "${drv.name}-only-bin" {} ''
+    mkdir -p $out
+    ln -s ${lib.getBin drv}/bin $out/bin
+  '';
+
 
   # docs in doc/builders/special/makesetuphook.section.md
   makeSetupHook =
diff --git a/nixpkgs/pkgs/by-name/ab/aba/package.nix b/nixpkgs/pkgs/by-name/ab/aba/package.nix
index 14a32c61375d..6cf7ec2544bc 100644
--- a/nixpkgs/pkgs/by-name/ab/aba/package.nix
+++ b/nixpkgs/pkgs/by-name/ab/aba/package.nix
@@ -6,7 +6,7 @@
 , scdoc
 }:
 let
-  version = "0.7.1";
+  version = "0.8.0";
 in
 rustPlatform.buildRustPackage {
   pname = "aba";
@@ -16,11 +16,10 @@ rustPlatform.buildRustPackage {
     owner = "~onemoresuza";
     repo = "aba";
     rev = version;
-    hash = "sha256-Sz9I1Dw7wmoUPpTBNfbYbehfNO8FK6r/ubofx+FGb04=";
-    domain = "sr.ht";
+    hash = "sha256-2zVQNchL4DFh2v2/kwupJTBSmXiKqlxzUMrP9TbfCMs=";
   };
 
-  cargoSha256 = "sha256-Ihoh+yp12qN74JHvJbEDoYz+eoMwPOQar+yBEy+bqb0=";
+  cargoHash = "sha256-YhSzbfcEIJjKWlyYq1lK70qt4f/Z71n7hgaaZ/D/U80=";
 
   nativeBuildInputs = [
     just
@@ -28,9 +27,8 @@ rustPlatform.buildRustPackage {
   ];
 
   postPatch = ''
-    # Suppress messages of command not found. jq is not needed for the build, but just calls it anyway.
-    sed -i '/[[:space:]]*|[[:space:]]*jq -r/s/jq -r .*/: \\/' ./justfile
-    # Let only nix strip the binary by disabling cargo's `strip = true`, like buildRustPackage does.
+    # Let only nix strip the binary by disabling cargo's `strip = true`, like
+    # buildRustPackage does when not using just's setup hooks.
     sed -i '/strip[[:space:]]*=[[:space:]]*true/s/true/false/' ./Cargo.toml
   '';
 
@@ -38,7 +36,7 @@ rustPlatform.buildRustPackage {
     justFlagsArray+=(
       PREFIX=${builtins.placeholder "out"}
       MANIFEST_OPTS="--frozen --locked --profile=release"
-      INSTALL_OPTS=--no-track
+      INSTALL_OPTS="--no-track"
     )
   '';
 
diff --git a/nixpkgs/pkgs/by-name/al/alp/package.nix b/nixpkgs/pkgs/by-name/al/alp/package.nix
new file mode 100644
index 000000000000..34bc447ed6d5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/al/alp/package.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, lib
+, buildGoModule
+, fetchFromGitHub
+, runCommand
+, alp
+}:
+
+buildGoModule rec {
+  pname = "alp";
+  version = "1.1.17";
+
+  src = fetchFromGitHub {
+    owner = "gernotfeichter";
+    repo = "alp";
+    rev = version;
+    hash = "sha256-7lyWu1bVn7UwLb/Em6VBbg3FrMyxGjebxt5gJhm/xpI=";
+  };
+  vendorHash = "sha256-a2CQZKN/rPWh/Pn9gXfSArTCcGST472tsz1Kqm7M4vM=";
+
+  sourceRoot = "${src.name}/linux";
+
+  # Executing Go commands directly in checkPhase and buildPhase below,
+  # because the default testsuite runs all go tests, some of which require docker.
+  # Docker is too expensive for https://github.com/NixOS/ofborg.
+  checkPhase = ''
+    runHook preCheck
+
+    go test -run Test_main_init
+
+    runHook postCheck
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    go build -o $GOPATH/bin/${pname} main.go
+
+    runHook postBuild
+  '';
+
+  passthru.tests = {
+    test-version = runCommand "${pname}-test" {} ''
+      ${alp}/bin/alp version > $out
+      cat $out | grep '${version}'
+    '';
+  };
+
+  meta = with lib; {
+    description = "A convenient authentication method that lets you use your android device as a key for your Linux machine";
+    homepage = "https://github.com/gernotfeichter/alp";
+    license = licenses.gpl2Only;
+    mainProgram = "alp";
+    maintainers = with maintainers; [ gernotfeichter ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ay/ayatana-indicator-messages/package.nix b/nixpkgs/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
new file mode 100644
index 000000000000..936c39a7fdce
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
@@ -0,0 +1,147 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gitUpdater
+, nixosTests
+, testers
+, accountsservice
+, cmake
+, dbus-test-runner
+, withDocumentation ? true
+, docbook_xsl
+, docbook_xml_dtd_45
+, glib
+, gobject-introspection
+, gtest
+, gtk-doc
+, intltool
+, lomiri
+, pkg-config
+, python3
+, systemd
+, vala
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ayatana-indicator-messages";
+  version = "23.10.0";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "ayatana-indicator-messages";
+    rev = finalAttrs.version;
+    hash = "sha256-FBJeP5hOXJcOk04cRJpw+oN7L3w3meDX3ivLmFWkhVI=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+  ] ++ lib.optionals withDocumentation [
+    "devdoc"
+  ];
+
+  postPatch = ''
+    # Uses pkg_get_variable, cannot substitute prefix with that
+    substituteInPlace data/CMakeLists.txt \
+      --replace "\''${SYSTEMD_USER_DIR}" "$out/lib/systemd/user"
+
+    # Bad concatenation
+    substituteInPlace libmessaging-menu/messaging-menu.pc.in \
+      --replace "\''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@" '@CMAKE_INSTALL_FULL_LIBDIR@' \
+      --replace "\''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@" '@CMAKE_INSTALL_FULL_INCLUDEDIR@'
+  '' + lib.optionalString (!withDocumentation) ''
+    sed -i CMakeLists.txt \
+      '/add_subdirectory(doc)/d'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    glib # For glib-compile-schemas
+    intltool
+    pkg-config
+    vala
+    wrapGAppsHook
+  ] ++ lib.optionals withDocumentation [
+    docbook_xsl
+    docbook_xml_dtd_45
+    gtk-doc
+  ];
+
+  buildInputs = [
+    accountsservice
+    lomiri.cmake-extras
+    glib
+    gobject-introspection
+    systemd
+  ];
+
+  nativeCheckInputs = [
+    (python3.withPackages (ps: with ps; [
+      pygobject3
+      python-dbusmock
+    ]))
+  ];
+
+  checkInputs = [
+    dbus-test-runner
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DENABLE_TESTS=${lib.boolToString finalAttrs.doCheck}"
+    "-DGSETTINGS_LOCALINSTALL=ON"
+    "-DGSETTINGS_COMPILE=ON"
+  ];
+
+  makeFlags = lib.optionals withDocumentation [
+    # gtk-doc doesn't call ld with the correct arguments
+    # ld: ...: undefined reference to symbol 'strncpy@@GLIBC_2.2.5', 'qsort@@GLIBC_2.2.5'
+    "LD=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  preCheck = ''
+    # test-client imports gir, whose solib entry points to final store location
+    install -Dm644 libmessaging-menu/libmessaging-menu.so.0.0.0 $out/lib/libmessaging-menu.so.0
+  '';
+
+  postCheck = ''
+    # remove the above solib-installation, let it be done properly
+    rm -r $out
+  '';
+
+  preInstall = lib.optionalString withDocumentation ''
+    # installing regenerates docs, generated files are created without write permissions, errors out while trying to overwrite them
+    chmod +w doc/reference/html/*
+  '';
+
+  passthru = {
+    ayatana-indicators = [
+      "ayatana-indicator-messages"
+    ];
+    tests = {
+      pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+      vm = nixosTests.ayatana-indicators;
+    };
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Ayatana Indicator Messages Applet";
+    longDescription = ''
+      The -messages Ayatana System Indicator is the messages menu indicator for Unity7, MATE and Lomiri (optionally for
+      others, e.g. XFCE, LXDE).
+    '';
+    homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-messages";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ OPNA2608 ];
+    pkgConfigModules = [
+      "messaging-menu"
+    ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/bn/bngblaster/package.nix b/nixpkgs/pkgs/by-name/bn/bngblaster/package.nix
new file mode 100644
index 000000000000..6149a049131f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bn/bngblaster/package.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, cmocka
+, libdict
+, ncurses
+, jansson
+, openssl
+, libpcap
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bngblaster";
+  version = "0.8.29";
+
+  src = fetchFromGitHub {
+    owner = "rtbrick";
+    repo = "bngblaster";
+    rev = finalAttrs.version;
+    hash = "sha256-yuWSGN7wLRksNjgr7c5GiC9JTN4T1PJV4Js1ZOGBKqA=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    libdict
+    ncurses
+    jansson
+    openssl
+    cmocka
+  ] ++ lib.optionals finalAttrs.doCheck [
+    libpcap
+  ];
+
+  cmakeFlags = [
+    "-DBNGBLASTER_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}"
+    "-DBNGBLASTER_VERSION=${finalAttrs.version}"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/rtbrick/bngblaster/";
+    changelog = "https://github.com/rtbrick/bngblaster/releases/tag/${finalAttrs.version}";
+    description = "network tester for access and routing protocols";
+    license = licenses.bsd3;
+    maintainers = teams.wdz.members;
+    badPlatforms = platforms.darwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/br/bruno/package.nix b/nixpkgs/pkgs/by-name/br/bruno/package.nix
index 66d5126c5f31..9be7b663d4f3 100644
--- a/nixpkgs/pkgs/by-name/br/bruno/package.nix
+++ b/nixpkgs/pkgs/by-name/br/bruno/package.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bruno";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://github.com/usebruno/bruno/releases/download/v${version}/bruno_${version}_amd64_linux.deb";
-    hash = "sha256-60YwXAukGnMiaYxVOcUgGa/r/If1pJC6pMyyltTfd1c=";
+    hash = "sha256-E9aVyZWqY8XTwoUbHaj8VM32Eex7GNQcEpg8Hkk2O0U=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix
new file mode 100644
index 000000000000..f884dd817c1d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, dbus
+, udev
+, openssl
+, darwin
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-vibe";
+  version = "unstable-2022-12-29";
+
+  src = fetchFromGitHub {
+    owner = "Shadlock0133";
+    repo = pname;
+    rev = "a54d87b080ff7d8b3207f83f8f434b226572f0fe";
+    hash = "sha256-0IwxbMcRH+6WgrzpcU5zfRuKs80XY0mDBjDE9DBnOFk=";
+  };
+  cargoHash = "sha256-mvFp1yPHl+2K2K44G3KAmvPYsalN25kkE3V/2eq2iqs=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    dbus
+    openssl
+  ]
+  ++ lib.optional stdenv.isLinux udev
+  ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit IOKit CoreBluetooth ]);
+
+  meta = with lib; {
+    description = "Cargo x Buttplug.io";
+    homepage = "https://github.com/shadlock0133/cargo-vibe";
+    license = licenses.mit;
+    maintainers = with maintainers; [ _999eagle ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/cosmic-edit/Cargo.lock b/nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock
index 7a0af40f0bc5..4a0708f24f15 100644
--- a/nixpkgs/pkgs/applications/editors/cosmic-edit/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock
@@ -9,7 +9,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225"
 dependencies = [
  "ab_glyph_rasterizer",
- "owned_ttf_parser",
+ "owned_ttf_parser 0.20.0",
 ]
 
 [[package]]
@@ -49,9 +49,9 @@ source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "async-channel",
+ "async-channel 1.9.0",
  "atspi",
- "futures-lite",
+ "futures-lite 1.13.0",
  "log",
  "serde",
  "zbus",
@@ -64,7 +64,7 @@ source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "arrayvec",
+ "arrayvec 0.7.4",
  "once_cell",
  "paste",
  "windows",
@@ -79,7 +79,7 @@ dependencies = [
  "accesskit_macos",
  "accesskit_unix",
  "accesskit_windows",
- "winit",
+ "winit 0.28.6",
 ]
 
 [[package]]
@@ -98,6 +98,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
 name = "ahash"
 version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -114,7 +120,7 @@ version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -148,6 +154,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14"
 
 [[package]]
+name = "andrew"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c4afb09dd642feec8408e33f92f3ffc4052946f6b20f32fb99c1f58cd4fa7cf"
+dependencies = [
+ "bitflags 1.3.2",
+ "rusttype",
+ "walkdir",
+ "xdg",
+ "xml-rs",
+]
+
+[[package]]
 name = "android-activity"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -159,9 +178,9 @@ dependencies = [
  "jni-sys",
  "libc",
  "log",
- "ndk",
+ "ndk 0.7.0",
  "ndk-context",
- "ndk-sys",
+ "ndk-sys 0.4.1+23.1.7779620",
  "num_enum 0.6.1",
 ]
 
@@ -209,11 +228,23 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
 
 [[package]]
 name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "arrayvec"
 version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
+name = "as-raw-xcb-connection"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d5f312b0a56c5cdf967c0aeb67f6289603354951683bc97ddc595ab974ba9aa"
+
+[[package]]
 name = "ash"
 version = "0.37.3+1.3.251"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -223,6 +254,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "ashpd"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7370b58af1d7e96df3ca0f454b57e69acf9aa42ed2d7337bd206923bae0d5754"
+dependencies = [
+ "enumflags2",
+ "futures-channel",
+ "futures-util",
+ "once_cell",
+ "rand",
+ "serde",
+ "serde_repr",
+ "tokio",
+ "url",
+ "zbus",
+]
+
+[[package]]
 name = "async-broadcast"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -244,16 +293,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "async-channel"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 4.0.0",
+ "event-listener-strategy",
+ "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",
+ "async-lock 3.1.2",
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite",
+ "futures-lite 2.0.1",
  "slab",
 ]
 
@@ -263,10 +325,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]]
@@ -275,38 +337,37 @@ 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",
+ "cfg-if 1.0.0",
  "concurrent-queue",
- "futures-lite",
+ "futures-lite 1.13.0",
  "log",
  "parking",
  "polling 2.8.0",
  "rustix 0.37.27",
  "slab",
- "socket2",
+ "socket2 0.4.10",
  "waker-fn",
 ]
 
 [[package]]
 name = "async-io"
-version = "2.1.0"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10da8f3146014722c89e7859e1d7bb97873125d7346d10ca642ffab794355828"
+checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff"
 dependencies = [
- "async-lock",
- "cfg-if",
+ "async-lock 3.1.2",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "futures-io",
- "futures-lite",
+ "futures-lite 2.0.1",
  "parking",
- "polling 3.3.0",
- "rustix 0.38.21",
+ "polling 3.3.1",
+ "rustix 0.38.25",
  "slab",
  "tracing",
- "waker-fn",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -319,19 +380,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "async-lock"
+version = "3.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dea8b3453dd7cc96711834b75400d671b73e3656975fa68d9f277163b7f7e316"
+dependencies = [
+ "event-listener 4.0.0",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[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",
+ "async-lock 2.8.0",
  "async-signal",
  "blocking",
- "cfg-if",
- "event-listener 3.0.1",
- "futures-lite",
- "rustix 0.38.21",
+ "cfg-if 1.0.0",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -343,7 +415,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -352,13 +424,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.1.0",
- "async-lock",
+ "async-io 2.2.1",
+ "async-lock 2.8.0",
  "atomic-waker",
- "cfg-if",
+ "cfg-if 1.0.0",
  "futures-core",
  "futures-io",
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -378,7 +450,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -402,10 +474,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 [[package]]
 name = "atomicwrites"
 version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4d45f362125ed144544e57b0ec6de8fd6a296d41a6252fc4a20c0cf12e9ed3a"
+source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
 dependencies = [
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "tempfile",
  "windows-sys 0.48.0",
 ]
@@ -420,7 +491,7 @@ dependencies = [
  "async-trait",
  "atspi-macros",
  "enumflags2",
- "futures-lite",
+ "futures-lite 1.13.0",
  "serde",
  "tracing",
  "zbus",
@@ -451,9 +522,9 @@ checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
- "miniz_oxide",
+ "miniz_oxide 0.7.1",
  "object",
  "rustc-demangle",
 ]
@@ -545,21 +616,32 @@ dependencies = [
 
 [[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",
+ "async-channel 2.1.1",
+ "async-lock 3.1.2",
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite",
+ "futures-lite 2.0.1",
  "piper",
  "tracing",
 ]
 
 [[package]]
+name = "bstr"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+dependencies = [
+ "memchr",
+ "regex-automata",
+ "serde",
+]
+
+[[package]]
 name = "bumpalo"
 version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -582,7 +664,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -592,6 +674,12 @@ 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 = "cairo-sys-rs"
 version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -603,6 +691,16 @@ dependencies = [
 
 [[package]]
 name = "calloop"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b036167e76041694579972c28cf4877b4f92da222560ddb49008937b6a6727c"
+dependencies = [
+ "log",
+ "nix 0.18.0",
+]
+
+[[package]]
+name = "calloop"
 version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
@@ -637,6 +735,12 @@ dependencies = [
 
 [[package]]
 name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
@@ -697,9 +801,25 @@ dependencies = [
  "bitflags 1.3.2",
  "block",
  "cocoa-foundation",
- "core-foundation",
- "core-graphics",
- "foreign-types",
+ "core-foundation 0.9.3",
+ "core-graphics 0.22.3",
+ "foreign-types 0.3.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "cocoa-foundation",
+ "core-foundation 0.9.3",
+ "core-graphics 0.23.1",
+ "foreign-types 0.5.0",
  "libc",
  "objc",
 ]
@@ -712,7 +832,7 @@ checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
 dependencies = [
  "bitflags 1.3.2",
  "block",
- "core-foundation",
+ "core-foundation 0.9.3",
  "core-graphics-types",
  "libc",
  "objc",
@@ -751,30 +871,71 @@ dependencies = [
 
 [[package]]
 name = "core-foundation"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
+dependencies = [
+ "core-foundation-sys 0.7.0",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation"
 version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
 dependencies = [
- "core-foundation-sys",
+ "core-foundation-sys 0.8.4",
  "libc",
 ]
 
 [[package]]
 name = "core-foundation-sys"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
+
+[[package]]
+name = "core-foundation-sys"
 version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
 name = "core-graphics"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation 0.7.0",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics"
 version = "0.22.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation",
+ "core-foundation 0.9.3",
  "core-graphics-types",
- "foreign-types",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics"
+version = "0.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation 0.9.3",
+ "core-graphics-types",
+ "foreign-types 0.5.0",
  "libc",
 ]
 
@@ -785,14 +946,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation",
+ "core-foundation 0.9.3",
  "libc",
 ]
 
 [[package]]
+name = "core-video-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828"
+dependencies = [
+ "cfg-if 0.1.10",
+ "core-foundation-sys 0.7.0",
+ "core-graphics 0.19.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
@@ -806,7 +980,7 @@ dependencies = [
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -818,14 +992,22 @@ version = "0.1.0"
 dependencies = [
  "cosmic-text 0.10.0",
  "env_logger",
- "fontdb 0.15.0",
+ "fork",
+ "grep",
  "i18n-embed",
  "i18n-embed-fl",
+ "ignore",
  "lazy_static",
  "libcosmic",
  "log",
+ "notify",
  "rfd",
  "rust-embed",
+ "serde",
+ "syntect",
+ "systemicons",
+ "tokio",
+ "two-face",
 ]
 
 [[package]]
@@ -851,19 +1033,20 @@ dependencies = [
 [[package]]
 name = "cosmic-text"
 version = "0.10.0"
-source = "git+https://github.com/pop-os/cosmic-text?branch=vi-editor#e62fea5efddb20fd1bc518e0d733a86f6858fa73"
+source = "git+https://github.com/pop-os/cosmic-text#daa5a6615c52d352e9c87d30e1ab35b8dd14bd91"
 dependencies = [
- "fontdb 0.15.0",
+ "cosmic_undo_2",
+ "fontdb 0.16.0",
  "libm",
  "log",
+ "modit",
  "rangemap",
  "rustc-hash",
  "rustybuzz 0.11.0",
- "self_cell 1.0.1",
+ "self_cell 1.0.2",
  "swash",
  "syntect",
  "sys-locale",
- "two-face",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -873,7 +1056,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -885,6 +1068,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "cosmic_undo_2"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afd123aba915d4643617882bd494db7aaa4be4f4ed84e7b8cee2fd45efe41afe"
+dependencies = [
+ "derivative",
+ "rustc_version",
+ "serde",
+]
+
+[[package]]
 name = "cpufeatures"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -899,7 +1093,21 @@ version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
 ]
 
 [[package]]
@@ -908,7 +1116,7 @@ version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "crossbeam-utils",
 ]
 
@@ -918,7 +1126,7 @@ version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
@@ -930,19 +1138,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
- "cfg-if",
+ "cfg-if 1.0.0",
  "crossbeam-utils",
  "memoffset 0.9.0",
  "scopeguard",
 ]
 
 [[package]]
+name = "crossbeam-queue"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils",
+]
+
+[[package]]
 name = "crossbeam-utils"
 version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
 ]
 
 [[package]]
@@ -978,6 +1196,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "ctor"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
+dependencies = [
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "cty"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
+
+[[package]]
 name = "d3d12"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -990,12 +1224,36 @@ dependencies = [
 
 [[package]]
 name = "darling"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
+dependencies = [
+ "darling_core 0.10.2",
+ "darling_macro 0.10.2",
+]
+
+[[package]]
+name = "darling"
 version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
 dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.20.3",
+ "darling_macro 0.20.3",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.9.3",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1008,8 +1266,19 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.38",
+ "strsim 0.10.0",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
+dependencies = [
+ "darling_core 0.10.2",
+ "quote",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1018,9 +1287,9 @@ version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
- "darling_core",
+ "darling_core 0.20.3",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1029,8 +1298,8 @@ version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
- "cfg-if",
- "hashbrown 0.14.2",
+ "cfg-if 1.0.0",
+ "hashbrown 0.14.3",
  "lock_api",
  "once_cell",
  "parking_lot_core 0.9.9",
@@ -1043,6 +1312,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
 
 [[package]]
+name = "deflate"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
+dependencies = [
+ "adler32",
+ "byteorder",
+]
+
+[[package]]
 name = "deranged"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1068,10 +1347,10 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d"
 dependencies = [
- "darling",
+ "darling 0.20.3",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1103,6 +1382,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "dirs-sys-next",
+]
+
+[[package]]
 name = "dirs-sys"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1126,6 +1415,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
 name = "dispatch"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1139,7 +1439,16 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "dlib"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76"
+dependencies = [
+ "libloading 0.6.7",
 ]
 
 [[package]]
@@ -1164,12 +1473,65 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
+name = "drm"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
+dependencies = [
+ "bitflags 2.4.1",
+ "bytemuck",
+ "drm-ffi",
+ "drm-fourcc",
+ "nix 0.27.1",
+]
+
+[[package]]
+name = "drm-ffi"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba7d1c19c4b6270e89d59fb27dc6d02a317c658a8a54e54781e1db9b5947595d"
+dependencies = [
+ "drm-sys",
+ "nix 0.27.1",
+]
+
+[[package]]
+name = "drm-fourcc"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
+
+[[package]]
+name = "drm-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a4f1c0468062a56cd5705f1e3b5409eb286d5596a2028ec8e947595d7e715ae"
+
+[[package]]
 name = "either"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "encoding_rs_io"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83"
+dependencies = [
+ "encoding_rs",
+]
+
+[[package]]
 name = "enumflags2"
 version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1187,14 +1549,14 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1211,12 +1573,12 @@ 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]]
@@ -1231,9 +1593,9 @@ dependencies = [
 
 [[package]]
 name = "etagere"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcf22f748754352918e082e0039335ee92454a5d62bcaf69b5e8daf5907d9644"
+checksum = "306960881d6c46bd0dd6b7f07442a441418c08d0d3e63d8d080b0f64c6343e4e"
 dependencies = [
  "euclid",
  "svg_fmt",
@@ -1256,9 +1618,9 @@ 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",
@@ -1266,6 +1628,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
+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.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "exr"
 version = "1.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1275,7 +1658,7 @@ dependencies = [
  "flume",
  "half",
  "lebe",
- "miniz_oxide",
+ "miniz_oxide 0.7.1",
  "rayon-core",
  "smallvec",
  "zune-inflate",
@@ -1317,7 +1700,7 @@ version = "0.2.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "redox_syscall 0.3.5",
  "windows-sys 0.48.0",
@@ -1339,7 +1722,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide",
+ "miniz_oxide 0.7.1",
 ]
 
 [[package]]
@@ -1350,12 +1733,9 @@ checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
 
 [[package]]
 name = "float_next_after"
-version = "0.1.5"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fc612c5837986b7104a87a0df74a5460931f1c5274be12f8d0f40aa2f30d632"
-dependencies = [
- "num-traits",
-]
+checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8"
 
 [[package]]
 name = "fluent"
@@ -1378,7 +1758,7 @@ dependencies = [
  "intl-memoizer",
  "intl_pluralrules",
  "rustc-hash",
- "self_cell 0.10.2",
+ "self_cell 0.10.3",
  "smallvec",
  "unic-langid",
 ]
@@ -1445,16 +1825,16 @@ dependencies = [
 
 [[package]]
 name = "fontdb"
-version = "0.15.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38"
+checksum = "98b88c54a38407f7352dd2c4238830115a6377741098ffd1f997c813d0e088a6"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.8.0",
+ "memmap2 0.9.0",
  "slotmap",
  "tinyvec",
- "ttf-parser 0.19.2",
+ "ttf-parser 0.20.0",
 ]
 
 [[package]]
@@ -1463,7 +1843,28 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 dependencies = [
- "foreign-types-shared",
+ "foreign-types-shared 0.1.1",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared 0.3.1",
+]
+
+[[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.39",
 ]
 
 [[package]]
@@ -1473,10 +1874,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "fork"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf2ca97a59201425e7ee4d197c9c4fea282fe87a97d666a580bda889b95b8e88"
+dependencies = [
+ "libc",
+]
+
+[[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",
 ]
@@ -1578,6 +1994,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-lite"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-macro"
 version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1585,7 +2015,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -1669,12 +2099,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "gethostname"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "js-sys",
  "libc",
  "wasi",
@@ -1683,6 +2123,16 @@ dependencies = [
 
 [[package]]
 name = "gif"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gif"
 version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
@@ -1693,9 +2143,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 = "gio-sys"
@@ -1727,6 +2177,25 @@ dependencies = [
 ]
 
 [[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",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
 name = "glow"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1801,7 +2270,7 @@ checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
  "bitflags 2.4.1",
  "gpu-descriptor-types",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -1814,6 +2283,85 @@ dependencies = [
 ]
 
 [[package]]
+name = "grep"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e2b024ec1e686cb64d78beb852030b0e632af93817f1ed25be0173af0e94939"
+dependencies = [
+ "grep-cli",
+ "grep-matcher",
+ "grep-printer",
+ "grep-regex",
+ "grep-searcher",
+]
+
+[[package]]
+name = "grep-cli"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea40788c059ab8b622c4d074732750bfb3bd2912e2dd58eabc11798a4d5ad725"
+dependencies = [
+ "bstr",
+ "globset",
+ "libc",
+ "log",
+ "termcolor",
+ "winapi-util",
+]
+
+[[package]]
+name = "grep-matcher"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47a3141a10a43acfedc7c98a60a834d7ba00dfe7bec9071cbfc19b55b292ac02"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "grep-printer"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "743c12a03c8aee38b6e5bd0168d8ebb09345751323df4a01c56e792b1f38ceb2"
+dependencies = [
+ "bstr",
+ "grep-matcher",
+ "grep-searcher",
+ "log",
+ "serde",
+ "serde_json",
+ "termcolor",
+]
+
+[[package]]
+name = "grep-regex"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f748bb135ca835da5cbc67ca0e6955f968db9c5df74ca4f56b18e1ddbc68230d"
+dependencies = [
+ "bstr",
+ "grep-matcher",
+ "log",
+ "regex-automata",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "grep-searcher"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba536ae4f69bec62d8839584dd3153d3028ef31bb229f04e09fb5a9e5a193c54"
+dependencies = [
+ "bstr",
+ "encoding_rs",
+ "encoding_rs_io",
+ "grep-matcher",
+ "log",
+ "memchr",
+ "memmap2 0.9.0",
+]
+
+[[package]]
 name = "grid"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1853,7 +2401,7 @@ version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "crunchy",
 ]
 
@@ -1868,9 +2416,9 @@ dependencies = [
 
 [[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",
  "allocator-api2",
@@ -1931,7 +2479,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.6",
+ "toml 0.8.8",
  "unic-langid",
 ]
 
@@ -1973,28 +2521,28 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.38",
+ "strsim 0.10.0",
+ "syn 2.0.39",
  "unic-langid",
 ]
 
 [[package]]
 name = "i18n-embed-impl"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a4d5bff745c9a6e1459c490059281b353a4ab0a4e1e58b3eeeaef71f97d07b"
+checksum = "81093c4701672f59416582fe3145676126fd23ba5db910acad0793c1108aaa58"
 dependencies = [
  "find-crate",
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "iced"
 version = "0.10.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2002,14 +2550,14 @@ dependencies = [
  "iced_renderer",
  "iced_widget",
  "iced_winit",
- "image",
+ "image 0.24.7",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2018,12 +2566,13 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.10.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "bitflags 1.3.2",
  "instant",
  "log",
  "palette",
+ "serde",
  "thiserror",
  "twox-hash",
 ]
@@ -2031,11 +2580,12 @@ dependencies = [
 [[package]]
 name = "iced_futures"
 version = "0.7.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "futures",
  "iced_core",
  "log",
+ "tokio",
  "wasm-bindgen-futures",
  "wasm-timer",
 ]
@@ -2043,38 +2593,38 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.9.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
  "glam",
  "half",
  "iced_core",
- "image",
+ "image 0.24.7",
  "kamadak-exif",
  "log",
  "lyon_path",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_renderer"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
  "iced_wgpu",
  "log",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_runtime"
 version = "0.1.1"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "iced_core",
  "iced_futures",
@@ -2084,7 +2634,7 @@ dependencies = [
 [[package]]
 name = "iced_style"
 version = "0.9.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2094,14 +2644,14 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "bytemuck",
  "cosmic-text 0.9.0",
  "iced_graphics",
  "kurbo",
  "log",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "resvg",
  "rustc-hash",
  "softbuffer",
@@ -2112,7 +2662,7 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.11.1"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2124,7 +2674,7 @@ dependencies = [
  "log",
  "lyon",
  "once_cell",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "resvg",
  "rustc-hash",
  "twox-hash",
@@ -2134,7 +2684,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.1.3"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2148,18 +2698,18 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.10.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
  "iced_style",
  "log",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "thiserror",
  "web-sys",
  "winapi",
  "window_clipboard",
- "winit",
+ "winit 0.28.6",
 ]
 
 [[package]]
@@ -2170,15 +2720,50 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
 ]
 
 [[package]]
+name = "ignore"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060"
+dependencies = [
+ "crossbeam-deque",
+ "globset",
+ "log",
+ "memchr",
+ "regex-automata",
+ "same-file",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "image"
+version = "0.23.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "gif 0.11.4",
+ "jpeg-decoder 0.1.22",
+ "num-iter",
+ "num-rational 0.3.2",
+ "num-traits",
+ "png 0.16.8",
+ "scoped_threadpool",
+ "tiff 0.6.1",
+]
+
+[[package]]
 name = "image"
 version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2188,13 +2773,13 @@ dependencies = [
  "byteorder",
  "color_quant",
  "exr",
- "gif",
- "jpeg-decoder",
- "num-rational",
+ "gif 0.12.0",
+ "jpeg-decoder 0.3.0",
+ "num-rational 0.4.1",
  "num-traits",
- "png",
+ "png 0.17.10",
  "qoi",
- "tiff",
+ "tiff 0.9.0",
 ]
 
 [[package]]
@@ -2220,7 +2805,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -2249,7 +2834,7 @@ version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "js-sys",
  "wasm-bindgen",
  "web-sys",
@@ -2292,7 +2877,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -2319,6 +2904,15 @@ dependencies = [
 
 [[package]]
 name = "jpeg-decoder"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "jpeg-decoder"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
@@ -2328,9 +2922,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.65"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2381,7 +2975,7 @@ version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
 ]
 
 [[package]]
@@ -2397,17 +2991,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 
 [[package]]
+name = "lexical-core"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
+dependencies = [
+ "arrayvec 0.5.2",
+ "bitflags 1.3.2",
+ "cfg-if 1.0.0",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic?branch=menu#ef6c21b647480e8bfea80e3dc628079de90f51c3"
+source = "git+https://github.com/pop-os/libcosmic#d6c8fbe268c3d37639098bc0d2021299e5dcf350"
 dependencies = [
  "apply",
+ "ashpd",
  "cosmic-config",
  "cosmic-theme",
  "css-color",
@@ -2428,9 +3036,21 @@ dependencies = [
  "slotmap",
  "taffy",
  "thiserror",
+ "tokio",
  "tracing",
  "unicode-segmentation",
  "url",
+ "zbus",
+]
+
+[[package]]
+name = "libloading"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi",
 ]
 
 [[package]]
@@ -2439,7 +3059,7 @@ version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "winapi",
 ]
 
@@ -2449,7 +3069,7 @@ version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "windows-sys 0.48.0",
 ]
 
@@ -2460,6 +3080,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.1",
+ "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.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
 name = "line-wrap"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2482,9 +3124,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
 
 [[package]]
 name = "locale_config"
@@ -2521,7 +3163,7 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
 dependencies = [
- "hashbrown 0.14.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -2536,9 +3178,9 @@ dependencies = [
 
 [[package]]
 name = "lyon_algorithms"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00a0349cd8f0270781bb93a824b63df6178e3b4a27794e7be3ce3763f5a44d6e"
+checksum = "a3bca95f9a4955b3e4a821fbbcd5edfbd9be2a9a50bb5758173e5358bfb4c623"
 dependencies = [
  "lyon_path",
  "num-traits",
@@ -2550,7 +3192,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
  "euclid",
  "num-traits",
 ]
@@ -2567,9 +3209,9 @@ dependencies = [
 
 [[package]]
 name = "lyon_tessellation"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d2124218d5428149f9e09520b9acc024334a607e671f032d06567b61008977c"
+checksum = "23bcac20d47825850fabf1e869bf7c2bbe2daefa0776c3cd2eb7cb74635f6e4a"
 dependencies = [
  "float_next_after",
  "lyon_path",
@@ -2593,6 +3235,15 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memmap2"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memmap2"
 version = "0.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
@@ -2611,9 +3262,9 @@ dependencies = [
 
 [[package]]
 name = "memmap2"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
+checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
 dependencies = [
  "libc",
 ]
@@ -2654,12 +3305,18 @@ dependencies = [
  "bitflags 1.3.2",
  "block",
  "core-graphics-types",
- "foreign-types",
+ "foreign-types 0.3.2",
  "log",
  "objc",
 ]
 
 [[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
 name = "minimal-lexical"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2667,6 +3324,25 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
+dependencies = [
+ "adler32",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
+dependencies = [
+ "adler",
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
@@ -2677,6 +3353,19 @@ dependencies = [
 
 [[package]]
 name = "mio"
+version = "0.7.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
+dependencies = [
+ "libc",
+ "log",
+ "miow",
+ "ntapi",
+ "winapi",
+]
+
+[[package]]
+name = "mio"
 version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
@@ -2688,6 +3377,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "mio-misc"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b47412f3a52115b936ff2a229b803498c7b4d332adeb87c2f1498c9da54c398c"
+dependencies = [
+ "crossbeam",
+ "crossbeam-queue",
+ "log",
+ "mio 0.7.14",
+]
+
+[[package]]
+name = "miow"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "modit"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b12ac86b3a7bf5696735981a33eb6c82c9d316c24653f8b24b4811173d824f69"
+dependencies = [
+ "log",
+]
+
+[[package]]
 name = "mutate_once"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2724,15 +3443,27 @@ dependencies = [
 
 [[package]]
 name = "ndk"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8794322172319b972f528bf90c6b467be0079f1fa82780ffb431088e741a73ab"
+dependencies = [
+ "jni-sys",
+ "ndk-sys 0.2.2",
+ "num_enum 0.5.11",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
 dependencies = [
  "bitflags 1.3.2",
  "jni-sys",
- "ndk-sys",
+ "ndk-sys 0.4.1+23.1.7779620",
  "num_enum 0.5.11",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "thiserror",
 ]
 
@@ -2743,6 +3474,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
 
 [[package]]
+name = "ndk-glue"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5caf0c24d51ac1c905c27d4eda4fa0635bbe0de596b8f79235e0b17a4d29385"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk 0.3.0",
+ "ndk-macro",
+ "ndk-sys 0.2.2",
+]
+
+[[package]]
+name = "ndk-macro"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d"
+dependencies = [
+ "darling 0.10.2",
+ "proc-macro-crate 0.1.5",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ndk-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
+
+[[package]]
 name = "ndk-sys"
 version = "0.4.1+23.1.7779620"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2753,13 +3517,37 @@ dependencies = [
 
 [[package]]
 name = "nix"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055"
+dependencies = [
+ "bitflags 1.3.2",
+ "cc",
+ "cfg-if 0.1.10",
+ "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
+dependencies = [
+ "bitflags 1.3.2",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+]
+
+[[package]]
+name = "nix"
 version = "0.22.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
 dependencies = [
  "bitflags 1.3.2",
  "cc",
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "memoffset 0.6.5",
 ]
@@ -2771,7 +3559,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
 dependencies = [
  "bitflags 1.3.2",
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "memoffset 0.6.5",
 ]
@@ -2784,7 +3572,7 @@ checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "memoffset 0.6.5",
 ]
@@ -2796,10 +3584,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
- "cfg-if",
+ "cfg-if 1.0.0",
  "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.1",
+ "cfg-if 1.0.0",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b"
+dependencies = [
+ "lexical-core",
+ "memchr",
+ "version_check",
 ]
 
 [[package]]
@@ -2826,12 +3635,21 @@ dependencies = [
  "kqueue",
  "libc",
  "log",
- "mio",
+ "mio 0.8.9",
  "walkdir",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "ntapi"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
 name = "num"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2841,7 +3659,7 @@ dependencies = [
  "num-complex",
  "num-integer",
  "num-iter",
- "num-rational",
+ "num-rational 0.4.1",
  "num-traits",
 ]
 
@@ -2888,6 +3706,17 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
+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"
@@ -2942,7 +3771,7 @@ version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -2954,10 +3783,10 @@ version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3070,11 +3899,11 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "orbclient"
-version = "0.3.46"
+version = "0.3.47"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f"
+checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166"
 dependencies = [
- "redox_syscall 0.3.5",
+ "libredox 0.0.2",
 ]
 
 [[package]]
@@ -3118,7 +3947,16 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05e6affeb1632d6ff6a23d2cd40ffed138e82f1532571a26f527c8a284bb2fbb"
+dependencies = [
+ "ttf-parser 0.15.2",
 ]
 
 [[package]]
@@ -3151,7 +3989,7 @@ checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3199,7 +4037,7 @@ version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "instant",
  "libc",
  "redox_syscall 0.2.16",
@@ -3213,7 +4051,7 @@ version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "redox_syscall 0.4.1",
  "smallvec",
@@ -3228,9 +4066,9 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[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 = "phf"
@@ -3262,7 +4100,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3297,7 +4135,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3331,20 +4169,32 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "plist"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
  "base64",
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
  "line-wrap",
- "quick-xml 0.30.0",
+ "quick-xml 0.31.0",
  "serde",
  "time",
 ]
 
 [[package]]
 name = "png"
+version = "0.16.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "deflate",
+ "miniz_oxide 0.3.7",
+]
+
+[[package]]
+name = "png"
 version = "0.17.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
@@ -3353,7 +4203,7 @@ dependencies = [
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide",
+ "miniz_oxide 0.7.1",
 ]
 
 [[package]]
@@ -3364,7 +4214,7 @@ checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
- "cfg-if",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "libc",
  "log",
@@ -3374,16 +4224,16 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.0"
+version = "3.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "tracing",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3400,6 +4250,15 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro-crate"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
+dependencies = [
+ "toml 0.5.11",
+]
+
+[[package]]
+name = "proc-macro-crate"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
@@ -3434,9 +4293,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
@@ -3458,18 +4317,18 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
@@ -3527,6 +4386,25 @@ checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
 
 [[package]]
 name = "raw-window-handle"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28f55143d0548dad60bb4fbdc835a3d7ac6acc3324506450c5fdd6e42903a76"
+dependencies = [
+ "libc",
+ "raw-window-handle 0.4.3",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41"
+dependencies = [
+ "cty",
+]
+
+[[package]]
+name = "raw-window-handle"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
@@ -3586,12 +4464,12 @@ 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",
 ]
 
@@ -3642,11 +4520,11 @@ version = "0.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b6554f47c38eca56827eea7f285c2a3018b4e12e0e195cc105833c008be338f1"
 dependencies = [
- "gif",
- "jpeg-decoder",
+ "gif 0.12.0",
+ "jpeg-decoder 0.3.0",
  "log",
  "pico-args",
- "png",
+ "png 0.17.10",
  "rgb",
  "svgtypes",
  "tiny-skia 0.10.0",
@@ -3669,7 +4547,7 @@ dependencies = [
  "objc",
  "objc-foundation",
  "objc_id",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
@@ -3726,7 +4604,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.38",
+ "syn 2.0.39",
  "walkdir",
 ]
 
@@ -3746,7 +4624,7 @@ version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "ordered-multimap",
 ]
 
@@ -3763,6 +4641,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver",
+]
+
+[[package]]
 name = "rustix"
 version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3778,18 +4665,28 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.21"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
 dependencies = [
  "bitflags 2.4.1",
  "errno",
  "libc",
- "linux-raw-sys 0.4.10",
+ "linux-raw-sys 0.4.11",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "rusttype"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ff8374aa04134254b7995b63ad3dc41c7f7236f69528b28553da7d72efaa967"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser 0.15.2",
+]
+
+[[package]]
 name = "rustybuzz"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3867,6 +4764,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+
+[[package]]
 name = "scopeguard"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3880,40 +4783,58 @@ dependencies = [
  "ab_glyph",
  "log",
  "memmap2 0.5.10",
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.16.1",
  "tiny-skia 0.8.4",
 ]
 
 [[package]]
 name = "self_cell"
-version = "0.10.2"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af"
+checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d"
+dependencies = [
+ "self_cell 1.0.2",
+]
 
 [[package]]
 name = "self_cell"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c309e515543e67811222dbc9e3dd7e1056279b782e1dacffe4242b718734fb6"
+checksum = "e388332cd64eb80cd595a00941baf513caffae8dce9cfd0467fc9c66397dade6"
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.190"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.190"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3935,7 +4856,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -3953,7 +4874,7 @@ version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "cpufeatures",
  "digest",
 ]
@@ -3964,7 +4885,7 @@ version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "cpufeatures",
  "digest",
 ]
@@ -4019,9 +4940,28 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4750c76fd5d3ac95fa3ed80fe667d6a3d8590a960e5b575b98eea93339a80b80"
+dependencies = [
+ "andrew",
+ "bitflags 1.3.2",
+ "calloop 0.6.5",
+ "dlib 0.4.2",
+ "lazy_static",
+ "log",
+ "memmap2 0.1.0",
+ "nix 0.18.0",
+ "wayland-client 0.28.6",
+ "wayland-cursor 0.28.6",
+ "wayland-protocols 0.28.6",
+]
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -4029,16 +4969,16 @@ version = "0.16.1"
 source = "git+https://github.com/pop-os/client-toolkit?branch=wayland-resize#515820fc86cf8cb3ac8d087dc6c87852767627ca"
 dependencies = [
  "bitflags 1.3.2",
- "calloop",
- "dlib",
+ "calloop 0.10.6",
+ "dlib 0.5.2",
  "lazy_static",
  "log",
  "memmap2 0.5.10",
  "nix 0.24.3",
  "pkg-config",
  "wayland-client 0.29.5",
- "wayland-cursor",
- "wayland-protocols",
+ "wayland-cursor 0.29.5",
+ "wayland-protocols 0.29.5",
 ]
 
 [[package]]
@@ -4047,7 +4987,7 @@ version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
 dependencies = [
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.16.1",
  "wayland-client 0.29.5",
 ]
 
@@ -4062,30 +5002,43 @@ dependencies = [
 ]
 
 [[package]]
+name = "socket2"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "softbuffer"
-version = "0.2.0"
-source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-2.0-old#ece901a9f60dc89ca740dc3bd11f3c909e801723"
+version = "0.3.3"
+source = "git+https://github.com/pop-os/softbuffer?tag=v0.3-cosmic#6f0371ccece51d124c6c5d37082189df0dc5f9ba"
 dependencies = [
+ "as-raw-xcb-connection",
  "bytemuck",
  "cfg_aliases",
- "cocoa",
- "core-graphics",
- "fastrand 1.9.0",
- "foreign-types",
+ "cocoa 0.25.0",
+ "core-graphics 0.23.1",
+ "drm",
+ "fastrand 2.0.1",
+ "foreign-types 0.5.0",
+ "js-sys",
  "log",
- "nix 0.26.4",
+ "memmap2 0.9.0",
  "objc",
- "raw-window-handle",
- "redox_syscall 0.3.5",
- "thiserror",
+ "raw-window-handle 0.5.2",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.25",
+ "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
- "wayland-client 0.30.2",
- "wayland-sys 0.30.1",
+ "wayland-client 0.31.1",
+ "wayland-sys 0.31.1",
  "web-sys",
- "windows-sys 0.42.0",
- "x11-dl",
- "x11rb 0.11.1",
+ "windows-sys 0.48.0",
+ "x11rb 0.12.0",
 ]
 
 [[package]]
@@ -4130,6 +5083,12 @@ dependencies = [
 
 [[package]]
 name = "strsim"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+
+[[package]]
+name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
@@ -4173,9 +5132,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4221,16 +5180,31 @@ dependencies = [
  "cfg-expr",
  "heck",
  "pkg-config",
- "toml 0.8.6",
+ "toml 0.8.8",
  "version-compare",
 ]
 
 [[package]]
+name = "systemicons"
+version = "0.7.0"
+source = "git+https://github.com/jackpot51/systemicons#501887629ebf3f9b9d3384383da62d352af3fbd7"
+dependencies = [
+ "cocoa 0.24.1",
+ "freedesktop-icons",
+ "image 0.23.14",
+ "lazy_static",
+ "objc",
+ "winapi",
+ "winit 0.25.0",
+ "xdg-mime",
+]
+
+[[package]]
 name = "taffy"
 version = "0.3.11"
-source = "git+https://github.com/DioxusLabs/taffy#1876f72bee5e376023eaa518aa7b8a34c769bd1b"
+source = "git+https://github.com/DioxusLabs/taffy?rev=7781c70#7781c70241f7f572130c13106f2a869a9cf80885"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
  "grid",
  "num-traits",
  "slotmap",
@@ -4248,18 +5222,18 @@ version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "fastrand 2.0.1",
  "redox_syscall 0.4.1",
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
  "winapi-util",
 ]
@@ -4281,7 +5255,18 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "tiff"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437"
+dependencies = [
+ "jpeg-decoder 0.1.22",
+ "miniz_oxide 0.4.4",
+ "weezl",
 ]
 
 [[package]]
@@ -4291,7 +5276,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
 dependencies = [
  "flate2",
- "jpeg-decoder",
+ "jpeg-decoder 0.3.0",
  "weezl",
 ]
 
@@ -4331,10 +5316,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67"
 dependencies = [
  "arrayref",
- "arrayvec",
+ "arrayvec 0.7.4",
  "bytemuck",
- "cfg-if",
- "png",
+ "cfg-if 1.0.0",
+ "png 0.17.10",
  "tiny-skia-path 0.8.4",
 ]
 
@@ -4345,11 +5330,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7db11798945fa5c3e5490c794ccca7c6de86d3afdd54b4eb324109939c6f37bc"
 dependencies = [
  "arrayref",
- "arrayvec",
+ "arrayvec 0.7.4",
  "bytemuck",
- "cfg-if",
+ "cfg-if 1.0.0",
  "log",
- "png",
+ "png 0.17.10",
  "tiny-skia-path 0.10.0",
 ]
 
@@ -4376,10 +5361,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "tiny-xlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4098d49269baa034a8d1eae9bd63e9fa532148d772121dace3bcd6a6c98eb6d"
+dependencies = [
+ "as-raw-xcb-connection",
+ "ctor",
+ "libloading 0.8.1",
+ "tracing",
+]
+
+[[package]]
 name = "tinystr"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5d0e245e80bdc9b4e5356fc45a72184abbc3861992603f515270e9340f5a219"
+checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece"
 dependencies = [
  "displaydoc",
 ]
@@ -4400,6 +5397,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
+name = "tokio"
+version = "1.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio 0.8.9",
+ "num_cpus",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2 0.5.5",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "toml"
 version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4410,14 +5425,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.6"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.20.7",
+ "toml_edit 0.21.0",
 ]
 
 [[package]]
@@ -4442,9 +5457,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.20.7"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
  "indexmap 2.1.0",
  "serde",
@@ -4472,7 +5487,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -4486,6 +5501,12 @@ dependencies = [
 
 [[package]]
 name = "ttf-parser"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd"
+
+[[package]]
+name = "ttf-parser"
 version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633"
@@ -4519,7 +5540,7 @@ version = "1.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "rand",
  "static_assertions",
 ]
@@ -4569,6 +5590,15 @@ dependencies = [
 ]
 
 [[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.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4651,13 +5681,14 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[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",
  "percent-encoding",
+ "serde",
 ]
 
 [[package]]
@@ -4763,36 +5794,36 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.38"
+version = "0.4.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "js-sys",
  "wasm-bindgen",
  "web-sys",
@@ -4800,9 +5831,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4810,22 +5841,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "wasm-timer"
@@ -4844,17 +5875,32 @@ dependencies = [
 
 [[package]]
 name = "wayland-backend"
-version = "0.1.2"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8"
+checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
 dependencies = [
  "cc",
  "downcast-rs",
- "io-lifetimes",
  "nix 0.26.4",
  "scoped-tls",
  "smallvec",
- "wayland-sys 0.30.1",
+ "wayland-sys 0.31.1",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.28.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3ab332350e502f159382201394a78e3cc12d0f04db863429260164ea40e0355"
+dependencies = [
+ "bitflags 1.3.2",
+ "downcast-rs",
+ "libc",
+ "nix 0.20.0",
+ "scoped-tls",
+ "wayland-commons 0.28.6",
+ "wayland-scanner 0.28.6",
+ "wayland-sys 0.28.6",
 ]
 
 [[package]]
@@ -4868,21 +5914,33 @@ dependencies = [
  "libc",
  "nix 0.24.3",
  "scoped-tls",
- "wayland-commons",
+ "wayland-commons 0.29.5",
  "wayland-scanner 0.29.5",
  "wayland-sys 0.29.5",
 ]
 
 [[package]]
 name = "wayland-client"
-version = "0.30.2"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8"
+checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.1",
  "nix 0.26.4",
  "wayland-backend",
- "wayland-scanner 0.30.1",
+ "wayland-scanner 0.31.0",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.28.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21817947c7011bbd0a27e11b17b337bfd022e8544b071a2641232047966fbda"
+dependencies = [
+ "nix 0.20.0",
+ "once_cell",
+ "smallvec",
+ "wayland-sys 0.28.6",
 ]
 
 [[package]]
@@ -4899,6 +5957,17 @@ dependencies = [
 
 [[package]]
 name = "wayland-cursor"
+version = "0.28.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be610084edd1586d45e7bdd275fe345c7c1873598caa464c4fb835dee70fa65a"
+dependencies = [
+ "nix 0.20.0",
+ "wayland-client 0.28.6",
+ "xcursor",
+]
+
+[[package]]
+name = "wayland-cursor"
 version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
@@ -4910,18 +5979,41 @@ dependencies = [
 
 [[package]]
 name = "wayland-protocols"
+version = "0.28.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "286620ea4d803bacf61fa087a4242ee316693099ee5a140796aaba02b29f861f"
+dependencies = [
+ "bitflags 1.3.2",
+ "wayland-client 0.28.6",
+ "wayland-commons 0.28.6",
+ "wayland-scanner 0.28.6",
+]
+
+[[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-commons 0.29.5",
  "wayland-scanner 0.29.5",
 ]
 
 [[package]]
 name = "wayland-scanner"
+version = "0.28.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-scanner"
 version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
@@ -4933,43 +6025,54 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.30.1"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e"
+checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
 dependencies = [
  "proc-macro2",
- "quick-xml 0.28.2",
+ "quick-xml 0.30.0",
  "quote",
 ]
 
 [[package]]
 name = "wayland-sys"
+version = "0.28.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d841fca9aed7febf9bed2e9796c49bf58d4152ceda8ac949ebe00868d8f0feb8"
+dependencies = [
+ "dlib 0.5.2",
+ "lazy_static",
+ "pkg-config",
+]
+
+[[package]]
+name = "wayland-sys"
 version = "0.29.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
 dependencies = [
- "dlib",
+ "dlib 0.5.2",
  "lazy_static",
  "pkg-config",
 ]
 
 [[package]]
 name = "wayland-sys"
-version = "0.30.1"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
 dependencies = [
- "dlib",
- "lazy_static",
+ "dlib 0.5.2",
  "log",
+ "once_cell",
  "pkg-config",
 ]
 
 [[package]]
 name = "web-sys"
-version = "0.3.65"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -4987,14 +6090,14 @@ version = "0.16.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "480c965c9306872eb6255fa55e4b4953be55a8b64d57e61d7ff840d3dcc051cd"
 dependencies = [
- "arrayvec",
- "cfg-if",
+ "arrayvec 0.7.4",
+ "cfg-if 1.0.0",
  "js-sys",
  "log",
  "naga",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "smallvec",
  "static_assertions",
  "wasm-bindgen",
@@ -5011,7 +6114,7 @@ version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
  "bit-vec",
  "bitflags 2.4.1",
  "codespan-reporting",
@@ -5019,7 +6122,7 @@ dependencies = [
  "naga",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "rustc-hash",
  "smallvec",
  "thiserror",
@@ -5035,14 +6138,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ecb3258078e936deee14fd4e0febe1cfe9bbb5ffef165cb60218d2ee5eb4448"
 dependencies = [
  "android_system_properties",
- "arrayvec",
+ "arrayvec 0.7.4",
  "ash",
  "bit-set",
  "bitflags 2.4.1",
  "block",
  "core-graphics-types",
  "d3d12",
- "foreign-types",
+ "foreign-types 0.3.2",
  "glow",
  "gpu-alloc",
  "gpu-allocator",
@@ -5059,7 +6162,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "renderdoc-sys",
  "rustc-hash",
  "smallvec",
@@ -5137,7 +6240,7 @@ dependencies = [
  "clipboard_macos",
  "clipboard_wayland",
  "clipboard_x11",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "thiserror",
 ]
 
@@ -5176,21 +6279,6 @@ dependencies = [
 
 [[package]]
 name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.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-sys"
 version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
@@ -5208,6 +6296,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.0",
+]
+
+[[package]]
 name = "windows-targets"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5238,6 +6335,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+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",
+]
+
+[[package]]
 name = "windows_aarch64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5250,6 +6362,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5262,6 +6380,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5274,6 +6398,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5286,6 +6416,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5298,6 +6434,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5310,6 +6452,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 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.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5322,6 +6470,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
+name = "winit"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79610794594d5e86be473ef7763f604f2159cbac8c94debd00df8fb41e86c2f8"
+dependencies = [
+ "bitflags 1.3.2",
+ "cocoa 0.24.1",
+ "core-foundation 0.9.3",
+ "core-graphics 0.22.3",
+ "core-video-sys",
+ "dispatch",
+ "instant",
+ "lazy_static",
+ "libc",
+ "log",
+ "mio 0.7.14",
+ "mio-misc",
+ "ndk 0.3.0",
+ "ndk-glue",
+ "ndk-sys 0.2.2",
+ "objc",
+ "parking_lot 0.11.2",
+ "percent-encoding",
+ "raw-window-handle 0.3.4",
+ "scopeguard",
+ "smithay-client-toolkit 0.12.3",
+ "wayland-client 0.28.6",
+ "winapi",
+ "x11-dl",
+]
+
+[[package]]
 name = "winit"
 version = "0.28.6"
 source = "git+https://github.com/pop-os/winit.git?branch=master#c6ad672264b2e320cd15a531f67e133d9ecd39bf"
@@ -5329,26 +6515,26 @@ dependencies = [
  "android-activity",
  "bitflags 1.3.2",
  "cfg_aliases",
- "core-foundation",
- "core-graphics",
+ "core-foundation 0.9.3",
+ "core-graphics 0.22.3",
  "dispatch",
  "instant",
  "libc",
  "log",
- "mio",
- "ndk",
+ "mio 0.8.9",
+ "ndk 0.7.0",
  "objc2",
  "once_cell",
  "orbclient",
  "percent-encoding",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
  "redox_syscall 0.3.5",
  "sctk-adwaita",
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.16.1",
  "wasm-bindgen",
  "wayland-client 0.29.5",
- "wayland-commons",
- "wayland-protocols",
+ "wayland-commons 0.29.5",
+ "wayland-protocols 0.29.5",
  "wayland-scanner 0.29.5",
  "web-sys",
  "windows-sys 0.45.0",
@@ -5357,9 +6543,9 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.5.18"
+version = "0.5.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32"
+checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
 dependencies = [
  "memchr",
 ]
@@ -5381,7 +6567,7 @@ version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e99be55648b3ae2a52342f9a870c0e138709a3493261ce9b469afe6e4df6d8a"
 dependencies = [
- "gethostname",
+ "gethostname 0.2.3",
  "nix 0.22.3",
  "winapi",
  "winapi-wsapoll",
@@ -5389,14 +6575,15 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.11.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf3c79412dd91bae7a7366b8ad1565a85e35dd049affc3a6a2c549e97419617"
+checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
 dependencies = [
- "gethostname",
+ "as-raw-xcb-connection",
+ "gethostname 0.3.0",
  "libc",
  "libloading 0.7.4",
- "nix 0.25.1",
+ "nix 0.26.4",
  "once_cell",
  "winapi",
  "winapi-wsapoll",
@@ -5405,11 +6592,11 @@ dependencies = [
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.11.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0b1513b141123073ce54d5bb1d33f801f17508fbd61e02060b1214e96d39c56"
+checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
 dependencies = [
- "nix 0.25.1",
+ "nix 0.26.4",
 ]
 
 [[package]]
@@ -5418,7 +6605,7 @@ version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
 dependencies = [
- "nom",
+ "nom 7.1.3",
 ]
 
 [[package]]
@@ -5438,6 +6625,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "xdg-mime"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87bf7b69bb50588d70a36e467be29d3df3e8c32580276d62eded9738c1a797aa"
+dependencies = [
+ "dirs-next",
+ "glob",
+ "mime",
+ "nom 5.1.3",
+ "unicase",
+]
+
+[[package]]
 name = "xml-rs"
 version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5480,7 +6680,7 @@ dependencies = [
  "async-executor",
  "async-fs",
  "async-io 1.13.0",
- "async-lock",
+ "async-lock 2.8.0",
  "async-process",
  "async-recursion",
  "async-task",
@@ -5502,6 +6702,7 @@ dependencies = [
  "serde_repr",
  "sha1",
  "static_assertions",
+ "tokio",
  "tracing",
  "uds_windows",
  "winapi",
@@ -5517,7 +6718,7 @@ version = "3.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "regex",
@@ -5544,22 +6745,22 @@ checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697"
 
 [[package]]
 name = "zerocopy"
-version = "0.7.23"
+version = "0.7.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e50cbb27c30666a6108abd6bc7577556265b44f243e2be89a8bc4e07a528c107"
+checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.23"
+version = "0.7.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25f293fe55f0a48e7010d65552bb63704f6ceb55a1a385da10d41d8f78e4a3d"
+checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -5582,6 +6783,7 @@ dependencies = [
  "libc",
  "serde",
  "static_assertions",
+ "url",
  "zvariant_derive",
 ]
 
@@ -5591,7 +6793,7 @@ version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix
new file mode 100644
index 000000000000..854fd8123045
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix
@@ -0,0 +1,97 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rust,
+  rustPlatform,
+  cmake,
+  makeBinaryWrapper,
+  cosmic-icons,
+  just,
+  pkg-config,
+  libxkbcommon,
+  glib,
+  gtk3,
+  libinput,
+  fontconfig,
+  freetype,
+  wayland,
+  xorg,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cosmic-edit";
+  version = "unstable-2023-11-29";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = pname;
+    rev = "4a3dd101f35eb3c1c585f104d78ed4ee31d393d3";
+    hash = "sha256-pk+4u13oWZ4fgXy1tlDgq+E4J+UddjTNSexMm4dgBSo=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
+      "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
+      "cosmic-config-0.1.0" = "sha256-wBliqZbRHYiwZmu0vHeIP5DFzg/1IeQP3aMxiYC88bo=";
+      "cosmic-text-0.10.0" = "sha256-fE5HkhITLw0OBfFLFMsKEJw5idO265i4S7qylHTt7C0=";
+      "sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
+      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
+      "smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
+      "systemicons-0.7.0" = "sha256-zzAI+6mnpQOh+3mX7/sJ+w4a7uX27RduQ99PNxLNF78=";
+      "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
+      "winit-0.28.6" = "sha256-FhW6d2XnXCGJUMoT9EMQew9/OPXiehy/JraeCiVd76M=";
+    };
+  };
+
+  postPatch = ''
+    substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    just
+    pkg-config
+    makeBinaryWrapper
+  ];
+  buildInputs = [
+    libxkbcommon
+    xorg.libX11
+    libinput
+    fontconfig
+    freetype
+    wayland
+    glib
+    gtk3
+  ];
+
+  dontUseJustBuild = true;
+
+  justFlags = [
+    "--set"
+    "prefix"
+    (placeholder "out")
+    "--set"
+    "bin-src"
+    "target/${
+      rust.lib.toRustTargetSpecShort stdenv.hostPlatform
+    }/release/cosmic-edit"
+  ];
+
+  # LD_LIBRARY_PATH can be removed once tiny-xlib is bumped above 0.2.2
+  postInstall = ''
+    wrapProgram "$out/bin/${pname}" \
+      --suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/pop-os/cosmic-edit";
+    description = "Text Editor for the COSMIC Desktop Environment";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ahoneybun ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/do/doge/package.nix b/nixpkgs/pkgs/by-name/do/doge/package.nix
new file mode 100644
index 000000000000..975fbfa84922
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/do/doge/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  fetchpatch,
+}:
+python3Packages.buildPythonPackage rec {
+  pname = "doge";
+  version = "3.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Olivia5k";
+    repo = "doge";
+    rev = version;
+    hash = "sha256-72nRghD5k0ofrlvV3hEdyrr6uzV4+8At1bOCmRZTxhk=";
+  };
+
+  patches = [
+    # https://github.com/Olivia5k/doge/pull/66, adds a small doge
+    (fetchpatch {
+      url = "https://github.com/Olivia5k/doge/commit/14e3ccc0a3f1e91862492e20a34d008768a34039.patch";
+      hash = "sha256-3F+7F9RuoiVWoN+69T7tM871AXX1IQbHqFxD+S3TjxQ=";
+    })
+  ];
+
+  meta = {
+    homepage = "https://github.com/Olivia5k/doge";
+    description = "Wow very terminal doge";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [Gonzih quantenzitrone];
+    mainProgram = "doge";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/em/emojify/package.nix b/nixpkgs/pkgs/by-name/em/emojify/package.nix
new file mode 100644
index 000000000000..05833d931654
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/em/emojify/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "emojify";
+  version = "2.2.0";
+
+  src = fetchFromGitHub {
+    owner = "mrowa44";
+    repo = "emojify";
+    rev = version;
+    hash = "sha256-6cV+S8wTqJxPGsxiJ3hP6/CYPMWdF3qnz4ddL+F/oJU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 emojify $out/bin/emojify
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Emoji on the command line";
+    homepage = "https://github.com/mrowa44/emojify";
+    license = licenses.mit;
+    maintainers = with maintainers; [ snowflake ];
+    platforms = platforms.all;
+    mainProgram = "emojify";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fl/flarectl/package.nix b/nixpkgs/pkgs/by-name/fl/flarectl/package.nix
index 4fbec1a01ab3..c59976c694c3 100644
--- a/nixpkgs/pkgs/by-name/fl/flarectl/package.nix
+++ b/nixpkgs/pkgs/by-name/fl/flarectl/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.80.0";
+  version = "0.82.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-Dks5tF+mHVmtj8Uh8eK50ZPZTW8p65Da08EHUnLfF7g=";
+    hash = "sha256-GWxtbPCo0t0HXCiLJEVtuJPiY8Ahlij8zaMwe67zjqU=";
   };
 
-  vendorHash = "sha256-gQxHJNPLVcnilMIv4drDCcQ8QJCyuZ6vejsuo0elIPw=";
+  vendorHash = "sha256-VGePv/RzX1t5+Ftp3iTKYxm3mN6rr+Kdav4jRIKim9E=";
 
   subPackages = [ "cmd/flarectl" ];
 
diff --git a/nixpkgs/pkgs/by-name/fr/framework-system-tools/Cargo.lock b/nixpkgs/pkgs/by-name/fr/framework-system-tools/Cargo.lock
new file mode 100644
index 000000000000..f887187a7c75
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fr/framework-system-tools/Cargo.lock
@@ -0,0 +1,1312 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bit_field"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "built"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b9c056b9ed43aee5e064b683aa1ec783e19c6acec7559e3ae931b7490472fbe"
+dependencies = [
+ "cargo-lock",
+ "chrono",
+ "git2",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8"
+
+[[package]]
+name = "cargo-lock"
+version = "8.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "031718ddb8f78aa5def78a09e90defe30151d1f6c672f937af4dd916429ed996"
+dependencies = [
+ "semver",
+ "serde",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+dependencies = [
+ "jobserver",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+dependencies = [
+ "iana-time-zone",
+ "num-integer",
+ "num-traits",
+ "winapi",
+]
+
+[[package]]
+name = "clap"
+version = "4.0.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39"
+dependencies = [
+ "bitflags",
+ "clap_derive",
+ "clap_lex",
+ "is-terminal",
+ "once_cell",
+ "strsim",
+ "termcolor",
+]
+
+[[package]]
+name = "clap-verbosity-flag"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1eef05769009513df2eb1c3b4613e7fad873a14c600ff025b08f250f59fee7de"
+dependencies = [
+ "clap",
+ "log",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "core-foundation"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
+dependencies = [
+ "core-foundation-sys 0.6.2",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "cxx"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
+dependencies = [
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
+]
+
+[[package]]
+name = "cxx-build"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
+dependencies = [
+ "cc",
+ "codespan-reporting",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "scratch",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "cxxbridge-flags"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "framework_lib"
+version = "0.1.0"
+dependencies = [
+ "built",
+ "clap",
+ "clap-verbosity-flag",
+ "env_logger",
+ "guid_macros",
+ "hidapi",
+ "lazy_static",
+ "libc",
+ "log",
+ "nix",
+ "no-std-compat",
+ "num",
+ "num-derive",
+ "num-traits",
+ "plain",
+ "redox_hwio",
+ "regex",
+ "rusb",
+ "smbios-lib",
+ "spin 0.9.4",
+ "uefi",
+ "uefi-services",
+ "windows 0.42.0",
+]
+
+[[package]]
+name = "framework_tool"
+version = "0.1.0"
+dependencies = [
+ "framework_lib",
+]
+
+[[package]]
+name = "framework_uefi"
+version = "0.1.0"
+dependencies = [
+ "framework_lib",
+ "log",
+ "uefi",
+ "uefi-services",
+]
+
+[[package]]
+name = "getopts"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "git2"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1"
+dependencies = [
+ "bitflags",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "url",
+]
+
+[[package]]
+name = "guid_macros"
+version = "0.11.0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hidapi"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a090a12b53564bcb2f6053b8be08d5f9e7b91f26953d6e8e08c9affd8aeb4ec9"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "winapi",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys 0.8.4",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows 0.48.0",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+dependencies = [
+ "cxx",
+ "cxx-build",
+]
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "io-kit-sys"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f21dcc74995dd4cd090b147e79789f8d65959cbfb5f0b118002db869ea3bd0a0"
+dependencies = [
+ "core-foundation-sys 0.6.2",
+ "mach 0.2.3",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
+dependencies = [
+ "hermit-abi",
+ "io-lifetimes",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+
+[[package]]
+name = "jobserver"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.14.2+1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libusb1-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d0e2afce4245f2c9a418511e5af8718bcaf2fa408aefb259504d1a9cb25f27"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "link-cplusplus"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "mach"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "mach"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "nix"
+version = "0.25.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
+dependencies = [
+ "autocfg",
+ "bitflags",
+ "cfg-if",
+ "libc",
+ "memoffset",
+ "pin-utils",
+]
+
+[[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
+name = "num"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
+dependencies = [
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-derive"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "plain"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "ptr_meta"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcada80daa06c42ed5f48c9a043865edea5dc44cbf9ac009fda3b89526e28607"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bca9224df2e20e7c5548aeb5f110a0f3b77ef05f8585139b7148b59056168ed2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "redox_hwio"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eb516ad341a84372b5b15a5a35cf136ba901a639c8536f521b108253d7fce74"
+
+[[package]]
+name = "regex"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+
+[[package]]
+name = "rusb"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703aa035c21c589b34fb5136b12e68fc8dcf7ea46486861381361dd8ebf5cee0"
+dependencies = [
+ "libc",
+ "libusb1-sys",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.36.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "scratch"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
+
+[[package]]
+name = "semver"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.151"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.151"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "smbios-lib"
+version = "0.9.1"
+source = "git+https://github.com/FrameworkComputer/smbios-lib.git?branch=no-std#b3e2fff8a6f4b8c2d729467cbbf0c8c41974cd1c"
+dependencies = [
+ "core-foundation",
+ "core-foundation-sys 0.6.2",
+ "getopts",
+ "io-kit-sys",
+ "libc",
+ "mach 0.3.2",
+ "no-std-compat",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.107"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "ucs2"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bad643914094137d475641b6bab89462505316ec2ce70907ad20102d28a79ab8"
+dependencies = [
+ "bit_field",
+]
+
+[[package]]
+name = "uefi"
+version = "0.20.0"
+source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#76130a0f1c1585012e598b8c514526bac09c68e0"
+dependencies = [
+ "bitflags",
+ "derive_more",
+ "log",
+ "ptr_meta",
+ "ucs2",
+ "uefi-macros",
+]
+
+[[package]]
+name = "uefi-macros"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0caeb0e7b31b9f1f347e541106be10aa8c66c76fa722a3298a4cd21433fabd4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "uefi-services"
+version = "0.17.0"
+source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#76130a0f1c1585012e598b8c514526bac09c68e0"
+dependencies = [
+ "cfg-if",
+ "log",
+ "uefi",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0286ba339aa753e70765d521bb0242cc48e1194562bfa2a2ad7ac8a6de28f5d5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.0",
+ "windows_aarch64_msvc 0.42.0",
+ "windows_i686_gnu 0.42.0",
+ "windows_i686_msvc 0.42.0",
+ "windows_x86_64_gnu 0.42.0",
+ "windows_x86_64_gnullvm 0.42.0",
+ "windows_x86_64_msvc 0.42.0",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.0",
+ "windows_aarch64_msvc 0.42.0",
+ "windows_i686_gnu 0.42.0",
+ "windows_i686_msvc 0.42.0",
+ "windows_x86_64_gnu 0.42.0",
+ "windows_x86_64_gnullvm 0.42.0",
+ "windows_x86_64_msvc 0.42.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/nixpkgs/pkgs/by-name/fr/framework-system-tools/package.nix b/nixpkgs/pkgs/by-name/fr/framework-system-tools/package.nix
new file mode 100644
index 000000000000..fa225f574a99
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fr/framework-system-tools/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, udev
+}:
+
+let
+  rev = "491a587342a5d79366a25d803b7065169314279c";
+in rustPlatform.buildRustPackage {
+  pname = "framework-system-tools";
+  version = "unstable-2023-11-14";
+
+  src = fetchFromGitHub {
+    owner = "FrameworkComputer";
+    repo = "framework-system";
+    inherit rev;
+    hash = "sha256-qDtW4DvY19enCfkOBRaako9ngAkmSreoNWlL4QE2FAk=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    udev
+  ];
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "smbios-lib-0.9.1" = "sha256-3L8JaA75j9Aaqg1z9lVs61m6CvXDeQprEFRq+UDCHQo=";
+      "uefi-0.20.0" = "sha256-/3WNHuc27N89M7s+WT64SHyFOp7YRyzz6B+neh1vejY=";
+    };
+  };
+
+  meta = with lib; {
+    description = "Rust libraries and tools to interact with the framework system.";
+    homepage = "https://github.com/FrameworkComputer/framework-system";
+    mainProgram = "framework_tool";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kloenk leona ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
index ffe66b30279a..3bc94389d67f 100644
--- a/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
+++ b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
@@ -19,13 +19,13 @@ let
   pieBuild = stdenv.hostPlatform.isMusl;
 in buildGoModule rec {
   pname = "frankenphp";
-  version = "1.0.0-rc.3";
+  version = "1.0.0-rc.4";
 
   src = fetchFromGitHub {
     owner = "dunglas";
     repo = "frankenphp";
     rev = "v${version}";
-    hash = "sha256-Al0gCxTb6s41ugX9J8N8lshop9kP3RPGCzlq5etk1RY=";
+    hash = "sha256-4jNCKHt4eYI1BNaonIdS1Eq2OnJwgrU6qWZoiSpeIYk=";
   };
 
   sourceRoot = "source/caddy";
diff --git a/nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix b/nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix
new file mode 100644
index 000000000000..64c4197e8761
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, fetchpatch
+}:
+
+buildNpmPackage {
+  pname = "get-google-fonts";
+  version = "1.2.2-unstable-2020-06-30";
+
+  src = fetchFromGitHub {
+    owner = "MrMaxie";
+    repo = "get-google-fonts";
+    rev = "2f8b15f6d7072533ca2ad5e0b74ccf28a313e8c8";
+    hash = "sha256-LD+ur0GB2uefggQsdQRkKMwWB39HGiYYiJIrTLudcLc=";
+  };
+
+  patches = [
+    # update lock file to contain all necessary information
+    # https://github.com/MrMaxie/get-google-fonts/pull/27
+    (fetchpatch {
+      url = "https://github.com/MrMaxie/get-google-fonts/commit/f2c818fc7c9ee228db020305f432fd08eda7dc5f.patch";
+      hash = "sha256-BszZdAZWpnkNETKYvSElg0lCjgcP7BNeXfMvePKAio4=";
+    })
+  ];
+
+  npmDepsHash = "sha256-VUphB0Qq94rlcGrrsO2Nat/bD2IZTtdevGKsXFu/YdQ=";
+
+  dontBuild = true;
+
+  meta = with lib; {
+    description = "Downloads and adapts Google fonts to working offline";
+    homepage = "https://github.com/MrMaxie/get-google-fonts";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gi/gifgen/package.nix b/nixpkgs/pkgs/by-name/gi/gifgen/package.nix
new file mode 100644
index 000000000000..49c87eda795d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/gifgen/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, ffmpeg
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gifgen";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "lukechilds";
+    repo = "gifgen";
+    rev = version;
+    hash = "sha256-ni9RL4LyMejmu8vm5HC8WSTqAPQMBQNRDOZ4ZfvrkSU=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 gifgen $out/bin/gifgen
+    wrapProgram $out/bin/gifgen \
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Simple high quality GIF encoding";
+    homepage = "https://github.com/lukechilds/gifgen";
+    license = licenses.mit;
+    maintainers = with maintainers; [ snowflake ];
+    mainProgram = "gifgen";
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/go/goredo/fix-tests.diff b/nixpkgs/pkgs/by-name/go/goredo/fix-tests.diff
index 22b9c8f74385..7bb4b45725e5 100644
--- a/nixpkgs/pkgs/by-name/go/goredo/fix-tests.diff
+++ b/nixpkgs/pkgs/by-name/go/goredo/fix-tests.diff
@@ -32,8 +32,8 @@ diff '--color=auto' -ru goredo-2.0.0/t/goredo-double-consideration.t goredo-2.0.
  redo-stamp <"\$3"
  EOF
 diff '--color=auto' -ru goredo-2.0.0/t/redo-sh.tests/clean.do goredo-2.0.0.new/t/redo-sh.tests/clean.do
---- goredo-2.0.0/t/redo-sh.tests/clean.do	2023-10-08 18:50:45.000000000 +0200
-+++ goredo-2.0.0.new/t/redo-sh.tests/clean.do	2023-10-08 20:19:29.213465244 +0200
+--- goredo-2.0.0/t/redo-sh.tests/clean	2023-10-08 18:50:45.000000000 +0200
++++ goredo-2.0.0.new/t/redo-sh.tests/clean	2023-10-08 20:19:29.213465244 +0200
 @@ -1,4 +1,4 @@
  for f in * ; do
      [ -d $f ] || continue
diff --git a/nixpkgs/pkgs/by-name/go/goredo/package.nix b/nixpkgs/pkgs/by-name/go/goredo/package.nix
index a81cb8ebd307..a1c144508acd 100644
--- a/nixpkgs/pkgs/by-name/go/goredo/package.nix
+++ b/nixpkgs/pkgs/by-name/go/goredo/package.nix
@@ -9,14 +9,17 @@
 
 buildGoModule rec {
   pname = "goredo";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "http://www.goredo.cypherpunks.ru/download/${pname}-${version}.tar.zst";
-    hash = "sha256-oUC/N6NLEVBrFC3tSEsWEXUBl5oyZNmqRTFWFbgL+zg=";
+    hash = "sha256-kVxCHXQ9PjaLYviB8sf8oHiFniyNrHMO6C/qSZhjK7k=";
   };
 
-  patches = [ ./fix-tests.diff ];
+  patches = [
+    # Adapt tests to Linux/nix-build requirements:
+    ./fix-tests.diff
+  ];
 
   nativeBuildInputs = [ zstd ];
 
diff --git a/nixpkgs/pkgs/by-name/gu/guix/package.nix b/nixpkgs/pkgs/by-name/gu/guix/package.nix
index e20a969f8347..6549a9b8e276 100644
--- a/nixpkgs/pkgs/by-name/gu/guix/package.nix
+++ b/nixpkgs/pkgs/by-name/gu/guix/package.nix
@@ -28,6 +28,10 @@
 , bzip2
 , libgcrypt
 , sqlite
+
+, stateDir ? "/var"
+, storeDir ? "/gnu/store"
+, confDir ? "/etc"
 }:
 
 stdenv.mkDerivation rec {
@@ -100,8 +104,9 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "--localstatedir=/var"
-    "--sysconfdir=/etc"
+    "--with-store-dir=${storeDir}"
+    "--localstatedir=${stateDir}"
+    "--sysconfdir=${confDir}"
     "--with-bash-completion-dir=$(out)/etc/bash_completion.d"
   ];
 
@@ -132,7 +137,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.gnu.org/software/guix";
     license = licenses.gpl3Plus;
     mainProgram = "guix";
-    maintainers = with maintainers; [ cafkafk ];
+    maintainers = with maintainers; [ cafkafk foo-dogsquared ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/handlr-regex/default.nix b/nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix
index 7b6b886524cf..253f821647a7 100644
--- a/nixpkgs/pkgs/tools/misc/handlr-regex/default.nix
+++ b/nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "handlr-regex";
-  version = "0.8.5";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "Anomalocaridid";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-X0j62Ntu/ouBVm09iKxU3pps8mbL5V5gA65Maa4b0AY=";
+    hash = "sha256-ndFe5GlSWVUPdGRRWuImcLtcuOMoMXMyGGIa+CXfCug=";
   };
 
-  cargoSha256 = "sha256-byR7CM876z5tAXmbcUfI0CnJrc/D6CxfjBJhuJMSFmg=";
+  cargoHash = "sha256-lCClE8U4188q5rWEEkUt0peLEmYvLoE7vJ6Q9uB5HWg=";
 
   nativeBuildInputs = [ installShellFiles shared-mime-info ];
   buildInputs = [ libiconv ];
diff --git a/nixpkgs/pkgs/by-name/ha/hayabusa/package.nix b/nixpkgs/pkgs/by-name/ha/hayabusa/package.nix
new file mode 100644
index 000000000000..c8064e982c4c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ha/hayabusa/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, vulkan-loader
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "hayabusa";
+  version = "unstable-2023-11-29";
+
+  src = fetchFromGitHub {
+    owner = "notarin";
+    repo = "hayabusa";
+    rev = "306167c632173f6633e51c5610fe32af7718ec25";
+    hash = "sha256-e2zoVIhxcE9cUypi8Uzz3YZe2JvIaEVuWOGpqHVtxn8=";
+  };
+
+  cargoHash = "sha256-aoticMTrKZkRtjVXgdiBfyXJN3YcwBpM3yt07BBd3do=";
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+    vulkan-loader
+  ];
+
+  postPatch = ''
+    substituteInPlace src/daemon/hayabusa.service \
+      --replace "/usr/local" "$out"
+  '';
+
+  postInstall = ''
+    install -Dm444 src/daemon/hayabusa.service -t $out/lib/systemd/system/
+  '';
+
+  meta = {
+    description = "A swift rust fetch program";
+    homepage = "https://github.com/notarin/hayabusa";
+    license = lib.licenses.cc-by-nc-nd-40;
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    mainProgram = "hayabusa";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ia/ia-writer-quattro/package.nix b/nixpkgs/pkgs/by-name/ia/ia-writer-quattro/package.nix
new file mode 100644
index 000000000000..2f103f7cdbb7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ia/ia-writer-quattro/package.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchFromGitHub, }:
+
+stdenvNoCC.mkDerivation {
+  pname = "ia-writer-quattro";
+  version = "unstable-2023-06-16";
+
+  src = fetchFromGitHub {
+    owner = "iaolo";
+    rev = "f32c04c3058a75d7ce28919ce70fe8800817491b";
+    repo = "iA-fonts";
+    hash = "sha256-2T165nFfCzO65/PIHauJA//S+zug5nUwPcg8NUEydfc=";
+  };
+
+  dontConfigure = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp -R $src/iA\ Writer\ Quattro/Static/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "iA Writer Quattro Typeface";
+    homepage = "https://github.com/iaolo/iA-Fonts";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.x0ba ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ja/jazz2/package.nix b/nixpkgs/pkgs/by-name/ja/jazz2/package.nix
index 5b95bb8c1875..c90365bac287 100644
--- a/nixpkgs/pkgs/by-name/ja/jazz2/package.nix
+++ b/nixpkgs/pkgs/by-name/ja/jazz2/package.nix
@@ -16,13 +16,13 @@
 assert lib.assertOneOf "graphicsLibrary" graphicsLibrary [ "SDL2" "GLFW" ];
 stdenv.mkDerivation (finalAttrs: {
   pname = "jazz2";
-  version = "2.2.2";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "deathkiller";
     repo = "jazz2-native";
     rev = finalAttrs.version;
-    hash = "sha256-1psMeuMV8GjS+uNlgtCvKpHgV9XW+vjviQTHBPjA4Lc=";
+    hash = "sha256-oBDBq2SToab94mK0kIB0H53jJMFZrHvsdPmfAd5ZjCY=";
   };
 
   patches = [ ./nocontent.patch ];
diff --git a/nixpkgs/pkgs/by-name/la/lanraragi/loosen-dep-reqs.patch b/nixpkgs/pkgs/by-name/la/lanraragi/loosen-dep-reqs.patch
deleted file mode 100644
index 1b2ec4c1fd81..000000000000
--- a/nixpkgs/pkgs/by-name/la/lanraragi/loosen-dep-reqs.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tools/cpanfile b/tools/cpanfile
-index 7385aea7..22f9b069 100755
---- a/tools/cpanfile
-+++ b/tools/cpanfile
-@@ -20,7 +20,7 @@ requires 'Sort::Naturally',     1.03;
- requires 'Authen::Passphrase',  0.008;
- requires 'File::ReadBackwards', 1.05;
- requires 'URI::Escape',         1.74;
--requires 'URI',                 5.09;
-+requires 'URI',                 5.05;
- 
- # Used by Installer
- requires 'IPC::Cmd', 1.02;
diff --git a/nixpkgs/pkgs/by-name/la/lanraragi/package.nix b/nixpkgs/pkgs/by-name/la/lanraragi/package.nix
index 8b2ee5ff8c06..2a18474e2d2c 100644
--- a/nixpkgs/pkgs/by-name/la/lanraragi/package.nix
+++ b/nixpkgs/pkgs/by-name/la/lanraragi/package.nix
@@ -32,7 +32,6 @@ buildNpmPackage rec {
       hash = "sha256-Cu9d/dDlO0yuFCTKOyg5A0gIuiA+FcWD9PjexB/BK0U=";
     })
     ./install.patch
-    ./loosen-dep-reqs.patch # Can be removed once perl.pkgs.URI is updated
     ./fix-paths.patch
     ./expose-password-hashing.patch # Used by the NixOS module
   ];
diff --git a/nixpkgs/pkgs/by-name/li/lib3270/package.nix b/nixpkgs/pkgs/by-name/li/lib3270/package.nix
new file mode 100644
index 000000000000..bdb74eceb282
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/lib3270/package.nix
@@ -0,0 +1,56 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, which
+, pkg-config
+, autoconf
+, automake
+, libtool
+, gettext
+, openssl
+, curl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lib3270";
+  version = "5.4";
+
+  src = fetchFromGitHub {
+    owner = "PerryWerneck";
+    repo = pname;
+    rev = version;
+    hash = "sha256-w6Bg+TvSDAuZwtu/nyAIuq6pgheM5nXtfuryECfnKng=";
+  };
+
+  nativeBuildInputs = [
+    which
+    pkg-config
+    autoconf
+    automake
+    libtool
+  ];
+
+  buildInputs = [
+    gettext
+    openssl
+    curl
+  ];
+
+  postPatch = ''
+    # Patch the required version.
+    sed -i -e "s/20211118/19800101/" src/core/session.c
+  '';
+
+  preConfigure = ''
+    NOCONFIGURE=1 sh autogen.sh
+  '';
+
+  enableParallelBuilds = true;
+
+  meta = with lib; {
+    description = "TN3270 client Library";
+    homepage = "https://github.com/PerryWerneck/lib3270";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.vifino ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/li/libdict/package.nix b/nixpkgs/pkgs/by-name/li/libdict/package.nix
new file mode 100644
index 000000000000..1c6e770299ca
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/libdict/package.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, cunit
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libdict";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "rtbrick";
+    repo = "libdict";
+    rev = finalAttrs.version;
+    hash = "sha256-JM67lpXGacA0w8luQLc/83mAdHgtXnYlw543gUqUpRM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+  buildInputs = [
+    cunit
+  ];
+
+  cmakeFlags = [
+    "-DLIBDICT_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}"
+    "-DLIBDICT_SHARED=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/rtbrick/libdict/";
+    changelog = "https://github.com/rtbrick/libdict/releases/tag/${version}";
+    description = "C library of key-value data structures";
+    license = licenses.bsd2;
+    maintainers = teams.wdz.members;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/li/librda/package.nix b/nixpkgs/pkgs/by-name/li/librda/package.nix
new file mode 100644
index 000000000000..793783a2bae9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/librda/package.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, testers
+, autoreconfHook
+, glib
+, gobject-introspection
+, gtk3
+, intltool
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "librda";
+  version = "0.0.5-unstable-2023-09-15";
+
+  src = fetchFromGitHub {
+    owner = "ArcticaProject";
+    repo = "librda";
+    rev = "d7ed1368145e39b0c761947a32fa50493e70f554";
+    hash = "sha256-k6dmwIndLy9S7f0AU7FIm1S7MYfyvDuhMLMuNgHGsYo=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+    "bin"
+  ];
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    glib
+    gobject-introspection
+    intltool
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk3
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+
+  meta = with lib; {
+    description = "Remote Desktop Awareness Shared Library";
+    homepage = "https://github.com/ArcticaProject/librda";
+    license = licenses.gpl2Plus;
+    mainProgram = "rdacheck";
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "rda"
+    ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/li/libv3270/package.nix b/nixpkgs/pkgs/by-name/li/libv3270/package.nix
new file mode 100644
index 000000000000..90b6fd9f2832
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/libv3270/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoconf
+, automake
+, libtool
+, which
+, pkg-config
+, gtk3
+, lib3270
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libv3270";
+  version = "5.4";
+
+  src = fetchFromGitHub {
+    owner = "PerryWerneck";
+    repo = pname;
+    rev = version;
+    hash = "sha256-Z3FvxPa1pfeECxfB5ZL6gwhkbTKFpfO3D/zLVLF+uiI=";
+  };
+
+  nativeBuildInputs = [
+    which
+    pkg-config
+    autoconf
+    automake
+    libtool
+  ];
+
+  buildInputs = [
+    gtk3
+    lib3270
+  ];
+
+  postPatch = ''
+    # lib3270_build_data_filename is relative to lib3270's share - not ours.
+    for f in $(find . -type f -iname "*.c"); do
+      sed -i -e "s@lib3270_build_data_filename(@g_build_filename(\"$out/share/pw3270\", @" "$f"
+    done
+  '';
+
+  preConfigure = ''
+    mkdir -p scripts
+    touch scripts/config.rpath
+    NOCONFIGURE=1 sh ./autogen.sh
+  '';
+
+  enableParallelBuilds = true;
+
+  meta = with lib; {
+    description = "3270 Virtual Terminal for GTK";
+    homepage = "https://github.com/PerryWerneck/libv3270";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.vifino ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/lo/loupe/package.nix b/nixpkgs/pkgs/by-name/lo/loupe/package.nix
index 2d32c70788ec..a42fb0f87d59 100644
--- a/nixpkgs/pkgs/by-name/lo/loupe/package.nix
+++ b/nixpkgs/pkgs/by-name/lo/loupe/package.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "loupe";
-  version = "45.1";
+  version = "45.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/loupe/${lib.versions.major version}/loupe-${version}.tar.xz";
-    hash = "sha256-nX+ieKEASHKUQZoopvCo1ZGL2XnRy0tGqF6Pfe0U0+w=";
+    hash = "sha256-uLP/rzZXAmsX4E8Z4EDLqNUetNDKtU5CKVsOWlJxwKs=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/by-name/ma/majima/package.nix b/nixpkgs/pkgs/by-name/ma/majima/package.nix
new file mode 100644
index 000000000000..d2ff843cd66a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ma/majima/package.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitLab, rustPlatform }:
+rustPlatform.buildRustPackage rec {
+  pname = "majima";
+  version = "0.4.0";
+
+  src = fetchFromGitLab {
+    owner = "gumball-overall";
+    repo = "majima";
+    rev = version;
+    hash = "sha256-S62DQfvZFg8C26YG+fIVJj5cJ6mz73JXSgdu5yoK0Yo=";
+  };
+
+  cargoHash = "sha256-zMQO6McnnGbp52A9n/h6yZTU9VH7vak2TSP0HLqDlKw=";
+
+  meta = {
+    description = "Generate random usernames quickly and in various formats";
+    homepage = "https://majima.matte.fyi/";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.ufUNnxagpM ];
+    mainProgram = "majima";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ma/material-cursors/package.nix b/nixpkgs/pkgs/by-name/ma/material-cursors/package.nix
new file mode 100644
index 000000000000..d3d7c63672cc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ma/material-cursors/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, inkscape
+, xcursorgen
+}:
+
+stdenvNoCC.mkDerivation {
+  pname   = "material-cursors";
+  version = "unstable-2023-11-30";
+
+  src = fetchFromGitHub {
+    owner = "varlesh";
+    repo = "material-cursors";
+    rev = "2a5f302fefe04678c421473bed636b4d87774b4a";
+    hash = "sha256-uC2qx3jF4d2tGLPnXEpogm0vyC053MvDVVdVXX8AZ60=";
+  };
+
+  nativeBuildInputs = [
+    inkscape
+    xcursorgen
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    # Silences the inkscape warning spam.
+    HOME=$(pwd) bash build.sh 2> /dev/null
+
+    runHook postBuild
+  '';
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = {
+    description = "Material cursors for Linux";
+    homepage = "https://github.com/varlesh/material-cursors";
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ RGBCube ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ni/nimmm/lock.json b/nixpkgs/pkgs/by-name/ni/nimmm/lock.json
index d55a02fefc61..fb705b4f4fd1 100644
--- a/nixpkgs/pkgs/by-name/ni/nimmm/lock.json
+++ b/nixpkgs/pkgs/by-name/ni/nimmm/lock.json
@@ -27,14 +27,14 @@
     {
       "method": "fetchzip",
       "packages": [
-        "noise"
+        "wcwidth"
       ],
-      "path": "/nix/store/cqn9s90ivzsx7mq5k8m19565247sdsg6-source",
-      "ref": "v0.1.8",
-      "rev": "3cb3250ddcdaa74809aad931c066e7ef6e4af36d",
-      "sha256": "0qmak5n5nrf8nb8szhlz8sf05gmbs0x648p4vcd7ca600kaxfgj0",
-      "srcDir": "",
-      "url": "https://github.com/jangko/nim-noise/archive/3cb3250ddcdaa74809aad931c066e7ef6e4af36d.tar.gz"
+      "path": "/nix/store/inpq6nm27r7ixyjsdsm4sg6qna7d2vbc-source",
+      "ref": "v0.1.3",
+      "rev": "fd60d2dd10fd945a471450551ba471c3be80df52",
+      "sha256": "06b9ylqbjcxgm9mjfzljbi8gr9sbajykcqpcxgyqymynqyhxmqjn",
+      "srcDir": "src",
+      "url": "https://github.com/shoyu777/wcwidth-nim/archive/fd60d2dd10fd945a471450551ba471c3be80df52.tar.gz"
     }
   ]
 }
diff --git a/nixpkgs/pkgs/by-name/ni/nimmm/package.nix b/nixpkgs/pkgs/by-name/ni/nimmm/package.nix
index e085ed218609..be3e01b7dcae 100644
--- a/nixpkgs/pkgs/by-name/ni/nimmm/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nimmm/package.nix
@@ -2,13 +2,13 @@
 
 buildNimPackage (finalAttrs: {
   pname = "nimmm";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "joachimschmidt557";
     repo = "nimmm";
     rev = "v${finalAttrs.version}";
-    sha256 = "168n61avphbxsxfq8qzcnlqx6wgvz5yrjvs14g25cg3k46hj4xqg";
+    hash = "sha256-gRQWReZP7bpGX9fvueQaQkX8yMmngT5DT3o4ly9Ux1g=";
   };
 
   lockFile = ./lock.json;
@@ -19,7 +19,7 @@ buildNimPackage (finalAttrs: {
     description = "Terminal file manager written in Nim";
     homepage = "https://github.com/joachimschmidt557/nimmm";
     license = lib.licenses.gpl3;
-    platforms = lib.platforms.unix;
+    platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.joachimschmidt557 ];
   };
 })
diff --git a/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix b/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
index d0ade5f6580c..d7b992c1aa3e 100644
--- a/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
@@ -28,12 +28,12 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "nixos-anywhere";
-  version = "1.0.0";
+  version = "1.1.0";
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "nixos-anywhere";
     rev = finalAttrs.version;
-    hash = "sha256-zM+N7+XDR34DuTrVLJd7Ggq1JPlURddsqNOjXY/rcQM=";
+    hash = "sha256-43r1pwWv9SuMEG+Pe5laFsqE1/X0rFQ6s/wpEufPliE=";
   };
   nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
diff --git a/nixpkgs/pkgs/by-name/no/normcap/package.nix b/nixpkgs/pkgs/by-name/no/normcap/package.nix
new file mode 100644
index 000000000000..8db68e9ae7e2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/no/normcap/package.nix
@@ -0,0 +1,117 @@
+{ lib
+, stdenv
+, python3
+, fetchFromGitHub
+, tesseract4
+, leptonica
+, wl-clipboard
+, libnotify
+, xorg
+}:
+
+let
+
+  ps = python3.pkgs;
+
+  wrapperDeps = [
+    leptonica
+    tesseract4
+    libnotify
+  ] ++ lib.optionals stdenv.isLinux [
+    wl-clipboard
+  ];
+
+in
+
+ps.buildPythonApplication rec {
+  pname = "normcap";
+  version = "0.4.4";
+  format = "pyproject";
+
+  disabled = ps.pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "dynobo";
+    repo = "normcap";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-dShtmoqS9TC3PHuwq24OEOhYfBHGhDCma8Du8QCkFuI=";
+  };
+
+  pythonRemoveDeps = [
+    "PySide6-Essentials"
+  ];
+
+  nativeBuildInputs = [
+    ps.pythonRelaxDepsHook
+    ps.poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    ps.pyside6
+  ];
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${qtWrapperArgs[@]}"
+      --set QT_QPA_PLATFORM xcb
+      --prefix PATH : ${lib.makeBinPath wrapperDeps}
+    )
+  '';
+
+  nativeCheckInputs = wrapperDeps ++ [
+    ps.pytestCheckHook
+    ps.pytest-qt
+    ps.toml
+  ] ++ lib.optionals stdenv.isLinux [
+    ps.pytest-xvfb
+    xorg.xorgserver
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '' + lib.optionalString stdenv.isLinux ''
+    # setup a virtual x11 display
+    export DISPLAY=:$((2000 + $RANDOM % 1000))
+    Xvfb $DISPLAY -screen 5 1024x768x8 &
+    xvfb_pid=$!
+  '';
+
+  postCheck = lib.optionalString stdenv.isLinux ''
+    # cleanup the virtual x11 display
+    kill $xvfb_pid
+  '';
+
+  disabledTests = [
+    # requires a wayland session (no xclip support)
+    "test_wl_copy"
+    # times out, unknown why
+    "test_update_checker_triggers_checked_signal"
+    # touches network
+    "test_urls_reachable"
+    # requires xdg
+    "test_synchronized_capture"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # requires impure pbcopy
+    "test_get_copy_func_with_pbcopy"
+    "test_get_copy_func_without_pbcopy"
+    "test_perform_pbcopy"
+  ];
+
+  disabledTestPaths = [
+    # touches network
+    "tests/tests_gui/test_downloader.py"
+    # fails to import, causes pytest to freeze
+    "tests/tests_gui/test_language_manager.py"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # requires a display
+    "tests/integration/test_normcap.py"
+  ];
+
+  meta = with lib; {
+    description = "OCR powered screen-capture tool to capture information instead of images";
+    homepage = "https://dynobo.github.io/normcap/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ cafkafk pbsds ];
+    mainProgram = "normcap";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/op/opentype-sanitizer/package.nix b/nixpkgs/pkgs/by-name/op/opentype-sanitizer/package.nix
new file mode 100644
index 000000000000..2e7e7e62180e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/opentype-sanitizer/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, freetype
+, gtest
+, lz4
+, meson
+, ninja
+, pkg-config
+, woff2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "opentype-sanitizer";
+  version = "9.1.0";
+
+  src = fetchFromGitHub {
+    owner = "khaledhosny";
+    repo = "ots";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-gsNMPNPcfHyOgjJnIrJ5tLYHbCfIfTowEhcaGOUPb2Q=";
+  };
+
+  buildInputs = [
+    freetype
+    gtest
+    lz4
+    woff2
+  ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Sanitizing parser for OpenType fonts";
+    homepage = "https://github.com/khaledhosny/ots";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pa/pam-honeycreds/package.nix b/nixpkgs/pkgs/by-name/pa/pam-honeycreds/package.nix
new file mode 100644
index 000000000000..9c96e1c317fd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pa/pam-honeycreds/package.nix
@@ -0,0 +1,25 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pam
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "pam-honeycreds";
+  version = "1.9";
+  src = fetchFromGitHub {
+    owner = "ColumPaget";
+    repo = "pam_honeycreds";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-GRJnH431foNI10g95rrtgi31DM15FWhzNq9L0SwoZoM=";
+  };
+
+  buildInputs = [ pam ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ColumPaget/pam_honeycreds";
+    description = "PAM module that sends warnings when fake passwords are used";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ h7x4 ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pa/passwdqc/package.nix b/nixpkgs/pkgs/by-name/pa/passwdqc/package.nix
new file mode 100644
index 000000000000..f70076243fbb
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pa/passwdqc/package.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, libxcrypt
+, pam
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "passwdqc";
+  version = "2.0.3";
+
+  src = fetchFromGitHub {
+    owner = "openwall";
+    repo = "passwdqc";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-EgPeccqS+DDDMBVMc4bd70EMnXFuyglftxuqoaYHwNY=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "0001-fix-solaris-macos-builds.patch";
+      url = "https://github.com/openwall/passwdqc/commit/fbf38229857f3d1982aa305c20da5e1ea0195b3e.patch";
+      hash = "sha256-FaEWROHwFzd4ZTeKyPvuAr9vcgnHEv8MhERblIU8JC4=";
+    })
+  ];
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libxcrypt
+    pam
+  ];
+
+  strictDeps = true;
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  installFlags = [
+    # Yet another software that does not use GNUInstallDirs Convention...
+    "BINDIR=$(out)/bin"
+    "CONFDIR=$(out)/etc"
+    "DEVEL_LIBDIR=$(out)/lib"
+    "INCLUDEDIR=$(out)/include"
+    "LOCALEDIR=$(out)/share/locale"
+    "MANDIR=$(man)/man"
+    "PKGCONFIGDIR=$(out)/lib/pkgconfig"
+    "SECUREDIR=$(out)/lib/security"
+    "SECUREDIR_DARWIN=$(out)/lib/security"
+    "SHARED_LIBDIR=$(out)/lib"
+    "SHARED_LIBDIR_REL=$(out)/lib"
+  ];
+
+  meta = {
+    homepage = "https://www.openwall.com/passwdqc/";
+    description = "Passphrase strength checking and enforcement";
+    license = with lib.licenses; [ bsd3 ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    mainProgram = "passwdqc";
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/development/tools/misc/phpunit/default.nix b/nixpkgs/pkgs/by-name/ph/phpunit/package.nix
index 9690e87fc532..e9c87ebbdb32 100644
--- a/nixpkgs/pkgs/development/tools/misc/phpunit/default.nix
+++ b/nixpkgs/pkgs/by-name/ph/phpunit/package.nix
@@ -2,13 +2,13 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpunit";
-  version = "10.5.0";
+  version = "10.5.1";
 
   src = fetchFromGitHub {
     owner = "sebastianbergmann";
     repo = "phpunit";
     rev = finalAttrs.version;
-    hash = "sha256-CpgYMUJE7c2eRBYkK/vMRdGgzY7Y7K/wMmyUH+Bssjs=";
+    hash = "sha256-uYSVzKLefcBMqfrHaF6pg4gohAeb6LVg8QGaTS8jwfE=";
   };
 
   vendorHash = "sha256-uUdgz3ZZ+3nU07pUC1sdkNgU1b1beo3sS/yySUzdZwU=";
diff --git a/nixpkgs/pkgs/by-name/po/polybar/package.nix b/nixpkgs/pkgs/by-name/po/polybar/package.nix
index ee649f396fa3..613b75d646af 100644
--- a/nixpkgs/pkgs/by-name/po/polybar/package.nix
+++ b/nixpkgs/pkgs/by-name/po/polybar/package.nix
@@ -42,13 +42,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "polybar";
-  version = "3.7.0";
+  version = "3.7.1";
 
   src = fetchFromGitHub {
     owner = "polybar";
     repo = "polybar";
     rev = finalAttrs.version;
-    hash = "sha256-Z1rL9WvEZHr5M03s9KCJ6O6rNuaK7PpwUDaatYuCocI=";
+    hash = "sha256-DX648jY1vewl3ImK84gF6/vtcSCg3wtgq6Ie3fCwZoA=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/by-name/pw/pw3270/package.nix b/nixpkgs/pkgs/by-name/pw/pw3270/package.nix
new file mode 100644
index 000000000000..4e35f393dbcb
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pw/pw3270/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, which
+, pkg-config
+, automake
+, autoconf
+, m4
+, libtool
+, gtk3
+, libv3270
+, lib3270
+, openssl
+, gettext
+, desktop-file-utils
+, glib
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pw3270";
+  version = "5.4";
+
+  src = fetchFromGitHub {
+    owner = "PerryWerneck";
+    repo = pname;
+    rev = version;
+    hash = "sha256-Nk/OUqrWngKgb1D1Wi8q5ygKtvuRKUPhPQaLvWi1Z4g=";
+  };
+
+  nativeBuildInputs = [
+    which
+    pkg-config
+    autoconf
+    automake
+    libtool
+    desktop-file-utils
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    gettext
+    libv3270
+    lib3270
+    openssl
+  ];
+
+  postPatch = ''
+    # lib3270_build_data_filename is relative to lib3270's share - not ours.
+    for f in $(find . -type f -iname "*.c"); do
+      sed -i -e "s@lib3270_build_data_filename(@g_build_filename(\"$out/share/pw3270\", @" "$f"
+    done
+  '';
+
+  preConfigure = ''
+    NOCONFIGURE=1 sh autogen.sh
+  '';
+
+  postFixup = ''
+    # Schemas get installed to wrong directory.
+    mkdir -p $out/share/glib-2.0
+    mv $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas $out/share/glib-2.0/
+    rm -rf $out/share/gsettings-schemas
+  '';
+
+  enableParallelBuilds = true;
+
+  meta = with lib; {
+    description = "3270 Emulator for gtk";
+    homepage = "https://softwarepublico.gov.br/social/pw3270/";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.vifino ];
+    mainProgram = "pw3270";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/py/pywalfox-native/package.nix b/nixpkgs/pkgs/by-name/py/pywalfox-native/package.nix
index e52feb2d297d..7f7884de57ec 100644
--- a/nixpkgs/pkgs/by-name/py/pywalfox-native/package.nix
+++ b/nixpkgs/pkgs/by-name/py/pywalfox-native/package.nix
@@ -1,22 +1,22 @@
 { lib, python3, fetchPypi }:
 
 python3.pkgs.buildPythonApplication rec {
-    pname = "pywalfox-native";
-    version = "2.7.4";
+  pname = "pywalfox-native";
+  version = "2.7.4";
 
-    src = fetchPypi {
-      inherit version;
-      pname = "pywalfox";
-      hash = "sha256-Wec9fic4lXT7gBY04D2EcfCb/gYoZcrYA/aMRWaA7WY=";
-    };
+  src = fetchPypi {
+    inherit version;
+    pname = "pywalfox";
+    hash = "sha256-Wec9fic4lXT7gBY04D2EcfCb/gYoZcrYA/aMRWaA7WY=";
+  };
 
-    pythonImportsCheck = [ "pywalfox" ];
+  pythonImportsCheck = [ "pywalfox" ];
 
-    meta = with lib; {
-      homepage = "https://github.com/Frewacom/pywalfox-native";
-      description = "Native app used alongside the Pywalfox addon";
-      mainProgram = "pywalfox";
-      license = licenses.mpl20;
-      maintainers = with maintainers; [ tsandrini ];
-    };
-  }
+  meta = with lib; {
+    homepage = "https://github.com/Frewacom/pywalfox-native";
+    description = "Native app used alongside the Pywalfox addon";
+    mainProgram = "pywalfox";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ tsandrini ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/re/revup/package.nix b/nixpkgs/pkgs/by-name/re/revup/package.nix
new file mode 100644
index 000000000000..2aacb3ce5670
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/revup/package.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, python3
+, fetchPypi
+}:
+
+let
+  pname = "revup";
+  version = "0.2.1";
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-EaBI414m5kihuaOkaHYAzvVxeJCgMIh9lD0JnCeVdZM=";
+  };
+in
+python3.pkgs.buildPythonPackage {
+  inherit pname version src;
+
+  nativeBuildInputs = with python3.pkgs; [
+    pip
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiohttp
+    aiosignal
+    async-lru
+    async-timeout
+    charset-normalizer
+    multidict
+    requests
+    rich
+    yarl
+  ];
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytest
+  ];
+
+  meta = {
+    homepage = "https://github.com/Skydio/revup";
+    description = " Revolutionary github tools";
+    longDescription = ''
+      Revup provides command-line tools that allow developers to iterate faster
+      on parallel changes and reduce the overhead of creating and maintaining
+      code reviews.
+
+      Features:
+
+      - Revup creates multiple independent chains of branches for you in the
+        background and without touching your working tree. It then creates and
+        manages github pull requests for all those branches.
+      - Pull requests target the actual base branch and can be merged manually
+        or by continuous integration
+      - Rebase detection saves time and continuous integration cost by not
+        re-pushing if the patch hasn't changed
+      - Adds reviewers, labels, and creates drafts all from the commit text
+      - Adds auto-updating "review graph" and "patchsets" elements to make pull
+        requests easier to navigate revup amend and revup restack save time by
+        replacing slow rebases
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    mainProgram = "revup";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/wayland/sov/default.nix b/nixpkgs/pkgs/by-name/so/sov/package.nix
index c8ddc6524f28..d6d9f4053123 100644
--- a/nixpkgs/pkgs/tools/wayland/sov/default.nix
+++ b/nixpkgs/pkgs/by-name/so/sov/package.nix
@@ -11,17 +11,18 @@
 , libxkbcommon
 , wayland
 , wayland-protocols
+, gitUpdater
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sov";
-  version = "0.92b";
+  version = "0.93";
 
   src = fetchFromGitHub {
     owner = "milgra";
     repo = "sov";
     rev = finalAttrs.version;
-    hash = "sha256-1L5D0pzcXbkz3VS7VB6ID8BJEbGeNxjo3xCr71CGcIo=";
+    hash = "sha256-Oc25ixrl0QX0jBBMV34BPAixyBikvevXJ1JNGZymPhg=";
   };
 
   patches = [
@@ -54,6 +55,8 @@ stdenv.mkDerivation (finalAttrs: {
     wayland-protocols
   ];
 
+  passthru.updateScript = gitUpdater { };
+
   meta = {
     description = "Workspace overview app for sway";
     homepage = "https://github.com/milgra/sov";
diff --git a/nixpkgs/pkgs/by-name/sp/spacedrive/package.nix b/nixpkgs/pkgs/by-name/sp/spacedrive/package.nix
new file mode 100644
index 000000000000..362b02043af7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sp/spacedrive/package.nix
@@ -0,0 +1,39 @@
+{ lib, appimageTools, fetchurl, pkgs }:
+
+let
+  pname = "spacedrive";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-linux-x86_64.AppImage";
+    hash = "sha256-iBdW8iPuvztP0L5xLyVs7/K8yFe7kD7QwdTuKJLhB+c=";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraPkgs = pkgs:
+    (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libthai ];
+
+  extraInstallCommands = ''
+    # Remove version from entrypoint
+    mv $out/bin/spacedrive-"${version}" $out/bin/spacedrive
+
+    # Install .desktop files
+    install -Dm444 ${appimageContents}/spacedrive.desktop -t $out/share/applications
+    install -Dm444 ${appimageContents}/spacedrive.png -t $out/share/pixmaps
+    substituteInPlace $out/share/applications/spacedrive.desktop \
+      --replace 'Exec=AppRun --no-sandbox %U' 'Exec=spacedrive'
+  '';
+
+  meta = with lib; {
+    description = "An open source file manager, powered by a virtual distributed filesystem";
+    homepage = "https://www.spacedrive.com/";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.agpl3Plus;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ mikaelfangel heisfer ];
+    mainProgram = "spacedrive";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ss/sshx/package.nix b/nixpkgs/pkgs/by-name/ss/sshx/package.nix
deleted file mode 100644
index ff3de6705453..000000000000
--- a/nixpkgs/pkgs/by-name/ss/sshx/package.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, pkg-config
-, protobuf
-, zstd
-, stdenv
-, darwin
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "sshx";
-  version = "unstable-2023-11-04";
-
-  src = fetchFromGitHub {
-    owner = "ekzhang";
-    repo = "sshx";
-    rev = "91c82d46cde4d1ffa0ae34e2a9a49911e2e53baa";
-    hash = "sha256-X9c7ZKIpWI5EsbkgB8FJWlwQQXHAcPjLKp2Bvo0fo/w=";
-  };
-
-  cargoHash = "sha256-mOK5gpPuUKzN5xnJs5nFyslxr9IIHtiCylMP53ObDqg=";
-
-  nativeBuildInputs = [
-    pkg-config
-    protobuf
-  ];
-
-  buildInputs = [
-    zstd
-  ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
-  ];
-
-  env = {
-    ZSTD_SYS_USE_PKG_CONFIG = true;
-  };
-
-  outputs = [ "out" "server" ];
-
-  postInstall = ''
-    moveToOutput 'bin/sshx' "$out"
-    moveToOutput 'bin/sshx-server' "$server"
-  '';
-
-  meta = with lib; {
-    description = "Fast, collaborative live terminal sharing over the web";
-    homepage = "https://github.com/ekzhang/sshx";
-    license = licenses.mit;
-    maintainers = with maintainers; [ pinpox ];
-    mainProgram = "sshx";
-  };
-}
diff --git a/nixpkgs/pkgs/by-name/th/themix-gui/package.nix b/nixpkgs/pkgs/by-name/th/themix-gui/package.nix
new file mode 100644
index 000000000000..c73724a0ca27
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/th/themix-gui/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, sassc
+, gdk-pixbuf
+, glib
+, gobject-introspection
+, librsvg
+, gtk3
+, python3
+, fetchFromGitHub
+, wrapGAppsHook
+}:
+
+let
+  py = python3.withPackages (p: [
+    p.pygobject3
+  ]);
+  pname = "themix-gui";
+  version = "1.15.1";
+in
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "themix-project";
+    repo = "themix-gui";
+    rev = version;
+    hash = "sha256-xFtwNx1c7Atb+9yorZhs/uVkkoxbZiELJ0SZ88L7KMs=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    py
+    sassc
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    glib
+    gtk3
+    librsvg
+    py
+  ];
+
+  postPatch = ''
+    substituteInPlace gui.sh packaging/bin/{oomox,themix}-gui --replace python3 ${lib.getExe py}
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    make DESTDIR=/ APPDIR=$out/opt/oomox PREFIX=$out install_gui install_import_xresources install_export_xresources
+    python -O -m compileall $out/opt/oomox/oomox_gui -d /opt/oomox/oomox_gui
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Graphical application for designing themes and exporting them using plugins";
+    longDescription = ''
+      Graphical application for generating different color variations of
+      Oomox (Numix-based) and Materia (ex-Flat-Plat) themes (GTK2, GTK3,
+      Cinnamon, GNOME, Openbox, Xfwm), Archdroid, Gnome-Color, Numix, Papirus
+      and Suru++ icon themes. Have a hack for HiDPI in gtk2. Its Base16 plugin
+      also allowing a lot of app themes support like Alacritty, Emacs, GTK4,
+      KDE, VIM and many more.
+    '';
+    homepage = "https://github.com/themix-project/themix-gui";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "themix-gui";
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ui/uiua/package.nix b/nixpkgs/pkgs/by-name/ui/uiua/package.nix
index 3f2aa9fb7ecb..5e91612f3613 100644
--- a/nixpkgs/pkgs/by-name/ui/uiua/package.nix
+++ b/nixpkgs/pkgs/by-name/ui/uiua/package.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "uiua";
-  version = "0.4.1";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "uiua-lang";
     repo = "uiua";
     rev = version;
-    hash = "sha256-a5KSB2i7xg1b6aaNhdlU171wZ1REmFUtnsCWsKIHFGE=";
+    hash = "sha256-xDHr3U+Lc/C2L7jER2VqJvvw9mxCkDzO+K8tzC4Fw2A=";
   };
 
-  cargoHash = "sha256-5ogQI2J9JxoUKCqDrLCsop/3WSwtKqL+CG1ASN/BUSc=";
+  cargoHash = "sha256-9xjTXQJVGIvdx+SfJGPVa5Ax9wvS4Fms7blxAVrt6IY=";
 
   nativeBuildInputs = lib.optionals stdenv.isDarwin [
     rustPlatform.bindgenHook
diff --git a/nixpkgs/pkgs/by-name/ve/vesktop/package.nix b/nixpkgs/pkgs/by-name/ve/vesktop/package.nix
index fd0135a84916..320e942012d4 100644
--- a/nixpkgs/pkgs/by-name/ve/vesktop/package.nix
+++ b/nixpkgs/pkgs/by-name/ve/vesktop/package.nix
@@ -19,13 +19,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "vesktop";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "Vencord";
     repo = "Vesktop";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-wGOyDGY0FpAVS5+MTiKrOpDyd13ng0RLGAENW5tXuR4=";
+    hash = "sha256-Ot2O5J1wUZAWgdpJNaEUSwtbcNqDdGhzuCtx8Qg+4gg=";
   };
 
   # NOTE: This requires pnpm 8.10.0 or newer
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
       dontBuild = true;
       dontFixup = true;
       outputHashMode = "recursive";
-      outputHash = "sha256-nNXe0vSQiQTkiRqgScKlpkpG/BJc2eIY2ueAd9sk36c=";
+      outputHash = "sha256-v6ibAcfYgr1VjGK7NUF4DKd5da03mZndPUAnSl++RqE=";
     };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix b/nixpkgs/pkgs/by-name/vi/vieb/package.nix
index fa5fad4934c1..8d3b3de6a124 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/nixpkgs/pkgs/by-name/vi/vieb/package.nix
@@ -2,20 +2,20 @@
 
 buildNpmPackage rec {
   pname = "vieb";
-  version = "10.4.0";
+  version = "10.6.0";
 
   src = fetchFromGitHub {
     owner = "Jelmerro";
     repo = pname;
     rev = version;
-    hash = "sha256-SQQDlOSP1MZeN6BHdahpxpZ0e60lgA4ph0r2jkmTdP8=";
+    hash = "sha256-WVG30wkyGiqd3uEhk2h2MHu4L0yE6DRP6NAKMExjuOs=";
   };
 
   postPatch = ''
     sed -i '/"electron"/d' package.json
   '';
 
-  npmDepsHash = "sha256-yCWSEuhiP6DfcFns6uyUrLBJeQbOK7yJ9QfGhHkTlHI=";
+  npmDepsHash = "sha256-kvC1+odojkSFWqcyNUg2SbeEn1EkA+EdfaVWY9QmPz4=";
   makeCacheWritable = true;
   dontNpmBuild = true;
 
@@ -52,8 +52,6 @@ buildNpmPackage rec {
 
   distPhase = ":"; # disable useless $out/tarballs directory
 
-  passthru.updateScript = nix-update-script {};
-
   meta = with lib; {
     homepage = "https://vieb.dev/";
     changelog = "https://github.com/Jelmerro/Vieb/releases/tag/${version}";
diff --git a/nixpkgs/pkgs/by-name/vi/vinegar/package.nix b/nixpkgs/pkgs/by-name/vi/vinegar/package.nix
new file mode 100644
index 000000000000..6fe0035dab6b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/vi/vinegar/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, wine
+, makeBinaryWrapper
+, pkg-config
+, libGL
+, libxkbcommon
+, xorg
+}:
+
+buildGoModule rec {
+  pname = "vinegar";
+  version = "1.5.8";
+
+  src = fetchFromGitHub {
+    owner = "vinegarhq";
+    repo = "vinegar";
+    rev = "v${version}";
+    hash = "sha256-1KDcc9Hms1hQgpvf/49zFJ85kDUsieNcoOTYaZWV+S0=";
+  };
+
+  vendorHash = "sha256-UJLwSOJ4vZt3kquKllm5OMfFheZtAG5gLSA20313PpA=";
+
+  nativeBuildInputs = [ pkg-config makeBinaryWrapper ];
+  buildInputs = [ libGL libxkbcommon xorg.libX11 xorg.libXcursor xorg.libXfixes wine ];
+
+  buildPhase = ''
+    runHook preBuild
+    make PREFIX=$out
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    make PREFIX=$out install
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/vinegar \
+      --prefix PATH : ${lib.makeBinPath [ wine ]}
+  '';
+
+  meta = with lib; {
+    description = "An open-source, minimal, configurable, fast bootstrapper for running Roblox on Linux";
+    homepage = "https://github.com/vinegarhq/vinegar";
+    changelog = "https://github.com/vinegarhq/vinegar/releases/tag/v${version}";
+    mainProgram = "vinegar";
+    license = licenses.gpl3Only;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ nyanbinary ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/wa/wash-cli/package.nix b/nixpkgs/pkgs/by-name/wa/wash-cli/package.nix
new file mode 100644
index 000000000000..c186a035814b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wa/wash-cli/package.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchCrate, rustPlatform, pkg-config, openssl, darwin, fetchurl }:
+
+let
+  wasiPreviewCommandComponentAdapter = fetchurl {
+    url = "https://github.com/bytecodealliance/wasmtime/releases/download/v13.0.0/wasi_snapshot_preview1.command.wasm";
+    hash = "sha256-QihT0Iaq9VJs2mLL9CdS32lVMtDc9M952k/ZZ4tO6qs=";
+  };
+  wasiPreviewReactorComponentAdapter = fetchurl {
+    url = "https://github.com/bytecodealliance/wasmtime/releases/download/v13.0.0/wasi_snapshot_preview1.reactor.wasm";
+    hash = "sha256-bNmx/IqYPkA7YHvlYvHPmIMF/fkKtSXlZx1bjR3Neow=";
+  };
+
+in rustPlatform.buildRustPackage rec {
+  pname = "wash-cli";
+  version = "0.24.0";
+
+  src = fetchCrate {
+    inherit version pname;
+      hash = "sha256-exhN+44Sikcn2JiIry/jHOpYrPG2oQOpwq/Mq+0VK0U=";
+  };
+
+  cargoHash = "sha256-eEfkMoi4BPpKWkiTshHj59loFPzyrhFN/S8HKdMCGFM=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.SystemConfiguration
+      darwin.apple_sdk.frameworks.CoreServices
+    ];
+
+  preBuild = "
+    export WASI_PREVIEW1_COMMAND_COMPONENT_ADAPTER=${wasiPreviewCommandComponentAdapter}
+    export WASI_PREVIEW1_REACTOR_COMPONENT_ADAPTER=${wasiPreviewReactorComponentAdapter}
+  ";
+
+  # Tests require the internet and don't work when running in nix
+  doCheck = false;
+
+  meta = with lib; {
+    description = "wasmCloud Shell (wash) CLI tool";
+    homepage = "https://wasmcloud.com/";
+    mainProgram = "wash";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bloveless ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
index 14dc6514e816..b7895b94be4c 100644
--- a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sarasa-gothic";
-  version = "0.42.2";
+  version = "0.42.6";
 
   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${version}/sarasa-gothic-ttc-${version}.7z";
-    hash = "sha256-RkPHlOPXQiAswtekrOCmYcPNlNSvcqyaM4juSHJxEeY=";
+    hash = "sha256-G6REQA3Eq5fqVQCQN967Yv1xaLQSG06meJ0KeD0I/TM=";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/data/icons/vimix-cursor-theme/default.nix b/nixpkgs/pkgs/data/icons/vimix-cursor-theme/default.nix
new file mode 100644
index 000000000000..4d20acca83b0
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/vimix-cursor-theme/default.nix
@@ -0,0 +1,33 @@
+{ stdenvNoCC
+, fetchFromGitHub
+, lib
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "vimix-cursor-theme";
+  version = "2020-02-24";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = "Vimix-cursors";
+    rev = version;
+    hash = "sha256-TfcDer85+UOtDMJVZJQr81dDy4ekjYgEvH1RE1IHMi4=";
+  };
+
+  installPhase = ''
+    sed -i 's/Vimix Cursors$/Vimix-Cursors/g' dist{,-white}/index.theme
+
+    install -dm 755 $out/share/icons/Vimix-Cursors{,-White}
+
+    cp -dr --no-preserve='ownership' dist/*        $out/share/icons/Vimix-Cursors
+    cp -dr --no-preserve='ownership' dist-white/*  $out/share/icons/Vimix-Cursors-White
+  '';
+
+  meta = with lib; {
+    description = "An x-cursor theme inspired by Materia design and based on capitaine-cursors";
+    homepage = "https://github.com/vinceliuice/Vimix-cursors";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ redxtech ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix b/nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix
index eefd161632d8..4e3ec3b55049 100644
--- a/nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix
+++ b/nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dbip-country-lite";
-  version = "2023-11";
+  version = "2023-12";
 
   src = fetchurl {
     url = "https://download.db-ip.com/free/dbip-country-lite-${finalAttrs.version}.mmdb.gz";
-    hash = "sha256-Nyje7hf5UdCMHbqZoLpHclDDa4pz+BAyqJcsmPBfSG8=";
+    hash = "sha256-02ujUkrMaINTwPUQbC/RKfAgGMySgalQnpALxdZQW/A=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/data/misc/hackage/pin.json b/nixpkgs/pkgs/data/misc/hackage/pin.json
index 15eac7a7168a..7ed0f4abfd4a 100644
--- a/nixpkgs/pkgs/data/misc/hackage/pin.json
+++ b/nixpkgs/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "f4111a737432472002a38495b14b930255705d6a",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/f4111a737432472002a38495b14b930255705d6a.tar.gz",
-  "sha256": "0q1nhk821fdwxmidsd9mnd77ml4c05f7rnmd80g4s876s65ldi5q",
-  "msg": "Update from Hackage at 2023-11-10T11:27:19Z"
+  "commit": "def4ad933fb86415a9802d7833369d12520e7744",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/def4ad933fb86415a9802d7833369d12520e7744.tar.gz",
+  "sha256": "0nfqz1mwzgvkkk22igq5jxfwfcc0l8i1ihlgxaixf2ip1qqlqzs6",
+  "msg": "Update from Hackage at 2023-11-20T05:37:18Z"
 }
diff --git a/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
index e330a7bab9bc..88ff72c28c76 100644
--- a/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,12 +3,12 @@
 let
   generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20231122065640";
+    version = "20231201183121";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      hash = "sha256-M11PasiVVfRz1oySS6eJhCAsxX4sF5ehknYWEhb3K9Q=";
+      hash = "sha256-BOq4hT8K+m/bdAj6f1TbT3BvAn05bH3EdphcaWqFYFk=";
     };
     vendorHash = "sha256-6167kRAC5m5FlBr7uk+qKUcjWsb45P5Vvovyb6hHSVQ=";
     meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
index 2d7fd0c6c022..8b6cfb87dd12 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bulky";
-  version = "2.10";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "bulky";
     rev = version;
-    hash = "sha256-3hpg9a5HU7mSSlMOWvmB/p0Mlyla5PDiS0J9iYJLr6Q=";
+    hash = "sha256-8/Q8ess+qF7kdjiS2y2alUSnjKlJ74yuSe4UTPVChNQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 3ff56b18d255..fd1ad256d20c 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -9,7 +9,6 @@
 , cjs
 , evolution-data-server
 , fetchFromGitHub
-, fetchpatch
 , gdk-pixbuf
 , gettext
 , libgnomekbd
@@ -20,7 +19,6 @@
 , intltool
 , json-glib
 , callPackage
-, libsoup
 , libstartup_notification
 , libXtst
 , libXdamage
@@ -73,25 +71,18 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cinnamon-common";
-  version = "5.8.4";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cinnamon";
     rev = version;
-    hash = "sha256-34kOSDIU56cSZ4j0FadVfr9HLQytnK4ys88DFF7LTiM=";
+    hash = "sha256-kQvPdamS0t7YcWyCekdsLNXZfidaV3tdSptzHPGMSZ0=";
   };
 
   patches = [
     ./use-sane-install-dir.patch
     ./libdir.patch
-
-    # Backport pillow 10.0.0 support.
-    # https://github.com/linuxmint/cinnamon/issues/11746
-    (fetchpatch {
-      url = "https://github.com/linuxmint/cinnamon/commit/fce9aad1ebb290802dc550e8dae6344dddf9dec1.patch";
-      hash = "sha256-flt7CblfXlLieAVNeC8TBnv1TX0Zca1obPWusBMnIxE=";
-    })
   ];
 
   buildInputs = [
@@ -108,7 +99,6 @@ stdenv.mkDerivation rec {
     gsound
     gtk3
     json-glib
-    libsoup # referenced in js/ui/environment.js
     libstartup_notification
     libXtst
     libXdamage
@@ -170,9 +160,10 @@ stdenv.mkDerivation rec {
 
     pushd ./files/usr/share/cinnamon/cinnamon-settings
       substituteInPlace ./bin/capi.py                     --replace '"/usr/lib"' '"${cinnamon-control-center}/lib"'
-      substituteInPlace ./bin/CinnamonGtkSettings.py      --replace "'python3'" "'${pythonEnv.interpreter}'"
       substituteInPlace ./bin/SettingsWidgets.py          --replace "/usr/share/sounds" "/run/current-system/sw/share/sounds"
-      substituteInPlace ./bin/Spices.py                   --replace "msgfmt" "${gettext}/bin/msgfmt"
+      substituteInPlace ./bin/Spices.py                   --replace "subprocess.run(['/usr/bin/" "subprocess.run(['" \
+                                                          --replace 'subprocess.run(["/usr/bin/' 'subprocess.run(["' \
+                                                          --replace "msgfmt" "${gettext}/bin/msgfmt"
       substituteInPlace ./modules/cs_info.py              --replace "lspci" "${pciutils}/bin/lspci"
       substituteInPlace ./modules/cs_themes.py            --replace "$out/share/cinnamon/styles.d" "/run/current-system/sw/share/cinnamon/styles.d"
     popd
@@ -201,7 +192,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    providedSessions = [ "cinnamon" "cinnamon2d" ];
+    providedSessions = [ "cinnamon" "cinnamon2d" "cinnamon-wayland" ];
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 775ab979ad8c..40d0243b5f24 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-control-center";
-  version = "5.8.2";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-7AXm4ZTpI/4Xa2lwDmEvomNdwmgVoXSKqojpFZMuoVQ=";
+    hash = "sha256-zkJkZagZBt6JMiC/HLsyP9+qVLtTszumOk3PKt18X4Y=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index e42e5a6069b9..0f53fbbb656a 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -10,6 +10,7 @@
 , python3
 , lib
 , stdenv
+, systemd
 , xkeyboard_config
 , xorg
 , wrapGAppsHook
@@ -18,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-desktop";
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-rYTWtdYfMow3cIPhJdcmhyaIIU7fgVecWigbsCW0Piw=";
+    hash = "sha256-Ay9JyPBsE345dBwQHChkaGuoXiB2nPyvCNhWWphL8kY=";
   };
 
   outputs = [ "out" "dev" ];
@@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gdk-pixbuf
+    systemd
     xkeyboard_config
     xorg.libxkbfile
     xorg.libXext
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 444a68778664..754a5c43a182 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-menus";
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-AgA/DA7I9/0AJhlmgk0yAOJaZzpiQV1vM949Y6EOWVg=";
+    hash = "sha256-zP1jA5Fwxh6QrM5YwJo7SFPWaxkJsv1D84dhIDP5xuI=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 91c495563058..1690a9336474 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -19,7 +19,6 @@
 , gobject-introspection
 , python3
 , pam
-, accountsservice
 , cairo
 , xapp
 , xdotool
@@ -29,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-screensaver";
-  version = "5.8.1";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-d7h9OJ39HVQNCHNr13M1ybDFoU3Xnd1PEczGLHZU/lU=";
+    hash = "sha256-5hXhCPXC7b2SsmvNSLDe/WYQcufN7FfhnaAgTNtqg0I=";
   };
 
   patches = [
@@ -75,7 +74,6 @@ stdenv.mkDerivation rec {
     xapp
     xdotool
     pam
-    accountsservice
     cairo
     cinnamon-desktop
     cinnamon-common
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index 51fa5bca3dd6..a6800f94737d 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -23,15 +23,22 @@
 , pango
 }:
 
+let
+  pythonEnv = python3.withPackages (pp: with pp; [
+    pp.xapp # don't omit `pp.`, see #213561
+    pygobject3
+    setproctitle
+  ]);
+in
 stdenv.mkDerivation rec {
   pname = "cinnamon-session";
-  version = "5.8.1";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-NVoP1KYh/z96NKMi9LjL4RgkjJg32oSy5WHJ91+70DI=";
+    hash = "sha256-9wdakMCW0RnsYdf9OmK/Q9o8m0g+5EfHVbjqvFY3d/w=";
   };
 
   patches = [
@@ -40,6 +47,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     # meson.build
+    cinnamon-desktop
     gtk3
     glib
     libcanberra
@@ -57,12 +65,11 @@ stdenv.mkDerivation rec {
     xorg.xtrans
 
     # other (not meson.build)
-
-    cinnamon-desktop
     cinnamon-settings-daemon
     dbus-glib
     glib
     gsettings-desktop-schemas
+    pythonEnv # for cinnamon-session-quit
   ];
 
   nativeBuildInputs = [
@@ -81,8 +88,10 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    chmod +x data/meson_install_schemas.py # patchShebangs requires executable file
-    patchShebangs data/meson_install_schemas.py
+    # patchShebangs requires executable file
+    chmod +x data/meson_install_schemas.py cinnamon-session-quit/cinnamon-session-quit.py
+    patchShebangs --build data/meson_install_schemas.py
+    patchShebangs --host cinnamon-session-quit/cinnamon-session-quit.py
   '';
 
   preFixup = ''
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index 9eb2d743d8e4..65828b3da604 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -32,13 +32,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-settings-daemon";
-  version = "5.8.1";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-2ObfUdrCuvyhtpoxNzoH8tsFQLxNkMLQPFfJajXEsXU=";
+    hash = "sha256-bT6NetCBo3J9IiiJ9Hs4iC1N3n/AP9Q+6wZciuKA4i4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index 1c46fdcf6be0..bacd1d3518d8 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "5.8.2";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-hFqCKzJogGka6vsIj8SCL9GMDsTQO50jwpYKr74V5Fo=";
+    hash = "sha256-lbJ4Hhd+7Hd70ZrEw0Q7Yts9yciXzqSuNTerW6oY93A=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
index 681d6afd4ead..4ff139ba787e 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cjs";
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cjs";
     rev = version;
-    hash = "sha256-DKCe8dKdYfdeWQ9Iqr0AmDU7YDN9QrQGdTkrBV/ywV0=";
+    hash = "sha256-oSqEAZWEVb8NxFTScl8s5Mb04tCGDyVVslYW00s4YYk=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
index c2ad10f97ac0..98ee19c27e78 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
@@ -6,6 +6,7 @@
 , cinnamon-desktop
 , dbus
 , desktop-file-utils
+, egl-wayland
 , glib
 , gnome
 , gobject-introspection
@@ -19,6 +20,7 @@
 , libinput
 , libstartup_notification
 , libwacom
+, libxcvt
 , libXdamage
 , libxkbcommon
 , libXtst
@@ -29,13 +31,16 @@
 , pkg-config
 , python3
 , udev
+, wayland
+, wayland-protocols
 , wrapGAppsHook
 , xorgserver
+, xwayland
 }:
 
 stdenv.mkDerivation rec {
   pname = "muffin";
-  version = "5.8.1";
+  version = "6.0.0";
 
   outputs = [ "out" "dev" "man" ];
 
@@ -43,7 +48,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-9YE+pHXJb21CcAflL9swNyhQY3ZCkLlZbnmUwTNdyfA=";
+    hash = "sha256-17B2C3SW9smTgLBBGJc9LwFpXoP9WidZEGgI2hbJTH8=";
   };
 
   patches = [
@@ -69,6 +74,7 @@ stdenv.mkDerivation rec {
     cairo
     cinnamon-desktop
     dbus
+    egl-wayland
     glib
     gtk3
     libcanberra
@@ -78,10 +84,14 @@ stdenv.mkDerivation rec {
     libinput
     libstartup_notification
     libwacom
+    libxcvt
     libXdamage
     libxkbcommon
     pipewire
     udev
+    wayland
+    wayland-protocols
+    xwayland
   ];
 
   propagatedBuildInputs = [
@@ -91,6 +101,13 @@ stdenv.mkDerivation rec {
     graphene
   ];
 
+  mesonFlags = [
+    # Based on Mint's debian/rules.
+    "-Degl_device=true"
+    "-Dwayland_eglstream=true"
+    "-Dxwayland_path=${lib.getExe xwayland}"
+  ];
+
   postPatch = ''
     patchShebangs src/backends/native/gen-default-modes.py
   '';
diff --git a/nixpkgs/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix b/nixpkgs/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix
index 491373f5ea5f..c59538a40a44 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix
@@ -4,12 +4,12 @@ rec {
   # When you bump this, you should make sure all nemo-extensions
   # are actually using this file since we try to deal with tags
   # like nemo-fileroller-5.6.1 according to upstream's wishes.
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "nemo-extensions";
     rev = version;
-    sha256 = "sha256-tyRYPWJa93w05a0PcYvz1GA8/xX2kHLdIzz4tCcppiY=";
+    sha256 = "sha256-M8ImntyfFfSL591UpqZosE7F8ydbpfrBhcLOBtW/sGQ=";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
index 61266bb87100..406bcd132511 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nemo";
-  version = "5.8.5";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Nl/T+8mmQdCTHo3qAUd+ATflSDXiGCQfGb1gXzvLuAc=";
+    sha256 = "sha256-JeiBhgfGyGyNT9eNhtUl6Pp1jgG02NRlm5lam592lS0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix b/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
index ef434171d914..d9324fb30d24 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , meson
 , ninja
@@ -34,24 +33,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pix";
-  version = "3.0.2";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iNUhcHG4nCZ4WNELodyLdztzfNg9g+F0eQrZHXS6Zj0=";
+    sha256 = "sha256-hhtW2QyexGIyovhWOReeJ0bxgye8LJl1RrEs0/5+q24=";
   };
 
-  patches = [
-    # Fix build with exiv2 0.28, can be removed on next update
-    # https://github.com/linuxmint/pix/pull/178
-    (fetchpatch {
-      url = "https://github.com/linuxmint/pix/commit/46e19703a973d51fa97e6a22121560f5ba200eea.patch";
-      sha256 = "sha256-Z+pUxoy0m/agXW++YxEUhRuax0qvuGVXNhU8d9mvGh4=";
-    })
-  ];
-
   nativeBuildInputs = [
     bison
     desktop-file-utils
diff --git a/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix b/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix
index 5b38d0662ea5..3043d7c7ed4f 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/xapp/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xapp";
-  version = "2.6.1";
+  version = "2.8.0";
 
   outputs = [ "out" "dev" ];
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-ZxIPiDLcMHEmlnrImctI2ZfH3AIOjB4m/RPGipJ7koM=";
+    hash = "sha256-kpVNzBvUo2Ktzln51xLbySeKutVeJaI57kL8cBZscTM=";
   };
 
   # Recommended by upstream, which enables the build of xapp-debug.
diff --git a/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix b/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
index c03ba5145b5e..1c7e03de9204 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xviewer";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-HVxCBqaKtsEGhGAB+dBCOnjAjLZHv0XqTifPrvoYdj8=";
+    sha256 = "sha256-bI0TFJYulj1XlgKU5YLrlYKnkHORVYz4TK9mhl9mGag=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index f372f688eabc..24a2e7d50e0d 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -51,13 +51,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.50.1";
+  version = "3.50.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "kfT/w4objS/ok5g0RJrFQcC/9KObRE7cKpUpNEoo6Yo=";
+    sha256 = "XmYnA4jVDBTzsa4/oNISe5/tznUqzTk7VUUoGwH8SXA=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
index 4857efc4c230..f502e89a71bd 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
@@ -202,7 +202,7 @@ index 2525856..7ecc1a8 100644
  				g_clear_object (&settings);
  			}
 diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
-index c01e8b2..59fb4c4 100644
+index ade0a73..d7c3e73 100644
 --- a/src/calendar/libecal/e-reminder-watcher.c
 +++ b/src/calendar/libecal/e-reminder-watcher.c
 @@ -2626,8 +2626,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
@@ -312,7 +312,7 @@ index bef9188..ce92f6c 100644
  	g_clear_object (&settings);
  
 diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
-index db5fc2e..162e00f 100644
+index 4deae76..ebe0a1b 100644
 --- a/src/camel/camel-gpg-context.c
 +++ b/src/camel/camel-gpg-context.c
 @@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void)
@@ -505,7 +505,7 @@ index 3bb1071..199e822 100644
  		g_object_unref (settings);
  
 diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
-index 2364f3e..e8f59f2 100644
+index af59b0b..0c7e75e 100644
 --- a/src/libedataserver/e-oauth2-service.c
 +++ b/src/libedataserver/e-oauth2-service.c
 @@ -94,7 +94,18 @@ eos_default_guess_can_process (EOAuth2Service *service,
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
index b0189cc1321d..a35e6921ff25 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "45.0";
+  version = "45.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PYYl+qmQR7xK79KZIa1yirTXAM/4bg8uxn6Nuod9DdM=";
+    sha256 = "sha256-VA/07JprljAAP/TNYNYk85/nDyWpVZ5TMziWA8hblSk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
index 931a2d643dd2..ac3e7c498137 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -45,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "45.1";
+  version = "45.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "1ySF96bgkX9k7b7daP17VyRsbr8QxaRRCLY5RmNXeKI=";
+    sha256 = "C92PwMrs1usBPGAQ28qTB3OXEYpu9eryZOKoIKKS9bc=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json b/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
index af08e170c2fb..eae2f796108e 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
@@ -121,7 +121,7 @@
     "42": {"version": "52", "sha256": "02190kcp0c1mzlxf4ax0shk7r6zh9adynidxnjdhbkwl9knxalra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDUyCn0="},
     "43": {"version": "52", "sha256": "02190kcp0c1mzlxf4ax0shk7r6zh9adynidxnjdhbkwl9knxalra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDUyCn0="},
     "44": {"version": "52", "sha256": "02190kcp0c1mzlxf4ax0shk7r6zh9adynidxnjdhbkwl9knxalra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDUyCn0="},
-    "45": {"version": "54", "sha256": "1gh8ahchyskv09631z0s286icxhm6vn9c6jn1hzw50w6m7hwni99", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvY2trZXlzIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2Nra2V5cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDU0Cn0="}
+    "45": {"version": "55", "sha256": "077kyy2h43xnj68zbq594dc7h995hg15a0f9gnnfv2wfag1ggksn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvY2trZXlzIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayBhbmQgbWFueSBvdGhlcnMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9ja2tleXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA1NQp9"}
   }}
 , {"uuid": "putWindow@clemens.lab21.org", "name": "Put Windows", "pname": "put-windows", "description": "Fully customizable replacement for the old compiz put plugin. \n * Move windows to left/right side, bottom/top, center or corner (aka tile)\n * Move window to other screen \n * Select focused window using the keyboard \n * Application based window placement \n\n Please check github if your gnome-shell version is not supported", "link": "https://extensions.gnome.org/extension/39/put-windows/", "shell_version_map": {
     "38": {"version": "32", "sha256": "0gzi2xmqkjl6x3q1lcb5mrlvvxsni7bax8j5q7wy25hhpizbj2m7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IGN1c3RvbWl6YWJsZSByZXBsYWNlbWVudCBmb3IgdGhlIG9sZCBjb21waXogcHV0IHBsdWdpbi4gXG4gKiBNb3ZlIHdpbmRvd3MgdG8gbGVmdC9yaWdodCBzaWRlLCBib3R0b20vdG9wLCBjZW50ZXIgb3IgY29ybmVyIChha2EgdGlsZSlcbiAqIE1vdmUgd2luZG93IHRvIG90aGVyIHNjcmVlbiBcbiAqIFNlbGVjdCBmb2N1c2VkIHdpbmRvdyB1c2luZyB0aGUga2V5Ym9hcmQgXG4gKiBBcHBsaWNhdGlvbiBiYXNlZCB3aW5kb3cgcGxhY2VtZW50IFxuXG4gUGxlYXNlIGNoZWNrIGdpdGh1YiBpZiB5b3VyIGdub21lLXNoZWxsIHZlcnNpb24gaXMgbm90IHN1cHBvcnRlZCIsCiAgImdldHRleHQtZG9tYWluIjogInB1dFdpbmRvdyIsCiAgIm5hbWUiOiAiUHV0IFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3JnLWxhYjIxLXB1dHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZ2VzdGkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1uZWdlc3RpIiwKICAidXVpZCI6ICJwdXRXaW5kb3dAY2xlbWVucy5sYWIyMS5vcmciLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
@@ -386,12 +386,12 @@
   }}
 , {"uuid": "lunarcal@ailin.nemui", "name": "Lunar Calendar 农历", "pname": "lunar-calendar", "description": "Display Chinese Lunar Calendar in panel\n\n⚠⚠⚠ dependency: ChineseCalendar by ytliu0: https://gitlab.gnome.org/Nei/ChineseCalendar/-/archive/20231023/ChineseCalendar-20231023.tar.gz", "link": "https://extensions.gnome.org/extension/675/lunar-calendar/", "shell_version_map": {
     "38": {"version": "25", "sha256": "19y2xr06qivvff4kgxsi7qav55ks060aqs4nksfh52xgxg1a5y8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyZGF0ZS0zLjAiLAogICJuYW1lIjogIkx1bmFyIENhbGVuZGFyIFx1NTE5Y1x1NTM4NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sdW5hci1jYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsdW5hcmNhbEBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNQp9"},
-    "40": {"version": "30", "sha256": "0s9nv79a6z677kkp8inx8nc3bk8cy7rlxw7vp381jfs0glvr4883", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyZGF0ZS0zLjAiLAogICJuYW1lIjogIkx1bmFyIENhbGVuZGFyIFx1NTE5Y1x1NTM4NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sdW5hci1jYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMzAKfQ=="},
-    "41": {"version": "30", "sha256": "0s9nv79a6z677kkp8inx8nc3bk8cy7rlxw7vp381jfs0glvr4883", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyZGF0ZS0zLjAiLAogICJuYW1lIjogIkx1bmFyIENhbGVuZGFyIFx1NTE5Y1x1NTM4NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sdW5hci1jYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMzAKfQ=="},
-    "42": {"version": "30", "sha256": "0s9nv79a6z677kkp8inx8nc3bk8cy7rlxw7vp381jfs0glvr4883", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyZGF0ZS0zLjAiLAogICJuYW1lIjogIkx1bmFyIENhbGVuZGFyIFx1NTE5Y1x1NTM4NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sdW5hci1jYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMzAKfQ=="},
-    "43": {"version": "30", "sha256": "0s9nv79a6z677kkp8inx8nc3bk8cy7rlxw7vp381jfs0glvr4883", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyZGF0ZS0zLjAiLAogICJuYW1lIjogIkx1bmFyIENhbGVuZGFyIFx1NTE5Y1x1NTM4NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sdW5hci1jYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMzAKfQ=="},
-    "44": {"version": "33", "sha256": "0lb1wx8glx5dhx0xsmbvr7xc4iz7z1spfq7sz4rarhlgyr0xscd1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyZGF0ZS0zLjAiLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJhaWxpbiIKICB9LAogICJuYW1lIjogIkx1bmFyIENhbGVuZGFyIFx1NTE5Y1x1NTM4NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sdW5hci1jYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9OZWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWx1bmFyLWNhbGVuZGFyLy0vaXNzdWVzIiwKICAidXVpZCI6ICJsdW5hcmNhbEBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAzMwp9"},
-    "45": {"version": "38", "sha256": "14p3zls5alraqmz25w1vgkla65798whv6vnl2ih83sgsqs1radnz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sdW5hci1jYWxlbmRhci8tL2lzc3VlcyIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMzgKfQ=="}
+    "40": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "41": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "42": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "43": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "44": {"version": "42", "sha256": "1qrn9s5jl37gf9har7nybznw4vlxspq17wzc9nk45dfi3y5vf9z9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL05laS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbHVuYXItY2FsZW5kYXIvLS9pc3N1ZXMiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "45": {"version": "41", "sha256": "1r3mach6hm61kb044cnrw9g6wpxpjbw8zh6ccccn4l629l31sy4r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiBDaGluZXNlQ2FsZW5kYXIgYnkgeXRsaXUwOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL0NoaW5lc2VDYWxlbmRhci8tL2FyY2hpdmUvMjAyMzEwMjMvQ2hpbmVzZUNhbGVuZGFyLTIwMjMxMDIzLnRhci5neiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sdW5hci1jYWxlbmRhci8tL2lzc3VlcyIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogNDEKfQ=="}
   }}
 , {"uuid": "EasyScreenCast@iacopodeenosee.gmail.com", "name": "EasyScreenCast", "pname": "easyscreencast", "description": "This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording.\n\nSOURCE CODE ->  https://github.com/EasyScreenCast/EasyScreenCast\n\nVIDEO ->  https://youtu.be/81E9AruraKU\n\n**NOTICE**\nif an error occurs during the update is recommended to reload GNOME Shell (Alt + F2, 'r') and reload the extension's installation page.", "link": "https://extensions.gnome.org/extension/690/easyscreencast/", "shell_version_map": {
     "38": {"version": "47", "sha256": "0fkp5qg6xg4jh8zamba7gva5imp83pg4cy4v8q586dcli2r8yzmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
@@ -557,7 +557,7 @@
     "42": {"version": "52", "sha256": "1i59pp1wzd49fvz56rk2fq3zi0zkh8y2jf17ssgjcj1cn68x6k7r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVXNoYWtvdlZhc2lsaWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZyZW9uIiwKICAidXVpZCI6ICJmcmVvbkBVc2hha292VmFzaWxpaV9HaXRodWIueWFob28uY29tIiwKICAidmVyc2lvbiI6IDUyCn0="},
     "43": {"version": "52", "sha256": "1i59pp1wzd49fvz56rk2fq3zi0zkh8y2jf17ssgjcj1cn68x6k7r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVXNoYWtvdlZhc2lsaWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZyZW9uIiwKICAidXVpZCI6ICJmcmVvbkBVc2hha292VmFzaWxpaV9HaXRodWIueWFob28uY29tIiwKICAidmVyc2lvbiI6IDUyCn0="},
     "44": {"version": "52", "sha256": "1i59pp1wzd49fvz56rk2fq3zi0zkh8y2jf17ssgjcj1cn68x6k7r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVXNoYWtvdlZhc2lsaWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZyZW9uIiwKICAidXVpZCI6ICJmcmVvbkBVc2hha292VmFzaWxpaV9HaXRodWIueWFob28uY29tIiwKICAidmVyc2lvbiI6IDUyCn0="},
-    "45": {"version": "54", "sha256": "1hwf3r1czdrvwa7x29mppvd4wb5hv89gxlbz00g5ssssrp6g0y19", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Vc2hha292VmFzaWxpaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZnJlb24iLAogICJ1dWlkIjogImZyZW9uQFVzaGFrb3ZWYXNpbGlpX0dpdGh1Yi55YWhvby5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}
+    "45": {"version": "55", "sha256": "070wwvl153swnqzx8qgw79zjsg1z6844pkc4a1lfjfrsfnvcfgw5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Vc2hha292VmFzaWxpaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZnJlb24iLAogICJ1dWlkIjogImZyZW9uQFVzaGFrb3ZWYXNpbGlpX0dpdGh1Yi55YWhvby5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="}
   }}
 , {"uuid": "shell-volume-mixer@derhofbauer.at", "name": "Volume Mixer", "pname": "volume-mixer", "description": "Applet allowing separate configuration of PulseAudio mixers.\n\nShell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.\n\nMiddle mouse click on a slider mutes the selected stream.\n\nPlease file bugs and feature requests on the GitHub page.", "link": "https://extensions.gnome.org/extension/858/volume-mixer/", "shell_version_map": {
     "38": {"version": "39", "sha256": "1cnyapjvqri5k5m4nbcmbcx97b4akwv32h7ddav2ipahqh1lqqzj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIlZvbHVtZSBNaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZWhvL2dub21lLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgInV1aWQiOiAic2hlbGwtdm9sdW1lLW1peGVyQGRlcmhvZmJhdWVyLmF0IiwKICAidmVyc2lvbiI6IDM5Cn0="},
@@ -1008,7 +1008,8 @@
     "41": {"version": "33", "sha256": "1x0si8w2mzvb6msck3nvcgsn7day00cva58il04l9z53sj04d6b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFzYS1hcG9kIiwKICAidXVpZCI6ICJuYXNhX2Fwb2RAZWxpbnZlbnRpb24ub3ZoIiwKICAidmVyc2lvbiI6IDMzCn0="},
     "42": {"version": "33", "sha256": "1x0si8w2mzvb6msck3nvcgsn7day00cva58il04l9z53sj04d6b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFzYS1hcG9kIiwKICAidXVpZCI6ICJuYXNhX2Fwb2RAZWxpbnZlbnRpb24ub3ZoIiwKICAidmVyc2lvbiI6IDMzCn0="},
     "43": {"version": "36", "sha256": "0cgjsq1m508255pnr28l7a3170iz6nh92vzzzcb9a1w6lk7wws14", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzYKfQ=="},
-    "44": {"version": "36", "sha256": "0cgjsq1m508255pnr28l7a3170iz6nh92vzzzcb9a1w6lk7wws14", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}
+    "44": {"version": "36", "sha256": "0cgjsq1m508255pnr28l7a3170iz6nh92vzzzcb9a1w6lk7wws14", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzYKfQ=="},
+    "45": {"version": "38", "sha256": "0ycjwzg7p6lsw06czbahiayfnw8s3am9mpxd2ninlirgmx95158d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hc2EtYXBvZCIsCiAgInV1aWQiOiAibmFzYV9hcG9kQGVsaW52ZW50aW9uLm92aCIsCiAgInZlcnNpb24iOiAzOAp9"}
   }}
 , {"uuid": "SystemMenu@jonnius.github.com", "name": "System Menu", "pname": "system-menu", "description": "System menu with usefull shortcuts", "link": "https://extensions.gnome.org/extension/1204/system-menu/", "shell_version_map": {
     "38": {"version": "5", "sha256": "10zfr3fhqvq0fxqjzqmnxmhmdw5xcw9m5k3jm1apcjqnm38r896w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtZW51IHdpdGggdXNlZnVsbCBzaG9ydGN1dHMiLAogICJuYW1lIjogIlN5c3RlbSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlN5c3RlbU1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2pvbm5pdXMvZ25vbWUtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogIlN5c3RlbU1lbnVAam9ubml1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}
@@ -1409,7 +1410,7 @@
     "42": {"version": "28", "sha256": "1iag2yy73ixz4al1ml8kfhf1hwy4lw3y0b5ngyy5w73hv5janivp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5sb2NrRGlhbG9nQmFja2dyb3VuZCIsCiAgInV1aWQiOiAidW5sb2NrRGlhbG9nQmFja2dyb3VuZEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"},
     "43": {"version": "28", "sha256": "1iag2yy73ixz4al1ml8kfhf1hwy4lw3y0b5ngyy5w73hv5janivp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5sb2NrRGlhbG9nQmFja2dyb3VuZCIsCiAgInV1aWQiOiAidW5sb2NrRGlhbG9nQmFja2dyb3VuZEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"},
     "44": {"version": "28", "sha256": "1iag2yy73ixz4al1ml8kfhf1hwy4lw3y0b5ngyy5w73hv5janivp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5sb2NrRGlhbG9nQmFja2dyb3VuZCIsCiAgInV1aWQiOiAidW5sb2NrRGlhbG9nQmFja2dyb3VuZEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"},
-    "45": {"version": "31", "sha256": "0c7qzgplg856nn7dx9rc629brzmkm0ic5x8rh7bdhpl6s4bazda7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1bmxvY2tEaWFsb2ctQmFja2dyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkxvY2sgc2NyZWVuIGJhY2tncm91bmQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bmxvY2tEaWFsb2dCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5sb2NrRGlhbG9nQmFja2dyb3VuZCIsCiAgInV1aWQiOiAidW5sb2NrRGlhbG9nQmFja2dyb3VuZEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMQp9"}
+    "45": {"version": "34", "sha256": "0f0azv8scjhrj3pgpancgdmj3wz5b7p6aq562a1nz0b4bw6bwzv9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1bmxvY2tEaWFsb2ctQmFja2dyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkxvY2sgc2NyZWVuIGJhY2tncm91bmQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bmxvY2tEaWFsb2dCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5sb2NrRGlhbG9nQmFja2dyb3VuZCIsCiAgInV1aWQiOiAidW5sb2NrRGlhbG9nQmFja2dyb3VuZEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"}
   }}
 , {"uuid": "wsmatrix@martin.zurowietz.de", "name": "Workspace Matrix", "pname": "workspace-matrix", "description": "Arrange workspaces in a two dimensional grid with workspace thumbnails.\n\nIf you appreciate this extension please consider to donate $1.", "link": "https://extensions.gnome.org/extension/1485/workspace-matrix/", "shell_version_map": {
     "38": {"version": "27", "sha256": "1ll51pnpx29vckdhz739i6gnfababi2xdbhfv1hm5xhd1jrqc1kz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLXdzbWF0cml4IiwKICAidXVpZCI6ICJ3c21hdHJpeEBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDI3Cn0="},
@@ -2228,7 +2229,7 @@
     "43": {"version": "13", "sha256": "0bxanhx2ylpw0rh69lfdhkixsfggkp7b119ah3rrslx7w71qki6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
     "44": {"version": "13", "sha256": "0bxanhx2ylpw0rh69lfdhkixsfggkp7b119ah3rrslx7w71qki6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
-, {"uuid": "jetbrains-search-provider@swsnr.de", "name": "JetBrains Search Provider", "pname": "jetbrains-search-provider", "description": "Deprecated, see alternative search provider\n\nUse https://github.com/lunaryorn/gnome-search-providers-jetbrains instead", "link": "https://extensions.gnome.org/extension/3115/jetbrains-search-provider/", "shell_version_map": {
+, {"uuid": "jetbrains-search-provider@swsnr.de", "name": "JetBrains Search Provider", "pname": "jetbrains-search-provider", "description": "Deprecated, see alternative search provider\n\nUse https://github.com/swsnr/gnome-search-providers-jetbrains instead", "link": "https://extensions.gnome.org/extension/3115/jetbrains-search-provider/", "shell_version_map": {
     "38": {"version": "14", "sha256": "0hg9vv7vs419mjlc2smj25b4v5hnxi9yakwks19grlyd7gwhd70j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRlcHJlY2F0ZWQsIHNlZSBhbHRlcm5hdGl2ZSBzZWFyY2ggcHJvdmlkZXJcblxuVXNlIGh0dHBzOi8vZ2l0aHViLmNvbS9sdW5hcnlvcm4vZ25vbWUtc2VhcmNoLXByb3ZpZGVycy1qZXRicmFpbnMgaW5zdGVhZCIsCiAgIm5hbWUiOiAiSmV0QnJhaW5zIFNlYXJjaCBQcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1bmFyeW9ybi9nbm9tZS1zZWFyY2gtcHJvdmlkZXJzLWpldGJyYWlucyIsCiAgInV1aWQiOiAiamV0YnJhaW5zLXNlYXJjaC1wcm92aWRlckBzd3Nuci5kZSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "An eye on the top panel that follows your cursor.\nIt includes a mouse indicator to better keep track of your mouse location.", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {
@@ -2334,7 +2335,8 @@
     "44": {"version": "5", "sha256": "0d4y9rzq0v9iwph408mf0d9zfx2g5fyrbbk63dn61ri525v0qlzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
 , {"uuid": "translate-indicator@athenstaedt.net", "name": "Translate Indicator", "pname": "translate-indicator", "description": "Translate extension for Gnome-Shell - based on translate-shell, inspired by Tudmotu's clipboard-indicator and gufoe's text-translator", "link": "https://extensions.gnome.org/extension/3318/translate-indicator/", "shell_version_map": {
-    "38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}
+    "38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "45": {"version": "5", "sha256": "05vsi19d754kywmq4lrgf5n5n96z88wqwynf3fi473yqjxs3w3gg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJhbnNsYXRlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {
     "38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"},
@@ -3866,10 +3868,11 @@
     "45": {"version": "10", "sha256": "19mkkrvrxar6s3ggdziii7aq6r783qaisjff4dplmyg4qwx3d4mp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4gTWlncmF0aW5nIGZyb20gV2luZG93cyBoYXMgbmV2ZXIgYmVlbiBlYXNpZXIhIiwKICAibmFtZSI6ICJBY3RpdmF0ZSBHTk9NRSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3RpdmF0ZV9nbm9tZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pc2plcnJ5eGlhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWN0aXZhdGUtZ25vbWUiLAogICJ1dWlkIjogImFjdGl2YXRlX2dub21lQGlzamVycnl4aWFvIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei and Honor laptops WMI functions, such as battery protection, Fn-lock, power unlock and keyboard backlight.", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {
-    "40": {"version": "10", "sha256": "07h8vq0m18c7s91g3jc26ka159c827a17s1ypzddr38kcbijmw4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYXBwcy5zZG9yZS5tZS9nbm9tZS1leHRlbnNpb24taHVhd2VpLXdtaSIsCiAgInV1aWQiOiAiaHVhd2VpLXdtaUBhcHBzLnNkb3JlLm1lIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "41": {"version": "10", "sha256": "07h8vq0m18c7s91g3jc26ka159c827a17s1ypzddr38kcbijmw4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYXBwcy5zZG9yZS5tZS9nbm9tZS1leHRlbnNpb24taHVhd2VpLXdtaSIsCiAgInV1aWQiOiAiaHVhd2VpLXdtaUBhcHBzLnNkb3JlLm1lIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "42": {"version": "10", "sha256": "07h8vq0m18c7s91g3jc26ka159c827a17s1ypzddr38kcbijmw4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYXBwcy5zZG9yZS5tZS9nbm9tZS1leHRlbnNpb24taHVhd2VpLXdtaSIsCiAgInV1aWQiOiAiaHVhd2VpLXdtaUBhcHBzLnNkb3JlLm1lIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "43": {"version": "10", "sha256": "07h8vq0m18c7s91g3jc26ka159c827a17s1ypzddr38kcbijmw4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYXBwcy5zZG9yZS5tZS9nbm9tZS1leHRlbnNpb24taHVhd2VpLXdtaSIsCiAgInV1aWQiOiAiaHVhd2VpLXdtaUBhcHBzLnNkb3JlLm1lIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "40": {"version": "11", "sha256": "1id2glrzcb2ppk1kfjldpdcz0v88az6nqi6vkms3r4cgnjyy88b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2FwcHMuc2RvcmUubWUvZ25vbWUtZXh0ZW5zaW9uLWh1YXdlaS13bWkiLAogICJ1dWlkIjogImh1YXdlaS13bWlAYXBwcy5zZG9yZS5tZSIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "41": {"version": "11", "sha256": "1id2glrzcb2ppk1kfjldpdcz0v88az6nqi6vkms3r4cgnjyy88b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2FwcHMuc2RvcmUubWUvZ25vbWUtZXh0ZW5zaW9uLWh1YXdlaS13bWkiLAogICJ1dWlkIjogImh1YXdlaS13bWlAYXBwcy5zZG9yZS5tZSIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "42": {"version": "11", "sha256": "1id2glrzcb2ppk1kfjldpdcz0v88az6nqi6vkms3r4cgnjyy88b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2FwcHMuc2RvcmUubWUvZ25vbWUtZXh0ZW5zaW9uLWh1YXdlaS13bWkiLAogICJ1dWlkIjogImh1YXdlaS13bWlAYXBwcy5zZG9yZS5tZSIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "43": {"version": "11", "sha256": "1id2glrzcb2ppk1kfjldpdcz0v88az6nqi6vkms3r4cgnjyy88b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2FwcHMuc2RvcmUubWUvZ25vbWUtZXh0ZW5zaW9uLWh1YXdlaS13bWkiLAogICJ1dWlkIjogImh1YXdlaS13bWlAYXBwcy5zZG9yZS5tZSIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "44": {"version": "11", "sha256": "1id2glrzcb2ppk1kfjldpdcz0v88az6nqi6vkms3r4cgnjyy88b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2FwcHMuc2RvcmUubWUvZ25vbWUtZXh0ZW5zaW9uLWh1YXdlaS13bWkiLAogICJ1dWlkIjogImh1YXdlaS13bWlAYXBwcy5zZG9yZS5tZSIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "username-hotname@it-und-entwicklung-fg.de", "name": "Username and Hostname to panel", "pname": "username-and-hostname-to-panel", "description": "Adds your avatar icon, user displayname und username to the menu panel. Also it adds the hostname to the left of the panel.", "link": "https://extensions.gnome.org/extension/4583/username-and-hostname-to-panel/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1g9jsfwxxz2as2nwkqdzr0km24ykkzhdfmya9mqxvr68fsanw27n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9pdC11bmQtZW50d2lja2x1bmctZmcvVXNlcm5hbWUtYW5kLUhvc3RuYW1lLyIsCiAgInV1aWQiOiAidXNlcm5hbWUtaG90bmFtZUBpdC11bmQtZW50d2lja2x1bmctZmcuZGUiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -4001,7 +4004,7 @@
     "43": {"version": "27", "sha256": "1sdq0wlnj6dib9lgjilk8xrxzh5lk63s8n5hcgky0jqbp9qvb5s7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyB2aWEgRERDLiBJdCByZXF1aXJlcyBkZGN1dGlsIHRvIGJlIGluc3RhbGxlZCwgSTJDIHBlcm1pc3Npb25zIGZvciBub24tcm9vdCB1c2VycyBjb25maWd1cmVkLiIsCiAgIm5hbWUiOiAiQWRqdXN0IERpc3BsYXkgQnJpZ2h0bmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYnJ1bm8uZW5nbGVydC9nbm9tZS1leHRlbnNpb24tYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWJyaWdodG5lc3NAYnJ1bm8uZW5nbGVydC5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="},
     "44": {"version": "27", "sha256": "1sdq0wlnj6dib9lgjilk8xrxzh5lk63s8n5hcgky0jqbp9qvb5s7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyB2aWEgRERDLiBJdCByZXF1aXJlcyBkZGN1dGlsIHRvIGJlIGluc3RhbGxlZCwgSTJDIHBlcm1pc3Npb25zIGZvciBub24tcm9vdCB1c2VycyBjb25maWd1cmVkLiIsCiAgIm5hbWUiOiAiQWRqdXN0IERpc3BsYXkgQnJpZ2h0bmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYnJ1bm8uZW5nbGVydC9nbm9tZS1leHRlbnNpb24tYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWJyaWdodG5lc3NAYnJ1bm8uZW5nbGVydC5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}
   }}
-, {"uuid": "date-menu-formatter@marcinjakubowski.github.com", "name": "Date Menu Formatter", "pname": "date-menu-formatter", "description": "Allows customization of the date display in the panel.\n\nMight be especially useful if you're using a horizontal panel which does not at all work well with the default date display.\n\nCHANGELOG\nVersion 5: added support for multiple Dash To Panel panels\nVersion 6: fixed issues on earlier Gnome Shell versions\nVersion 10: fixed clock hover style (by bomdia)\nVersion 11: Gnome 45 update by andyholmes@github", "link": "https://extensions.gnome.org/extension/4655/date-menu-formatter/", "shell_version_map": {
+, {"uuid": "date-menu-formatter@marcinjakubowski.github.com", "name": "Date Menu Formatter", "pname": "date-menu-formatter", "description": "Allows customization of the date display in the panel.\n\nMight be especially useful if you're using a horizontal panel which does not at all work well with the default date display.\n\nCHANGELOG\nVersion 5: added support for multiple Dash To Panel panels\nVersion 6: fixed issues on earlier Gnome Shell versions\nVersion 10: fixed clock hover style (by bomdia)\nVersion 11: Gnome 45 update by andyholmes@github\nVersion 12: added support for advanced formatters by bomdia@github", "link": "https://extensions.gnome.org/extension/4655/date-menu-formatter/", "shell_version_map": {
     "40": {"version": "10", "sha256": "0scppmfd13xdzd3bs1jsl4hbihvpp25p4gn30ji8fx40rd28w662", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9uc1xuVmVyc2lvbiAxMDogZml4ZWQgY2xvY2sgaG92ZXIgc3R5bGUgKGJ5IGJvbWRpYSkiLAogICJuYW1lIjogIkRhdGUgTWVudSBGb3JtYXR0ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGF0ZS1tZW51LWZvcm1hdHRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFrdWJvd3NraS9kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAidXVpZCI6ICJkYXRlLW1lbnUtZm9ybWF0dGVyQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "41": {"version": "10", "sha256": "0scppmfd13xdzd3bs1jsl4hbihvpp25p4gn30ji8fx40rd28w662", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9uc1xuVmVyc2lvbiAxMDogZml4ZWQgY2xvY2sgaG92ZXIgc3R5bGUgKGJ5IGJvbWRpYSkiLAogICJuYW1lIjogIkRhdGUgTWVudSBGb3JtYXR0ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGF0ZS1tZW51LWZvcm1hdHRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFrdWJvd3NraS9kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAidXVpZCI6ICJkYXRlLW1lbnUtZm9ybWF0dGVyQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "42": {"version": "10", "sha256": "0scppmfd13xdzd3bs1jsl4hbihvpp25p4gn30ji8fx40rd28w662", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9uc1xuVmVyc2lvbiAxMDogZml4ZWQgY2xvY2sgaG92ZXIgc3R5bGUgKGJ5IGJvbWRpYSkiLAogICJuYW1lIjogIkRhdGUgTWVudSBGb3JtYXR0ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGF0ZS1tZW51LWZvcm1hdHRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFrdWJvd3NraS9kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAidXVpZCI6ICJkYXRlLW1lbnUtZm9ybWF0dGVyQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
@@ -4055,7 +4058,7 @@
     "44": {"version": "40", "sha256": "18q7m8bh19dsacs5ziwgb70afvi2gppvymhq4l8m0ihppdzfa3xv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
     "45": {"version": "39", "sha256": "0agrb9h78i5q45np8940830abz6fr93la2j804rpfcqx6f5cdlqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9CdXJuLU15LVdpbmRvd3MiLAogICJ1dWlkIjogImJ1cm4tbXktd2luZG93c0BzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
   }}
-, {"uuid": "babar-lite@fthx", "name": "BaBar Lite", "pname": "babar-task-bar-lite-for-gnome-40", "description": "NOT MAINTAINED ANYMORE\n\nTask bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Change 'Places' label to an icon. No settings, use BaBar classic for that.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/4681/babar-task-bar-lite-for-gnome-40/", "shell_version_map": {
+, {"uuid": "babar-lite@fthx", "name": "BaBar Lite", "pname": "babar-task-bar-lite-for-gnome-40", "description": "NOT MAINTAINED ANYMORE\nPLEASE USE:\nhttps://extensions.gnome.org/extension/6556/task-up/ (Babar-like)\nOR\nhttps://extensions.gnome.org/extension/5143/dashbar/ (Dash-like)\n\nTask bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Change 'Places' label to an icon. No settings, use BaBar classic for that.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/4681/babar-task-bar-lite-for-gnome-40/", "shell_version_map": {
     "40": {"version": "2", "sha256": "163g6mabkcmf05ja4bpj7kkc0c7rs4hsf5xyfm2z4npiscjha8n7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVGFzayBiYXIuIEFwcCBncmlkLCBmYXZvcml0ZXMsIHdvcmtzcGFjZXMgYW5kIHRhc2tzIGluIHBhbmVsLiBMaWdodCBleHRlbnNpb24uXG5cbiBSZXBsYWNlICdBY3Rpdml0aWVzJyBidXR0b24gYnkgYWxsIGN1cnJlbnQgd29ya3NwYWNlcyBhbmQgYXBwcyBidXR0b25zLiBTd2l0Y2ggd29ya3NwYWNlL2FwcCBvciB0b2dnbGUgb3ZlcnZpZXcgYnkgY2xpY2tpbmcgb24gdGhlc2UgYnV0dG9ucy4gRHJhZyBhbmQgZHJvcCBmYXZvcml0ZSwgdGFzaywgZGFzaCBpdGVtIG9yIGFwcCBncmlkIGl0ZW0gdG8gYW55IHdvcmtzcGFjZSAoeW91IGNhbm5vdCByZW9yZGVyIHRhc2tzIGluc2lkZSBhIHdvcmtzcGFjZSkuIENoYW5nZSAnUGxhY2VzJyBsYWJlbCB0byBhbiBpY29uLiBObyBzZXR0aW5ncywgdXNlIEJhQmFyIGNsYXNzaWMgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"},
     "41": {"version": "2", "sha256": "163g6mabkcmf05ja4bpj7kkc0c7rs4hsf5xyfm2z4npiscjha8n7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVGFzayBiYXIuIEFwcCBncmlkLCBmYXZvcml0ZXMsIHdvcmtzcGFjZXMgYW5kIHRhc2tzIGluIHBhbmVsLiBMaWdodCBleHRlbnNpb24uXG5cbiBSZXBsYWNlICdBY3Rpdml0aWVzJyBidXR0b24gYnkgYWxsIGN1cnJlbnQgd29ya3NwYWNlcyBhbmQgYXBwcyBidXR0b25zLiBTd2l0Y2ggd29ya3NwYWNlL2FwcCBvciB0b2dnbGUgb3ZlcnZpZXcgYnkgY2xpY2tpbmcgb24gdGhlc2UgYnV0dG9ucy4gRHJhZyBhbmQgZHJvcCBmYXZvcml0ZSwgdGFzaywgZGFzaCBpdGVtIG9yIGFwcCBncmlkIGl0ZW0gdG8gYW55IHdvcmtzcGFjZSAoeW91IGNhbm5vdCByZW9yZGVyIHRhc2tzIGluc2lkZSBhIHdvcmtzcGFjZSkuIENoYW5nZSAnUGxhY2VzJyBsYWJlbCB0byBhbiBpY29uLiBObyBzZXR0aW5ncywgdXNlIEJhQmFyIGNsYXNzaWMgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"},
     "42": {"version": "2", "sha256": "163g6mabkcmf05ja4bpj7kkc0c7rs4hsf5xyfm2z4npiscjha8n7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVGFzayBiYXIuIEFwcCBncmlkLCBmYXZvcml0ZXMsIHdvcmtzcGFjZXMgYW5kIHRhc2tzIGluIHBhbmVsLiBMaWdodCBleHRlbnNpb24uXG5cbiBSZXBsYWNlICdBY3Rpdml0aWVzJyBidXR0b24gYnkgYWxsIGN1cnJlbnQgd29ya3NwYWNlcyBhbmQgYXBwcyBidXR0b25zLiBTd2l0Y2ggd29ya3NwYWNlL2FwcCBvciB0b2dnbGUgb3ZlcnZpZXcgYnkgY2xpY2tpbmcgb24gdGhlc2UgYnV0dG9ucy4gRHJhZyBhbmQgZHJvcCBmYXZvcml0ZSwgdGFzaywgZGFzaCBpdGVtIG9yIGFwcCBncmlkIGl0ZW0gdG8gYW55IHdvcmtzcGFjZSAoeW91IGNhbm5vdCByZW9yZGVyIHRhc2tzIGluc2lkZSBhIHdvcmtzcGFjZSkuIENoYW5nZSAnUGxhY2VzJyBsYWJlbCB0byBhbiBpY29uLiBObyBzZXR0aW5ncywgdXNlIEJhQmFyIGNsYXNzaWMgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -4323,7 +4326,7 @@
     "42": {"version": "13", "sha256": "07l1vgv9zhyh8q2h0gnn69x7h8gfn8x9q34p9lab7w08s4zn2rnb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21hcmNvc2RhbHZhcmV6L3RoaW5rcGFkLWJhdHRlcnktdGhyZXNob2xkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="},
     "43": {"version": "34", "sha256": "0ii1pxbnfjjli8jj0fq1g1rlhzpbn1j9088jp0sjrxvdlrmksdzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "44": {"version": "34", "sha256": "0ii1pxbnfjjli8jj0fq1g1rlhzpbn1j9088jp0sjrxvdlrmksdzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
-    "45": {"version": "38", "sha256": "0n4jgg9pfxgyp972ma0irss209jqb197spk83lm147jyifzgfh83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJjb3NkYWx2YXJlei90aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZC1leHRlbnNpb24iLAogICJ1dWlkIjogInRoaW5rcGFkLWJhdHRlcnktdGhyZXNob2xkQG1hcmNvc2RhbHZhcmV6Lm9yZyIsCiAgInZlcnNpb24iOiAzOAp9"}
+    "45": {"version": "39", "sha256": "1c960xdqfvq10inx6qhx4v1x63195hkbgns7mihgpqai0r4jk3qr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJjb3NkYWx2YXJlei90aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZC1leHRlbnNpb24iLAogICJ1dWlkIjogInRoaW5rcGFkLWJhdHRlcnktdGhyZXNob2xkQG1hcmNvc2RhbHZhcmV6Lm9yZyIsCiAgInZlcnNpb24iOiAzOQp9"}
   }}
 , {"uuid": "lock-screen-message@advendradeswanta.gitlab.com", "name": "Lock Screen Message", "pname": "lock-screen-message", "description": "Simple extension that let's you add your message to the lock screen (unlockDialog)", "link": "https://extensions.gnome.org/extension/4801/lock-screen-message/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0hkr6gm7kr69fc4zjb8rddwj75jpbpvqz4wpkfl659wjn4980s3c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBsZXQncyB5b3UgYWRkIHlvdXIgbWVzc2FnZSB0byB0aGUgbG9jayBzY3JlZW4gKHVubG9ja0RpYWxvZykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIE1lc3NhZ2UiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVzZXIiLAogICAgInVubG9jay1kaWFsb2ciCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvY2stc2NyZWVuLW1lc3NhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BZHZlbmRyYURlc3dhbnRhL2xvY2stc2NyZWVuLW1lc3NhZ2UiLAogICJ1dWlkIjogImxvY2stc2NyZWVuLW1lc3NhZ2VAYWR2ZW5kcmFkZXN3YW50YS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -4522,7 +4525,7 @@
     "42": {"version": "17", "sha256": "1m6103r9hlamd5nzxqvcavssnacjxrjypby52gpgngp3aj8698sz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAiZ2V0dGV4dF9kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVlcHJlc2V0c2VsZWN0b3IiLAogICJuYW1lIjogIkVhc3lFZmZlY3RzIFByZXNldCBTZWxlY3RvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lZXByZXNldHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "43": {"version": "17", "sha256": "1m6103r9hlamd5nzxqvcavssnacjxrjypby52gpgngp3aj8698sz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAiZ2V0dGV4dF9kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVlcHJlc2V0c2VsZWN0b3IiLAogICJuYW1lIjogIkVhc3lFZmZlY3RzIFByZXNldCBTZWxlY3RvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lZXByZXNldHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "44": {"version": "17", "sha256": "1m6103r9hlamd5nzxqvcavssnacjxrjypby52gpgngp3aj8698sz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAiZ2V0dGV4dF9kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVlcHJlc2V0c2VsZWN0b3IiLAogICJuYW1lIjogIkVhc3lFZmZlY3RzIFByZXNldCBTZWxlY3RvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lZXByZXNldHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
-    "45": {"version": "18", "sha256": "0l35f91sbwz210mksxacmg316zkcadjdqi9nhrbh6xlryzc0cc9d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAiZ2V0dGV4dF9kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVlcHJlc2V0c2VsZWN0b3IiLAogICJuYW1lIjogIkVhc3lFZmZlY3RzIFByZXNldCBTZWxlY3RvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lZXByZXNldHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VsdmlsbGUvZWVwcmVzZXRzZWxlY3RvciIsCiAgInV1aWQiOiAiZWVwcmVzZXRzZWxlY3RvckB1bHZpbGxlLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOAp9"}
+    "45": {"version": "19", "sha256": "00v8dk1n68f7mkybx378nsdh8y9bq8186552wg7hh204fn9jk7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAiZ2V0dGV4dF9kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVlcHJlc2V0c2VsZWN0b3IiLAogICJuYW1lIjogIkVhc3lFZmZlY3RzIFByZXNldCBTZWxlY3RvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lZXByZXNldHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VsdmlsbGUvZWVwcmVzZXRzZWxlY3RvciIsCiAgInV1aWQiOiAiZWVwcmVzZXRzZWxlY3RvckB1bHZpbGxlLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
 , {"uuid": "gnomehub@gnome-hub.github.io", "name": "gnomehub", "pname": "gnomehub", "description": "An all in one extension which catagorizes notifications and displays system information", "link": "https://extensions.gnome.org/extension/4913/gnomehub/", "shell_version_map": {
     "38": {"version": "6", "sha256": "15dgj0jbfhsa0p87gi0ai6c55kj4nj9yz5ydpzamwy69k9jjjcd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGFsbCBpbiBvbmUgZXh0ZW5zaW9uIHdoaWNoIGNhdGFnb3JpemVzIG5vdGlmaWNhdGlvbnMgYW5kIGRpc3BsYXlzIHN5c3RlbSBpbmZvcm1hdGlvbiIsCiAgIm5hbWUiOiAiZ25vbWVodWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dub21lLWh1Yi5naXRodWIuaW8vIiwKICAidXVpZCI6ICJnbm9tZWh1YkBnbm9tZS1odWIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -4586,20 +4589,14 @@
     "40": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"},
     "41": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
-, {"uuid": "gradienttopbar@pshow.org", "name": "Gradient Top Bar", "pname": "gradient-top-bar", "description": "Makes GNOME's topbar's background gradient. You can edit the colour scheme from the extension's settings in Gnome 45.", "link": "https://extensions.gnome.org/extension/4955/gradient-top-bar/", "shell_version_map": {
+, {"uuid": "gradienttopbar@pshow.org", "name": "Gradient Top Bar", "pname": "gradient-top-bar", "description": "Makes GNOME's panel's background gradient. You can edit the colour scheme from the extension's settings in Gnome 45.", "link": "https://extensions.gnome.org/extension/4955/gradient-top-bar/", "shell_version_map": {
     "38": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "40": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "41": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "42": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "43": {"version": "11", "sha256": "0nb4jcxhx994kgmsv0aksrjwxnw58bjw0hsijkg6bb8idm32s1pp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgImhhc1ByZWZzIjogdHJ1ZSwKICAiaWNvbiI6ICIuL2Fzc2V0cy9sb2dvLnBuZyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmcucHNob3cuZ3JhZGllbnR0b3BiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BldGFyLXYvZ3JhZGllbnR0b3BiYXIiLAogICJ1dWlkIjogImdyYWRpZW50dG9wYmFyQHBzaG93Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"},
     "44": {"version": "11", "sha256": "0nb4jcxhx994kgmsv0aksrjwxnw58bjw0hsijkg6bb8idm32s1pp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgImhhc1ByZWZzIjogdHJ1ZSwKICAiaWNvbiI6ICIuL2Fzc2V0cy9sb2dvLnBuZyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmcucHNob3cuZ3JhZGllbnR0b3BiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BldGFyLXYvZ3JhZGllbnR0b3BiYXIiLAogICJ1dWlkIjogImdyYWRpZW50dG9wYmFyQHBzaG93Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"},
-    "45": {"version": "16", "sha256": "147fdwc7wc8ay82r49bxc65f48zhcazcq5wcx6xhnfi2s82jg2hl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgImhhc1ByZWZzIjogdHJ1ZSwKICAiaWNvbiI6ICIuL2Fzc2V0cy9sb2dvLnBuZyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmcucHNob3cuZ3JhZGllbnR0b3BiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDE2Cn0="}
-  }}
-, {"uuid": "clipman@popov895.ukr.net", "name": "Clipman", "pname": "clipman", "description": "Simple but powerful clipboard manager.", "link": "https://extensions.gnome.org/extension/4958/clipman/", "shell_version_map": {
-    "42": {"version": "63", "sha256": "027jmbhk289dg0fzd8s8pjb1m8hb4jrm98jwlp9wckcxggcvd1zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBidXQgcG93ZXJmdWwgY2xpcGJvYXJkIG1hbmFnZXIuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJDbGlwbWFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogNjMKfQ=="},
-    "43": {"version": "63", "sha256": "027jmbhk289dg0fzd8s8pjb1m8hb4jrm98jwlp9wckcxggcvd1zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBidXQgcG93ZXJmdWwgY2xpcGJvYXJkIG1hbmFnZXIuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJDbGlwbWFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogNjMKfQ=="},
-    "44": {"version": "63", "sha256": "027jmbhk289dg0fzd8s8pjb1m8hb4jrm98jwlp9wckcxggcvd1zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBidXQgcG93ZXJmdWwgY2xpcGJvYXJkIG1hbmFnZXIuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJDbGlwbWFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogNjMKfQ=="},
-    "45": {"version": "64", "sha256": "1xbf4yc7i3mwsp3z5caqp1ncqhfd0rlabarw8swp032h47r4ffpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBidXQgcG93ZXJmdWwgY2xpcGJvYXJkIG1hbmFnZXIuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJDbGlwbWFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvQ2xpcG1hbiIsCiAgInV1aWQiOiAiY2xpcG1hbkBwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDY0Cn0="}
+    "45": {"version": "17", "sha256": "18i8h4gw8k1ssyfxyhk22ggmrxxw1wcn5q1bd6jxg6zli82xnvji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgcGFuZWwncyBiYWNrZ3JvdW5kIGdyYWRpZW50LiBZb3UgY2FuIGVkaXQgdGhlIGNvbG91ciBzY2hlbWUgZnJvbSB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MgaW4gR25vbWUgNDUuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJwZXRhci12IiwKICAgICJwYXlwYWwiOiAicGV0YXJ2NzMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLnBzaG93LmdyYWRpZW50dG9wYmFyIiwKICAiaGFzUHJlZnMiOiB0cnVlLAogICJpY29uIjogIi4vYXNzZXRzL2xvZ28ucG5nIiwKICAibmFtZSI6ICJHcmFkaWVudCBUb3AgQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZXRhci12L2dyYWRpZW50dG9wYmFyIiwKICAidXVpZCI6ICJncmFkaWVudHRvcGJhckBwc2hvdy5vcmciLAogICJ2ZXJzaW9uIjogMTcKfQ=="}
   }}
 , {"uuid": "note@eexpss.gmail.com", "name": "note", "pname": "note", "description": "Add selected text to Note.\n- Notes automatic recognition and sort as 'Directory' 'Command' 'Clipboard'.\n- 'Directory': Mouse 1/2/3 act as 'Open in Files/Open in termianl/Paste dir'. It can be used as a temporary bookmark. And any click will change the working diretory in real time.\n- 'Command': Mouse 1/3 as 'Excute command in Terminal/Paste cmd'.\n- 'Clipboard': Mouse act as 'Paste to Clipboard(PRIMARY)'.\n- Terminal support kgx(new gnome-console) and gnome-terminal.", "link": "https://extensions.gnome.org/extension/4962/note/", "shell_version_map": {
     "42": {"version": "7", "sha256": "1niwlhls41l92g0bcllp4y4bdhn7k310514xkd36rn61pqz9b7q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBzZWxlY3RlZCB0ZXh0IHRvIE5vdGUuXG4tIE5vdGVzIGF1dG9tYXRpYyByZWNvZ25pdGlvbiBhbmQgc29ydCBhcyAnRGlyZWN0b3J5JyAnQ29tbWFuZCcgJ0NsaXBib2FyZCcuXG4tICdEaXJlY3RvcnknOiBNb3VzZSAxLzIvMyBhY3QgYXMgJ09wZW4gaW4gRmlsZXMvT3BlbiBpbiB0ZXJtaWFubC9QYXN0ZSBkaXInLiBJdCBjYW4gYmUgdXNlZCBhcyBhIHRlbXBvcmFyeSBib29rbWFyay4gQW5kIGFueSBjbGljayB3aWxsIGNoYW5nZSB0aGUgd29ya2luZyBkaXJldG9yeSBpbiByZWFsIHRpbWUuXG4tICdDb21tYW5kJzogTW91c2UgMS8zIGFzICdFeGN1dGUgY29tbWFuZCBpbiBUZXJtaW5hbC9QYXN0ZSBjbWQnLlxuLSAnQ2xpcGJvYXJkJzogTW91c2UgYWN0IGFzICdQYXN0ZSB0byBDbGlwYm9hcmQoUFJJTUFSWSknLlxuLSBUZXJtaW5hbCBzdXBwb3J0IGtneChuZXcgZ25vbWUtY29uc29sZSkgYW5kIGdub21lLXRlcm1pbmFsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm5vdGUiLAogICJuYW1lIjogIm5vdGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1ub3RlIiwKICAidXVpZCI6ICJub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
@@ -4930,13 +4927,13 @@
     "44": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "45": {"version": "12", "sha256": "0bzihv7nqljr8nv4lkl9av9qjjg6xr00hgv79f7gfqs8jbg2ckjf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvZGlsaWEvdXBvd2VyLWJhdHRlcnkiLAogICJ1dWlkIjogInVwb3dlci1iYXR0ZXJ5QGNvZGlsaWEuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}
   }}
-, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UI to suit your workflow, whether you like horizontally or vertically stacked workspaces.\n\nDear users, the reliability and stability of this extension is my priority, but V-Shell is an extension to default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock / Dash to Panel extensions and other popular extensions, but issues may occur. In any case, V-Shell works better without Dash to Dock an Dash to Panel.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined profiles with different layout and behavior that can be overwritten by your settings\n- wallpaper background with adjustable blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions, icons size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- window search provider for quick navigation between windows\n- recent files search provider\n- static background in the workspace switcher animation outside of the overview\n- workspace switcher popup appears even when switching workspace with a gesture\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
+, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UI to suit your workflow, whether you like horizontally or vertically stacked workspaces.\n\nDear users, the reliability and stability of this extension is my priority, but V-Shell is an extension to default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. In any case, V-Shell works better without Dash to Dock and Dash to Panel.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined profiles with different layout and behavior that can be overwritten by your settings\n- wallpaper background with adjustable blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions, icons size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- window search provider for quick navigation between windows\n- recent files search provider\n- static background in the workspace switcher animation outside of the overview\n- workspace switcher popup appears even when switching workspace with a gesture\n- fixes (works around) several upstream bugs (known and reported)\n- workspace isolated Dash\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
     "40": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
     "41": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
-    "42": {"version": "37", "sha256": "13qp4wklz5qspcwyyq0a0bxi3j8fdfi0faw3yhzajya74arh6bk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"},
-    "43": {"version": "37", "sha256": "13qp4wklz5qspcwyyq0a0bxi3j8fdfi0faw3yhzajya74arh6bk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"},
-    "44": {"version": "37", "sha256": "13qp4wklz5qspcwyyq0a0bxi3j8fdfi0faw3yhzajya74arh6bk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"},
-    "45": {"version": "40", "sha256": "14mf4w36k57kzc4cmjapdwkf9l6nf1fq6yxf0xin6nrr8xlf93v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDAsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4xIgp9"}
+    "42": {"version": "42", "sha256": "1c62ha1p2c3m3z7xfmvqymwnkraxnka5v9kbva3nj2v754b7966d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEwIgp9"},
+    "43": {"version": "42", "sha256": "1c62ha1p2c3m3z7xfmvqymwnkraxnka5v9kbva3nj2v754b7966d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEwIgp9"},
+    "44": {"version": "42", "sha256": "1c62ha1p2c3m3z7xfmvqymwnkraxnka5v9kbva3nj2v754b7966d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEwIgp9"},
+    "45": {"version": "43", "sha256": "11kpk19i81w5asbd0z8vsrrhvb83hjlplky673h6557g6hz44n4m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDMsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4yIgp9"}
   }}
 , {"uuid": "rocketbar@chepkun.github.com", "name": "Rocketbar", "pname": "rocketbar", "description": "Taskbar and misc additions for the GNOME Shell.", "link": "https://extensions.gnome.org/extension/5180/rocketbar/", "shell_version_map": {
     "42": {"version": "8", "sha256": "0p8msiyqpic8d0cv65j97gqp03vgi935rqgs2gjrffq3cg7wy2iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2tiYXIgYW5kIG1pc2MgYWRkaXRpb25zIGZvciB0aGUgR05PTUUgU2hlbGwuXG5cbkEgbmV3IG1ham9yIHJlbGVhc2Ugd2lsbCBiZSBvdXQgbGF0ZXIgdGhpcyB5ZWFyLi4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicm9ja2V0YmFyIiwKICAibmFtZSI6ICJSb2NrZXRiYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucm9ja2V0YmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtaXMtYXdlc29tZS9nbm9tZV9leHRlbnNpb25fcm9ja2V0YmFyIiwKICAidXVpZCI6ICJyb2NrZXRiYXJAY2hlcGt1bi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
@@ -5194,10 +5191,11 @@
     "43": {"version": "8", "sha256": "0q6wzq2m0pjfcgf0jrbf2ygagikdmmgrkx561fw1fb23332v1f8g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIFB1c2hvdmVyIE5vdGlmaWNhdGlvbnMgd2l0aGluIEdOT01FIGFuZCB3aXRoaW4geW91ciB0cmF5LiBQcml2YWN5IHJlc3BlY3RpbmcgdW5vZmZpY2lhbCBjbGllbnQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtcHVzaG92ZXItbWVzc2FnZXMtdW5vZmZpY2lhbCIsCiAgIm5hbWUiOiAiUHVzaG92ZXIgTWVzc2FnZSBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2N3aXR0ZW5iZXJnL2dub21lLXB1c2hvdmVyLW1lc3NhZ2VzLXVub2ZmaWNpYWwiLAogICJ1dWlkIjogImdub21lLXB1c2hvdmVyLW1lc3NhZ2VzLXVub2ZmaWNpYWxAaXdvbnQuY3lvdSIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "notification-filter@asynclink.org", "name": "Notification Filter", "pname": "notification-filter", "description": "Filter out notifications by their text content to block them from appearing.\nIf you've ever been annoyed by certain notifications distracting you, this extension gives you more fine tuned control of which notifications to prevent from showing up.\n\nGives you the ability to filter by both the title and body content, use regex matching, and add multiple different filters.\n\nNote: Only prevents new notifications from appearing, does not remove existing notifications.", "link": "https://extensions.gnome.org/extension/5380/notification-filter/", "shell_version_map": {
-    "40": {"version": "3", "sha256": "19jry9hg34i1i1f3r5v7pg9vplfhf27c1rvrnqqwld4qzpp5g0p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NweWJ1Zy9Ob3RpZnlGaWx0ZXItR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1maWx0ZXJAYXN5bmNsaW5rLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="},
-    "41": {"version": "3", "sha256": "19jry9hg34i1i1f3r5v7pg9vplfhf27c1rvrnqqwld4qzpp5g0p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NweWJ1Zy9Ob3RpZnlGaWx0ZXItR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1maWx0ZXJAYXN5bmNsaW5rLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="},
-    "42": {"version": "3", "sha256": "19jry9hg34i1i1f3r5v7pg9vplfhf27c1rvrnqqwld4qzpp5g0p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NweWJ1Zy9Ob3RpZnlGaWx0ZXItR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1maWx0ZXJAYXN5bmNsaW5rLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="},
-    "43": {"version": "3", "sha256": "19jry9hg34i1i1f3r5v7pg9vplfhf27c1rvrnqqwld4qzpp5g0p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NweWJ1Zy9Ob3RpZnlGaWx0ZXItR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1maWx0ZXJAYXN5bmNsaW5rLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}
+    "40": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
+    "41": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
+    "42": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
+    "43": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"},
+    "44": {"version": "5", "sha256": "1khamwky9f5nqy8n2pfix1jjk589f5864hqgbpznrkzcvz4rbxmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbHRlciBvdXQgbm90aWZpY2F0aW9ucyBieSB0aGVpciB0ZXh0IGNvbnRlbnQgdG8gYmxvY2sgdGhlbSBmcm9tIGFwcGVhcmluZy5cbklmIHlvdSd2ZSBldmVyIGJlZW4gYW5ub3llZCBieSBjZXJ0YWluIG5vdGlmaWNhdGlvbnMgZGlzdHJhY3RpbmcgeW91LCB0aGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgbW9yZSBmaW5lIHR1bmVkIGNvbnRyb2wgb2Ygd2hpY2ggbm90aWZpY2F0aW9ucyB0byBwcmV2ZW50IGZyb20gc2hvd2luZyB1cC5cblxuR2l2ZXMgeW91IHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBib3RoIHRoZSB0aXRsZSBhbmQgYm9keSBjb250ZW50LCB1c2UgcmVnZXggbWF0Y2hpbmcsIGFuZCBhZGQgbXVsdGlwbGUgZGlmZmVyZW50IGZpbHRlcnMuXG5cbk5vdGU6IE9ubHkgcHJldmVudHMgbmV3IG5vdGlmaWNhdGlvbnMgZnJvbSBhcHBlYXJpbmcsIGRvZXMgbm90IHJlbW92ZSBleGlzdGluZyBub3RpZmljYXRpb25zLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEZpbHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24tZmlsdGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcHlidWcvTm90aWZ5RmlsdGVyLUdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZmlsdGVyQGFzeW5jbGluay5vcmciLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "evpn-assistant@xytrexl.com", "name": "ExpressVPN - EVPN Shell Assistant ( express vpn )", "pname": "evpn-shell-assistant", "description": "Allows ExpressVPN to be controlled through the GNOME shell.", "link": "https://extensions.gnome.org/extension/5385/evpn-shell-assistant/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1lvdv1dv78v36j52n58hjrg2hwc3flrq9mryffdhvjb01rrxmigv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBFeHByZXNzVlBOIHRvIGJlIGNvbnRyb2xsZWQgdGhyb3VnaCB0aGUgR05PTUUgc2hlbGwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWV2cG4tYXNzaXN0YW50IiwKICAibmFtZSI6ICJFeHByZXNzVlBOIC0gRVZQTiBTaGVsbCBBc3Npc3RhbnQgKCBleHByZXNzIHZwbiApIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlN0dWFydCBHaWxtb3VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV2cG4tYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGphbWVzZ2lsbW91ci9ldnBuLWFzc2lzdGFudCIsCiAgInV1aWQiOiAiZXZwbi1hc3Npc3RhbnRAeHl0cmV4bC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -5692,10 +5690,10 @@
 , {"uuid": "overviewbackground@github.com.orbitcorrection", "name": "Overview Background", "pname": "overview-background", "description": "Add background in overview", "link": "https://extensions.gnome.org/extension/5856/overview-background/", "shell_version_map": {
     "40": {"version": "7", "sha256": "0asaxvjc17x5vg55di2pcd6vwczbgzvw91bi9s6957f45d04n1y8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogNwp9"},
     "41": {"version": "7", "sha256": "0asaxvjc17x5vg55di2pcd6vwczbgzvw91bi9s6957f45d04n1y8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogNwp9"},
-    "42": {"version": "12", "sha256": "16jx4h6fcp8wr30p0d4gif0n1md302ff8x88q4sk5ij9xgcpr19q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxMgp9"},
-    "43": {"version": "12", "sha256": "16jx4h6fcp8wr30p0d4gif0n1md302ff8x88q4sk5ij9xgcpr19q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxMgp9"},
-    "44": {"version": "12", "sha256": "16jx4h6fcp8wr30p0d4gif0n1md302ff8x88q4sk5ij9xgcpr19q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxMgp9"},
-    "45": {"version": "11", "sha256": "0d3lcakyf3d3s1v5nl5p4mmdn6mpygcq98hr70fxwnyr3f1r90gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
+    "42": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
+    "43": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
+    "44": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
+    "45": {"version": "13", "sha256": "1dlp01mpy4zs83qzq9x0s471cqj652h8718dswvz2pac9p5sa31p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
 , {"uuid": "logout-button@0ct0puce.com", "name": "Logout Button", "pname": "logout-button", "description": "Logout button easily accessible in the top panel. It could be useful as it restart gnome everytime you click it.", "link": "https://extensions.gnome.org/extension/5865/logout-button/", "shell_version_map": {
     "43": {"version": "1", "sha256": "15v4d6kxnlnbayqryliy67s35zbvr6j8g1w2x6wm0w909gcwi0px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ291dCBidXR0b24gZWFzaWx5IGFjY2Vzc2libGUgaW4gdGhlIHRvcCBwYW5lbC4gSXQgY291bGQgYmUgdXNlZnVsIGFzIGl0IHJlc3RhcnQgZ25vbWUgZXZlcnl0aW1lIHlvdSBjbGljayBpdC4iLAogICJuYW1lIjogIkxvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sb2dvdXQtYnV0dG9uIiwKICAidXVpZCI6ICJsb2dvdXQtYnV0dG9uQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -5760,16 +5758,13 @@
 , {"uuid": "osk-toggle@papierfliegr.github.com", "name": "[DROPPED] OSK Toggle", "pname": "osk-toggle", "description": "See \"GJS OSK\" for better alternative.\nAdds On-Screen-Keyboard Toggle to Quick-Settings/ Hides accessability icon", "link": "https://extensions.gnome.org/extension/5922/osk-toggle/", "shell_version_map": {
     "44": {"version": "4", "sha256": "05ll3pbfwlaxapbpi9i04s1sdlrb7m2q3xvc8fjcd636fqybivsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBcIkdKUyBPU0tcIiBmb3IgYmV0dGVyIGFsdGVybmF0aXZlLlxuQWRkcyBPbi1TY3JlZW4tS2V5Ym9hcmQgVG9nZ2xlIHRvIFF1aWNrLVNldHRpbmdzLyBIaWRlcyBhY2Nlc3NhYmlsaXR5IGljb24iLAogICJuYW1lIjogIltEUk9QUEVEXSBPU0sgVG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BhcGllckZsaWVnci9PU0stVG9nZ2xlIiwKICAidXVpZCI6ICJvc2stdG9nZ2xlQHBhcGllcmZsaWVnci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "username_in_shell_panel@raviprak", "name": "Only username in top panel", "pname": "only-username-in-top-panel", "description": "Add only user name in top panel. This is a fork of https://extensions.gnome.org/extension/2633/user-id-in-top-panel/", "link": "https://extensions.gnome.org/extension/5925/only-username-in-top-panel/", "shell_version_map": {
-    "44": {"version": "1", "sha256": "0xwm4s9mkq81wk6cr63kydq92zh183dxafpykicjrf9vj1n6in8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvbmx5IHVzZXIgbmFtZSBpbiB0b3AgcGFuZWwuIFRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzI2MzMvdXNlci1pZC1pbi10b3AtcGFuZWwvIiwKICAibmFtZSI6ICJPbmx5IHVzZXJuYW1lIGluIHRvcCBwYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZnRoeCIsCiAgICAicmF2aXByYWsiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9yYXZpcHJhay91c2VybmFtZV9pbl9nbm9tZV9zaGVsbF9wYW5lbCIsCiAgInV1aWQiOiAidXNlcm5hbWVfaW5fc2hlbGxfcGFuZWxAcmF2aXByYWsiLAogICJ2ZXJzaW9uIjogMQp9"}
-  }}
 , {"uuid": "logoactivities@github.com.orbitcorrection", "name": "Logo Activities", "pname": "logo-activities", "description": "Show an icon instead of the label", "link": "https://extensions.gnome.org/extension/5928/logo-activities/", "shell_version_map": {
     "40": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "41": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "42": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "8", "sha256": "1bjnnqb35rzfw2y1qyb9siniwn5ysxnbadxqzbf8w1m8f3qscc7y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvZ29hY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "45": {"version": "9", "sha256": "1g8n013wz6x5xcywwvsv741f2xwv4ap6blx5n35dm119cvw12daf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvZ29hY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "forbiden-multi-touch-gesture@touch-easy.com", "name": "forbiden-multi-touch", "pname": "forbiden-multi-touch", "description": "forbiden multi-touch-gesture", "link": "https://extensions.gnome.org/extension/5931/forbiden-multi-touch/", "shell_version_map": {
     "42": {"version": "1", "sha256": "0qpd5y4zjbrrjpnpsjzaa1fw1q25s04ysh2r82i5dr9afxbv2qz7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImZvcmJpZGVuIG11bHRpLXRvdWNoLWdlc3R1cmUiLAogICJuYW1lIjogImZvcmJpZGVuLW11bHRpLXRvdWNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJmb3JiaWRlbi1tdWx0aS10b3VjaC1nZXN0dXJlQHRvdWNoLWVhc3kuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -5783,7 +5778,7 @@
 , {"uuid": "quick-settings-audio-panel@rayzeq.github.io", "name": "Quick Settings Audio Panel", "pname": "quick-settings-audio-panel", "description": "Create a new panel containing volumes and media control in the quick settings", "link": "https://extensions.gnome.org/extension/5940/quick-settings-audio-panel/", "shell_version_map": {
     "43": {"version": "32", "sha256": "1dfdjnbgr2b8wf43pphvhbjpwi0dwi7ildi9ynif9k5nylv35l7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMyCn0="},
     "44": {"version": "32", "sha256": "1dfdjnbgr2b8wf43pphvhbjpwi0dwi7ildi9ynif9k5nylv35l7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "45": {"version": "33", "sha256": "0vmbmw2h0r3dr6mc2cxlgh76q5y8c8pa03lm5mw6kprmg77djvy0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMzCn0="}
+    "45": {"version": "34", "sha256": "18m314mcs8xnmwlc5d2fh14bx16ikdjxfzf5dhkq72hw62sdjl9n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM0Cn0="}
   }}
 , {"uuid": "soft-brightness-plus@joelkitching.com", "name": "Soft Brightness Plus", "pname": "soft-brightness-plus", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.\n\nThis extension is a fork of the original 'Soft brightness' extension, and maintains support for new GNOME releases.", "link": "https://extensions.gnome.org/extension/5943/soft-brightness-plus/", "shell_version_map": {
     "38": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -5792,7 +5787,7 @@
     "42": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "44": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
-    "45": {"version": "13", "sha256": "18if0c45y81g4x9bdk9ivb5q2a9kjswzh2dhxm8ipb7ikfhz6j3m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogImIyNzRiOWQiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
+    "45": {"version": "14", "sha256": "0jr1092ksdskfbzarwjjbq5ibqr26423msyz1n7d7bknqfb2a8p2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogImQ1NTQ0ZTgiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "swatch-clock@okatotf.github.io", "name": "Swatch Clock", "pname": "swatch-clock", "description": "An extension which displays the Swatch Internet Time on the panel.", "link": "https://extensions.gnome.org/extension/5946/swatch-clock/", "shell_version_map": {
     "44": {"version": "2", "sha256": "131rlf6q1w6jxz95j8yf3vpi40y80p1rjax5b2mapm6ppasdlkl2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBkaXNwbGF5cyB0aGUgU3dhdGNoIEludGVybmV0IFRpbWUgb24gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiU3dhdGNoIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29rYXRvdGYvc3dhdGNoLWNsb2NrIiwKICAidXVpZCI6ICJzd2F0Y2gtY2xvY2tAb2thdG90Zi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -5839,7 +5834,7 @@
     "42": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "43": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "44": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
-    "45": {"version": "109", "sha256": "0y209zqw7vwjqqfgl2nza0cp12z5baw93h6p4fwpz6j1m4nr1fpm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMDkKfQ=="}
+    "45": {"version": "111", "sha256": "1r8bzjjk6lwid3bmwv8bzsgr3w9a179z0qbrxf5wzyf71y72kad9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMTEKfQ=="}
   }}
 , {"uuid": "dim-completed-calendar-events@marcinjahn.com", "name": "Dim Completed Calendar Events", "pname": "dim-completed-calendar-events", "description": "Dim completed events in the top panel menu to easily distinguish between upcoming and past events. You can also highlight events that are ongoing.", "link": "https://extensions.gnome.org/extension/5979/dim-completed-calendar-events/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0dpyrhdc70f77wv8hx7d6xnpxx13c2qfp7dbx716mqq90raij39f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSBjb21wbGV0ZWQgZXZlbnRzIGluIHRoZSB0b3AgcGFuZWwgbWVudSB0byBlYXNpbHkgZGlzdGluZ3Vpc2ggYmV0d2VlbiB1cGNvbWluZyBhbmQgcGFzdCBldmVudHMuIFlvdSBjYW4gYWxzbyBoaWdobGlnaHQgZXZlbnRzIHRoYXQgYXJlIG9uZ29pbmcuIiwKICAibmFtZSI6ICJEaW0gQ29tcGxldGVkIENhbGVuZGFyIEV2ZW50cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjaW5qYWhuL2dub21lLWRpbS1jb21wbGV0ZWQtY2FsZW5kYXItZXZlbnRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLWNvbXBsZXRlZC1jYWxlbmRhci1ldmVudHNAbWFyY2luamFobi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -5878,7 +5873,8 @@
 , {"uuid": "switchlayoutaltshift@seriyyy95.com", "name": "SwitchLayoutAltShift", "pname": "switchlayoutaltshift", "description": "Allows to switch input source using Alt+Shift", "link": "https://extensions.gnome.org/extension/6006/switchlayoutaltshift/", "shell_version_map": {
     "42": {"version": "2", "sha256": "0c1v3kw5kg7gk81hr1xjpj9h4xk0yz02b35dfd906ap0x62sq4wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzd2l0Y2ggaW5wdXQgc291cmNlIHVzaW5nIEFsdCtTaGlmdCIsCiAgIm5hbWUiOiAiU3dpdGNoTGF5b3V0QWx0U2hpZnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNobGF5b3V0YWx0c2hpZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJpeXl5OTUvc3dpdGNobGF5b3V0YWx0c2hpZnQuZ2l0IiwKICAidXVpZCI6ICJzd2l0Y2hsYXlvdXRhbHRzaGlmdEBzZXJpeXl5OTUuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "43": {"version": "2", "sha256": "0c1v3kw5kg7gk81hr1xjpj9h4xk0yz02b35dfd906ap0x62sq4wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzd2l0Y2ggaW5wdXQgc291cmNlIHVzaW5nIEFsdCtTaGlmdCIsCiAgIm5hbWUiOiAiU3dpdGNoTGF5b3V0QWx0U2hpZnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNobGF5b3V0YWx0c2hpZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJpeXl5OTUvc3dpdGNobGF5b3V0YWx0c2hpZnQuZ2l0IiwKICAidXVpZCI6ICJzd2l0Y2hsYXlvdXRhbHRzaGlmdEBzZXJpeXl5OTUuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
-    "44": {"version": "2", "sha256": "0c1v3kw5kg7gk81hr1xjpj9h4xk0yz02b35dfd906ap0x62sq4wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzd2l0Y2ggaW5wdXQgc291cmNlIHVzaW5nIEFsdCtTaGlmdCIsCiAgIm5hbWUiOiAiU3dpdGNoTGF5b3V0QWx0U2hpZnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNobGF5b3V0YWx0c2hpZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJpeXl5OTUvc3dpdGNobGF5b3V0YWx0c2hpZnQuZ2l0IiwKICAidXVpZCI6ICJzd2l0Y2hsYXlvdXRhbHRzaGlmdEBzZXJpeXl5OTUuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+    "44": {"version": "2", "sha256": "0c1v3kw5kg7gk81hr1xjpj9h4xk0yz02b35dfd906ap0x62sq4wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzd2l0Y2ggaW5wdXQgc291cmNlIHVzaW5nIEFsdCtTaGlmdCIsCiAgIm5hbWUiOiAiU3dpdGNoTGF5b3V0QWx0U2hpZnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNobGF5b3V0YWx0c2hpZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJpeXl5OTUvc3dpdGNobGF5b3V0YWx0c2hpZnQuZ2l0IiwKICAidXVpZCI6ICJzd2l0Y2hsYXlvdXRhbHRzaGlmdEBzZXJpeXl5OTUuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
+    "45": {"version": "4", "sha256": "0rdbqz3cq013ysv4jpi05vljpvrk28j927l47m1rbryzrdvkbh62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzd2l0Y2ggaW5wdXQgc291cmNlIHVzaW5nIEFsdCtTaGlmdCIsCiAgIm5hbWUiOiAiU3dpdGNoTGF5b3V0QWx0U2hpZnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNobGF5b3V0YWx0c2hpZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VyaXl5eTk1L3N3aXRjaGxheW91dGFsdHNoaWZ0LmdpdCIsCiAgInV1aWQiOiAic3dpdGNobGF5b3V0YWx0c2hpZnRAc2VyaXl5eTk1LmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "PanelHidesWindow@arisoda.com", "name": "PanelHidesWindow", "pname": "panelhideswindow", "description": "Allows you to quickly hide (minimize) the top-most maximized window just by middle-mouse clicking anywhere on the TOP PANEL (not the top bar of a window).\n\nAdvantages:\n1. You can hide windows more quickly (in a reflex, requiring less accuracy)\n2. You can hide ALL maximized windows, even those that don't have a top bar.\n3. You can hide a maximized window even if it's BEHIND multiple unmaximized windows)\n\nThis extension supports multi-monitors in the sense that it actively(!) does not hide any window that is not on the primary monitor.\n\nPLEASE LEAVE A REVIEW. Any critique / suggestion is welcome.\n\nIt would be great if someone can add the functionality to support multiple top panels (if someone were to have multiple top panels on different monitors).", "link": "https://extensions.gnome.org/extension/6015/panelhideswindow/", "shell_version_map": {
     "42": {"version": "3", "sha256": "17rxywvd6n7q69x5xn5ia0vyb1cdzh0azrkvz9j8rq5bqhhpyymq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB5b3UgdG8gcXVpY2tseSBoaWRlIChtaW5pbWl6ZSkgdGhlIHRvcC1tb3N0IG1heGltaXplZCB3aW5kb3cganVzdCBieSBtaWRkbGUtbW91c2UgY2xpY2tpbmcgYW55d2hlcmUgb24gdGhlIFRPUCBQQU5FTCAobm90IHRoZSB0b3AgYmFyIG9mIGEgd2luZG93KS5cblxuQWR2YW50YWdlczpcbjEuIFlvdSBjYW4gaGlkZSB3aW5kb3dzIG1vcmUgcXVpY2tseSAoaW4gYSByZWZsZXgsIHJlcXVpcmluZyBsZXNzIGFjY3VyYWN5KVxuMi4gWW91IGNhbiBoaWRlIEFMTCBtYXhpbWl6ZWQgd2luZG93cywgZXZlbiB0aG9zZSB0aGF0IGRvbid0IGhhdmUgYSB0b3AgYmFyLlxuMy4gWW91IGNhbiBoaWRlIGEgbWF4aW1pemVkIHdpbmRvdyBldmVuIGlmIGl0J3MgQkVISU5EIG11bHRpcGxlIHVubWF4aW1pemVkIHdpbmRvd3MpXG5cblRoaXMgZXh0ZW5zaW9uIHN1cHBvcnRzIG11bHRpLW1vbml0b3JzIGluIHRoZSBzZW5zZSB0aGF0IGl0IGFjdGl2ZWx5KCEpIGRvZXMgbm90IGhpZGUgYW55IHdpbmRvdyB0aGF0IGlzIG5vdCBvbiB0aGUgcHJpbWFyeSBtb25pdG9yLlxuXG5QTEVBU0UgTEVBVkUgQSBSRVZJRVcuIEFueSBjcml0aXF1ZSAvIHN1Z2dlc3Rpb24gaXMgd2VsY29tZS5cblxuSXQgd291bGQgYmUgZ3JlYXQgaWYgc29tZW9uZSBjYW4gYWRkIHRoZSBmdW5jdGlvbmFsaXR5IHRvIHN1cHBvcnQgbXVsdGlwbGUgdG9wIHBhbmVscyAoaWYgc29tZW9uZSB3ZXJlIHRvIGhhdmUgbXVsdGlwbGUgdG9wIHBhbmVscyBvbiBkaWZmZXJlbnQgbW9uaXRvcnMpLiIsCiAgIm5hbWUiOiAiUGFuZWxIaWRlc1dpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyaXNvZGEvUGFuZWxIaWRlc1dpbmRvdyIsCiAgInV1aWQiOiAiUGFuZWxIaWRlc1dpbmRvd0Bhcmlzb2RhLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
@@ -5938,7 +5934,8 @@
     "41": {"version": "20", "sha256": "0xn4jlqg16xq61wx3nkr13k1sadm1fskixlp0qgh875pk043ly84", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHN3aXRjaGluZyBvZiBpbnB1dCBtZXRob2QgYW5kIHRvdWNocGFkIHdpdGggdXNlciBjb25maWd1cmFibGUgc2hvcnRjdXQgYmluZGluZyIsCiAgIm5hbWUiOiAiSW5wdXQgbWV0aG9kIGFuZCB0b3VjaHBhZCBzaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3NhbXVhb2tpL2lucHV0bWV0aG9kLXNob3J0Y3V0cyIsCiAgInV1aWQiOiAiaW5wdXRtZXRob2Qtc2hvcnRjdXRzQG9zYW11LmRlYmlhbi5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
     "42": {"version": "20", "sha256": "0xn4jlqg16xq61wx3nkr13k1sadm1fskixlp0qgh875pk043ly84", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHN3aXRjaGluZyBvZiBpbnB1dCBtZXRob2QgYW5kIHRvdWNocGFkIHdpdGggdXNlciBjb25maWd1cmFibGUgc2hvcnRjdXQgYmluZGluZyIsCiAgIm5hbWUiOiAiSW5wdXQgbWV0aG9kIGFuZCB0b3VjaHBhZCBzaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3NhbXVhb2tpL2lucHV0bWV0aG9kLXNob3J0Y3V0cyIsCiAgInV1aWQiOiAiaW5wdXRtZXRob2Qtc2hvcnRjdXRzQG9zYW11LmRlYmlhbi5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
     "43": {"version": "21", "sha256": "0p25gn4s9w33v82qpz00fg2hgafp65ckrq0q4in6j7qxs03qi2n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHN3aXRjaGluZyBvZiBpbnB1dCBtZXRob2QgYW5kIHRvdWNocGFkIHdpdGggdXNlciBjb25maWd1cmFibGUgc2hvcnRjdXQgYmluZGluZyIsCiAgIm5hbWUiOiAiSW5wdXQgbWV0aG9kIGFuZCB0b3VjaHBhZCBzaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vc2FtdWFva2kvaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAidXVpZCI6ICJpbnB1dG1ldGhvZC1zaG9ydGN1dHNAb3NhbXUuZGViaWFuLm9yZyIsCiAgInZlcnNpb24iOiAyMQp9"},
-    "44": {"version": "21", "sha256": "0p25gn4s9w33v82qpz00fg2hgafp65ckrq0q4in6j7qxs03qi2n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHN3aXRjaGluZyBvZiBpbnB1dCBtZXRob2QgYW5kIHRvdWNocGFkIHdpdGggdXNlciBjb25maWd1cmFibGUgc2hvcnRjdXQgYmluZGluZyIsCiAgIm5hbWUiOiAiSW5wdXQgbWV0aG9kIGFuZCB0b3VjaHBhZCBzaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vc2FtdWFva2kvaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAidXVpZCI6ICJpbnB1dG1ldGhvZC1zaG9ydGN1dHNAb3NhbXUuZGViaWFuLm9yZyIsCiAgInZlcnNpb24iOiAyMQp9"}
+    "44": {"version": "21", "sha256": "0p25gn4s9w33v82qpz00fg2hgafp65ckrq0q4in6j7qxs03qi2n8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHN3aXRjaGluZyBvZiBpbnB1dCBtZXRob2QgYW5kIHRvdWNocGFkIHdpdGggdXNlciBjb25maWd1cmFibGUgc2hvcnRjdXQgYmluZGluZyIsCiAgIm5hbWUiOiAiSW5wdXQgbWV0aG9kIGFuZCB0b3VjaHBhZCBzaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vc2FtdWFva2kvaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAidXVpZCI6ICJpbnB1dG1ldGhvZC1zaG9ydGN1dHNAb3NhbXUuZGViaWFuLm9yZyIsCiAgInZlcnNpb24iOiAyMQp9"},
+    "45": {"version": "22", "sha256": "1v92fdmxvva7q5qarv6ic9s86ignrpp5aflyghcwqjv4jvygi25a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHN3aXRjaGluZyBvZiBpbnB1dCBtZXRob2QgYW5kIHRvdWNocGFkIHdpdGggdXNlciBjb25maWd1cmFibGUgc2hvcnRjdXQgYmluZGluZyIsCiAgIm5hbWUiOiAiSW5wdXQgbWV0aG9kIGFuZCB0b3VjaHBhZCBzaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5wdXRtZXRob2Qtc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29zYW11YW9raS9pbnB1dG1ldGhvZC1zaG9ydGN1dHMiLAogICJ1dWlkIjogImlucHV0bWV0aG9kLXNob3J0Y3V0c0Bvc2FtdS5kZWJpYW4ub3JnIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "kmonad-toggle@jurf.github.io", "name": "KMonad Toggle", "pname": "kmonad-toggle", "description": "Control KMonad directly from GNOME Shell!\n\nThis extension allows you to:\n • Autostart KMonad on login\n • Quickly check if KMonad is running from the top bar\n • Toggle KMonad on or off with a quick setting\n • Easily configure the KMonad launch command\n\nDo you miss any functionality in this extension? Feel free to open an issue on GitHub!\n\nNote: This extension does not manage the KMonad installation. See the installation guide and FAQ in the KMonad repo for instructions on how to set it up. https://github.com/kmonad/kmonad", "link": "https://extensions.gnome.org/extension/6069/kmonad-toggle/", "shell_version_map": {
     "44": {"version": "6", "sha256": "12d7zh3mrxjaippm0n1dwfwhai88iwdy3pb34m24km73g7nwln97", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgS01vbmFkIGRpcmVjdGx5IGZyb20gR05PTUUgU2hlbGwhXG5cblRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG86XG4gXHUyMDIyIEF1dG9zdGFydCBLTW9uYWQgb24gbG9naW5cbiBcdTIwMjIgUXVpY2tseSBjaGVjayBpZiBLTW9uYWQgaXMgcnVubmluZyBmcm9tIHRoZSB0b3AgYmFyXG4gXHUyMDIyIFRvZ2dsZSBLTW9uYWQgb24gb3Igb2ZmIHdpdGggYSBxdWljayBzZXR0aW5nXG4gXHUyMDIyIEVhc2lseSBjb25maWd1cmUgdGhlIEtNb25hZCBsYXVuY2ggY29tbWFuZFxuXG5Ob3RlOiBUaGlzIGV4dGVuc2lvbiBkb2VzIG5vdCBtYW5hZ2UgdGhlIEtNb25hZCBpbnN0YWxsYXRpb24uIFNlZSB0aGUgaW5zdGFsbGF0aW9uIGd1aWRlIGFuZCBGQVEgaW4gdGhlIEtNb25hZCByZXBvIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHNldCBpdCB1cC4gaHR0cHM6Ly9naXRodWIuY29tL2ttb25hZC9rbW9uYWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJqdXJhamZpYWxhIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImttb25hZC10b2dnbGUiLAogICJuYW1lIjogIktNb25hZCBUb2dnbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua21vbmFkLXRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qdXJmL2dub21lLWttb25hZC10b2dnbGUiLAogICJ1dWlkIjogImttb25hZC10b2dnbGVAanVyZi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"},
@@ -5974,11 +5971,11 @@
     "44": {"version": "4", "sha256": "1nzzsm6ai8b0l8c5xvx83cspm4gzx1n6wfdrbik3g7xam06hr861", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvc21pbGUtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzbWlsZS1leHRlbnNpb25AbWlqb3J1cy5pdCIsCiAgInZlcnNpb24iOiA0Cn0="},
     "45": {"version": "7", "sha256": "1fjcwgifggnckk0p7mskpgaz3wm71nz4qgcc1f1jqynwdbidds7l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWpvcnVzL3NtaWxlLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic21pbGUtZXh0ZW5zaW9uQG1pam9ydXMuaXQiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
-, {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist!\n\n PaperWM is a Gnome Shell extension which provides scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers.\n\nPlease see our github page to report issues, understand features, and learn how to configure PaperWM to your liking.", "link": "https://extensions.gnome.org/extension/6099/paperwm/", "shell_version_map": {
-    "42": {"version": "67", "sha256": "041wv0l2sfix7kd9k3kv9ga8cdb16z4bvgiz2048fz2cmz0mp8qg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjcsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNS4yIgp9"},
-    "43": {"version": "67", "sha256": "041wv0l2sfix7kd9k3kv9ga8cdb16z4bvgiz2048fz2cmz0mp8qg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjcsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNS4yIgp9"},
-    "44": {"version": "67", "sha256": "041wv0l2sfix7kd9k3kv9ga8cdb16z4bvgiz2048fz2cmz0mp8qg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjcsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNS4yIgp9"},
-    "45": {"version": "66", "sha256": "09yzmm62zf44g2y7ys99sx02hnspbxjsi7065ha4p5lvz5l6xc7w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBlcndtL1BhcGVyV00iLAogICJ1dWlkIjogInBhcGVyd21AcGFwZXJ3bS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuNS4wIgp9"}
+, {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist", "link": "https://extensions.gnome.org/extension/6099/paperwm/", "shell_version_map": {
+    "42": {"version": "69", "sha256": "15wfc31wz04sil1ys75sw7awhydwh6ydcbrlnf3xwsjbhqym3s83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjksCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNi4wIgp9"},
+    "43": {"version": "69", "sha256": "15wfc31wz04sil1ys75sw7awhydwh6ydcbrlnf3xwsjbhqym3s83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjksCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNi4wIgp9"},
+    "44": {"version": "69", "sha256": "15wfc31wz04sil1ys75sw7awhydwh6ydcbrlnf3xwsjbhqym3s83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjksCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNi4wIgp9"},
+    "45": {"version": "68", "sha256": "1db04y0wkipc2i9sp7l1fqilalks5lc9nl39lfmg55l0jd734cmb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBlcndtL1BhcGVyV00iLAogICJ1dWlkIjogInBhcGVyd21AcGFwZXJ3bS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuNi4wIgp9"}
   }}
 , {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "Apply full light theme into default GNOME Shell, including light overview", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
     "42": {"version": "11", "sha256": "0fqshl06w2amy8d3gw2car4rab6zqpi79dg5dr05d5swggq1vm8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
@@ -6066,9 +6063,10 @@
     "43": {"version": "3", "sha256": "0xj7q0c41586crm855f939s3m9nvcbkdxk6jf9spiy5sjw2b5yca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR1BVIHByb2ZpbGUgc3dpdGNoZXIgZGVzaWduZWQgdG8gd29yayB3aXRoIFBSSU1FIChwcmltZS1zZWxlY3QpLiBGb3JrIG9mIFBSSU1FIEdQVSBQcm9maWxlIFNlbGVjdG9yIiwKICAibmFtZSI6ICJQUklNRSBIZWxwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWi1SYXktRW50ZXJ0YWlubWVudC9QUklNRS1IZWxwZXIiLAogICJ1dWlkIjogIlBSSU1FX0hlbHBlckB6LXJheS5kZSIsCiAgInZlcnNpb24iOiAzCn0="},
     "44": {"version": "3", "sha256": "0xj7q0c41586crm855f939s3m9nvcbkdxk6jf9spiy5sjw2b5yca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR1BVIHByb2ZpbGUgc3dpdGNoZXIgZGVzaWduZWQgdG8gd29yayB3aXRoIFBSSU1FIChwcmltZS1zZWxlY3QpLiBGb3JrIG9mIFBSSU1FIEdQVSBQcm9maWxlIFNlbGVjdG9yIiwKICAibmFtZSI6ICJQUklNRSBIZWxwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWi1SYXktRW50ZXJ0YWlubWVudC9QUklNRS1IZWxwZXIiLAogICJ1dWlkIjogIlBSSU1FX0hlbHBlckB6LXJheS5kZSIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "usd-try-gshell@arifesat.github.com", "name": "USD-TRY", "pname": "usd-try", "description": "USD (US Dollar) converted to TRY (Turkish Lira), show conversion on the center of the top panel. Updates are received every 30 seconds.\n\nIt is a fork of Dollar-PKR. This extension uses economia.awesomeapi.com.br", "link": "https://extensions.gnome.org/extension/6192/usd-try/", "shell_version_map": {
+, {"uuid": "usd-try-gshell@arifesat.github.com", "name": "USD-TRY", "pname": "usd-try", "description": "USD (US Dollar) converted to TRY (Turkish Lira). Updates are received every 30 seconds.\n\nIt is a fork of Dollar-PKR. This extension uses economia.awesomeapi.com.br", "link": "https://extensions.gnome.org/extension/6192/usd-try/", "shell_version_map": {
     "43": {"version": "4", "sha256": "03dajywpcvvhxcwz8jv1yq230iznh30i2lbxs01gpijl4gir7rhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJpZmVzYXQvVVNELVRSWS1HU2hlbGwiLAogICJ1dWlkIjogInVzZC10cnktZ3NoZWxsQGFyaWZlc2F0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "44": {"version": "4", "sha256": "03dajywpcvvhxcwz8jv1yq230iznh30i2lbxs01gpijl4gir7rhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJpZmVzYXQvVVNELVRSWS1HU2hlbGwiLAogICJ1dWlkIjogInVzZC10cnktZ3NoZWxsQGFyaWZlc2F0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}
+    "44": {"version": "4", "sha256": "03dajywpcvvhxcwz8jv1yq230iznh30i2lbxs01gpijl4gir7rhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJpZmVzYXQvVVNELVRSWS1HU2hlbGwiLAogICJ1dWlkIjogInVzZC10cnktZ3NoZWxsQGFyaWZlc2F0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
+    "45": {"version": "7", "sha256": "0045lld30k30425scg2f686isnh2sqvwq41n62p9jc2lx4kvh5kg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmlmZXNhdC9VU0QtVFJZLUdTaGVsbCIsCiAgInV1aWQiOiAidXNkLXRyeS1nc2hlbGxAYXJpZmVzYXQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "hide-dock-in-overview@roslax", "name": "Hide the dock in overview", "pname": "hide-the-dock-in-overview", "description": "hides the dock in overview mode", "link": "https://extensions.gnome.org/extension/6195/hide-the-dock-in-overview/", "shell_version_map": {
     "44": {"version": "3", "sha256": "12f1qrc9hahjrqxvdviqz99pkgzs75f9k6qnnz4fh9v61bqwi31d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3L3RyZWUvbWFpbiIsCiAgInV1aWQiOiAiaGlkZS1kb2NrLWluLW92ZXJ2aWV3QHJvc2xheCIsCiAgInZlcnNpb24iOiAzCn0="}
@@ -6118,7 +6116,7 @@
     "42": {"version": "9", "sha256": "1832867id0z8jbd98dxfywj7k3xr4jjrdi7cblb4dhi2sii6svn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZlbGlwZWZ0bi9lbW9qaS1jb3B5IiwKICAidXVpZCI6ICJlbW9qaS1jb3B5QGZlbGlwZWZ0biIsCiAgInZlcnNpb24iOiA5Cn0="},
     "43": {"version": "9", "sha256": "1832867id0z8jbd98dxfywj7k3xr4jjrdi7cblb4dhi2sii6svn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZlbGlwZWZ0bi9lbW9qaS1jb3B5IiwKICAidXVpZCI6ICJlbW9qaS1jb3B5QGZlbGlwZWZ0biIsCiAgInZlcnNpb24iOiA5Cn0="},
     "44": {"version": "9", "sha256": "1832867id0z8jbd98dxfywj7k3xr4jjrdi7cblb4dhi2sii6svn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZlbGlwZWZ0bi9lbW9qaS1jb3B5IiwKICAidXVpZCI6ICJlbW9qaS1jb3B5QGZlbGlwZWZ0biIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "45": {"version": "12", "sha256": "1bmgkxsw7rfql8l1wlly51s6ik9d8lg8qc4kgssfy3vlrzsb95n3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVsaXBlZnRuL2Vtb2ppLWNvcHkiLAogICJ1dWlkIjogImVtb2ppLWNvcHlAZmVsaXBlZnRuIiwKICAidmVyc2lvbiI6IDEyCn0="}
+    "45": {"version": "13", "sha256": "1af6rwk9y6v5if1wck8vb5db4vrv9g84swmjg57rgwj0zgvabxbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVsaXBlZnRuL2Vtb2ppLWNvcHkiLAogICJ1dWlkIjogImVtb2ppLWNvcHlAZmVsaXBlZnRuIiwKICAidmVyc2lvbiI6IDEzCn0="}
   }}
 , {"uuid": "notification-icons@muhammad_ans.github", "name": "Top Panel Notification Icons Revived", "pname": "top-panel-notification-icons-revived", "description": "Displays notifications icon in top panel", "link": "https://extensions.gnome.org/extension/6248/top-panel-notification-icons-revived/", "shell_version_map": {
     "45": {"version": "4", "sha256": "0s5bk169l1c7xhvrc07g1y6wjdzsgb3bylc1b3r38kjazdbyr3zp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG5vdGlmaWNhdGlvbnMgaWNvbiBpbiB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMgUmV2aXZlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24taWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVoYW1tYWQtYW5zL25vdGlmaWNhdGlvbi1pY29ucyIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWljb25zQG11aGFtbWFkX2Fucy5naXRodWIiLAogICJ2ZXJzaW9uIjogNAp9"}
@@ -6251,9 +6249,9 @@
 , {"uuid": "speedinator@liam.moe", "name": "Speedinator", "pname": "speedinator", "description": "Control the speed of gnome-shell animations", "link": "https://extensions.gnome.org/extension/6397/speedinator/", "shell_version_map": {
     "45": {"version": "4", "sha256": "1207ylsqwy47a9x47qg5wzycpbzljx71ps74dl7fjygsb2gik1ml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RlaHNxdWlkZ2Uvc3BlZWRpbmF0b3IiLAogICJ1dWlkIjogInNwZWVkaW5hdG9yQGxpYW0ubW9lIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can also configure Phi to look for Pi-hole only in a certain network. This might be useful if your computer connects to a different network (for example, a school, work or public Wi-Fi) rather than the one your Pi-hole lives in.\n\nIMPORTANT: The latest version of Phi requires to enter the full path of the URL of Pi-hole API, rather than only the domain part. Please check the information button in the Settings.", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
+, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can configure Phi to look for Pi-hole only in a certain network. This might be useful if your computer connects to a different network (for example, a school, work or public Wi-Fi) rather than the one your Pi-hole lives in.", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
     "44": {"version": "6", "sha256": "0mdqa357d2px0ssdwxngdvdvabvvd7hg3j8c03jwfgqp36s4mn0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "45": {"version": "8", "sha256": "1n75nvazswp8fskd1yb925q4gambm07s28gq65plwbmfvx6jd34y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}
+    "45": {"version": "10", "sha256": "1kgk6zgjbmm9s6065ygcxvp8mdsnirwb31q419kfnrhfbw1kd6vc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMCwKICAidmVyc2lvbi1uYW1lIjogIjEuMyIKfQ=="}
   }}
 , {"uuid": "net-label@slimani.dev", "name": "NetLabel", "pname": "netlabel", "description": "Shows current download upload speed on panel \nThis extension is a Gnome 45 adaption of Net Speed by AlynxZhou", "link": "https://extensions.gnome.org/extension/6403/netlabel/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0jc219z5jmx9p5gasp25fzbhnyyl1gchq0nyxn20zp70kmzg2f7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGN1cnJlbnQgZG93bmxvYWQgdXBsb2FkIHNwZWVkIG9uIHBhbmVsIFxuVGhpcyBleHRlbnNpb24gaXMgYSBHbm9tZSA0NSBhZGFwdGlvbiBvZiBOZXQgU3BlZWQgYnkgQWx5bnhaaG91IiwKICAibmFtZSI6ICJOZXRMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tb2gtc2xpbWFuaS9uZXQtbGFiZWwiLAogICJ1dWlkIjogIm5ldC1sYWJlbEBzbGltYW5pLmRldiIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6293,7 +6291,7 @@
     "42": {"version": "1", "sha256": "0lw047iqjzmsnz19wajr73n1zprgh8r4mhh9srjkhm65k5h4gfs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bHRpbW9uaXRvciBkaW1taW5nIG92ZXJsYXkgd2l0aCBSR0IgcmVndWxhdGlvbjogZXh0ZW5zaW9uIGFkZHMgYSBidXR0b24gd2l0aCBhIGxpZ2h0IGJ1bGIgaWNvbiB0byB5b3VyIHBhbmVsLiBDbGlja2luZyB0aGlzIGJ1dHRvbiByZXZlYWxzIGluZGl2aWR1YWwgc2xpZGVycyBmb3IgZWFjaCBjb25uZWN0ZWQgbW9uaXRvciwgYWxsb3dpbmcgeW91IHRvIGFkanVzdCB0aGUgZGltbWluZyBsZXZlbC4gQWRkaXRpb25hbGx5LCB5b3UgY2FuIHRvZ2dsZSB0aGUgY29sb3Igb2YgdGhlIGRpbW1pbmcgZWZmZWN0IGFuZCBjdXN0b21pemUgaXQgdXNpbmcgUkdCIHNsaWRlcnMgbG9jYXRlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBtZW51LiBcblxuVGVzdGVkIHdpdGggVWJ1bnR1IDIyLjA0LjMgTFRTIGFuZCBHTk9NRSBTaGVsbCA0Mi45LiBcblxuSXQgaXMgYSBmb3JrIG9mIERpbSBEZXNrdG9wIDcwLiIsCiAgIm5hbWUiOiAiVml2aWRTaGFkZTogTXVsdGktTW9uaXRvciBSR0IgRGltbWluZyBDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21vem82NC9WaXZpZFNoYWRlIiwKICAidXVpZCI6ICJWaXZpZFNoYWRlQG1vem82NC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
 , {"uuid": "picture-of-the-day@swsnr.de", "name": "Picture of the Day", "pname": "picture-of-the-day", "description": "Get a picture of the day as desktop background.\n\nSupports the following sources:\n\n* NASA Astronomy Picture of the Day (APOD) from https://apod.nasa.gov/apod/astropix.html\n* NASA Earth Observatory Image of the Day from https://earthobservatory.nasa.gov/topic/image-of-the-day\n* Bing from https://www.bing.com\n* Wikimedia from https://commons.wikimedia.org/wiki/Main_Page\n", "link": "https://extensions.gnome.org/extension/6469/picture-of-the-day/", "shell_version_map": {
-    "45": {"version": "12", "sha256": "0bf1rag0c4gs0vzvjmpnbfn4mag0vrarhhmzs0psswzvsgzvqz5s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHBpY3R1cmUgb2YgdGhlIGRheSBhcyBkZXNrdG9wIGJhY2tncm91bmQuXG5cblN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc291cmNlczpcblxuKiBOQVNBIEFzdHJvbm9teSBQaWN0dXJlIG9mIHRoZSBEYXkgKEFQT0QpIGZyb20gaHR0cHM6Ly9hcG9kLm5hc2EuZ292L2Fwb2QvYXN0cm9waXguaHRtbFxuKiBOQVNBIEVhcnRoIE9ic2VydmF0b3J5IEltYWdlIG9mIHRoZSBEYXkgZnJvbSBodHRwczovL2VhcnRob2JzZXJ2YXRvcnkubmFzYS5nb3YvdG9waWMvaW1hZ2Utb2YtdGhlLWRheVxuKiBCaW5nIGZyb20gaHR0cHM6Ly93d3cuYmluZy5jb21cbiogV2lraW1lZGlhIGZyb20gaHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9NYWluX1BhZ2VcbiIsCiAgImdldHRleHQtZG9tYWluIjogInBpY3R1cmUtb2YtdGhlLWRheUBzd3Nuci5kZSIsCiAgIm5hbWUiOiAiUGljdHVyZSBvZiB0aGUgRGF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3c25yLXBpY3R1cmUtb2YtdGhlLWRheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd3Nuci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGljdHVyZS1vZi10aGUtZGF5IiwKICAidXVpZCI6ICJwaWN0dXJlLW9mLXRoZS1kYXlAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS41Igp9"}
+    "45": {"version": "13", "sha256": "1j3l0605d2i9w96c2lppjp0s254qyld2mb5hffgpv2jibb78s7ca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHBpY3R1cmUgb2YgdGhlIGRheSBhcyBkZXNrdG9wIGJhY2tncm91bmQuXG5cblN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc291cmNlczpcblxuKiBOQVNBIEFzdHJvbm9teSBQaWN0dXJlIG9mIHRoZSBEYXkgKEFQT0QpIGZyb20gaHR0cHM6Ly9hcG9kLm5hc2EuZ292L2Fwb2QvYXN0cm9waXguaHRtbFxuKiBOQVNBIEVhcnRoIE9ic2VydmF0b3J5IEltYWdlIG9mIHRoZSBEYXkgZnJvbSBodHRwczovL2VhcnRob2JzZXJ2YXRvcnkubmFzYS5nb3YvdG9waWMvaW1hZ2Utb2YtdGhlLWRheVxuKiBCaW5nIGZyb20gaHR0cHM6Ly93d3cuYmluZy5jb21cbiogV2lraW1lZGlhIGZyb20gaHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9NYWluX1BhZ2VcbiIsCiAgImdldHRleHQtZG9tYWluIjogInBpY3R1cmUtb2YtdGhlLWRheUBzd3Nuci5kZSIsCiAgIm5hbWUiOiAiUGljdHVyZSBvZiB0aGUgRGF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3c25yLXBpY3R1cmUtb2YtdGhlLWRheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd3Nuci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGljdHVyZS1vZi10aGUtZGF5IiwKICAidXVpZCI6ICJwaWN0dXJlLW9mLXRoZS1kYXlAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMTMsCiAgInZlcnNpb24tbmFtZSI6ICI0NS42Igp9"}
   }}
 , {"uuid": "overviewnow@thesola.io", "name": "Overview Flick", "pname": "overview-flick", "description": "Flick from the right to get the Overview.\n\nThis extension was revived to GNOME 45 from the original, https://extensions.gnome.org/extension/1088/overview-now/\n\nOriginal description:\n\nThis is my first extension. Thanks, GNOME!. Based on \"Slide for Keyboard\", https://extensions.gnome.org/extension/993/slide-for-keyboard/\n\nWhy did I do this? Well, if you do a gesture with your thumb, on your touchscreen, from the right to the center, you'll get the Overview. If you do that, your thumb will be placed in the Desktop selector, so you will be able to move between desktops with your thumb. Perfect! This is also easier to trigger than the default GNOME gesture (three fingers closing).", "link": "https://extensions.gnome.org/extension/6478/overview-flick/", "shell_version_map": {
     "45": {"version": "2", "sha256": "14bbic6vx13vaj5xqws34mlwmvfq436al63lzvwa41hkckqyxk6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsaWNrIGZyb20gdGhlIHJpZ2h0IHRvIGdldCB0aGUgT3ZlcnZpZXcuXG5cblRoaXMgZXh0ZW5zaW9uIHdhcyByZXZpdmVkIHRvIEdOT01FIDQ1IGZyb20gdGhlIG9yaWdpbmFsLCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMDg4L292ZXJ2aWV3LW5vdy9cblxuT3JpZ2luYWwgZGVzY3JpcHRpb246XG5cblRoaXMgaXMgbXkgZmlyc3QgZXh0ZW5zaW9uLiBUaGFua3MsIEdOT01FIS4gQmFzZWQgb24gXCJTbGlkZSBmb3IgS2V5Ym9hcmRcIiwgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vOTkzL3NsaWRlLWZvci1rZXlib2FyZC9cblxuV2h5IGRpZCBJIGRvIHRoaXM/IFdlbGwsIGlmIHlvdSBkbyBhIGdlc3R1cmUgd2l0aCB5b3VyIHRodW1iLCBvbiB5b3VyIHRvdWNoc2NyZWVuLCBmcm9tIHRoZSByaWdodCB0byB0aGUgY2VudGVyLCB5b3UnbGwgZ2V0IHRoZSBPdmVydmlldy4gSWYgeW91IGRvIHRoYXQsIHlvdXIgdGh1bWIgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERlc2t0b3Agc2VsZWN0b3IsIHNvIHlvdSB3aWxsIGJlIGFibGUgdG8gbW92ZSBiZXR3ZWVuIGRlc2t0b3BzIHdpdGggeW91ciB0aHVtYi4gUGVyZmVjdCEgVGhpcyBpcyBhbHNvIGVhc2llciB0byB0cmlnZ2VyIHRoYW4gdGhlIGRlZmF1bHQgR05PTUUgZ2VzdHVyZSAodGhyZWUgZmluZ2VycyBjbG9zaW5nKS4iLAogICJuYW1lIjogIk92ZXJ2aWV3IEZsaWNrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZXNvbGExMC9nbm9tZS1zaGVsbC1vdmVydmlldy1mbGljayIsCiAgInV1aWQiOiAib3ZlcnZpZXdub3dAdGhlc29sYS5pbyIsCiAgInZlcnNpb24iOiAyCn0="}
@@ -6308,7 +6306,7 @@
     "45": {"version": "2", "sha256": "1afvwrhnihih06gvqaj6qdkngqzs36l3w7bwsnw8mzj7hvifs0fg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF0dGRhdmlzOTAvb3ZlcnZpZXctaG92ZXIiLAogICJ1dWlkIjogIm92ZXJ2aWV3aG92ZXJAbWF0dGRhdmlzOTAiLAogICJ2ZXJzaW9uIjogMgp9"}
   }}
 , {"uuid": "onedrive@client.onedrive.com", "name": "Onedrive Client", "pname": "onedrive", "description": "Show and Control Onedrive Client", "link": "https://extensions.gnome.org/extension/6493/onedrive/", "shell_version_map": {
-    "45": {"version": "3", "sha256": "1745pwfh9xdwz3fm4ykay22ha2v6xj5fqxc891k48q5kz6izv5hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
+    "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "system-stats-plus@remulo.costa.gmail.com", "name": "SystemStatsPlus", "pname": "systemstatsplus", "description": "SystemStatsPlus is ease user-friendly GNOME extension that provides real-time visualization of key system resources.\nThis extension is an essential tool for anyone looking to keep a close eye on their system's performance.\n\nKey Features:\n\n- Per CPU core/processor utilization\n- RAM utilization\n- Swap memory utilization\n- Network utilization\n\nIn addition to utilization displayed in the tray, it offers drop down display of historical utilizations.\n\nTo display the usage history, just position the mouse cursor over the item.\n\nIt's a refined fork of the original, but now seemingly inactive, gnome-stats-pro https://github.com/tpenguin/gnome-stats-pro\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r' (or logout/login under Wayland).", "link": "https://extensions.gnome.org/extension/6502/systemstatsplus/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1dfjz3spbbk18wr1jsp6xbky3mc7d64zbpxpxg4bgvv39j1gz337", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJSZW11bG8gQ29zdGEgPHJlbXVsby5jb3N0YUBnbWFpbC5jb20+IiwKICAiZGVzY3JpcHRpb24iOiAiU3lzdGVtU3RhdHNQbHVzIGEgcm9idXN0IGFuZCB1c2VyLWZyaWVuZGx5IEdOT01FIGV4dGVuc2lvbiB0aGF0IHByb3ZpZGVzIHJlYWwtdGltZSB2aXN1YWxpemF0aW9uIG9mIGtleSBzeXN0ZW0gcmVzb3VyY2VzLlxuXG5JdCdzIGEgcmVmaW5lZCBmb3JrIG9mIHRoZSBvcmlnaW5hbCwgYnV0IG5vdyBzZWVtaW5nbHkgaW5hY3RpdmUsIGdub21lLXN0YXRzLXBybyBodHRwczovL2dpdGh1Yi5jb20vdHBlbmd1aW4vZ25vbWUtc3RhdHMtcHJvXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGFuIGVzc2VudGlhbCB0b29sIGZvciBhbnlvbmUgbG9va2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlLlxuXG5LZXkgRmVhdHVyZXM6XG5cbi0gUGVyIENQVSBjb3JlL3Byb2Nlc3NvciB1dGlsaXphdGlvblxuLSBSQU0gdXRpbGl6YXRpb25cbi0gU3dhcCBtZW1vcnkgdXRpbGl6YXRpb25cbi0gTmV0d29yayB1dGlsaXphdGlvblxuXG5JbiBhZGRpdGlvbiB0byB1dGlsaXphdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIHRyYXksIGl0IG9mZmVycyBkcm9wIGRvd24gZGlzcGxheSBvZiBoaXN0b3JpY2FsIHV0aWxpemF0aW9ucy5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicgKG9yIGxvZ291dC9sb2dpbiB1bmRlciBXYXlsYW5kKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tc3RhdHMtcGx1cyIsCiAgIm5hbWUiOiAiU3lzdGVtU3RhdHNQbHVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImpvZUB0aHJhbGxpbmdwZW5ndWluLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZW11bG9jb3N0YS9zeXN0ZW0tc3RhdHMtcGx1cyIsCiAgInV1aWQiOiAic3lzdGVtLXN0YXRzLXBsdXNAcmVtdWxvLmNvc3RhLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiMC4xLjAiCn0="}
@@ -6329,13 +6327,39 @@
 , {"uuid": "todo-list@speedflyer689.github.com", "name": "Todo list", "pname": "todo-list", "description": "Adds a todo list to the notification panel", "link": "https://extensions.gnome.org/extension/6526/todo-list/", "shell_version_map": {
     "38": {"version": "3", "sha256": "06hqbrk894bi0acilq4vg5a3h3gjmkmi1jv7vmaws0bn7gzqafjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSB0b2RvIGxpc3QgdG8gdGhlIG5vdGlmaWNhdGlvbiBwYW5lbCIsCiAgIm5hbWUiOiAiVG9kbyBsaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3BlZWRmbHllcjY4OS9Hbm9tZS1Ub2RvLUxpc3QiLAogICJ1dWlkIjogInRvZG8tbGlzdEBzcGVlZGZseWVyNjg5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
-, {"uuid": "logowidget@github.com.howbea", "name": "Logo Widget", "pname": "logo-widget", "description": "Add a logo to the desktop.This is  a fork of Background Logo extension. \n https://extensions.gnome.org/extension/889/background-logo/ \n https://pagure.io/background-logo-extension", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
-    "42": {"version": "6", "sha256": "1miy1wdx0aqj7rpami7hgdld9x9wxnapazfzqkf9ajf6i82cag01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNgp9"},
-    "43": {"version": "6", "sha256": "1miy1wdx0aqj7rpami7hgdld9x9wxnapazfzqkf9ajf6i82cag01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNgp9"},
-    "44": {"version": "6", "sha256": "1miy1wdx0aqj7rpami7hgdld9x9wxnapazfzqkf9ajf6i82cag01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNgp9"},
-    "45": {"version": "5", "sha256": "1kxqkv8z2ldcraf8if7djz1awqh8bfc23ib0cyxf0qzbdz39p1r8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmFja2dyb3VuZC1sb2dvIiwKICAibmFtZSI6ICJMb2dvIFdpZGdldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNQp9"}
+, {"uuid": "logowidget@github.com.howbea", "name": "Logo Widget", "pname": "logo-widget", "description": "Add a logo to the desktop. This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/ \n https://pagure.io/background-logo-extension", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
+    "42": {"version": "8", "sha256": "0751blv9h3dj9i61y9ywjmn34sjq5b9lf2nci2anm3ngm5rzskzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogOAp9"},
+    "43": {"version": "8", "sha256": "0751blv9h3dj9i61y9ywjmn34sjq5b9lf2nci2anm3ngm5rzskzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogOAp9"},
+    "44": {"version": "8", "sha256": "0751blv9h3dj9i61y9ywjmn34sjq5b9lf2nci2anm3ngm5rzskzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogOAp9"},
+    "45": {"version": "7", "sha256": "09fmvv0nimyfai39xr0hrcgp5979i8n80zi42y7lbanczcc71n6a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmFja2dyb3VuZC1sb2dvIiwKICAibmFtZSI6ICJMb2dvIFdpZGdldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNwp9"}
+  }}
+, {"uuid": "azan@a7medkhalaf", "name": "xAzanTimes", "pname": "xazantimes", "description": "Azan is an Islamic prayer times extension for Gnome Shell.\nIt's a fork of \"Azan Islamic Prayer Times\" by faissaloo which is based on the extension by Fahrinh.\n\nFeatures\n- List compulsory prayer times\n- Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Iqamah option", "link": "https://extensions.gnome.org/extension/6538/xazantimes/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "18q8566d72js01qx1gq9i322hxghkg0bh6b1xfzcmq54cmfab47d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbCBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIGJ5IGZhaXNzYWxvby5cblxuRmVhdHVyZXNcbi0gTGlzdCBjb21wdWxzb3J5IHByYXllciB0aW1lc1xuIE9wdGlvbmFsbHkgZGlzcGxheSBJbXNhaywgU3VucmlzZSwgU3Vuc2V0IGFuZCBNaWRuaWdodFxuLSBTaG93IHJlbWFpbmluZyB0aW1lIGZvciB0aGUgdXBjb21pbmcgcHJheWVyLlxuLSBTaG93IGN1cnJlbnQgZGF0ZSBpbiBIaWpyaSBjYWxlbmRhci5cbi0gRGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIGl0J3MgdGltZSBmb3IgcHJheWVyLlxuLSBBdXRvbWF0aWMgR2VvY2x1ZTIgbG9jYXRpb24gZGV0ZWN0aW9uXG4tIFNob3cgdGltZXMgaW4gMjQgaG91ciBhbmQgMTIgaG91ciBmb3JtYXRzXG4tIEhpanJpIGRhdGUgYWRqdXNtZW50XG4tIElxYW1haCBvcHRpb24iLAogICJuYW1lIjogInhBemFuVGltZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXphbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hN21lZGtoYWxhZi9hemFuLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXphbkBhN21lZGtoYWxhZiIsCiAgInZlcnNpb24iOiAyCn0="}
+  }}
+, {"uuid": "clown@markocic", "name": "Clown", "pname": "clown", "description": "Displays clown emoji in the panel and plays clown theme song on click", "link": "https://extensions.gnome.org/extension/6544/clown/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "13ybvk48whny007fxvspdpx7slg42l7fgrg0drcfrh9w6c6jvq0l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGNsb3duIGVtb2ppIGluIHRoZSBwYW5lbCBhbmQgcGxheXMgY2xvd24gdGhlbWUgc29uZyBvbiBjbGljayIsCiAgIm5hbWUiOiAiQ2xvd24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFya29jaWMvY2xvd24tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjbG93bkBtYXJrb2NpYyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "input-source-dbus-interface@raiden_fumo", "name": "Input source D-Bus interface", "pname": "input-source-d-bus-interface", "description": "Add D-Bus interface for changing input sources via command.\nWith this extension you can bind multiple keyboard layouts to different shortcuts.\nSee README.md in extension archive or repository for usage details.", "link": "https://extensions.gnome.org/extension/6547/input-source-d-bus-interface/", "shell_version_map": {
     "45": {"version": "1", "sha256": "16v5f7q798708srm1vqbcq37ykgsmybl6scl7bkk8sqksvangqsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVycnNjaGVyLW9mLXNsZWVwaW5nL2dub21lLWlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZSIsCiAgInV1aWQiOiAiaW5wdXQtc291cmNlLWRidXMtaW50ZXJmYWNlQHJhaWRlbl9mdW1vIiwKICAidmVyc2lvbiI6IDEKfQ=="}
   }}
+, {"uuid": "rectangle@acristoffers.me", "name": "Rectangle", "pname": "rectangle", "description": "Magnet/Rectangle like manual tiling", "link": "https://extensions.gnome.org/extension/6553/rectangle/", "shell_version_map": {
+    "42": {"version": "4", "sha256": "1krp4001aphvjnp245262llv0xzwbga17skq94f2wkv87yqd1ggp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "43": {"version": "4", "sha256": "1krp4001aphvjnp245262llv0xzwbga17skq94f2wkv87yqd1ggp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "44": {"version": "4", "sha256": "1krp4001aphvjnp245262llv0xzwbga17skq94f2wkv87yqd1ggp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "45": {"version": "3", "sha256": "15gv4y4rwqgz54y86ik09izp0fl4rsw2x7bra959ih60dy3vs00i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjcmlzdG9mZmVycy9nbm9tZS1yZWN0YW5nbGUiLAogICJ1dWlkIjogInJlY3RhbmdsZUBhY3Jpc3RvZmZlcnMubWUiLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "task-up@fthx", "name": "Task Up", "pname": "task-up", "description": "Task bar. Handles multiple workspaces. Very light extension.\n\n Complete rewrite of BaBar task bar extension, light code only has 300 lines.\n\n Some settings.", "link": "https://extensions.gnome.org/extension/6556/task-up/", "shell_version_map": {
+    "45": {"version": "13", "sha256": "06rnaagwpcj6qzb53cmi81kx71ssjy1qhm6abcrkyd8113gmag3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBIYW5kbGVzIG11bHRpcGxlIHdvcmtzcGFjZXMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gQ29tcGxldGUgcmV3cml0ZSBvZiBCYUJhciB0YXNrIGJhciBleHRlbnNpb24sIGxpZ2h0IGNvZGUgb25seSBoYXMgMzAwIGxpbmVzLlxuXG4gU29tZSBzZXR0aW5ncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJUYXNrIFVwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2stdXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC90YXNrLXVwIiwKICAidXVpZCI6ICJ0YXNrLXVwQGZ0aHgiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
+  }}
+, {"uuid": "workspace-switch-buttons@rajan-31", "name": "Workspace Switch Buttons", "pname": "workspace-switch-buttons", "description": "Adds buttons to switch to left and right workspace, and hides \"Activities\" button", "link": "https://extensions.gnome.org/extension/6562/workspace-switch-buttons/", "shell_version_map": {
+    "42": {"version": "2", "sha256": "03hzxb0b6ckqhjj7syv5bh5sl0k5jajnfrpy82ifw4aa89apin81", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYnV0dG9ucyB0byBzd2l0Y2ggdG8gbGVmdCBhbmQgcmlnaHQgd29ya3NwYWNlLCBhbmQgaGlkZXMgXCJBY3Rpdml0aWVzXCIgYnV0dG9uIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoIEJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWphbi0zMS9Xb3Jrc3BhY2UtU3dpdGNoLUJ1dHRvbnMiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2gtYnV0dG9uc0ByYWphbi0zMSIsCiAgInZlcnNpb24iOiAyCn0="},
+    "43": {"version": "2", "sha256": "03hzxb0b6ckqhjj7syv5bh5sl0k5jajnfrpy82ifw4aa89apin81", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYnV0dG9ucyB0byBzd2l0Y2ggdG8gbGVmdCBhbmQgcmlnaHQgd29ya3NwYWNlLCBhbmQgaGlkZXMgXCJBY3Rpdml0aWVzXCIgYnV0dG9uIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoIEJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWphbi0zMS9Xb3Jrc3BhY2UtU3dpdGNoLUJ1dHRvbnMiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2gtYnV0dG9uc0ByYWphbi0zMSIsCiAgInZlcnNpb24iOiAyCn0="},
+    "44": {"version": "2", "sha256": "03hzxb0b6ckqhjj7syv5bh5sl0k5jajnfrpy82ifw4aa89apin81", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYnV0dG9ucyB0byBzd2l0Y2ggdG8gbGVmdCBhbmQgcmlnaHQgd29ya3NwYWNlLCBhbmQgaGlkZXMgXCJBY3Rpdml0aWVzXCIgYnV0dG9uIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoIEJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWphbi0zMS9Xb3Jrc3BhY2UtU3dpdGNoLUJ1dHRvbnMiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2gtYnV0dG9uc0ByYWphbi0zMSIsCiAgInZlcnNpb24iOiAyCn0="}
+  }}
+, {"uuid": "langTray@a7medkhalaf", "name": "xLanguageTray", "pname": "xlanguagetray", "description": "Move Region/Language Tray To Quick Settings", "link": "https://extensions.gnome.org/extension/6565/xlanguagetray/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "056x6bg3z8vqrknyqgr8hfgd8x04nj626jxw30p3qszvazajr8bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgUmVnaW9uL0xhbmd1YWdlIFRyYXkgVG8gUXVpY2sgU2V0dGluZ3MiLAogICJuYW1lIjogInhMYW5ndWFnZVRyYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYTdtZWRraGFsYWYvTGFuZ1RyYXkiLAogICJ1dWlkIjogImxhbmdUcmF5QGE3bWVka2hhbGFmIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+  }}
+, {"uuid": "simplebreakreminder@castillodel.com", "name": "Simple Break Reminder", "pname": "simple-break-reminder", "description": "It's important to remember to take a break", "link": "https://extensions.gnome.org/extension/6568/simple-break-reminder/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "07014vqkcxhrndwywbprxkngvvyn0fvwpq7iaky04m8zb88jhk4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2FzdGlsbG9EZWwvc2ltcGxlYnJlYWtyZW1pbmRlciIsCiAgInV1aWQiOiAic2ltcGxlYnJlYWtyZW1pbmRlckBjYXN0aWxsb2RlbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+  }}
 ]
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
index 513ae6ed9e03..ffd5573d0154 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-sudoku";
-  version = "45.2";
+  version = "45.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-sudoku/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "Ves0R5euw9ifer/L57djAn9cDipaIuaPvzLH6UOdlfI=";
+    sha256 = "27xURAbO54QRBBeOpKk742EH2dfsplVf0wGJzRQ41ko=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/lomiri/default.nix b/nixpkgs/pkgs/desktops/lomiri/default.nix
index 2b559a6a7273..2de3a7c9d409 100644
--- a/nixpkgs/pkgs/desktops/lomiri/default.nix
+++ b/nixpkgs/pkgs/desktops/lomiri/default.nix
@@ -17,6 +17,10 @@ let
     gmenuharness = callPackage ./development/gmenuharness { };
     libusermetrics = callPackage ./development/libusermetrics { };
     lomiri-api = callPackage ./development/lomiri-api { };
+
+    #### Services
+    biometryd = callPackage ./services/biometryd { };
+    hfd-service = callPackage ./services/hfd-service { };
   };
 in
   lib.makeScope libsForQt5.newScope packages
diff --git a/nixpkgs/pkgs/desktops/lomiri/services/biometryd/default.nix b/nixpkgs/pkgs/desktops/lomiri/services/biometryd/default.nix
new file mode 100644
index 000000000000..c8d0da9a65c2
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/lomiri/services/biometryd/default.nix
@@ -0,0 +1,137 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, fetchpatch
+, gitUpdater
+, testers
+, boost
+, cmake
+, cmake-extras
+, dbus
+, dbus-cpp
+, gtest
+, libapparmor
+, libelf
+, pkg-config
+, process-cpp
+, properties-cpp
+, qtbase
+, qtdeclarative
+, sqlite
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "biometryd";
+  version = "0.3.0";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/biometryd";
+    rev = finalAttrs.version;
+    hash = "sha256-b095rsQnd63Ziqe+rn3ROo4LGXZxZ3Sa6h3apzCuyCs=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  patches = [
+    # https://gitlab.com/ubports/development/core/biometryd/-/merge_requests/31
+    (fetchpatch {
+      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/d01d979e4f98c6473761d1ace308aa182017804e.patch";
+      hash = "sha256-JxL3BLuh33ptfneU1y2qNGFKpeMlZlTMwCK97Rk3aTA=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/3cec6a3d42ea6aba8892da2c771b317f44daf9e2.patch";
+      hash = "sha256-Ij/aio38WmZ+NsUSbM195Gwb83goWIcCnJvGwAOJi50=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/e89bd9444bc1cfe84a9aa93faa23057c80f39564.patch";
+      hash = "sha256-1vEG349X9+SvY/f3no/l5cMVGpdzC8h/8XOZwL/70Dc=";
+    })
+
+    # https://gitlab.com/ubports/development/core/biometryd/-/merge_requests/32
+    (fetchpatch {
+      url = "https://gitlab.com/OPNA2608/biometryd/-/commit/9e52fad0139c5a45f69e6a6256b2b5ff54f77740.patch";
+      hash = "sha256-DZSdzKq6EYgAllKSDgkGk2g57zHN+gI5fOoj7U5AcKY=";
+    })
+  ];
+
+  postPatch = ''
+    # Remove with !31 patches, fetchpatch can't apply renames
+    pushd data
+    for type in conf service; do
+      mv biometryd.$type biometryd.$type.in
+      substituteInPlace biometryd.$type.in \
+        --replace '/usr/bin' "\''${CMAKE_INSTALL_FULL_BINDIR}"
+    done
+    popd
+
+    # Uses pkg_get_variable, cannot substitute prefix with that
+    substituteInPlace CMakeLists.txt \
+      --replace 'pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir)' 'set(SYSTEMD_SYSTEM_UNIT_DIR "${placeholder "out"}/lib/systemd/system")'
+
+    substituteInPlace src/biometry/qml/Biometryd/CMakeLists.txt \
+      --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
+  '' + lib.optionalString (!finalAttrs.doCheck) ''
+    sed -i -e '/add_subdirectory(tests)/d' CMakeLists.txt
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qtdeclarative # qmlplugindump
+  ];
+
+  buildInputs = [
+    boost
+    cmake-extras
+    dbus
+    dbus-cpp
+    libapparmor
+    libelf
+    process-cpp
+    properties-cpp
+    qtbase
+    qtdeclarative
+    sqlite
+  ];
+
+  checkInputs = [
+    gtest
+  ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [
+    "-DENABLE_WERROR=OFF"
+    "-DWITH_HYBRIS=OFF"
+  ];
+
+  preBuild = ''
+    # Generating plugins.qmltypes (also used in checkPhase?)
+    export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
+  '';
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  meta = with lib; {
+    description = "Mediates/multiplexes access to biometric devices";
+    longDescription = ''
+      biometryd mediates and multiplexes access to biometric devices present
+      on the system, enabling applications and system components to leverage
+      them for identification and verification of users.
+    '';
+    homepage = "https://gitlab.com/ubports/development/core/biometryd";
+    license = licenses.lgpl3Only;
+    maintainers = teams.lomiri.members;
+    mainProgram = "biometryd";
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "biometryd"
+    ];
+  };
+})
diff --git a/nixpkgs/pkgs/desktops/lomiri/services/hfd-service/default.nix b/nixpkgs/pkgs/desktops/lomiri/services/hfd-service/default.nix
new file mode 100644
index 000000000000..cffedb0af623
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/lomiri/services/hfd-service/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, gitUpdater
+, accountsservice
+, cmake
+, cmake-extras
+, deviceinfo
+, libgbinder
+, libglibutil
+, pkg-config
+, qtbase
+, qtdeclarative
+, qtfeedback
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hfd-service";
+  version = "0.2.1";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/hfd-service";
+    rev = finalAttrs.version;
+    hash = "sha256-KcHwLTSdo86YCteUsPndoxmLf23SOEhROc5cJQ8GS1Q=";
+  };
+
+  postPatch = ''
+    substituteInPlace qt/feedback-plugin/CMakeLists.txt \
+      --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/plugins" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}"
+
+    # Queries pkg-config via pkg_get_variable, can't override prefix
+    substituteInPlace init/CMakeLists.txt \
+      --replace "\''${SYSTEMD_SYSTEM_DIR}" "$out/lib/systemd/system"
+    substituteInPlace CMakeLists.txt \
+      --replace 'pkg_get_variable(AS_INTERFACES_DIR accountsservice interfacesdir)' 'set(AS_INTERFACES_DIR "''${CMAKE_INSTALL_DATADIR}/accountsservice/interfaces")' \
+      --replace 'DESTINATION ''${DBUS_INTERFACES_DIR}' 'DESTINATION ${placeholder "out"}/''${DBUS_INTERFACES_DIR}'
+    substituteInPlace src/CMakeLists.txt \
+      --replace "\''${DBUS_INTERFACES_DIR}/org.freedesktop.Accounts.xml" '${accountsservice}/share/dbus-1/interfaces/org.freedesktop.Accounts.xml'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    accountsservice
+    cmake-extras
+    deviceinfo
+    libgbinder
+    libglibutil
+    qtbase
+    qtdeclarative
+    qtfeedback
+  ];
+
+  cmakeFlags = [
+    "-DENABLE_LIBHYBRIS=OFF"
+  ];
+
+  dontWrapQtApps = true;
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "DBus-activated service that manages human feedback devices such as LEDs and vibrators on mobile devices";
+    homepage = "https://gitlab.com/ubports/development/core/hfd-service";
+    license = licenses.lgpl3Only;
+    maintainers = teams.lomiri.members;
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
index 1c99a04f6510..214e1767f25b 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-panel";
-  version = "1.26.3";
+  version = "1.26.4";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "8z8Q1SdFC6fpjMcKslWsSBMwqp5m28x8URtrqhcd4Ck=";
+    sha256 = "IHD51RVlfl3c2g2H73KXE9upy3sq0GIjvWdKIcxrPa8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
index 070ea4f7d0cb..eeadfe793a7c 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
@@ -1,15 +1,25 @@
-{ lib, mkXfceDerivation, dbus, dbus-glib
-, gst_all_1, gtk3, libnotify, libxfce4ui, libxfce4util
-, taglib, xfconf }:
+{ lib
+, mkXfceDerivation
+, dbus
+, dbus-glib
+, gst_all_1
+, gtk3
+, libnotify
+, libX11
+, libxfce4ui
+, libxfce4util
+, taglib
+, xfconf
+}:
 
 # Doesn't seem to find H.264 codec even though built with gst-plugins-bad.
 
 mkXfceDerivation {
   category = "apps";
   pname = "parole";
-  version = "4.18.0";
+  version = "4.18.1";
 
-  sha256 = "sha256-TLH9ZUggjclJlbBg3EBVgbcrdiMZ8n+cGDgfNgYNiPI=";
+  sha256 = "sha256-g+Wy90tHpCeylbU7aUa8578ehmuyWI5WlCK7YdJKlNQ=";
 
   postPatch = ''
     substituteInPlace src/plugins/mpris2/Makefile.am \
@@ -25,6 +35,7 @@ mkXfceDerivation {
     gst-plugins-ugly
     gtk3
     libnotify
+    libX11
     libxfce4ui
     libxfce4util
     taglib
diff --git a/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
index 7427e8d74182..e8c7ac2b4948 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -16,9 +16,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "tumbler";
-  version = "4.18.1";
+  version = "4.18.2";
 
-  sha256 = "sha256-hn77W8IsvwNc9xSuDe9rXw9499olOvvJ2P7q+26HIG8=";
+  sha256 = "sha256-thioE0q2qnV4weJFPz8OWoHIRuUcXnQEviwBtCWsSV4=";
 
   buildInputs = [
     libxfce4util
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
index 19b552937119..c483c58c8172 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
@@ -12,9 +12,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-power-manager";
-  version = "4.18.2";
+  version = "4.18.3";
 
-  sha256 = "sha256-1+DP5CACzzj96FyRTeCdVEFORnpzFT49d9Uk1iijbFs=";
+  sha256 = "sha256-CuW2siApho7u8P01t15dAiqNAiwQzAMZsEugYuKN4kM=";
 
   buildInputs = [
     gtk3
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
index 022a04cff963..31aa4bc2e98a 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -16,9 +16,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-settings";
-  version = "4.18.3";
+  version = "4.18.4";
 
-  sha256 = "sha256-QGh5th790qkvqchUfi+kOAJ9A1M+zEIzMxOM5eCGPEk=";
+  sha256 = "sha256-f6ldTmTSvfRjn6j/LKIoFI3cbYZFtNdnAq3dQewc948=";
 
   postPatch = ''
     for f in xfsettingsd/pointers.c dialogs/mouse-settings/main.c; do
diff --git a/nixpkgs/pkgs/development/compilers/flix/default.nix b/nixpkgs/pkgs/development/compilers/flix/default.nix
index 9ce582623fe1..544c1f6ed920 100644
--- a/nixpkgs/pkgs/development/compilers/flix/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flix/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "flix";
-  version = "0.41.0";
+  version = "0.42.0";
 
   src = fetchurl {
     url = "https://github.com/flix/flix/releases/download/v${version}/flix.jar";
-    sha256 = "sha256-bDeqwk+grkCxmGE9H8Ks7Q8KvLxNCzaLe44DlR6E7YE=";
+    sha256 = "sha256-fkYyJxBlJWUkXGgcszerNKFNEFRIOm6tUyiTZj0q11k=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/development/compilers/gcc/default.nix b/nixpkgs/pkgs/development/compilers/gcc/default.nix
index 01f172513080..628b259acbd9 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/default.nix
@@ -259,7 +259,6 @@ lib.pipe ((callFile ./common/builder.nix {}) ({
     else [ "out" "lib" "man" "info" ];
 
   setOutputFlags = false;
-  NIX_NO_SELF_RPATH = true;
 
   libc_dev = stdenv.cc.libc_dev;
 
@@ -353,44 +352,59 @@ lib.pipe ((callFile ./common/builder.nix {}) ({
   # https://gcc.gnu.org/PR109898
   enableParallelInstalling = false;
 
-  # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
-  ${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
-
-  # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
-  # library headers and binaries, regarless of the language being compiled.
-  #
-  # Note: When building the Java AWT GTK peer, the build system doesn't honor
-  # `--with-gmp' et al., e.g., when building
-  # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
-  # them to $CPATH and $LIBRARY_PATH in this case.
-  #
-  # Likewise, the LTO code doesn't find zlib.
-  #
-  # Cross-compiling, we need gcc not to read ./specs in order to build the g++
-  # compiler (after the specs for the cross-gcc are created). Having
-  # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks.
-
-  CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
-    ++ optional (zlib != null) zlib
-    ++ optional langJava boehmgc
-    ++ optionals javaAwtGtk xlibs
-    ++ optionals javaAwtGtk [ gmp mpfr ]
-  ));
-
-  LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (
-    optional (zlib != null) zlib
-    ++ optional langJava boehmgc
-    ++ optionals javaAwtGtk xlibs
-    ++ optionals javaAwtGtk [ gmp mpfr ]
-  ));
-
-  inherit (callFile ./common/extra-target-flags.nix { })
-    EXTRA_FLAGS_FOR_TARGET
-    EXTRA_LDFLAGS_FOR_TARGET
-    ;
+  env = mapAttrs (_: v: toString v) ({
+
+    NIX_NO_SELF_RPATH = true;
+
+    # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
+    ${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
+
+    # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
+    # library headers and binaries, regarless of the language being compiled.
+    #
+    # Note: When building the Java AWT GTK peer, the build system doesn't honor
+    # `--with-gmp' et al., e.g., when building
+    # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
+    # them to $CPATH and $LIBRARY_PATH in this case.
+    #
+    # Likewise, the LTO code doesn't find zlib.
+    #
+    # Cross-compiling, we need gcc not to read ./specs in order to build the g++
+    # compiler (after the specs for the cross-gcc are created). Having
+    # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks.
+
+    CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
+      ++ optional (zlib != null) zlib
+      ++ optional langJava boehmgc
+      ++ optionals javaAwtGtk xlibs
+      ++ optionals javaAwtGtk [ gmp mpfr ]
+    ));
+
+    LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (
+      optional (zlib != null) zlib
+      ++ optional langJava boehmgc
+      ++ optionals javaAwtGtk xlibs
+      ++ optionals javaAwtGtk [ gmp mpfr ]
+    ));
+
+    inherit (callFile ./common/extra-target-flags.nix { })
+      EXTRA_FLAGS_FOR_TARGET
+      EXTRA_LDFLAGS_FOR_TARGET
+      ;
+  } // optionalAttrs is7 {
+    NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument"
+      # Downgrade register storage class specifier errors to warnings when building a cross compiler from a clang stdenv.
+      + lib.optionalString (stdenv.cc.isClang && targetPlatform != hostPlatform) " -Wno-register";
+  } // optionalAttrs (!is7 && !atLeast12 && stdenv.cc.isClang && targetPlatform != hostPlatform) {
+    NIX_CFLAGS_COMPILE = "-Wno-register";
+  } // optionalAttrs (!atLeast7) {
+    inherit langJava;
+  } // optionalAttrs atLeast6 {
+    NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm";
+  });
 
   passthru = {
-    inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version;
+    inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD langJava version;
     isGNU = true;
   } // lib.optionalAttrs (!atLeast12) {
     hardeningUnsupportedFlags = lib.optionals is48 [ "stackprotector" ] ++ [ "fortify3" ];
@@ -410,18 +424,14 @@ lib.pipe ((callFile ./common/builder.nix {}) ({
     ;
   } // lib.optionalAttrs (!atLeast11) {
     badPlatforms = if !(is48 || is49) then [ "aarch64-darwin" ] else lib.platforms.darwin;
+  } // lib.optionalAttrs is11 {
+    badPlatforms = if targetPlatform != hostPlatform then [ "aarch64-darwin" ] else [ ];
   };
-} // optionalAttrs is7 {
-  env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument";
-} // lib.optionalAttrs (!atLeast10 && stdenv.hostPlatform.isDarwin) {
+} // lib.optionalAttrs (!atLeast10 && stdenv.targetPlatform.isDarwin) {
   # GCC <10 requires default cctools `strip` instead of `llvm-strip` used by Darwin bintools.
   preBuild = ''
     makeFlagsArray+=('STRIP=${lib.getBin darwin.cctools-port}/bin/${stdenv.cc.targetPrefix}strip')
   '';
-} // optionalAttrs (!atLeast7) {
-  env.langJava = langJava;
-} // optionalAttrs atLeast6 {
-  NIX_LDFLAGS = lib.optionalString  hostPlatform.isSunOS "-lm";
 } // optionalAttrs (!atLeast8) {
   doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
 } // optionalAttrs enableMultilib {
diff --git a/nixpkgs/pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch b/nixpkgs/pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch
deleted file mode 100644
index 787862fbcffa..000000000000
--- a/nixpkgs/pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/gcc/config/avr/avr.c	2022-10-08 19:18:33.000000000 +0200
-+++ b/gcc/config/avr/avr.patched.c	2022-10-08 19:19:34.000000000 +0200
-@@ -10196,7 +10196,7 @@
-    to track need of __do_copy_data.  */
- 
- static void
--avr_output_data_section_asm_op (const void *data)
-+avr_output_data_section_asm_op (const char *data)
- {
-   avr_need_copy_data_p = true;
- 
-@@ -10209,7 +10209,7 @@
-    to track need of __do_clear_bss.  */
- 
- static void
--avr_output_bss_section_asm_op (const void *data)
-+avr_output_bss_section_asm_op (const char *data)
- {
-   avr_need_clear_bss_p = true;
- 
diff --git a/nixpkgs/pkgs/development/compilers/gcc/patches/default.nix b/nixpkgs/pkgs/development/compilers/gcc/patches/default.nix
index 9eda241f6d3a..32938be376d9 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/patches/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/patches/default.nix
@@ -175,9 +175,6 @@ in
 
 ## gcc 11.0 and older ##############################################################################
 
-# https://github.com/osx-cross/homebrew-avr/issues/280#issuecomment-1272381808
-++ optional (is11 && stdenv.isDarwin && targetPlatform.isAvr) ./avr-gcc-11.3-darwin.patch
-
 # libgcc’s `configure` script misdetects aarch64-darwin, resulting in an invalid deployment target.
 ++ optional (is11 && stdenv.isDarwin && stdenv.isAarch64) ./11/libgcc-aarch64-darwin-detection.patch
 
diff --git a/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix b/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix
index 83b986be2b32..8bc9a5835177 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix
@@ -477,6 +477,14 @@ stdenv.mkDerivation ({
   preInstall = ''
     pushd _build/bindist/*
 
+  ''
+  # the bindist configure script uses different env variables than the GHC configure script
+  # see https://github.com/NixOS/nixpkgs/issues/267250 and https://gitlab.haskell.org/ghc/ghc/-/issues/24211
+  + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+    export InstallNameToolCmd=$INSTALL_NAME_TOOL
+    export OtoolCmd=$OTOOL
+  ''
+  + ''
     $configureScript $configureFlags "''${configureFlagsArray[@]}"
   '';
 
diff --git a/nixpkgs/pkgs/development/compilers/ghc/head.nix b/nixpkgs/pkgs/development/compilers/ghc/head.nix
index 6b8d657f34ec..a6fff5feb6b0 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/head.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/head.nix
@@ -1,5 +1,5 @@
 import ./common-hadrian.nix {
-  version = "9.9.20231014";
-  rev = "13d3c613c3c1e4942c698449bdf58a6a13b76695";
-  sha256 = "13xp4ijnym2qbw2qbxkvfb79l7034vrcm9j2j9kirbhjxzdshvx9";
+  version = "9.9.20231121";
+  rev = "955520c6c4f07187b6d5e4770ecf681cc78374f2";
+  sha256 = "0pv77khciv513aw64pfac5p60xn5z90rxl84dcalj6knmbhm8dqy";
 }
diff --git a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
index b2a5561dcf4d..db03d2d85ca2 100644
--- a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -30,16 +30,16 @@ in
 
 stdenv.mkDerivation rec {
   pname = "intel-graphics-compiler";
-  version = "1.0.14828.8";
+  version = "1.0.15136.4";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "intel-graphics-compiler";
     rev = "igc-${version}";
-    hash = "sha256-BGmZVBEw7XlgbQcWgRK+qbJS9U4Sm9G8g9m0GRUhmCI=";
+    hash = "sha256-Qh3FNck1z+rr7eSqxVnNs7YKvgXpKGY5dd3yx1Ft9Mg=";
   };
 
-  nativeBuildInputs = [ bison cmake flex python3 ];
+  nativeBuildInputs = [ bison cmake flex (python3.withPackages (ps : with ps; [ mako ])) ];
 
   buildInputs = [ lld llvm spirv-headers spirv-llvm-translator' spirv-tools ];
 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix
index e64584edf29d..c8d3c4c1a771 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.libobjc
     darwin.apple_sdk.libs.xpc
-    darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
+    darwin.apple_sdk.frameworks.DebugSymbols darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
   ];
 
   CXXFLAGS = "-fno-rtti";
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
index 97ac428a7f55..71beb79a1cda 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
@@ -110,7 +110,17 @@ in stdenv.mkDerivation (rec {
     })
 
     ../../llvm-7-musl.patch
-  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+  ] ++ lib.optionals enablePolly [
+    ./gnu-install-dirs-polly.patch
+    # Add missing isl header includess required to build LLVM 7 + Polly with clang 16.
+    (fetchpatch {
+      name = "polly-ppcg-isl-headers.patch";
+      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
+      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
+      extraPrefix = "tools/polly/lib/External/ppcg/";
+      stripLen = 1;
+    })
+  ];
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
index 8a0fea85e260..7cef04347429 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
@@ -117,7 +117,17 @@ in stdenv.mkDerivation (rec {
       relative = "llvm";
       hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
     })
-  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+  ] ++ lib.optionals enablePolly [
+    ./gnu-install-dirs-polly.patch
+    # Add missing isl header includess required to build LLVM 8 + Polly with clang 16.
+    (fetchpatch {
+      name = "polly-ppcg-isl-headers.patch";
+      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
+      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
+      extraPrefix = "tools/polly/lib/External/ppcg/";
+      stripLen = 1;
+    })
+  ];
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
index 526030d6b34d..75c786855973 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -115,7 +115,17 @@ in stdenv.mkDerivation (rec {
       relative = "llvm";
       hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
     })
-  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+  ] ++ lib.optionals enablePolly [
+    ./gnu-install-dirs-polly.patch
+    # Add missing isl header includess required to build LLVM 9 + Polly with clang 16.
+    (fetchpatch {
+      name = "polly-ppcg-isl-headers.patch";
+      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
+      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
+      extraPrefix = "tools/polly/lib/External/ppcg/";
+      stripLen = 1;
+    })
+  ];
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
diff --git a/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix b/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
index 2d6a48631c05..941ac1bcb2c3 100644
--- a/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
+++ b/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
@@ -6,7 +6,7 @@
 , boehmgc
 , openssl
 , zlib
-, odbcSupport ? true
+, odbcSupport ? !stdenv.isDarwin
 , libiodbc
 }:
 
@@ -31,8 +31,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libffi boehmgc openssl zlib ] ++ lib.optional odbcSupport libiodbc;
 
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=int-conversion";
+
   meta = with lib; {
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin && stdenv.isAarch64;
     description = "An R6RS/R7RS Scheme system";
     longDescription = ''
       Sagittarius Scheme is a free Scheme implementation supporting
diff --git a/nixpkgs/pkgs/development/compilers/tvm/default.nix b/nixpkgs/pkgs/development/compilers/tvm/default.nix
index e72cc3cdb93a..da6b2dc16700 100644
--- a/nixpkgs/pkgs/development/compilers/tvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/tvm/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tvm";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "incubator-tvm";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-WG0vU3lxX5FNs0l37mTE1T7rSEEtfTEisE3cMphzeAk=";
+    sha256 = "sha256-ePBEiT7Yl54KQou/VP/aZEJ6BueH8ocB+/TUhZJkgH8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/compilers/yosys/default.nix b/nixpkgs/pkgs/development/compilers/yosys/default.nix
index 6d086d57b017..833c0db468a7 100644
--- a/nixpkgs/pkgs/development/compilers/yosys/default.nix
+++ b/nixpkgs/pkgs/development/compilers/yosys/default.nix
@@ -3,6 +3,7 @@
 , abc-verifier
 , bash
 , bison
+, boost
 , fetchFromGitHub
 , flex
 , libffi
@@ -18,6 +19,7 @@
 , yosys-bluespec
 , yosys-ghdl
 , yosys-symbiflow
+, enablePython ? true # enable python binding
 }:
 
 # NOTE: as of late 2020, yosys has switched to an automation robot that
@@ -68,6 +70,10 @@ let
     ghdl     = yosys-ghdl;
   } // (yosys-symbiflow);
 
+  boost_python = boost.override {
+    enablePython = true;
+    python = python3;
+  };
 
 in stdenv.mkDerivation (finalAttrs: {
   pname   = "yosys";
@@ -90,7 +96,7 @@ in stdenv.mkDerivation (finalAttrs: {
     (python3.withPackages (pp: with pp; [
       click
     ]))
-  ];
+  ] ++ lib.optional enablePython boost_python;
 
   makeFlags = [ "PREFIX=${placeholder "out"}"];
 
@@ -123,6 +129,10 @@ in stdenv.mkDerivation (finalAttrs: {
       echo "ERROR: yosys version in Makefile isn't equivalent to version of the nix package (allegedly ${finalAttrs.version}), failing."
       exit 1
     fi
+  '' + lib.optionalString enablePython ''
+    echo "ENABLE_PYOSYS := 1" >> Makefile.conf
+    echo "PYTHON_DESTDIR := $out/${python3.sitePackages}" >> Makefile.conf
+    echo "BOOST_PYTHON_LIB := -lboost_python${lib.versions.major python3.version}${lib.versions.minor python3.version}" >> Makefile.conf
   '';
 
   checkTarget = "test";
diff --git a/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix b/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix
index 493381842109..c64380bec23d 100644
--- a/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix
+++ b/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix
@@ -2,11 +2,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "elf2uf2-rs";
-  version = "1.3.7";
+  version = "1.3.8";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-2ZilZIYXCNrKJlkHBsz/2/pMtF+UDfjDlt53ylcwgus=";
+    sha256 = "sha256-wR2rxovUYBW9kKMFJG5lsRhtpI12L+HZe73kQyckEdI=";
   };
 
   nativeBuildInputs = [
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
       Foundation
     ];
 
-  cargoSha256 = "sha256-+3Rqlzkrw9XfM3PelGNbnRGaWQLbzVJ7iJgvGgVt5FE=";
+  cargoHash = "sha256-gSEmNmVpREvD3lDJmcmPnN9keu7SaAIcO7fDhOBhu/E=";
 
   meta = with lib; {
     description = "Convert ELF files to UF2 for USB Flashing Bootloaders";
diff --git a/nixpkgs/pkgs/development/hare-packages/hare-json/default.nix b/nixpkgs/pkgs/development/hare-packages/hare-json/default.nix
new file mode 100644
index 000000000000..d9afdeadf7f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/hare-packages/hare-json/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, hare, harec, fetchFromSourcehut }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hare-json";
+  version = "unstable-2023-09-21";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "hare-json";
+    rev = "e24e5dceb8628ff569338e6c4fdba35a5017c5e2";
+    hash = "sha256-7QRieokqXarKwLfZynS8Rum9JV9hcxod00BWAUwwliM=";
+  };
+
+  nativeBuildInputs = [ hare ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HARECACHE="$NIX_BUILD_TOP/.harecache"
+    export BINOUT="$NIX_BUILD_TOP/.bin"
+
+    makeFlagsArray+=(
+      PREFIX="${builtins.placeholder "out"}"
+    )
+
+    runHook postConfigure
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/hare-json/";
+    description = "This package provides JSON support for Hare";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ starzation ];
+
+    inherit (harec.meta) platforms badPlatforms;
+  };
+})
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
index 7fe56b3f13d0..c0f0f0526cbf 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
@@ -121,22 +121,24 @@ self: super: {
   # For -f-auto see cabal.project in haskell-language-server.
   ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex);
 
-  hiedb =
-    lib.pipe
-      super.hiedb
-      [
-        # hiedb-0.4.3.0 does not yet support algebraic-graphs-0.7.  This patch works
-        # around the issue.
-        # https://github.com/wz1000/HieDb/pull/44
-        (appendPatch
-          (pkgs.fetchpatch {
-            name = "hiedb-algebraic-graphs-0.7.patch";
-            url = "https://github.com/wz1000/HieDB/commit/4ac8e6735321872b9d5d15a9cac492add5555234.patch";
-            hash = "sha256-Iu+M8r+DrpoxUCG6yekgbW+GffoNjjRksnwUJ6jojhE=";
-          }))
-        # Patch does not actually bump the bound in the .cabal file.
-        doJailbreak
-      ];
+  # 2023-12-03: https://github.com/haskell/haskell-language-server/pull/3867
+  hls-plugin-api = appendPatch (fetchpatch {
+    url = "https://github.com/haskell/haskell-language-server/commit/1c884ea856cceeaa3254a2ef68c8ab3a3c353153.patch";
+    relative = "hls-plugin-api";
+    hash = "sha256-vlXPdEvmuIl+cM+u/GdHi8r72r4+Tqtsvx0CGbWEFCQ=";
+  }) (doJailbreak super.hls-plugin-api);
+  ghcide = appendPatch (fetchpatch {
+    url = "https://github.com/haskell/haskell-language-server/commit/1c884ea856cceeaa3254a2ef68c8ab3a3c353153.patch";
+    relative = "ghcide";
+    hash = "sha256-1URXyQf88v3hjFGvNmcIjHxJ5vExH3iI92XktDrQs0U=";
+  }) (doJailbreak super.ghcide);
+  hls-test-utils = doJailbreak super.hls-test-utils;
+  hls-alternate-number-format-plugin = doJailbreak super.hls-alternate-number-format-plugin;
+  hls-cabal-plugin = doJailbreak super.hls-cabal-plugin;
+  hls-call-hierarchy-plugin = doJailbreak super.hls-call-hierarchy-plugin;
+  hls-explicit-fixity-plugin = doJailbreak super.hls-explicit-fixity-plugin;
+  hls-floskell-plugin = doJailbreak super.hls-floskell-plugin;
+  hls-gadt-plugin = doJailbreak super.hls-gadt-plugin;
 
   ###########################################
   ### END HASKELL-LANGUAGE-SERVER SECTION ###
@@ -484,7 +486,6 @@ self: super: {
   # Too strict bounds on algebraic-graphs and bytestring
   # https://github.com/haskell-nix/hnix-store/issues/180
   hnix-store-core = doJailbreak super.hnix-store-core;
-  hnix-store-core_0_6_1_0 = doDistribute (doJailbreak super.hnix-store-core_0_6_1_0);
 
   # Fails for non-obvious reasons while attempting to use doctest.
   focuslist = dontCheck super.focuslist;
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index acde3041b1fa..893d5f398ab7 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -76,7 +76,13 @@ self: super: {
   ChasingBottoms = doJailbreak super.ChasingBottoms;
   chell = doJailbreak super.chell;
   Diff = dontCheck super.Diff;
-  doctest = doJailbreak super.doctest;
+  doctest = overrideCabal (drv: {
+    jailbreak = true;
+    # The test case relies on the Printf module which did not exist in base 4.13
+    testFlags = drv.testFlags or [ ] ++ [
+      "--skip=/Main/doctest (regression tests)/template-haskell-bugfix/"
+    ];
+  }) super.doctest;
   hashable-time = doJailbreak super.hashable-time;
   hledger-lib = doJailbreak super.hledger-lib;  # base >=4.8 && <4.13, easytest >=0.2.1 && <0.3
   integer-logarithms = doJailbreak super.integer-logarithms;
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index 839b3c1bee5b..290b3f6bc736 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -1672,6 +1672,7 @@ broken-packages:
   - fortran-vars # failure in job https://hydra.nixos.org/build/233257719 at 2023-09-02
   - fortytwo # failure in job https://hydra.nixos.org/build/233209552 at 2023-09-02
   - foscam-filename # failure in job https://hydra.nixos.org/build/233237326 at 2023-09-02
+  - fp-ieee # failure in job https://hydra.nixos.org/build/241516602 at 2023-12-03
   - FPretty # failure in job https://hydra.nixos.org/build/233196648 at 2023-09-02
   - fptest # failure in job https://hydra.nixos.org/build/233233288 at 2023-09-02
   - fquery # failure in job https://hydra.nixos.org/build/233196287 at 2023-09-02
@@ -3393,6 +3394,7 @@ broken-packages:
   - MapWith # failure in job https://hydra.nixos.org/build/233237146 at 2023-09-02
   - markdown-kate # failure in job https://hydra.nixos.org/build/233227051 at 2023-09-02
   - marked-pretty # failure in job https://hydra.nixos.org/build/233193892 at 2023-09-02
+  - markov-chain-usage-model # failure in job https://hydra.nixos.org/build/241522329 at 2023-12-03
   - markov-realization # failure in job https://hydra.nixos.org/build/233234901 at 2023-09-02
   - mars # failure in job https://hydra.nixos.org/build/234449730 at 2023-09-13
   - marshal-contt # failure in job https://hydra.nixos.org/build/233231755 at 2023-09-02
@@ -4858,6 +4860,7 @@ broken-packages:
   - semilattices # failure in job https://hydra.nixos.org/build/233223765 at 2023-09-02
   - sendgrid-haskell # failure in job https://hydra.nixos.org/build/233228693 at 2023-09-02
   - sendgrid-v3 # failure in job https://hydra.nixos.org/build/233224134 at 2023-09-02
+  - sensei # failure in job https://hydra.nixos.org/build/241518007 at 2023-12-03
   - sensu-run # failure in job https://hydra.nixos.org/build/233251719 at 2023-09-02
   - sentry # failure in job https://hydra.nixos.org/build/233246813 at 2023-09-02
   - seonbi # failure in job https://hydra.nixos.org/build/233196115 at 2023-09-02
@@ -4924,6 +4927,7 @@ broken-packages:
   - SessionLogger # failure in job https://hydra.nixos.org/build/233235790 at 2023-09-02
   - sessions # failure in job https://hydra.nixos.org/build/233214614 at 2023-09-02
   - sessiontypes # failure in job https://hydra.nixos.org/build/233224975 at 2023-09-02
+  - setdown # failure in job https://hydra.nixos.org/build/241521053 at 2023-12-03
   - setgame # failure in job https://hydra.nixos.org/build/233218664 at 2023-09-02
   - set-of # failure in job https://hydra.nixos.org/build/233202960 at 2023-09-02
   - setoid # failure in job https://hydra.nixos.org/build/233213744 at 2023-09-02
@@ -5529,6 +5533,7 @@ broken-packages:
   - th-traced # failure in job https://hydra.nixos.org/build/233247762 at 2023-09-02
   - thumbnail # failure in job https://hydra.nixos.org/build/233257110 at 2023-09-02
   - thumbnail-plus # failure in job https://hydra.nixos.org/build/233255464 at 2023-09-02
+  - thyme # failure in job https://hydra.nixos.org/build/241518029 at 2023-12-03
   - tianbar # failure in job https://hydra.nixos.org/build/233195811 at 2023-09-02
   - ticket-management # failure in job https://hydra.nixos.org/build/233247134 at 2023-09-02
   - tictactoe3d # failure in job https://hydra.nixos.org/build/233193080 at 2023-09-02
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index c93590d0980c..c22e2f2c31ca 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1,4 +1,4 @@
-# Stackage LTS 21.19
+# Stackage LTS 21.21
 # This file is auto-generated by
 # maintainers/scripts/haskell/update-stackage.sh
 default-package-overrides:
@@ -57,7 +57,7 @@ default-package-overrides:
   - annotated-exception ==0.2.0.5
   - annotated-wl-pprint ==0.7.0
   - ansi-terminal ==0.11.5
-  - ansi-terminal-game ==1.9.1.3
+  - ansi-terminal-game ==1.9.2.0
   - ansi-terminal-types ==0.11.5
   - ansi-wl-pprint ==0.6.9
   - ANum ==0.2.0.2
@@ -121,7 +121,7 @@ default-package-overrides:
   - autodocodec-openapi3 ==0.2.1.1
   - autodocodec-schema ==0.1.0.3
   - autodocodec-yaml ==0.2.0.3
-  - autoexporter ==2.0.0.8
+  - autoexporter ==2.0.0.9
   - auto-update ==0.1.6
   - avro ==0.6.1.2
   - aws ==0.24.1
@@ -249,7 +249,7 @@ default-package-overrides:
   - bugsnag-wai ==1.0.0.1
   - bugsnag-yesod ==1.0.0.1
   - bugzilla-redhat ==1.0.1.1
-  - burrito ==2.0.1.6
+  - burrito ==2.0.1.7
   - bv ==0.5
   - byteable ==0.1.1
   - bytebuild ==0.3.14.0
@@ -263,7 +263,7 @@ default-package-overrides:
   - byteslice ==0.2.11.1
   - bytesmith ==0.3.10.0
   - bytestring-builder ==0.10.8.2.0
-  - bytestring-lexing ==0.5.0.10
+  - bytestring-lexing ==0.5.0.11
   - bytestring-mmap ==0.2.2
   - bytestring-strict-builder ==0.4.5.7
   - bytestring-to-vector ==0.3.0.1
@@ -279,7 +279,7 @@ default-package-overrides:
   - cabal-doctest ==1.0.9
   - cabal-file ==0.1.1
   - cabal-install-solver ==3.8.1.0
-  - cabal-rpm ==2.1.3
+  - cabal-rpm ==2.1.4
   - cache ==0.1.3.0
   - cached-json-file ==0.1.1
   - cacophony ==0.10.1
@@ -304,8 +304,8 @@ default-package-overrides:
   - cassava-conduit ==0.6.5
   - cassava-megaparsec ==2.0.4
   - cast ==0.1.0.2
-  - cborg ==0.2.9.0
-  - cborg-json ==0.2.5.0
+  - cborg ==0.2.10.0
+  - cborg-json ==0.2.6.0
   - cdar-mBound ==0.1.0.4
   - c-enum ==0.1.1.3
   - cereal ==0.5.8.3
@@ -352,7 +352,7 @@ default-package-overrides:
   - codec-beam ==0.2.0
   - code-conjure ==0.5.2
   - code-page ==0.2.1
-  - coinor-clp ==0.0
+  - coinor-clp ==0.0.0.1
   - cointracking-imports ==0.1.0.2
   - collect-errors ==0.1.5.0
   - co-log-concurrent ==0.5.1.0
@@ -407,7 +407,7 @@ default-package-overrides:
   - conferer-aeson ==1.1.0.2
   - conferer-warp ==1.1.0.1
   - ConfigFile ==1.1.4
-  - config-ini ==0.2.6.0
+  - config-ini ==0.2.7.0
   - configuration-tools ==0.6.1
   - configurator ==0.3.0.0
   - configurator-export ==0.1.0.1
@@ -552,7 +552,7 @@ default-package-overrides:
   - dependent-map ==0.4.0.0
   - dependent-sum ==0.7.2.0
   - depq ==0.4.2
-  - deque ==0.4.4
+  - deque ==0.4.4.1
   - deriveJsonNoPrefix ==0.1.0.1
   - derive-storable ==0.3.1.0
   - derive-topdown ==0.0.3.0
@@ -570,7 +570,7 @@ default-package-overrides:
   - diagrams-cairo ==1.4.2.1
   - diagrams-canvas ==1.4.1.2
   - diagrams-contrib ==1.4.5.1
-  - diagrams-core ==1.5.1
+  - diagrams-core ==1.5.1.1
   - diagrams-html5 ==1.4.2
   - diagrams-lib ==1.4.6
   - diagrams-postscript ==1.5.1.1
@@ -682,7 +682,7 @@ default-package-overrides:
   - enclosed-exceptions ==1.0.3
   - ENIG ==0.0.1.0
   - entropy ==0.4.1.10
-  - enummapset ==0.7.1.0
+  - enummapset ==0.7.2.0
   - enumset ==0.1
   - enum-subset-generate ==0.1.0.1
   - enum-text ==0.5.3.0
@@ -775,7 +775,7 @@ default-package-overrides:
   - fitspec ==0.4.10
   - fixed ==0.3
   - fixed-length ==0.2.3.1
-  - fixed-vector ==1.2.2.1
+  - fixed-vector ==1.2.3.0
   - fixed-vector-hetero ==0.6.1.1
   - fix-whitespace ==0.0.11
   - flac ==0.2.1
@@ -786,7 +786,7 @@ default-package-overrides:
   - flay ==0.4
   - FloatingHex ==0.5
   - floatshow ==0.2.4
-  - flow ==2.0.0.3
+  - flow ==2.0.0.4
   - flush-queue ==1.0.0
   - fmlist ==0.9.4
   - fmt ==0.6.3.0
@@ -826,7 +826,7 @@ default-package-overrides:
   - functor-classes-compat ==2.0.0.2
   - functor-combinators ==0.4.1.2
   - fused-effects ==1.1.2.2
-  - fusion-plugin ==0.2.6
+  - fusion-plugin ==0.2.7
   - fusion-plugin-types ==0.1.0
   - fuzzcheck ==0.1.1
   - fuzzy ==0.1.0.1
@@ -895,8 +895,8 @@ default-package-overrides:
   - ghci-hexcalc ==0.1.1.0
   - ghcjs-codemirror ==0.0.0.2
   - ghcjs-perch ==0.3.3.3
-  - ghc-lib ==9.4.7.20230826
-  - ghc-lib-parser ==9.4.7.20230826
+  - ghc-lib ==9.4.8.20231111
+  - ghc-lib-parser ==9.4.8.20231111
   - ghc-lib-parser-ex ==9.4.0.0
   - ghc-paths ==0.1.0.12
   - ghc-prof ==1.4.1.12
@@ -904,7 +904,7 @@ default-package-overrides:
   - ghc-tcplugins-extra ==0.4.5
   - ghc-trace-events ==0.1.2.7
   - ghc-typelits-extra ==0.4.6
-  - ghc-typelits-knownnat ==0.7.9
+  - ghc-typelits-knownnat ==0.7.10
   - ghc-typelits-natnormalise ==0.7.9
   - ghc-typelits-presburger ==0.7.2.0
   - ghost-buster ==0.1.1.0
@@ -932,7 +932,7 @@ default-package-overrides:
   - gi-soup ==2.4.28
   - githash ==0.1.7.0
   - github ==0.28.0.1
-  - github-release ==2.0.0.8
+  - github-release ==2.0.0.9
   - github-rest ==1.1.4
   - github-types ==0.2.1
   - github-webhooks ==0.17.0
@@ -1016,12 +1016,12 @@ default-package-overrides:
   - haskell-src-exts ==1.23.1
   - haskell-src-exts-simple ==1.23.0.0
   - haskell-src-exts-util ==0.2.5
-  - haskell-src-meta ==0.8.12
+  - haskell-src-meta ==0.8.13
   - haskoin-core ==0.21.2
   - haskoin-node ==0.18.1
   - haskoin-store-data ==0.65.5
   - hasktags ==0.72.0
-  - hasql ==1.6.3.3
+  - hasql ==1.6.3.4
   - hasql-dynamic-statements ==0.3.1.2
   - hasql-implicits ==0.1.1
   - hasql-interpolate ==0.1.0.4
@@ -1070,7 +1070,7 @@ default-package-overrides:
   - hfsevents ==0.1.6
   - hgal ==2.0.0.3
   - hidapi ==0.1.8
-  - hi-file-parser ==0.1.5.0
+  - hi-file-parser ==0.1.6.0
   - highlighting-kate ==0.6.4
   - hindent ==6.0.0
   - hinfo ==0.0.3.0
@@ -1114,11 +1114,11 @@ default-package-overrides:
   - hpc-lcov ==1.1.1
   - HPDF ==1.6.2
   - hpp ==0.6.5
-  - hpqtypes ==1.11.1.1
+  - hpqtypes ==1.11.1.2
   - hpqtypes-extras ==1.16.4.4
   - hreader ==1.1.1
   - hreader-lens ==0.1.3.0
-  - hruby ==0.5.0.0
+  - hruby ==0.5.1.0
   - hsass ==0.8.0
   - hs-bibutils ==6.10.0.0
   - hsc2hs ==0.68.10
@@ -1159,7 +1159,7 @@ default-package-overrides:
   - hspec-core ==2.10.10
   - hspec-discover ==2.10.10
   - hspec-expectations ==0.8.2
-  - hspec-expectations-json ==1.0.2.0
+  - hspec-expectations-json ==1.0.2.1
   - hspec-expectations-lifted ==0.10.0
   - hspec-expectations-pretty-diff ==0.7.2.6
   - hspec-golden ==0.2.1.0
@@ -1311,7 +1311,7 @@ default-package-overrides:
   - intset-imperative ==0.1.0.0
   - invariant ==0.6.2
   - invert ==1.0.0.4
-  - invertible-grammar ==0.1.3.4
+  - invertible-grammar ==0.1.3.5
   - io-machine ==0.2.0.0
   - io-manager ==0.1.0.4
   - io-memoize ==1.1.1.0
@@ -1350,7 +1350,7 @@ default-package-overrides:
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json ==0.10
-  - json-feed ==2.0.0.9
+  - json-feed ==2.0.0.10
   - jsonifier ==0.2.1.2
   - jsonpath ==0.3.0.0
   - json-rpc ==1.0.4
@@ -1387,7 +1387,7 @@ default-package-overrides:
   - koji ==0.0.2
   - krank ==0.3.0
   - labels ==0.3.3
-  - lackey ==2.0.0.6
+  - lackey ==2.0.0.7
   - LambdaHack ==0.11.0.1
   - lame ==0.2.2
   - language-avro ==0.1.4.0
@@ -1440,7 +1440,7 @@ default-package-overrides:
   - libgit ==0.3.1
   - liboath-hs ==0.0.1.2
   - libyaml ==0.1.2
-  - lifted-async ==0.10.2.4
+  - lifted-async ==0.10.2.5
   - lifted-base ==0.2.3.12
   - lift-generics ==0.2.1
   - lift-type ==0.1.1.1
@@ -1519,7 +1519,7 @@ default-package-overrides:
   - mathlist ==0.2.0.0
   - matplotlib ==0.7.7
   - matrices ==0.5.0
-  - matrix ==0.3.6.1
+  - matrix ==0.3.6.3
   - matrix-as-xyz ==0.1.2.2
   - matrix-market-attoparsec ==0.1.1.3
   - matrix-static ==0.3
@@ -1721,7 +1721,7 @@ default-package-overrides:
   - non-negative ==0.1.2
   - normaldistribution ==1.1.0.3
   - not-gloss ==0.7.7.0
-  - nothunks ==0.1.4
+  - nothunks ==0.1.5
   - no-value ==1.0.0.0
   - nowdoc ==0.1.1.0
   - nqe ==0.6.4
@@ -1835,7 +1835,7 @@ default-package-overrides:
   - pathtype ==0.8.1.2
   - path-utils ==0.1.1.0
   - pathwalk ==0.3.1.2
-  - patrol ==1.0.0.5
+  - patrol ==1.0.0.6
   - pattern-arrows ==0.0.2
   - pava ==0.1.1.4
   - pcf-font ==0.2.2.1
@@ -1892,7 +1892,7 @@ default-package-overrides:
   - pipes-ordered-zip ==1.2.1
   - pipes-parse ==3.0.9
   - pipes-random ==1.0.0.5
-  - pipes-safe ==2.3.4
+  - pipes-safe ==2.3.5
   - pipes-text ==1.0.1
   - pipes-wai ==3.2.0
   - pkgtreediff ==0.6.0
@@ -1942,7 +1942,7 @@ default-package-overrides:
   - pretty-hex ==1.1
   - prettyprinter ==1.7.1
   - prettyprinter-ansi-terminal ==1.1.3
-  - prettyprinter-combinators ==0.1.1.1
+  - prettyprinter-combinators ==0.1.2
   - prettyprinter-compat-annotated-wl-pprint ==1.1
   - prettyprinter-compat-ansi-wl-pprint ==1.0.2
   - prettyprinter-compat-wl-pprint ==1.0.1
@@ -1987,7 +1987,7 @@ default-package-overrides:
   - PSQueue ==1.2.0
   - psqueues ==0.2.8.0
   - pthread ==0.2.1
-  - ptr ==0.16.8.4
+  - ptr ==0.16.8.5
   - ptr-poker ==0.1.2.13
   - pulse-simple ==0.1.14
   - pureMD5 ==2.1.4
@@ -2026,7 +2026,7 @@ default-package-overrides:
   - rainbow ==0.34.2.2
   - rainbox ==0.26.0.0
   - ral ==0.2.1
-  - rampart ==2.0.0.6
+  - rampart ==2.0.0.7
   - ramus ==0.1.2
   - rando ==0.0.0.4
   - random ==1.2.1.1
@@ -2042,9 +2042,9 @@ default-package-overrides:
   - rank1dynamic ==0.4.1
   - Rasterific ==0.7.5.4
   - rasterific-svg ==0.3.3.2
-  - ratel ==2.0.0.9
+  - ratel ==2.0.0.10
   - rate-limit ==1.4.3
-  - ratel-wai ==2.0.0.4
+  - ratel-wai ==2.0.0.5
   - ratio-int ==0.1.2
   - rattle ==0.2
   - rattletrap ==12.0.3
@@ -2163,7 +2163,7 @@ default-package-overrides:
   - safe-money ==0.9.1
   - SafeSemaphore ==0.10.1
   - saltine ==0.2.1.0
-  - salve ==2.0.0.3
+  - salve ==2.0.0.4
   - sample-frame ==0.0.4
   - sample-frame-np ==0.0.5
   - sampling ==0.3.5
@@ -2210,7 +2210,7 @@ default-package-overrides:
   - seqid-streams ==0.7.2
   - sequence-formats ==1.7.1
   - sequenceTools ==1.5.3.1
-  - serialise ==0.2.6.0
+  - serialise ==0.2.6.1
   - servant ==0.19.1
   - servant-auth ==0.4.1.0
   - servant-auth-client ==0.4.1.1
@@ -2257,7 +2257,7 @@ default-package-overrides:
   - setlocale ==1.0.0.10
   - set-monad ==0.3.0.0
   - sets ==0.0.6.2
-  - sexp-grammar ==2.3.4.1
+  - sexp-grammar ==2.3.4.2
   - SHA ==1.6.4.4
   - shake ==0.19.7
   - shake-plus ==0.3.4.0
@@ -2396,7 +2396,7 @@ default-package-overrides:
   - Stream ==0.4.7.2
   - streaming ==0.2.4.0
   - streaming-attoparsec ==1.0.0.1
-  - streaming-bytestring ==0.3.1
+  - streaming-bytestring ==0.3.2
   - streaming-commons ==0.2.2.6
   - streaming-wai ==0.1.1
   - streamly ==0.9.0
@@ -2409,7 +2409,7 @@ default-package-overrides:
   - strict-base-types ==0.8
   - strict-concurrency ==0.2.4.3
   - strict-lens ==0.4.0.3
-  - strict-list ==0.1.7.2
+  - strict-list ==0.1.7.4
   - strict-tuple ==0.1.5.3
   - strict-wrapper ==0.0.0.0
   - stringable ==0.1.3
@@ -2428,7 +2428,7 @@ default-package-overrides:
   - stripe-scotty ==1.1.0.4
   - stripe-signature ==1.0.0.16
   - stripe-wreq ==1.0.1.16
-  - strive ==6.0.0.9
+  - strive ==6.0.0.10
   - structs ==0.1.9
   - structured ==0.1.1
   - structured-cli ==2.7.0.1
@@ -2531,8 +2531,8 @@ default-package-overrides:
   - tensors ==0.1.5
   - termbox ==1.1.0.2
   - termbox-banana ==1.0.0
-  - termbox-bindings-c ==0.1.0
-  - termbox-bindings-hs ==0.1.0
+  - termbox-bindings-c ==0.1.0.1
+  - termbox-bindings-hs ==0.1.1
   - termbox-tea ==0.1.0.1
   - terminal-progress-bar ==0.4.2
   - terminal-size ==0.3.4
@@ -2550,7 +2550,7 @@ default-package-overrides:
   - text-binary ==0.2.1.1
   - text-builder ==0.6.7
   - text-builder-dev ==0.3.3.2
-  - text-builder-linear ==0.1.1.1
+  - text-builder-linear ==0.1.2
   - text-conversions ==0.3.1.1
   - text-format ==0.3.2.1
   - text-icu ==0.8.0.4
@@ -2778,7 +2778,7 @@ default-package-overrides:
   - vector-buffer ==0.4.1
   - vector-builder ==0.3.8.4
   - vector-bytes-instances ==0.1.1
-  - vector-extras ==0.2.8
+  - vector-extras ==0.2.8.1
   - vector-hashtables ==0.1.1.3
   - vector-instances ==3.4.2
   - vector-mmap ==0.0.3
@@ -2855,7 +2855,7 @@ default-package-overrides:
   - wide-word ==0.1.6.0
   - Win32-notify ==0.3.0.3
   - windns ==0.1.0.1
-  - witch ==1.2.0.2
+  - witch ==1.2.0.3
   - withdependencies ==0.3.0
   - witherable ==0.4.2
   - within ==0.2.0.1
@@ -2925,7 +2925,7 @@ default-package-overrides:
   - 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.2
+  - yesod-auth-oauth2 ==0.7.1.3
   - yesod-auth-oidc ==0.1.4
   - yesod-bin ==1.6.2.2
   - yesod-core ==1.6.25.0
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index e3525ba90760..87df614acb81 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -116,6 +116,7 @@ dont-distribute-packages:
  - FiniteCategoriesGraphViz
  - FiniteMap
  - FirstOrderTheory
+ - Flint2-Examples
  - Flippi
  - ForSyDe
  - Forestry
@@ -1309,6 +1310,7 @@ dont-distribute-packages:
  - fast-bech32
  - fastcdc
  - fastirc
+ - fastparser
  - fault-tree
  - fay-base
  - fay-builder
@@ -3457,6 +3459,7 @@ dont-distribute-packages:
  - samtools-conduit
  - samtools-enumerator
  - samtools-iteratee
+ - sandwich_0_2_0_0
  - sarsi
  - sasha
  - sasl
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
index fcd37d55f1cd..3f7672fb8e18 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
@@ -1095,7 +1095,7 @@ self: super: builtins.intersectAttrs super {
     '';
   }) (lib.pipe
         (super.cachix.override {
-          hnix-store-core = self.hnix-store-core_0_6_1_0;
+          hnix-store-core = self.hnix-store-core_0_7_0_0;
           nix = self.hercules-ci-cnix-store.nixPackage;
         })
         [
diff --git a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
index e608ebeec372..d67256774b40 100644
--- a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
@@ -6390,21 +6390,44 @@ self: {
      }) {};
 
   "Flint2" = callPackage
-    ({ mkDerivation, base, flint, gmp, groups, QuickCheck }:
+    ({ mkDerivation, base, containers, flint, gmp, groups, QuickCheck
+     }:
      mkDerivation {
        pname = "Flint2";
-       version = "0.1.0.1";
-       sha256 = "1jw0x82mgqy4pxwxpyv0crz7n72kv255iq4pxr8c5xkvsw6w2w5i";
-       libraryHaskellDepends = [ base groups QuickCheck ];
-       librarySystemDepends = [ flint gmp ];
+       version = "0.1.0.5";
+       sha256 = "0hldi7kknhb4kl228b658skn2irakmshb84dqmdgpy76v5b7klxx";
+       libraryHaskellDepends = [ base containers groups QuickCheck ];
+       librarySystemDepends = [ flint ];
        libraryPkgconfigDepends = [ flint gmp ];
        testHaskellDepends = [ base ];
        description = "Haskell bindings for the flint library for number theory";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) flint; inherit (pkgs) gmp;};
 
+  "Flint2-Examples" = callPackage
+    ({ mkDerivation, base, containers, filepath, Flint2, gloss
+     , gloss-juicy, JuicyPixels, mtl, optparse-applicative, time, timeit
+     }:
+     mkDerivation {
+       pname = "Flint2-Examples";
+       version = "0.1.0.2";
+       sha256 = "1dyy1wfllxrx56aws4s55bpyiw89ad2jm033pa7zhv9628g8ymar";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base containers filepath Flint2 gloss gloss-juicy JuicyPixels mtl
+         optparse-applicative time timeit
+       ];
+       testHaskellDepends = [
+         base containers Flint2 mtl optparse-applicative timeit
+       ];
+       description = "Examples for the Flint2 library";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "Flippi" = callPackage
     ({ mkDerivation, base, cgi, containers, directory, haskell98
      , old-time, parsec, xhtml
@@ -10446,6 +10469,28 @@ self: {
        broken = true;
      }) {CacBDD = null;};
 
+  "HasChor" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, http-client
+     , random, servant, servant-client, servant-server, split
+     , template-haskell, time, transformers, unordered-containers, warp
+     }:
+     mkDerivation {
+       pname = "HasChor";
+       version = "0.1.0.1";
+       sha256 = "062gn52146vhlfc71zlbx3sbfkid5if22yhba9ngnc0wb0115k81";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring http-client servant servant-client servant-server
+         template-haskell unordered-containers warp
+       ];
+       executableHaskellDepends = [
+         async base containers random split time transformers
+       ];
+       description = "Functional choreographic programming in Haskell";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "HasGP" = callPackage
     ({ mkDerivation, base, haskell98, hmatrix, hmatrix-special, mtl
      , parsec, random
@@ -20081,8 +20126,8 @@ self: {
        pname = "Spock-core";
        version = "0.14.0.1";
        sha256 = "0a93v9pxbvd9qqpx9rnv6gqpc5y8xh5dkfi0lkc566pj9cv8bpad";
-       revision = "1";
-       editedCabalFile = "1kxi4bigll1gn9rcp8x3h4waycihycvh6bhvfjzxdyzhm3ifq48a";
+       revision = "2";
+       editedCabalFile = "09x9xvhdw0k0f9qswbd8g32kjsa34i4rdy117hl7zk0s5scin02a";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
          cookie hashable http-api-data http-types hvect mmorph monad-control
@@ -35880,35 +35925,6 @@ self: {
 
   "ansi-terminal-game" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, bytestring, cereal
-     , clock, colour, containers, exceptions, hspec, hspec-discover
-     , linebreak, mintty, mtl, QuickCheck, random, split, terminal-size
-     , timers-tick, unidecode
-     }:
-     mkDerivation {
-       pname = "ansi-terminal-game";
-       version = "1.9.1.3";
-       sha256 = "0ln6cx98g7nv6yv600m7p721pscln1c10wkmmykwlfvsrrvnvk7w";
-       revision = "2";
-       editedCabalFile = "01kfj2qz0s5jygd49ixj2cgzcmikbqb3rhwxs4n8cx3acqzx6cpx";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         ansi-terminal array base bytestring cereal clock colour containers
-         exceptions linebreak mintty mtl QuickCheck random split
-         terminal-size timers-tick unidecode
-       ];
-       testHaskellDepends = [
-         ansi-terminal array base bytestring cereal clock colour containers
-         exceptions 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_2_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
@@ -35932,7 +35948,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "cross-platform library for terminal games";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ansi-terminal-types" = callPackage
@@ -38158,8 +38173,8 @@ self: {
        pname = "arch-hs";
        version = "0.11.1.0";
        sha256 = "1f50id3xplp8zwi379n6xi4in01gms97qbqnfxnsqzrv47xszwj4";
-       revision = "3";
-       editedCabalFile = "1924crg373xid7pxcpi178njmiiaq1m8cf59y96zjhaw4z07054q";
+       revision = "4";
+       editedCabalFile = "1qizarnjfzlml2v0bpdswhxdapakyhqil4avvmflzg4s3fm31m7l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -42067,21 +42082,6 @@ self: {
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
        pname = "autoexporter";
-       version = "2.0.0.8";
-       sha256 = "1a4647kh0jzpl8lkm5vl4yg9307dnfxlvlk2pppnahxdy47r6vnk";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base Cabal directory filepath ];
-       executableHaskellDepends = [ base Cabal directory filepath ];
-       description = "Automatically re-export modules";
-       license = lib.licenses.mit;
-       mainProgram = "autoexporter";
-     }) {};
-
-  "autoexporter_2_0_0_9" = callPackage
-    ({ mkDerivation, base, Cabal, directory, filepath }:
-     mkDerivation {
-       pname = "autoexporter";
        version = "2.0.0.9";
        sha256 = "1rkql1v29gsgq3y9gmsrfxgm43rgwhk32g32gjxbfgr4ky79696g";
        isLibrary = true;
@@ -42090,7 +42090,6 @@ self: {
        executableHaskellDepends = [ base Cabal directory filepath ];
        description = "Automatically re-export modules";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "autoexporter";
      }) {};
 
@@ -47849,6 +47848,8 @@ self: {
        pname = "binary-serialise-cbor";
        version = "0.2.2.0";
        sha256 = "16yhimka17dza5nda62927k5x66c0yrsxzz92kya3gicd6vaga2g";
+       revision = "1";
+       editedCabalFile = "1kampfsd9mm2qv726v4dyq0ssx8ismj4hjm61h0jjx9644c8cr18";
        libraryHaskellDepends = [ base bytestring cborg serialise ];
        description = "Yet Another Binary Serialisation Library (compatibility shim)";
        license = lib.licenses.bsd3;
@@ -52108,16 +52109,16 @@ self: {
      }) {};
 
   "bookhound" = callPackage
-    ({ mkDerivation, base, containers, hspec, hspec-discover
+    ({ mkDerivation, base, containers, hspec, hspec-discover, mtl
      , QuickCheck, quickcheck-instances, text, time
      }:
      mkDerivation {
        pname = "bookhound";
-       version = "0.1.25.0";
-       sha256 = "0kdsr01iwnf9jzb4sfh7mcsnffzxmvfiziz5h2214py8ya3rbi5c";
-       libraryHaskellDepends = [ base containers text time ];
+       version = "0.2.0";
+       sha256 = "0gv9n2nfgcfj1sv68c9llkf4f60vcb5qmcyjw4ijg2dd344yl6z1";
+       libraryHaskellDepends = [ base containers mtl text time ];
        testHaskellDepends = [
-         base containers hspec QuickCheck quickcheck-instances text time
+         base containers hspec mtl QuickCheck quickcheck-instances text time
        ];
        testToolDepends = [ hspec-discover ];
        description = "Simple Parser Combinators";
@@ -53073,8 +53074,8 @@ self: {
     ({ mkDerivation, array, base, mtl, unix }:
      mkDerivation {
        pname = "brainfuck";
-       version = "0.1.0.3";
-       sha256 = "1xlbcvcx6dvrj4x5vqjyvyhazq0hzl1fa17xfcb3m2pc241kgd8d";
+       version = "0.1.0.4";
+       sha256 = "01sgz28jbrjb61rx173ar0kwmh00j2zk4lnjgfc8apwrjigsbr6k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ array base mtl ];
@@ -53389,8 +53390,8 @@ self: {
     ({ mkDerivation, base, brick, containers, microlens, vector }:
      mkDerivation {
        pname = "brick-list-skip";
-       version = "0.1.1.8";
-       sha256 = "0zaqyhvzw5mw5xj3n71578nslg5h3i5k354xck3f2si2sp73kzxm";
+       version = "0.1.1.9";
+       sha256 = "1dmvpnv904vqyv0z5lf36kdsxvdb9r2k637lrsbis1jvmg9719cm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base brick containers microlens vector ];
@@ -53462,8 +53463,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick-tabular-list";
-       version = "2.2.0.6";
-       sha256 = "1ba3g0qx0hgybj9yiy7afrxfj6nyfqqhj8pwf7lcb5jpm5sqn91d";
+       version = "2.2.0.7";
+       sha256 = "12qn87lzvic12d7g84a23vddiwsk8qi5r5by9569pra3zi7790kc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -54841,26 +54842,6 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "2.0.1.6";
-       sha256 = "1q8ahf5czy2lc8jvlx648ns6ir7q6wmb3zrgzksvznrrb8r163hv";
-       libraryHaskellDepends = [
-         base bytestring containers parsec template-haskell text
-         transformers
-       ];
-       testHaskellDepends = [
-         base bytestring containers hspec parsec QuickCheck template-haskell
-         text transformers
-       ];
-       description = "Parse and render URI templates";
-       license = lib.licenses.mit;
-     }) {};
-
-  "burrito_2_0_1_7" = callPackage
-    ({ mkDerivation, base, bytestring, containers, hspec, parsec
-     , QuickCheck, template-haskell, text, transformers
-     }:
-     mkDerivation {
-       pname = "burrito";
        version = "2.0.1.7";
        sha256 = "1b7xijr8ry4q1k3ix2nzbrvaiwrk4gdzbl79kxl3d7s2zxgnngww";
        libraryHaskellDepends = [
@@ -54873,7 +54854,6 @@ self: {
        ];
        description = "Parse and render URI templates";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "burst-detection" = callPackage
@@ -55768,8 +55748,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytestring-lexing";
-       version = "0.5.0.10";
-       sha256 = "0mvqiss323vwvgqx2pv8cww1mkx29hpi094ff54hx545mmvhwb16";
+       version = "0.5.0.11";
+       sha256 = "16qvykzai61dyc403cplxar8frd0p4x3681zrl874ck3c19qj0jw";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base bytestring tasty tasty-quickcheck tasty-smallcheck
@@ -57501,29 +57481,6 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-rpm";
-       version = "2.1.3";
-       sha256 = "0wkb1h08ns93gkwycbsi7ap49px05kaybw5badjg1633n0i2bmww";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         aeson base bytestring Cabal cached-json-file directory extra
-         filepath http-client http-client-tls http-conduit http-query
-         optparse-applicative process simple-cabal simple-cmd
-         simple-cmd-args text time unix
-       ];
-       description = "RPM packaging tool for Haskell Cabal-based packages";
-       license = lib.licenses.gpl3Only;
-       mainProgram = "cabal-rpm";
-     }) {};
-
-  "cabal-rpm_2_1_4" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, Cabal, cached-json-file
-     , directory, extra, filepath, http-client, http-client-tls
-     , http-conduit, http-query, optparse-applicative, process
-     , simple-cabal, simple-cmd, simple-cmd-args, text, time, unix
-     }:
-     mkDerivation {
-       pname = "cabal-rpm";
        version = "2.1.4";
        sha256 = "059vqbh97cydybvbwbn5cgrpw3bx7rkizy8j0nsqfyaxjvvj8lvg";
        isLibrary = false;
@@ -57536,7 +57493,6 @@ self: {
        ];
        description = "RPM packaging tool for Haskell Cabal-based packages";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "cabal-rpm";
      }) {};
 
@@ -59102,6 +59058,8 @@ self: {
        pname = "canonical-json";
        version = "0.6.0.1";
        sha256 = "0znfbazzcx33xi2gi44vqhhdl9ja308zkxydarwkacwd0pckkprk";
+       revision = "1";
+       editedCabalFile = "180c35znblvf3j59si48n4a9qpwwprq8d7xh86fpmjj2sn2g1sj8";
        libraryHaskellDepends = [
          base bytestring containers deepseq parsec pretty
        ];
@@ -60435,6 +60393,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "cassava-megaparsec_2_1_0" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, hspec, hspec-megaparsec
+     , megaparsec, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cassava-megaparsec";
+       version = "2.1.0";
+       sha256 = "02nw6rxb8yvn09qrbl7msdjl7vk759vyzz8dighgi2b94vzwdanv";
+       libraryHaskellDepends = [
+         base bytestring cassava megaparsec unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base bytestring cassava hspec hspec-megaparsec vector
+       ];
+       description = "Megaparsec parser of CSV files that plays nicely with Cassava";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cassava-records" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cassava, containers
      , foldl, HUnit, QuickCheck, tasty, tasty-hunit, tasty-quickcheck
@@ -60944,8 +60921,8 @@ self: {
        pname = "cbor-tool";
        version = "0.2.2.0";
        sha256 = "0rsnnz1zh9jyjif94lrdppzaa41hypqs1r5dlyzbwlw1m75g286p";
-       revision = "4";
-       editedCabalFile = "1wr6dlijy5j1b88bfmyvzj5pdipw6rcb40gfik678apr2q7gw0i6";
+       revision = "5";
+       editedCabalFile = "0lwxyz8c9mrhq4lqdwwv0y82islakbhwv1jlmjw20ha47g1mg69n";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -60968,8 +60945,8 @@ self: {
      }:
      mkDerivation {
        pname = "cborg";
-       version = "0.2.9.0";
-       sha256 = "1apwdb0y08l3mbxb6pb006355nnn1lag035dvm006v7h4cbqvd6w";
+       version = "0.2.10.0";
+       sha256 = "15y7p5rsv76fpklh4rgrxlxxaivpbchxdfdw96mqqjgw7060gzhp";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-bignum ghc-prim half
          primitive text
@@ -60984,19 +60961,22 @@ self: {
      }) {};
 
   "cborg-json" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cborg
-     , criterion, deepseq, directory, process, scientific, text
-     , unordered-containers, vector, zlib
+    ({ mkDerivation, aeson, aeson-pretty, base, base-orphans
+     , base16-bytestring, base64-bytestring, bytestring, cborg
+     , criterion, deepseq, directory, process, QuickCheck, scientific
+     , tasty, tasty-hunit, text, unordered-containers, vector, zlib
      }:
      mkDerivation {
        pname = "cborg-json";
-       version = "0.2.5.0";
-       sha256 = "1m3w0yyp6xb07fx04g5c52pb0b46vpkgpi32w1c8bz867x2p7hsq";
-       revision = "2";
-       editedCabalFile = "1bd2s7dr9jl88pd2wwllb8badhshafnnkq6lmds93sxavv4i92r8";
+       version = "0.2.6.0";
+       sha256 = "1p6xdimwypmlsc0zdyw1vyyapnhwn2g8b9n0a83ca6h4r90722yv";
        libraryHaskellDepends = [
-         aeson aeson-pretty base cborg scientific text unordered-containers
-         vector
+         aeson aeson-pretty base base64-bytestring cborg scientific text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base base-orphans base16-bytestring bytestring cborg
+         QuickCheck tasty tasty-hunit text
        ];
        benchmarkHaskellDepends = [
          aeson base bytestring cborg criterion deepseq directory process
@@ -64415,8 +64395,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-ghc";
-       version = "1.8.0";
-       sha256 = "1cjqm23d2977aiya81i9q1npyd4zxmbv81k4agqggdkl8h9rcn8w";
+       version = "1.8.1";
+       sha256 = "1xjf3z043sn7r35pkbpyxl4agyl2hz3mj7iikridxsddjqrmr5y4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -64451,8 +64431,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-lib";
-       version = "1.8.0";
-       sha256 = "1f2kmgasgbpnw0gd308mhzc7qb4ng36js7l9gvk0xgm425lxavq0";
+       version = "1.8.1";
+       sha256 = "1s31d0pdzm5zk62gz4g1xp2yalyal2gk3n46y2rwpxl440mchyy5";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -64493,8 +64473,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-lib-hedgehog";
-       version = "1.8.0";
-       sha256 = "0bmlrwwm5hp67fm8a9d089fwmrcnknvd2gijriwzk1kxbvfyhynk";
+       version = "1.8.1";
+       sha256 = "1cnw5i6k376l293f1vlihc22ilapms8brl7726rxr2whrq5sb7r8";
        libraryHaskellDepends = [
          base clash-lib containers data-binary-ieee754 fakedata
          ghc-typelits-knownnat ghc-typelits-natnormalise hedgehog
@@ -64536,8 +64516,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-prelude";
-       version = "1.8.0";
-       sha256 = "01psmi229lgpfc10p0p4gvpqfklwfmgvjwvqifnv77d4jbqjimiq";
+       version = "1.8.1";
+       sha256 = "13y43lsw55jpmr04x6yrrppma9qdqzlvrwbs4jkvc3g7jmydnb3y";
        libraryHaskellDepends = [
          array arrows base binary bytestring constraints containers
          data-binary-ieee754 data-default-class deepseq extra ghc-bignum
@@ -64568,8 +64548,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-prelude-hedgehog";
-       version = "1.8.0";
-       sha256 = "0vll5ff7dhjx2q9xpj3q961dmhgi306w577kxfm11sccvjix2pbh";
+       version = "1.8.1";
+       sha256 = "12g2z845j2pqb3jxkyrj038l8pp9a8sw5fjay5l1pwl8kh8winkk";
        libraryHaskellDepends = [
          base clash-prelude ghc-typelits-knownnat ghc-typelits-natnormalise
          hedgehog text
@@ -67640,31 +67620,6 @@ self: {
      }:
      mkDerivation {
        pname = "coinor-clp";
-       version = "0.0";
-       sha256 = "1wfi1f4g3n0prks74iww5092nkiyl0d6hmf2yfqlvj6zwcly3kfn";
-       libraryHaskellDepends = [
-         base comfort-array deepseq linear-programming non-empty QuickCheck
-         transformers utility-ht
-       ];
-       libraryPkgconfigDepends = [ clp ];
-       testHaskellDepends = [
-         base comfort-array doctest-exitcode-stdio doctest-lib
-         linear-programming non-empty QuickCheck random transformers
-         utility-ht
-       ];
-       description = "Linear Programming using COIN-OR/CLP and comfort-array";
-       license = lib.licenses.bsd3;
-       badPlatforms = [ "aarch64-linux" ];
-       maintainers = [ lib.maintainers.thielema ];
-     }) {inherit (pkgs) clp;};
-
-  "coinor-clp_0_0_0_1" = callPackage
-    ({ mkDerivation, base, clp, comfort-array, deepseq
-     , doctest-exitcode-stdio, doctest-lib, linear-programming
-     , non-empty, QuickCheck, random, transformers, utility-ht
-     }:
-     mkDerivation {
-       pname = "coinor-clp";
        version = "0.0.0.1";
        sha256 = "02jrmb0fbgwzhgcnhv4hh1flz87rvs1xq3sbjrjac7cxxyl3inba";
        libraryHaskellDepends = [
@@ -67680,7 +67635,6 @@ self: {
        description = "Linear Programming using COIN-OR/CLP and comfort-array";
        license = lib.licenses.bsd3;
        badPlatforms = [ "aarch64-linux" ];
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.thielema ];
      }) {inherit (pkgs) clp;};
 
@@ -70799,6 +70753,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "cond_0_5_1" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "cond";
+       version = "0.5.1";
+       sha256 = "06pm5y8f9jybw9ns1p4rmf9z3nrwl394814f77lsmsqv4z0kn58q";
+       libraryHaskellDepends = [ base ];
+       description = "Basic conditional and boolean operators with monadic variants";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "conditional-restriction-parser" = callPackage
     ({ mkDerivation, base, cmdargs, hourglass, hspec, QuickCheck }:
      mkDerivation {
@@ -71801,24 +71767,6 @@ self: {
      }:
      mkDerivation {
        pname = "config-ini";
-       version = "0.2.6.0";
-       sha256 = "0pvsvl3svh7y3pi7kw4fsnl6p92sxl4sa0px26c135klvwsq2a1a";
-       libraryHaskellDepends = [
-         base containers megaparsec text transformers unordered-containers
-       ];
-       testHaskellDepends = [
-         base containers directory hedgehog ini text unordered-containers
-       ];
-       description = "A library for simple INI-based configuration files";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "config-ini_0_2_7_0" = callPackage
-    ({ mkDerivation, base, containers, directory, hedgehog, ini
-     , megaparsec, text, transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "config-ini";
        version = "0.2.7.0";
        sha256 = "00b9b590566hrxrjn31jkq70768dnrzzsjrasrnhdvd6p92iq5rs";
        libraryHaskellDepends = [
@@ -71829,7 +71777,6 @@ self: {
        ];
        description = "A library for simple INI-based configuration files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "config-manager" = callPackage
@@ -79917,6 +79864,8 @@ self: {
        pname = "data-clist";
        version = "0.2";
        sha256 = "04mj0d1yp0l27v2my51w9q5zpdrdhp29fdyvmwqgxxp8f6yiwfhw";
+       revision = "1";
+       editedCabalFile = "09922p8ydfgqsy29p9qfiss70bks85bzz6g9s3gzrd93lpzhiba7";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Simple functional ring type";
@@ -83779,6 +83728,22 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "delaunayNd" = callPackage
+    ({ mkDerivation, base, containers, extra, hashable, ilist
+     , insert-ordered-containers, split, Unique
+     }:
+     mkDerivation {
+       pname = "delaunayNd";
+       version = "0.1.0.1";
+       sha256 = "13zqzfbhm5hqij2ispk4b6gy04nm5fnlzmcrp07yn68m5mny3lp1";
+       libraryHaskellDepends = [
+         base containers extra hashable ilist insert-ordered-containers
+         split Unique
+       ];
+       description = "Delaunay tessellation";
+       license = lib.licenses.gpl3Only;
+     }) {};
+
   "delay" = callPackage
     ({ mkDerivation, async, base, dimensional, exceptions, mtl, time
      , unbounded-delays
@@ -84436,24 +84401,6 @@ self: {
      }) {};
 
   "deque" = callPackage
-    ({ mkDerivation, base, deepseq, hashable, mtl, QuickCheck
-     , quickcheck-instances, rerebase, strict-list, tasty, tasty-hunit
-     , tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "deque";
-       version = "0.4.4";
-       sha256 = "1x0rjdqgf4kwgpyisx618waz6r9gki3ivav9m4biysyc04hdhinn";
-       libraryHaskellDepends = [ base deepseq hashable mtl strict-list ];
-       testHaskellDepends = [
-         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
-         tasty-quickcheck
-       ];
-       description = "Double-ended queues";
-       license = lib.licenses.mit;
-     }) {};
-
-  "deque_0_4_4_1" = callPackage
     ({ mkDerivation, base, deepseq, hashable, mtl, rerebase
      , strict-list, tasty, tasty-quickcheck
      }:
@@ -84465,7 +84412,6 @@ self: {
        testHaskellDepends = [ rerebase tasty tasty-quickcheck ];
        description = "Double-ended queues";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dequeue" = callPackage
@@ -86006,8 +85952,8 @@ self: {
        pname = "dhall-recursive-adt";
        version = "0.1.0.1";
        sha256 = "09s3m86vflj5im2walab8d0wpvihsvxc5mzy55m10pfzr3gxsd11";
-       revision = "4";
-       editedCabalFile = "0ym561whhaiszvqpdfbbzng3891n36fkwgaspyfhl5gz7pdqr6v9";
+       revision = "5";
+       editedCabalFile = "1b45x3xwc9qzw37jgf0plpsz9kl29925z3kxa3igmwh4hjfxxrws";
        libraryHaskellDepends = [ base data-fix dhall recursion-schemes ];
        testHaskellDepends = [
          base dhall either hedgehog recursion-schemes tasty tasty-hedgehog
@@ -86544,8 +86490,8 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-core";
-       version = "1.5.1";
-       sha256 = "08bmb2r4gf7arc0wasxla6w1qpgrgrhcs24bb7sv2qgiyb6c22j6";
+       version = "1.5.1.1";
+       sha256 = "168kjikw3x21pjgfy3lmxmrm89g9zlhbypkmzdg5xz9rl7acn7rc";
        libraryHaskellDepends = [
          adjunctions base containers distributive dual-tree lens linear
          monoid-extras mtl profunctors semigroups unordered-containers
@@ -90585,6 +90531,8 @@ self: {
        pname = "docopt";
        version = "0.7.0.7";
        sha256 = "0q3f9j7yqyb97z08h2k6p6bax87g6ab96ng4cpj1xf5k91726ic1";
+       revision = "1";
+       editedCabalFile = "15lha2pf1yhj6ka57mdg414582cl0h140qc42ddz6cvj9a62bd66";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base containers parsec template-haskell
@@ -94931,14 +94879,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "effectful-core_2_3_0_0" = callPackage
+  "effectful-core_2_3_0_1" = callPackage
     ({ mkDerivation, base, containers, exceptions, monad-control
      , primitive, transformers-base, unliftio-core
      }:
      mkDerivation {
        pname = "effectful-core";
-       version = "2.3.0.0";
-       sha256 = "1yrywdzys1fsg0403g5slg88a33hnk5cm0cshrb2idhsv77bfhkv";
+       version = "2.3.0.1";
+       sha256 = "16vk5sjyy4knw9yss25iv501zxz2258qds3bhl1mrqa24phy3c9w";
        libraryHaskellDepends = [
          base containers exceptions monad-control primitive
          transformers-base unliftio-core
@@ -97766,8 +97714,8 @@ self: {
      }:
      mkDerivation {
        pname = "enummapset";
-       version = "0.7.1.0";
-       sha256 = "1zhfl1qrm7r124v0xphh50lnll7cgmlacdmxwwlwhmzyrp1bwf69";
+       version = "0.7.2.0";
+       sha256 = "00n6nifk5hlp85mv0g68jpx9w19hx1cxqhbf7pqlm5m5f99y29m2";
        libraryHaskellDepends = [ aeson base containers deepseq ];
        testHaskellDepends = [
          aeson array base containers deepseq ghc-prim HUnit QuickCheck
@@ -100648,6 +100596,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "exception-hierarchy_0_1_0_9" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "exception-hierarchy";
+       version = "0.1.0.9";
+       sha256 = "0xplq1kfmymfnb68hba66qzj2jmhazbhpm154lyjm9ybkn23hl7g";
+       libraryHaskellDepends = [ base template-haskell ];
+       description = "Exception type hierarchy with TemplateHaskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "exception-mailer" = callPackage
     ({ mkDerivation, base, hslogger, mime-mail, text }:
      mkDerivation {
@@ -101322,8 +101282,8 @@ self: {
      }:
      mkDerivation {
        pname = "exon";
-       version = "1.6.0.2";
-       sha256 = "17hq0ywafh72cskqh7mbfbq6lgc4j3szvfnz4sf6m84llzzvbdv9";
+       version = "1.6.1.0";
+       sha256 = "0cdsh3qhbiw4q0nskcwgbbd1zdy0jhy9iblqx5h079drc0faa3zp";
        libraryHaskellDepends = [
          base ghc incipit-base parsec template-haskell
        ];
@@ -103345,6 +103305,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring ];
        description = "A fast, but bare bones, bytestring parser combinators library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fastpbkdf2" = callPackage
@@ -104132,6 +104093,28 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "fedora-haskell-tools_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, csv, directory, extra
+     , fedora-dists, filepath, http-conduit, http-types
+     , optparse-applicative, process, simple-cmd, simple-cmd-args, split
+     , time, unix
+     }:
+     mkDerivation {
+       pname = "fedora-haskell-tools";
+       version = "1.1";
+       sha256 = "194jkagrvkhzgw224jybxy4gvavs9qm6lp1b26ddbnpddf3v6paf";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring csv directory extra fedora-dists filepath
+         http-conduit http-types optparse-applicative process simple-cmd
+         simple-cmd-args split time unix
+       ];
+       description = "Building and maintenance tools for Fedora Haskell";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fedora-img-dl" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath
      , http-directory, http-types, optparse-applicative, simple-cmd
@@ -104412,8 +104395,8 @@ self: {
      }:
      mkDerivation {
        pname = "feedback";
-       version = "0.1.0.1";
-       sha256 = "18934n0fwz3q7mgfzc0phwxfng3qakf5hw14iyhal57ks7gm7j2y";
+       version = "0.1.0.3";
+       sha256 = "1an4w44p1abicjkb22whkrkhrl66p3f2vfrr70q8jbkwvws0wx8w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -106630,25 +106613,12 @@ self: {
     ({ mkDerivation, base, deepseq, doctest, filemanip, primitive }:
      mkDerivation {
        pname = "fixed-vector";
-       version = "1.2.2.1";
-       sha256 = "0kp747v67x1ija33nyqmyh6g178pqn2c7glynrpzcv733lalp00z";
-       libraryHaskellDepends = [ base deepseq primitive ];
-       testHaskellDepends = [ base doctest filemanip primitive ];
-       description = "Generic vectors with statically known size";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "fixed-vector_1_2_3_0" = callPackage
-    ({ mkDerivation, base, deepseq, doctest, filemanip, primitive }:
-     mkDerivation {
-       pname = "fixed-vector";
        version = "1.2.3.0";
        sha256 = "0cbz734dccsy3jvhszszyrnls6bbys4gaq326dksaabwv6mn58vc";
        libraryHaskellDepends = [ base deepseq primitive ];
        testHaskellDepends = [ base doctest filemanip primitive ];
        description = "Generic vectors with statically known size";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fixed-vector-binary" = callPackage
@@ -107600,10 +107570,8 @@ self: {
      }:
      mkDerivation {
        pname = "flock";
-       version = "0.3.2";
-       sha256 = "0zi04gmrjda11zp8y7zx6r9hkz00wplvjj7sn6q7lbm2h5kv20xr";
-       revision = "1";
-       editedCabalFile = "18mhjwcrz2jx0vsdd8cyb84lnabhliwfxaw76k8sifarhk847af8";
+       version = "0.3.2.1";
+       sha256 = "14jpfwgjy6l0m00fs17n32jqk8xdwa3hmhfgs6nl8wd3qnz0rzsz";
        libraryHaskellDepends = [
          base lifted-base monad-control transformers unix
        ];
@@ -107689,25 +107657,12 @@ self: {
     ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "flow";
-       version = "2.0.0.3";
-       sha256 = "0hm1bx63k0cm8jkfb8rqfsrv88gr7jn15agrxxngawr59xbv3r2p";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base HUnit ];
-       description = "Write more understandable Haskell";
-       license = lib.licenses.mit;
-     }) {};
-
-  "flow_2_0_0_4" = callPackage
-    ({ mkDerivation, base, HUnit }:
-     mkDerivation {
-       pname = "flow";
        version = "2.0.0.4";
        sha256 = "079r6cjs7wz7kxql1m45pazf0nya8xgiil3sbcqrr2csxmam23cr";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base HUnit ];
        description = "Write more understandable Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "flow-er" = callPackage
@@ -109713,8 +109668,8 @@ self: {
      }:
      mkDerivation {
        pname = "fp-ieee";
-       version = "0.1.0.2";
-       sha256 = "0zfrjqyi3pvfmsidq2vsfwqaah0ag6pkixlxicr43jmfyrhi4snl";
+       version = "0.1.0.3";
+       sha256 = "1g7wmrf5r09ab3n4rjcariljwsq56q10z9yqdlp04lziv054iggg";
        libraryHaskellDepends = [ base ghc-bignum integer-logarithms ];
        testHaskellDepends = [
          base doctest hspec hspec-core integer-logarithms QuickCheck random
@@ -109722,6 +109677,8 @@ self: {
        benchmarkHaskellDepends = [ base tasty-bench ];
        description = "IEEE 754-2019 compliant operations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fpco-api" = callPackage
@@ -112480,22 +112437,6 @@ self: {
      }:
      mkDerivation {
        pname = "fusion-plugin";
-       version = "0.2.6";
-       sha256 = "0dmcnqbxxh8iahimblhwsvyqr80bj9l1gky5xwn2jb120blm7w53";
-       libraryHaskellDepends = [
-         base containers directory filepath fusion-plugin-types ghc syb time
-         transformers
-       ];
-       description = "GHC plugin to make stream fusion more predictable";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "fusion-plugin_0_2_7" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath
-     , fusion-plugin-types, ghc, syb, time, transformers
-     }:
-     mkDerivation {
-       pname = "fusion-plugin";
        version = "0.2.7";
        sha256 = "0ly2pyhh5s1ahmgkbmm1rqnz035dmniv23w6m2d0vbgxy5mkbb0i";
        libraryHaskellDepends = [
@@ -112504,7 +112445,6 @@ self: {
        ];
        description = "GHC plugin to make stream fusion more predictable";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fusion-plugin-types" = callPackage
@@ -112534,8 +112474,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.25.7";
-       sha256 = "1dj0xyk83kkb7zay23rqy92kkmq0rqiyrm3nhw246mhf7swn1rkh";
+       version = "0.25.8";
+       sha256 = "1jqai6y63lvl80ha7rg7wv4qiykb41sah27h87qxjyzp3vkigsf5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -114561,8 +114501,8 @@ self: {
        pname = "generic-lens-lite";
        version = "0.1";
        sha256 = "07z00phy6h50bb4axlr57kin9l5fygi4q4j33rj5180ai2cbcpc6";
-       revision = "5";
-       editedCabalFile = "1mc7fp8z1zm4k7kl7d4abq73zfkzf19hdviq0gqzgcigyskj97zq";
+       revision = "6";
+       editedCabalFile = "0db0lbdq3iqgq42bj6q5qn4az8szwjyhq93f32zmcj1n4mrpxdj9";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Monomorphic field lens like with generic-lens";
@@ -114636,8 +114576,8 @@ self: {
        pname = "generic-monoid";
        version = "0.1.0.1";
        sha256 = "1pradfv1i2z73f3vxx78ahmfsdszcgi44kn29aww2hdgf2np5l6g";
-       revision = "2";
-       editedCabalFile = "0p3hk9c6qn5kbgi3a4my3rq5cc43wcl93hx6axgzi5wkvimpv653";
+       revision = "3";
+       editedCabalFile = "0pyf3yr4haja32nkm3vb28dhdh47cf6h5vqkqih2l6zmbdc2f0lq";
        libraryHaskellDepends = [ base ];
        description = "Derive monoid instances for product types";
        license = lib.licenses.bsd3;
@@ -114670,8 +114610,8 @@ self: {
        pname = "generic-optics-lite";
        version = "0.1";
        sha256 = "0vf5sk1narj69pdhjqxjj0w3w3i5lxjxn8p98xp8dj0jws4mx9xi";
-       revision = "5";
-       editedCabalFile = "13ywf3smi7g7yz1pp8afb95dy4x6qq4kvll7chm4bnjl7s3d85kg";
+       revision = "6";
+       editedCabalFile = "17yqzcdlm3g5mc8rjjqp98ykj8rj1c46c0vcqk23pwgffpac5d25";
        libraryHaskellDepends = [ base generic-lens-lite optics-core ];
        testHaskellDepends = [ base optics-core ];
        description = "Monomorphic field opics like with generic-lens";
@@ -114991,8 +114931,8 @@ self: {
        pname = "generics-sop-lens";
        version = "0.2.0.1";
        sha256 = "1yl74pz6r2zf9sspzbqg6xvr6k9b5irq3c3pjrf5ih6hfrz4k1ks";
-       revision = "4";
-       editedCabalFile = "0n3ynw8zaavp5a259slff5b5smah0jfb8lxslkljsmpbndmh5sdv";
+       revision = "5";
+       editedCabalFile = "0qnfrcg847fpjvg6nrlpndabfnjqm711pbkhd80j3xg59hg6qm72";
        libraryHaskellDepends = [ base generics-sop lens ];
        description = "Lenses for types in generics-sop";
        license = lib.licenses.bsd3;
@@ -117295,8 +117235,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "9.4.7.20230826";
-       sha256 = "161ibbb4fyqahamykbdrfrw6zx9djk57vqj785bhrrqxys4k29d5";
+       version = "9.4.8.20231111";
+       sha256 = "1ccn54srbjnna5abnzkp7fmylwkzv1qsyhgsggrlcfkia10prd9n";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -117402,8 +117342,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "9.4.7.20230826";
-       sha256 = "0hnpalndf087mda3hirws31cxjxvgh0h618fc18y2bhmf5hy10gl";
+       version = "9.4.8.20231111";
+       sha256 = "1zr3fvf5b2wxp6z56bs8gaky62c4m147cx5lwnxmjkl8namwllya";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -118295,8 +118235,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-knownnat";
-       version = "0.7.9";
-       sha256 = "1h3d0vjz3j9cgng330dj4zlvnvjkwzk2f76w1q6b5vda5pq676cd";
+       version = "0.7.10";
+       sha256 = "03rg0p1grmxxzr9w0bgczavnqhvg2jivq8cafqsvqrsrmiacip8d";
        libraryHaskellDepends = [
          base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-natnormalise
          template-haskell transformers
@@ -119006,27 +118946,29 @@ self: {
      , 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, 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
+     , 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
      }:
      mkDerivation {
        pname = "ghcup";
-       version = "0.1.19.5";
-       sha256 = "1cx93721jz0laakhy8krxbk51l8wxvi3wk0cpdwdcmb4jmzpivxi";
+       version = "0.1.20.0";
+       sha256 = "1xh1wm7ggj7wl3mys2ivqwn39ds6cjgbsdw64ld12jdmkrdr22qs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson async base base16-bytestring binary bytestring bz2 Cabal
-         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
-         os-release pretty pretty-terminal regex-posix resourcet retry safe
-         safe-exceptions split streamly strict-base template-haskell
-         temporary terminal-size text time transformers unix unix-bytestring
-         unliftio-core unordered-containers uri-bytestring vector versions
-         word8 yaml-streamly zlib
+         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
@@ -119039,10 +118981,12 @@ self: {
        ];
        testHaskellDepends = [
          base bytestring containers directory filepath generic-arbitrary
-         hspec hspec-golden-aeson QuickCheck quickcheck-arbitrary-adt
-         streamly text time unix uri-bytestring versions
+         hspec hspec-golden-aeson optparse-applicative QuickCheck
+         quickcheck-arbitrary-adt streamly tasty tasty-hunit
+         template-haskell text time unix uri-bytestring versions
        ];
        testToolDepends = [ hspec-discover ];
+       doHaddock = false;
        description = "ghc toolchain installer";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
@@ -120588,16 +120532,20 @@ self: {
      }) {};
 
   "gigaparsec" = callPackage
-    ({ mkDerivation, base, containers, deepseq, gauge, selective, tasty
-     , tasty-expected-failure, tasty-hunit
+    ({ mkDerivation, base, bytestring, containers, deepseq, gauge, knob
+     , pretty-terminal, selective, tasty, tasty-expected-failure
+     , tasty-hunit
      }:
      mkDerivation {
        pname = "gigaparsec";
-       version = "0.2.0.0";
-       sha256 = "0x2chdfcnc914dbjjgyxkjnwanmmdl9p0a6pfsnyncv6j1x6bcsz";
-       libraryHaskellDepends = [ base containers selective ];
+       version = "0.2.1.0";
+       sha256 = "0i38ychjdrmw2rxznq7iw7c84mvhx2iq3bxzixmwa26v5zn9nyf7";
+       libraryHaskellDepends = [
+         base containers pretty-terminal selective
+       ];
        testHaskellDepends = [
-         base containers tasty tasty-expected-failure tasty-hunit
+         base bytestring containers deepseq knob tasty
+         tasty-expected-failure tasty-hunit
        ];
        benchmarkHaskellDepends = [ base deepseq gauge ];
        description = "Refreshed parsec-style library for compatiblity with Scala parsley";
@@ -121538,30 +121486,6 @@ self: {
      }:
      mkDerivation {
        pname = "github-release";
-       version = "2.0.0.8";
-       sha256 = "1ajx225n0shixh0q0zm5qh9rb254yvs1f393mc8x6j0mry7jp9v3";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base burrito bytestring http-client http-client-tls
-         http-types mime-types optparse-generic text unordered-containers
-       ];
-       executableHaskellDepends = [
-         aeson base burrito bytestring http-client http-client-tls
-         http-types mime-types optparse-generic text unordered-containers
-       ];
-       description = "Upload files to GitHub releases";
-       license = lib.licenses.mit;
-       mainProgram = "github-release";
-     }) {};
-
-  "github-release_2_0_0_9" = callPackage
-    ({ mkDerivation, aeson, base, burrito, bytestring, http-client
-     , http-client-tls, http-types, mime-types, optparse-generic, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "github-release";
        version = "2.0.0.9";
        sha256 = "0lhaz92jr6ssl1mq5nmcwv6n43wda6mjv2qdzm8rg5275xqpa7jv";
        isLibrary = true;
@@ -121576,7 +121500,6 @@ self: {
        ];
        description = "Upload files to GitHub releases";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "github-release";
      }) {};
 
@@ -126299,8 +126222,8 @@ self: {
      }:
      mkDerivation {
        pname = "gopro-plus";
-       version = "0.6.6.4";
-       sha256 = "052n39bnz55d8lmi3d79s0zxhzbspz6a5rw965qqbryi82hgrdp4";
+       version = "0.6.6.6";
+       sha256 = "024kldfbkpwnn67y8ckmfzcp0v2sp7qp1mlhwrrgdr0hb6di3852";
        libraryHaskellDepends = [
          aeson base bytestring containers exceptions filepath
          generic-deriving generic-random lens lens-aeson monad-logger mtl
@@ -128945,8 +128868,8 @@ self: {
      }:
      mkDerivation {
        pname = "gscholar-rss";
-       version = "0.3.0.3";
-       sha256 = "104c5jvhxzmqnvhc0ww77qy5wmafxmqil4hpcmxvpvx0h0nwdfdl";
+       version = "0.3.0.4";
+       sha256 = "0vgljhvp6jxwqw8l5sbvd2z6yf549j2xy63xrm4p3yh8xp31sda3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -132709,8 +132632,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyllbars";
-       version = "1.0.0.2";
-       sha256 = "0zw1jp64zzflgy9hwdd00zkh3vbi8vbfi0qswmqdgr6dk0c390g0";
+       version = "1.0.1.0";
+       sha256 = "0bd9ss4hp59i5ni5w03zdj2m5phgds36ng3a9nawqic6wyw842g6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -132792,6 +132715,8 @@ self: {
        pname = "half";
        version = "0.3.1";
        sha256 = "1l8m2spqg0ac50qys2jk5b32v6wxklbbk5ypjp3ga6z14hkw7bz2";
+       revision = "1";
+       editedCabalFile = "0z0sdic28ji6lq9hz9fh534igy6g3g7b1q799cmwkga23dkicgzl";
        libraryHaskellDepends = [ base binary deepseq template-haskell ];
        testHaskellDepends = [
          base binary bytestring QuickCheck test-framework
@@ -132845,8 +132770,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "halfsplit";
-       version = "0.4.1.0";
-       sha256 = "0mas6a53p44cnfzb26lpsrpgy1zh7vm5i2lxk0invmf35sbaq0w9";
+       version = "0.4.2.0";
+       sha256 = "1fa2bdch3rqprfvjy3rmhb7zkbzfqnyzi193ayh5zlsmshx5w0cl";
        libraryHaskellDepends = [ base ];
        description = "A library to provide special kind of two-column output for Phladiprelio";
        license = lib.licenses.mit;
@@ -137377,8 +137302,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-src-meta";
-       version = "0.8.12";
-       sha256 = "12dsv49rzhayp8cvkqkilammq4a6d4nrb2bd2w98ivzzrbkijy02";
+       version = "0.8.13";
+       sha256 = "09f0lad023zylkxidsz0nv532h44mh0b1505rvs3ypaq2v4q20pa";
        libraryHaskellDepends = [
          base haskell-src-exts pretty syb template-haskell th-orphans
        ];
@@ -139969,8 +139894,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql";
-       version = "1.6.3.3";
-       sha256 = "1w4lpiy4jynzdp1b5fn36zv5jyfgnh0fp8rr6dz7247ajzx7lfq4";
+       version = "1.6.3.4";
+       sha256 = "1rpyfvy7fzkvviypwf03cfvxgr52ivwym9vsjr10cbqzgnrqb24l";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring bytestring-strict-builder
          contravariant dlist hashable hashtables mtl network-ip
@@ -146216,24 +146141,6 @@ self: {
      }:
      mkDerivation {
        pname = "hi-file-parser";
-       version = "0.1.5.0";
-       sha256 = "0j6ici0s52fpyf092d3zw4qrvwmz744q538wnxxj48i8fxm7b95m";
-       libraryHaskellDepends = [
-         base binary bytestring mtl rio text vector
-       ];
-       testHaskellDepends = [
-         base binary bytestring hspec mtl rio text vector
-       ];
-       description = "Parser for GHC's hi files";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hi-file-parser_0_1_6_0" = callPackage
-    ({ mkDerivation, base, binary, bytestring, hspec, mtl, rio, text
-     , vector
-     }:
-     mkDerivation {
-       pname = "hi-file-parser";
        version = "0.1.6.0";
        sha256 = "1b13lbgmdb50fw3jkbvj2wq19zmklhxam7rfn7k8bqra2z4kbp2r";
        libraryHaskellDepends = [
@@ -146244,7 +146151,6 @@ self: {
        ];
        description = "Parser for GHC's hi files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hi3status" = callPackage
@@ -146399,10 +146305,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.12.0";
-       sha256 = "1216vfcf6hznhb096il2hcb64wlws85l8qrcp785khny6axh1sv4";
-       revision = "1";
-       editedCabalFile = "18cmkzrq45schidxrn571b0x6x4vlmwkpzq0nwm97p4gsqvvwj48";
+       version = "0.12.1";
+       sha256 = "0iw97mkgg7nwl3dr04r3z3yxynz64agf67xasb1s7kk4gwss1f85";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146425,7 +146329,7 @@ self: {
        mainProgram = "hie-bios";
      }) {};
 
-  "hie-bios_0_13_0" = callPackage
+  "hie-bios_0_13_1" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , co-log-core, conduit, conduit-extra, cryptohash-sha1, deepseq
      , directory, exceptions, extra, file-embed, filepath, ghc
@@ -146435,8 +146339,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.13.0";
-       sha256 = "0gv2ip6zlrfcxngv7kh1a6ah4avj6y2n406h0i66wnc9l11l9mvb";
+       version = "0.13.1";
+       sha256 = "1qzri41yk88x6nnizjanh0w9inbm2sq93g197il95kb74bcslf9l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146466,8 +146370,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-compat";
-       version = "0.3.1.1";
-       sha256 = "0ds79wsygvv9dz8wbjxvmik58q2q9knrwrk7hy30c6qpp7a1c6jv";
+       version = "0.3.1.2";
+       sha256 = "0m0520z20qd3vxh047izb140jbywnhi20i9av7gf6h8f8486cs0m";
        libraryHaskellDepends = [
          array base bytestring containers directory filepath ghc ghc-boot
          transformers
@@ -146522,10 +146426,8 @@ self: {
      }:
      mkDerivation {
        pname = "hiedb";
-       version = "0.4.3.0";
-       sha256 = "01mypczx494hs79ma67gfvlsbpdhdmpw43bxnzdj14gph83j1730";
-       revision = "1";
-       editedCabalFile = "0yaxg7463625spx0dxg4znzyl8zq93mnb393wp6x11n29jd3l20r";
+       version = "0.4.4.0";
+       sha256 = "0pbcm00zcd33y7w5n7qp8r9r8j8jf2vdhx3l1mll1d4jfimhrsd6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -147101,7 +147003,7 @@ self: {
        mainProgram = "hindent";
      }) {};
 
-  "hindent_6_1_0" = callPackage
+  "hindent_6_1_1" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, criterion
      , deepseq, Diff, directory, exceptions, filepath, ghc-lib-parser
      , ghc-lib-parser-ex, hspec, monad-loops, mtl, optparse-applicative
@@ -147110,8 +147012,8 @@ self: {
      }:
      mkDerivation {
        pname = "hindent";
-       version = "6.1.0";
-       sha256 = "03i1wxcqxllm6h55rxfksyrxvy5v21scjqa731jmchfr7xf09prr";
+       version = "6.1.1";
+       sha256 = "0ir524drzb11l2dqvl78hdgrzimhbnfqkg530mvg9xsyph93af3m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -150981,25 +150883,26 @@ self: {
        ];
      }) {};
 
-  "hnix-store-core_0_6_1_0" = callPackage
+  "hnix-store-core_0_7_0_0" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base
-     , base16-bytestring, base64-bytestring, binary, bytestring, cereal
-     , containers, cryptonite, directory, filepath, hashable, hspec
-     , lifted-base, memory, monad-control, mtl, nix-derivation, process
-     , relude, saltine, tasty, tasty-discover, tasty-golden, tasty-hspec
-     , tasty-hunit, tasty-quickcheck, temporary, text, time, unix
+     , base16-bytestring, base64-bytestring, binary, bytestring
+     , case-insensitive, cereal, containers, cryptonite, directory
+     , filepath, hashable, hspec, lifted-base, memory, monad-control
+     , mtl, nix-derivation, process, relude, saltine, tasty
+     , tasty-discover, tasty-golden, tasty-hspec, tasty-hunit
+     , tasty-quickcheck, temporary, text, time, unix
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "hnix-store-core";
-       version = "0.6.1.0";
-       sha256 = "1bziw2avcahqn2fpzw40s74kdw9wjvcplp6r2zrg83rbh2k1x73p";
+       version = "0.7.0.0";
+       sha256 = "0nyzw3ssv832bqhm4ir8r44795lnipzzkjwnryqqarc99sbpj2hh";
        libraryHaskellDepends = [
          algebraic-graphs attoparsec base base16-bytestring
-         base64-bytestring bytestring cereal containers cryptonite directory
-         filepath hashable lifted-base memory monad-control mtl
-         nix-derivation relude saltine text time unix unordered-containers
-         vector
+         base64-bytestring bytestring case-insensitive cereal containers
+         cryptonite directory filepath hashable lifted-base memory
+         monad-control mtl nix-derivation relude saltine text time unix
+         unordered-containers vector
        ];
        testHaskellDepends = [
          attoparsec base base16-bytestring base64-bytestring binary
@@ -151211,7 +151114,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hoauth2_2_9_0" = callPackage
+  "hoauth2_2_10_0" = callPackage
     ({ mkDerivation, aeson, base, base64, binary, bytestring
      , containers, cryptonite, data-default, exceptions, hspec
      , hspec-discover, http-conduit, http-types, memory, microlens, text
@@ -151219,8 +151122,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "2.9.0";
-       sha256 = "1y8nrn4f4029imrxa215hrgv5cysdg7rcg9vwwxanavq1wfvlxfa";
+       version = "2.10.0";
+       sha256 = "13skl9zc3p0jnn2p10xm21kp5adqjl48nfx6v312yfvd9md5h0kq";
        libraryHaskellDepends = [
          aeson base base64 binary bytestring containers cryptonite
          data-default exceptions http-conduit http-types memory microlens
@@ -151241,8 +151144,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-demo";
-       version = "1.7.0";
-       sha256 = "19dnblzibmjzv01sgzbq35bx20d8yqarqyimjqqz9jmmqg368iv9";
+       version = "1.8.0";
+       sha256 = "12mmbklh8a3wkm7dpmighqibk1ib5z0f444pl3g8i79abaj75k7b";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -151266,8 +151169,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-providers";
-       version = "0.3.0";
-       sha256 = "0g87adfnr528vb2iy9rpc405h7x7j79fqly55d6x9i7dqhz73g7d";
+       version = "0.4.0";
+       sha256 = "1c29cy0317dbigwhf0rrnnm9hm3w3v10dpsilm03g4xfjmdqvzdv";
        libraryHaskellDepends = [
          aeson base bytestring containers cryptonite hoauth2 HsOpenSSL
          http-conduit http-types jose-jwt mtl text time transformers
@@ -151288,8 +151191,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-providers-tutorial";
-       version = "0.3.0";
-       sha256 = "125lkxiijc8n480m2rpzgihr4j2cywgnm67zn90l1b8fwfsgm9hv";
+       version = "0.4.0";
+       sha256 = "1pdnsjzx2bni1vw4w7i5d39nih5bkrybgpya568ycw52bpi8jnmn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151310,8 +151213,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-tutorial";
-       version = "0.3.0";
-       sha256 = "1alnzhmgsijzv466mqbmvcalh100nqbh1pm59774q34kxxnrrjmc";
+       version = "0.4.0";
+       sha256 = "00nr2w8yqhmf9i4i8d7yfzwb0fwdmqcbwc37k0r9js9qxc5b1wqr";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -153848,36 +153751,6 @@ self: {
   "hpqtypes" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, containers
      , exceptions, HUnit, libpq, lifted-base, monad-control, mtl
-     , QuickCheck, random, resource-pool, scientific, semigroups
-     , test-framework, test-framework-hunit, text, text-show, time
-     , transformers, transformers-base, unordered-containers, uuid-types
-     , vector
-     }:
-     mkDerivation {
-       pname = "hpqtypes";
-       version = "1.11.1.1";
-       sha256 = "171j2vchl4gjfddxgqdrbzk0advk7v2jxp84jfzcrzb2pmp05dm2";
-       libraryHaskellDepends = [
-         aeson async base bytestring containers exceptions lifted-base
-         monad-control mtl resource-pool semigroups text text-show time
-         transformers transformers-base uuid-types vector
-       ];
-       libraryPkgconfigDepends = [ libpq ];
-       testHaskellDepends = [
-         aeson base bytestring exceptions HUnit lifted-base monad-control
-         mtl QuickCheck random scientific test-framework
-         test-framework-hunit text text-show time transformers-base
-         unordered-containers uuid-types vector
-       ];
-       description = "Haskell bindings to libpqtypes";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {libpq = null;};
-
-  "hpqtypes_1_11_1_2" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, containers
-     , exceptions, HUnit, libpq, lifted-base, monad-control, mtl
      , QuickCheck, random, resource-pool, scientific, semigroups, stm
      , test-framework, test-framework-hunit, text, text-show, time
      , transformers, transformers-base, unordered-containers, uuid-types
@@ -154018,8 +153891,8 @@ self: {
      }:
      mkDerivation {
        pname = "hprox";
-       version = "0.5.3";
-       sha256 = "05z4zcskagak04mfj3grp89vjiw8vmx0ppszl1j6p201y5zmpx6n";
+       version = "0.5.4";
+       sha256 = "15hlf6mhm2wpgmafnr4jqqxgr83cpfp1dk48a41q3sdf2l8h4pkx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -154447,30 +154320,6 @@ self: {
      }) {};
 
   "hruby" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
-     , process, QuickCheck, ruby, scientific, stm, text
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "hruby";
-       version = "0.5.0.0";
-       sha256 = "10ldq23lgp3jcxpdm9b1dryjf4sprsjlc4qs1lnjb9cmfcafrqj4";
-       setupHaskellDepends = [ base Cabal process ];
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring scientific stm text
-         unordered-containers vector
-       ];
-       libraryPkgconfigDepends = [ ruby ];
-       testHaskellDepends = [
-         aeson attoparsec base QuickCheck text vector
-       ];
-       description = "Embed a Ruby intepreter in your Haskell program !";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {inherit (pkgs) ruby;};
-
-  "hruby_0_5_1_0" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, QuickCheck
      , ruby, scientific, stm, text, unordered-containers, vector
      }:
@@ -158829,25 +158678,6 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-expectations-json";
-       version = "1.0.2.0";
-       sha256 = "0vl5brjbvjdbv2i4zq2ww7l0gg11l0ssmr4m7xqdn7as2798q1q1";
-       revision = "2";
-       editedCabalFile = "085mc79w056c7jinmldav7d1916y61x3p2ikb2api8symaa377n3";
-       libraryHaskellDepends = [
-         aeson aeson-pretty base Diff HUnit scientific text
-         unordered-containers vector
-       ];
-       testHaskellDepends = [ aeson aeson-qq base hspec QuickCheck ];
-       description = "Hspec expectations for JSON Values";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hspec-expectations-json_1_0_2_1" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, aeson-qq, base, Diff, hspec
-     , HUnit, QuickCheck, scientific, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "hspec-expectations-json";
        version = "1.0.2.1";
        sha256 = "15bxyq5hdnr0pqmsj79n2q284fky9h6r8l26q8l4gjf5b5z99gj1";
        libraryHaskellDepends = [
@@ -158857,7 +158687,6 @@ self: {
        testHaskellDepends = [ aeson aeson-qq base hspec QuickCheck ];
        description = "Hspec expectations for JSON Values";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-expectations-lens" = callPackage
@@ -170075,6 +169904,8 @@ self: {
        pname = "insert-ordered-containers";
        version = "0.2.5.3";
        sha256 = "0v23lawska0240vw8avxv71150y4qzbn4aj22lnkd3jxg5cnwkzh";
+       revision = "1";
+       editedCabalFile = "12fkswr70fw2av11yy45v189r6cb8fcg0l1r7mayvwha3gls0j3n";
        libraryHaskellDepends = [
          aeson base deepseq hashable indexed-traversable lens optics-core
          optics-extra semigroupoids text transformers unordered-containers
@@ -171514,10 +171345,8 @@ self: {
      }:
      mkDerivation {
        pname = "invertible-grammar";
-       version = "0.1.3.4";
-       sha256 = "19x9bzc1cvz5zc03iglf42vyngnjkspzfd2jpl9y6pwp2sf66325";
-       revision = "1";
-       editedCabalFile = "059i4v6kmsrry2lw7m2ricg2ls14v4b2k554l7cmpa46g28yakyn";
+       version = "0.1.3.5";
+       sha256 = "01g4lf31hgv8dqabmabkp6zld6v2l3a2mv9wcgyfxghfrd6dspdw";
        libraryHaskellDepends = [
          base bifunctors containers mtl prettyprinter profunctors semigroups
          tagged template-haskell text transformers
@@ -175930,25 +175759,6 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "2.0.0.9";
-       sha256 = "0nj66jkql0irq5vyxhmdxxjpazr3g86x7j8klqjwxvdj5jmvy53d";
-       libraryHaskellDepends = [
-         aeson base bytestring mime-types network-uri tagsoup text time
-       ];
-       testHaskellDepends = [
-         aeson base bytestring filepath hspec mime-types network-uri tagsoup
-         text time
-       ];
-       description = "JSON Feed";
-       license = lib.licenses.mit;
-     }) {};
-
-  "json-feed_2_0_0_10" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, filepath, hspec
-     , mime-types, network-uri, tagsoup, text, time
-     }:
-     mkDerivation {
-       pname = "json-feed";
        version = "2.0.0.10";
        sha256 = "0s9fq0yp3svi8jcn2isb4kb5l71hhrahrrflciv1jzbn1kwx8lqj";
        libraryHaskellDepends = [
@@ -175960,7 +175770,6 @@ self: {
        ];
        description = "JSON Feed";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "json-fu" = callPackage
@@ -180905,25 +180714,12 @@ self: {
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "2.0.0.6";
-       sha256 = "0msm0qrgrnagkia8k0261p7q2ab67ml1q2nn9f951jxnhjm4mglj";
-       libraryHaskellDepends = [ base servant-foreign text ];
-       testHaskellDepends = [ base hspec servant servant-foreign text ];
-       description = "Generate Ruby clients from Servant APIs";
-       license = lib.licenses.mit;
-     }) {};
-
-  "lackey_2_0_0_7" = callPackage
-    ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
-     mkDerivation {
-       pname = "lackey";
        version = "2.0.0.7";
        sha256 = "08i4hg2m6d1s6fbgpjnd010ahgfa2d9i5m42pnnd2cr2rkan5f13";
        libraryHaskellDepends = [ base servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lacroix" = callPackage
@@ -181254,8 +181050,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot";
-       version = "5.3.1.1";
-       sha256 = "0icybndmsivnrw6wibh31g4n8bj1cclbf5cvwf816xblfmgcdhvf";
+       version = "5.3.1.2";
+       sha256 = "1far63mbn6w36bds8s71hxkwr8wb599r8c4w8c0q4wkw29f2dr0p";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -181281,8 +181077,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-core";
-       version = "5.3.1.1";
-       sha256 = "1paya40niapvkyc8qc3k36l7qsskfdxih8d789lhd9s8rr0f9hdi";
+       version = "5.3.1.2";
+       sha256 = "14my72cw39hfc0i7fzhgxv5xjrdfr4pz2ccrixaclngypfd08g28";
        libraryHaskellDepends = [
          base binary bytestring containers dependent-map dependent-sum
          dependent-sum-template directory edit-distance exceptions filepath
@@ -181306,8 +181102,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-haskell-plugins";
-       version = "5.3.1.1";
-       sha256 = "1fivdnj0nb4332j9m5filkpfy9wjkmsjc3kxh2w17c7irhj26f71";
+       version = "5.3.1.2";
+       sha256 = "0pbhwhcxn4fqvn7ynhc19285r75fiksfd9yfjz6d8iq7wmp1frp8";
        libraryHaskellDepends = [
          array arrows base bytestring containers data-memocombinators
          directory filepath haskell-src-exts-simple hoogle HTTP IOSpec
@@ -181327,8 +181123,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-irc-plugins";
-       version = "5.3.1.1";
-       sha256 = "1nvkkqv28dyvq7hdwz1p1yjii55vc8m6i7ccjzs9ag720cha2n4m";
+       version = "5.3.1.2";
+       sha256 = "00s27136i4xadm09clncrkm5annvnahrvcy04m5llrxa9ja09ixb";
        libraryHaskellDepends = [
          base bytestring containers directory filepath lambdabot-core
          lifted-base mtl network SafeSemaphore split time
@@ -181346,8 +181142,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-misc-plugins";
-       version = "5.3.1.1";
-       sha256 = "16f9bf5c7al904iffykwp98l00j8m1f2r6qlivj03jwb6s5plm6w";
+       version = "5.3.1.2";
+       sha256 = "0hkia5zziwabm847bl1f2pap47iyrvjwzdsygcvywving467302d";
        libraryHaskellDepends = [
          base bytestring containers filepath lambdabot-core lifted-base mtl
          network network-uri parsec process regex-tdfa SafeSemaphore split
@@ -181365,8 +181161,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-novelty-plugins";
-       version = "5.3.1.1";
-       sha256 = "1x4whzn3d4gni1xjwrjr95jqi50gwgf02x64gg9nwvkc5lh4admx";
+       version = "5.3.1.2";
+       sha256 = "01sas4jg54k1n68sl5v6i1lyai9chw0v0j6dl4p5rh8wdp0n5863";
        libraryHaskellDepends = [
          base binary brainfuck bytestring containers dice directory
          lambdabot-core misfortune process random random-fu regex-tdfa
@@ -181383,8 +181179,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-reference-plugins";
-       version = "5.3.1.1";
-       sha256 = "1s8s4k394p59lg3xrcn0bwq9wcqzdvzx6qanmsrch0nzwg6l4g7h";
+       version = "5.3.1.2";
+       sha256 = "086ac4j85x2s156xzwmlldk7sll6jq3gq4mp2vjsa8w9q0p6yw0y";
        libraryHaskellDepends = [
          base bytestring containers HTTP lambdabot-core mtl network
          network-uri oeis process regex-tdfa split tagsoup utf8-string
@@ -181399,8 +181195,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-social-plugins";
-       version = "5.3.1.1";
-       sha256 = "04gls4klsa7kz22k6aar636hci3iafxa5mwx8kxvgawahvlcy0p2";
+       version = "5.3.1.2";
+       sha256 = "137vgsr3alsmaa0dz7z55ijy2zvgy5al3wsdgmwhgkim9ahs4d2k";
        libraryHaskellDepends = [
          base binary bytestring containers lambdabot-core mtl split time
        ];
@@ -181441,8 +181237,8 @@ self: {
     ({ mkDerivation, base, oeis, QuickCheck, QuickCheck-safe }:
      mkDerivation {
        pname = "lambdabot-trusted";
-       version = "5.3.1.1";
-       sha256 = "0kzkp7cy7wcig2wi2l12j8pflapsmdj45y8qq1l5j86gcvsk7xf3";
+       version = "5.3.1.2";
+       sha256 = "0y3c7jhihhb925x04b3ja8akgsfj2a1hyx1p8i08kaarrfmk796l";
        libraryHaskellDepends = [ base oeis QuickCheck QuickCheck-safe ];
        description = "Lambdabot trusted code";
        license = "GPL";
@@ -182193,6 +181989,8 @@ self: {
        pname = "language-c-quote";
        version = "0.13.0.1";
        sha256 = "0ik16ng210fa0l93bgiwpw9m1krcw23530fvv5agl9j1b71qaxm0";
+       revision = "1";
+       editedCabalFile = "0skpnzjdrfadd1b835q5ic7pvl0znx1mkyxkimy99zm474rn3dzj";
        libraryHaskellDepends = [
          array base bytestring containers exception-mtl
          exception-transformers filepath haskell-src-meta mainland-pretty
@@ -185050,19 +184848,25 @@ self: {
      }) {};
 
   "leb128-binary" = callPackage
-    ({ mkDerivation, base, binary, bytestring, deepseq, hedgehog, tasty
-     , tasty-bench, tasty-hedgehog, tasty-hunit
+    ({ mkDerivation, base, binary, bytestring, containers, deepseq
+     , hedgehog, integer-logarithms, scientific, tasty, tasty-bench
+     , tasty-hedgehog, tasty-hunit, text
      }:
      mkDerivation {
        pname = "leb128-binary";
-       version = "0.1.2";
-       sha256 = "1bw7xk269kxd9y5983dr57nxdg8a28hbwdnzgkxn7p6z461rgpqh";
-       libraryHaskellDepends = [ base binary bytestring ];
+       version = "0.1.3";
+       sha256 = "1rq025if04na8knv50krs4hli9ki9y26x5hg8sskikad8sffsv5j";
+       libraryHaskellDepends = [
+         base binary bytestring containers integer-logarithms scientific
+         text
+       ];
        testHaskellDepends = [
-         base binary bytestring hedgehog tasty tasty-hedgehog tasty-hunit
+         base binary bytestring containers hedgehog integer-logarithms
+         scientific tasty tasty-hedgehog tasty-hunit text
        ];
        benchmarkHaskellDepends = [
-         base binary bytestring deepseq tasty-bench
+         base binary bytestring containers deepseq integer-logarithms
+         scientific tasty-bench text
        ];
        description = "Signed and unsigned LEB128 codec for binary library";
        license = lib.licenses.asl20;
@@ -186263,10 +186067,8 @@ self: {
      }:
      mkDerivation {
        pname = "lhs2tex";
-       version = "1.24";
-       sha256 = "09mkcklm9aixn4xwdcmy8z4x5myh4f5ky0nnadj1wgfjcychbmzc";
-       revision = "1";
-       editedCabalFile = "06vcx5i474sskqzk99l8qcxadzhz2rbmkjfyxk8aqp62pbxcq9r9";
+       version = "1.25";
+       sha256 = "0cf66z6mgadgqd1xs5b6gw8l9rkwgbfsc5czwdiapn7ichi26qyj";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [
@@ -187182,6 +186984,18 @@ self: {
        license = lib.licenses.isc;
      }) {inherit (pkgs) libsodium;};
 
+  "libsodium-bindings" = callPackage
+    ({ mkDerivation, base, libsodium }:
+     mkDerivation {
+       pname = "libsodium-bindings";
+       version = "0.0.1.0";
+       sha256 = "1asmcmqiahammzxk79r0afaaxn2izvfwr5hn6ddca2qyjch30lci";
+       libraryHaskellDepends = [ base ];
+       librarySystemDepends = [ libsodium ];
+       description = "FFI bindings to libsodium";
+       license = lib.licenses.bsd3;
+     }) {inherit (pkgs) libsodium;};
+
   "libssh2" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, libssh2, network, syb
      , time, unix
@@ -187642,10 +187456,8 @@ self: {
      }:
      mkDerivation {
        pname = "lifted-async";
-       version = "0.10.2.4";
-       sha256 = "0pdy7q508n7gvy338xsv9a8fg7saksi8qb9av6j3a37l2pp4vvcv";
-       revision = "2";
-       editedCabalFile = "0bg2qmg6lav4zizki1cvqpvd3wqjhfjff7zz17wg5hzlm5318gky";
+       version = "0.10.2.5";
+       sha256 = "1lhyjv32plqs0r2gi7ca8b527z5qas7xgjkh680lqwi0l81xd80n";
        libraryHaskellDepends = [
          async base constraints lifted-base monad-control transformers-base
        ];
@@ -189477,8 +189289,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquidhaskell";
-       version = "0.9.2.5.0";
-       sha256 = "1a508khibgy94z9fk91z22wl7qqdw8l4wcfcjxk0z7z7f05llrim";
+       version = "0.9.2.8.0";
+       sha256 = "1n4dkahiaci6j502w5ksqpb1g7v8rwf3hbhqqprjmcc6cl5ppyzn";
        setupHaskellDepends = [ base Cabal liquidhaskell-boot ];
        libraryHaskellDepends = [
          base bytestring containers ghc-prim liquidhaskell-boot
@@ -189501,8 +189313,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquidhaskell-boot";
-       version = "0.9.2.5.0";
-       sha256 = "10k8pisygfdy23i2zb538rl7yf3gac4wxa550dsqnzkmkfcr82yz";
+       version = "0.9.2.8.0";
+       sha256 = "0q1rknlqi4x9gpkl9yvrzxfkbkcs6m883dhpvlymqpvsp2qs22b1";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base binary bytestring Cabal cereal cmdargs containers
@@ -192957,21 +192769,20 @@ self: {
      , 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, temporary, text, text-rope, transformers, unliftio-core
+     , stm, text, text-rope, transformers, unliftio-core
      , unordered-containers, uuid
      }:
      mkDerivation {
        pname = "lsp";
-       version = "2.2.0.0";
-       sha256 = "0nqxkx7vjzvn5ysalk9nd1aqwzfxjj39g3g91qr01hdzydfjsajr";
+       version = "2.3.0.0";
+       sha256 = "0jxvwhmfvnyp6r1kqfg13qpkd1a6a26r8z1aqhg2lj62lnz6d672";
        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
-         temporary text text-rope transformers unliftio-core
-         unordered-containers uuid
+         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
@@ -193019,8 +192830,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.16.0.0";
-       sha256 = "0a2xv9nqz84ymmbz7yyhxkrxhghafgpmma9iqz32jwr8wqn6g9hf";
+       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
@@ -193073,8 +192884,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-types";
-       version = "2.0.2.0";
-       sha256 = "0s895x3b8fpcj2b0ia3d4dmwk4vhg6h2anmzffkpr3drsq5bi1j6";
+       version = "2.1.0.0";
+       sha256 = "0i4ygvf7fc6bh5rmw3fq7ck4vcmbfw92fzvnxpmqr3j1yp3a6fiw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -195027,8 +194838,8 @@ self: {
      }:
      mkDerivation {
        pname = "mailtrap";
-       version = "0.1.1.0";
-       sha256 = "177zfswsgg8r51pzjvyf7k4dnvrfq3zj82b54xh5vdpd74k3x2ng";
+       version = "0.1.2.0";
+       sha256 = "0fglprc6ppq316w870p2gdbnn4kh71a0v2zjhsxrxjcbprwb537h";
        libraryHaskellDepends = [
          aeson base base64 blaze-html bytestring email-validate filepath
          http-conduit mime-types text time unordered-containers uuid-types
@@ -195059,8 +194870,8 @@ self: {
        pname = "mainland-pretty";
        version = "0.7.1";
        sha256 = "19z2769rik6kwvsil2if2bfq2v59jmwv74jy3fy4q3q3zy4239p1";
-       revision = "2";
-       editedCabalFile = "0jinam3djr66lk21p2z7vmldk96qh0pf7rq3d56g77krdd6bd9p1";
+       revision = "3";
+       editedCabalFile = "0wspwmy0wi1fcyw8czgkr03iyq73gg4i0x6ckjbhxq7qb3r62q8v";
        libraryHaskellDepends = [
          base containers srcloc text transformers
        ];
@@ -196273,6 +196084,8 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Computations for Markov chain usage models";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "markov-processes" = callPackage
@@ -197153,17 +196966,15 @@ self: {
      }:
      mkDerivation {
        pname = "matrix";
-       version = "0.3.6.1";
-       sha256 = "0b1v17rc9q7ni44gkzp124kmc5d6xmlpiqvskgjrq54qpjinr5zs";
-       revision = "1";
-       editedCabalFile = "0iy0gdgg68ldhgm4lzvzl5pmzflx0r4brdbdkq75rkarm7cigawn";
+       version = "0.3.6.3";
+       sha256 = "0gzh89nj4cqk772x37byv7z3smjpr76bd9qmqpz9bbnyicwig0qc";
        libraryHaskellDepends = [
          base deepseq loop primitive semigroups vector
        ];
        testHaskellDepends = [ base QuickCheck tasty tasty-quickcheck ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "A native implementation of matrix operations";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.mit;
      }) {};
 
   "matrix-as-xyz" = callPackage
@@ -203691,10 +203502,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-metrics";
-       version = "0.2.2.0";
-       sha256 = "13wsz9c02jsh5sh2kka1v7kna1aij51794n7g52ib27qmxgg9qvq";
-       revision = "1";
-       editedCabalFile = "1y5733zs49jyi2qyx8nk2p2ddzkkih1nw33qjrc9ppk05m3030hi";
+       version = "0.2.2.1";
+       sha256 = "1fknfailm2cwl8r96pxxbid3chvmaq3g98yb6l4pnr8mcqyyz7k6";
        libraryHaskellDepends = [
          base clock ekg-core exceptions hashable microlens mtl text
          transformers unordered-containers
@@ -204065,8 +203874,8 @@ self: {
        pname = "monad-ste";
        version = "0.1.0.0";
        sha256 = "0yqkx7rlrfms7wiymb41y5nxh8fyi4049729iamwablx6hdpsrw6";
-       revision = "2";
-       editedCabalFile = "0dcdf3nifq26v63r6l1bxx4zv3ldgq7dxijf07ba9dliizwj2nr8";
+       revision = "3";
+       editedCabalFile = "0zr8ixjx1rsgfjnil4w74pf0m2m697z50ai7sb14ra9s78yb66b6";
        libraryHaskellDepends = [ base exceptions ghc-prim primitive ];
        testHaskellDepends = [ base hspec HUnit ];
        description = "ST monad with efficient explicit errors";
@@ -205095,8 +204904,8 @@ self: {
        pname = "monoidal-containers";
        version = "0.6.4.0";
        sha256 = "09sg4gsrvgnsy12819sps2l0j97baanbsq2w1pvypnrkanzrw083";
-       revision = "1";
-       editedCabalFile = "0dav6640nvxizgqqkwqmpi9z04n2swhxmyl68xm94c9np356q5iw";
+       revision = "2";
+       editedCabalFile = "0k0pi43km8v25rz61zqfw958djbxrrjb1a2idkpj92klbjsr49dd";
        libraryHaskellDepends = [
          aeson base containers deepseq hashable lens newtype semialign these
          unordered-containers witherable
@@ -205242,8 +205051,8 @@ self: {
      }:
      mkDerivation {
        pname = "monomer-flatpak-example";
-       version = "0.0.13.2";
-       sha256 = "1lklf9n1ck1yyyc73f36i495rgq2anxm33ghcmlssy8allpv1k8w";
+       version = "0.0.14.0";
+       sha256 = "1cxj7gw732hnm7lmz5d3pwdh03gswdycjsg5c145xsgc7s09vy0c";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -205387,8 +205196,8 @@ self: {
        pname = "months";
        version = "0.2";
        sha256 = "054dag7806850hdii7s5rxg8gx2spdp33pnx4s4ckni9ayvspija";
-       revision = "8";
-       editedCabalFile = "0xpid9mlk56c03axbqam9yws9g47rqbdils3zpqlc6pd4mrwb030";
+       revision = "9";
+       editedCabalFile = "0911yfyf0z7zzpc0my8rsg2p38dz07w7mkhc3b909ydyh04wzxvp";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat deepseq hashable intervals
          QuickCheck text time-compat
@@ -208608,6 +208417,8 @@ self: {
        pname = "multiset";
        version = "0.3.4.3";
        sha256 = "1i0mjjdv8ayfars014nch5p3jlbl1wlr1bbkp7q2iknkllasxz3r";
+       revision = "1";
+       editedCabalFile = "0wkwvavc75q7g7gjxh7jc4cla65ys8136jf14g3ifma5vy3wafs5";
        libraryHaskellDepends = [ base containers deepseq ];
        testHaskellDepends = [
          base checkers doctest QuickCheck tasty tasty-quickcheck
@@ -209770,36 +209581,28 @@ self: {
      }) {};
 
   "myers-diff" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, deepseq
-     , exceptions, primitive, QuickCheck, quickcheck-instances, random
-     , sandwich, sandwich-quickcheck, string-interpolate, text
-     , text-rope, vector, weigh
+    ({ mkDerivation, base, containers, criterion, deepseq, exceptions
+     , primitive, QuickCheck, quickcheck-instances, sandwich
+     , sandwich-quickcheck, string-interpolate, text, text-rope, vector
+     , weigh
      }:
      mkDerivation {
        pname = "myers-diff";
-       version = "0.2.0.0";
-       sha256 = "1k71p2di2vpbfjsbycclj2xhlb1q5j37z4h18yxh2m0jj1r3dw07";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.3.0.0";
+       sha256 = "1zkhax2wha1cv9zzw7hvk4dnnkd8p6iskd7lf8d7kmkjv88bxjsa";
        libraryHaskellDepends = [
          base containers exceptions primitive text vector
        ];
-       executableHaskellDepends = [
-         base containers deepseq exceptions primitive QuickCheck
-         quickcheck-instances string-interpolate text text-rope vector
-       ];
        testHaskellDepends = [
-         base containers deepseq exceptions primitive QuickCheck
+         base containers criterion deepseq exceptions primitive QuickCheck
          quickcheck-instances sandwich sandwich-quickcheck
          string-interpolate text text-rope vector
        ];
        benchmarkHaskellDepends = [
-         array base containers criterion deepseq exceptions primitive
-         QuickCheck quickcheck-instances random string-interpolate text
-         text-rope vector weigh
+         base containers criterion deepseq exceptions primitive QuickCheck
+         quickcheck-instances string-interpolate text text-rope vector weigh
        ];
        license = lib.licenses.bsd3;
-       mainProgram = "myers-diff";
      }) {};
 
   "myo" = callPackage
@@ -212808,6 +212611,17 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "network-control" = callPackage
+    ({ mkDerivation, base, psqueues, unix-time }:
+     mkDerivation {
+       pname = "network-control";
+       version = "0.0.1";
+       sha256 = "1fhxnfc62kqnb24jj3ydl4mf43skgpjyhvirn1pjp30hnki8p8p9";
+       libraryHaskellDepends = [ base psqueues unix-time ];
+       description = "Library to control network protocols";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "network-data" = callPackage
     ({ mkDerivation, base, bytestring, cereal, pretty }:
      mkDerivation {
@@ -214650,6 +214464,33 @@ self: {
        ];
      }) {};
 
+  "nix-derivation_1_1_3" = callPackage
+    ({ mkDerivation, attoparsec, base, containers, criterion, deepseq
+     , filepath, pretty-show, QuickCheck, text, vector
+     }:
+     mkDerivation {
+       pname = "nix-derivation";
+       version = "1.1.3";
+       sha256 = "11drhg3zjhwbvdw25k0icvbkcpqilx0m9qw60k7snfaz1iadfkdb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base containers deepseq filepath text vector
+       ];
+       executableHaskellDepends = [ attoparsec base pretty-show text ];
+       testHaskellDepends = [
+         attoparsec base filepath QuickCheck text vector
+       ];
+       benchmarkHaskellDepends = [ attoparsec base criterion text ];
+       description = "Parse and render *.drv files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "pretty-derivation";
+       maintainers = [
+         lib.maintainers.Gabriella439 lib.maintainers.sorki
+       ];
+     }) {};
+
   "nix-diff" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , directory, filepath, generic-arbitrary, mtl, nix-derivation
@@ -216012,26 +215853,6 @@ self: {
      }:
      mkDerivation {
        pname = "nothunks";
-       version = "0.1.4";
-       sha256 = "0x8km8pmdnjsafchndzxrypldxscj8h080i14hvkj2ypfkmh52l8";
-       revision = "1";
-       editedCabalFile = "0xv39s948j50ym1fn5h7xfxr6zl4v7h2mc68qrp4zz2mahx9mk7d";
-       libraryHaskellDepends = [
-         base bytestring containers ghc-heap stm text time vector
-       ];
-       testHaskellDepends = [
-         base containers ghc-prim hedgehog random stm tasty tasty-hedgehog
-       ];
-       description = "Examine values for unexpected thunks";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "nothunks_0_1_5" = callPackage
-    ({ mkDerivation, base, bytestring, containers, ghc-heap, ghc-prim
-     , hedgehog, random, stm, tasty, tasty-hedgehog, text, time, vector
-     }:
-     mkDerivation {
-       pname = "nothunks";
        version = "0.1.5";
        sha256 = "1s5x4g5g62bs3jd44p2p9lvv01gwarm8jmmigm1d3i8ia8w0lz4w";
        libraryHaskellDepends = [
@@ -216042,7 +215863,6 @@ self: {
        ];
        description = "Examine values for unexpected thunks";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "notifications-tray-icon" = callPackage
@@ -221172,8 +220992,8 @@ self: {
        pname = "optics-extra";
        version = "0.4.2.1";
        sha256 = "0hfa5yb7l3l310lfxkii13fjzb69g619agadc5a86i734nisf8vy";
-       revision = "1";
-       editedCabalFile = "0bpr1bkb7mmww028n8ikwa0qhdl7ybxpb9s887dlp3dvxr5iq8nq";
+       revision = "2";
+       editedCabalFile = "0w7am7pvwg4mx0nrksxgr2rvnk99nhqfpj80ig21m9xbpxsh22x4";
        libraryHaskellDepends = [
          array base bytestring containers hashable indexed-profunctors
          indexed-traversable-instances mtl optics-core text transformers
@@ -221209,8 +221029,8 @@ self: {
        pname = "optics-th";
        version = "0.4.1";
        sha256 = "05zxljfqmhr5if7l8gld5s864nql6kqjfizsf1z7r3ydknvmff6p";
-       revision = "5";
-       editedCabalFile = "0a9h1bll1m9v40cv7ifv2sy3k6sfcq325s7cpk33wh65awf5zpl7";
+       revision = "6";
+       editedCabalFile = "03qm6q7gw97qlcgnqp097dyvqkqpq4ph95y5ra6k6da218rbl1nk";
        libraryHaskellDepends = [
          base containers mtl optics-core template-haskell th-abstraction
          transformers
@@ -221555,19 +221375,20 @@ self: {
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
-  "optparse-generic_1_5_1" = callPackage
-    ({ mkDerivation, base, bytestring, Only, optparse-applicative, text
-     , time, transformers, transformers-compat, void
+  "optparse-generic_1_5_2" = callPackage
+    ({ mkDerivation, base, bytestring, filepath, Only
+     , optparse-applicative, text, time, transformers
+     , transformers-compat, void
      }:
      mkDerivation {
        pname = "optparse-generic";
-       version = "1.5.1";
-       sha256 = "01naichbyxwssdf55r5qzd79zfvgd1i239fp3srkz5w45p90znyr";
+       version = "1.5.2";
+       sha256 = "0dca5q57jv4b8l1af4ywimaiw9rfrysambcghfmll4il5prm3d67";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring Only optparse-applicative text time transformers
-         transformers-compat void
+         base bytestring filepath Only optparse-applicative text time
+         transformers transformers-compat void
        ];
        executableHaskellDepends = [ base ];
        description = "Auto-generate a command-line parser for your datatype";
@@ -221862,12 +221683,16 @@ self: {
      }) {};
 
   "ordering-duplicates" = callPackage
-    ({ mkDerivation, base, contravariant, lens, mtl }:
+    ({ mkDerivation, base, contravariant, lens, mtl, profunctors
+     , semigroupoids
+     }:
      mkDerivation {
        pname = "ordering-duplicates";
-       version = "0.0.2";
-       sha256 = "1c2d2np8dqxsbhkdjk3lzh0ninlzcbdczd0bkq1przcraswxsll5";
-       libraryHaskellDepends = [ base contravariant lens mtl ];
+       version = "0.1.0";
+       sha256 = "0c8gxjf2ximg737ndv8jh35r9fcw4zfxb265m2w5wsg64syh9nmw";
+       libraryHaskellDepends = [
+         base contravariant lens mtl profunctors semigroupoids
+       ];
        description = "Functions for detecting duplicates";
        license = lib.licenses.bsd3;
      }) {};
@@ -223778,6 +223603,17 @@ self: {
        ];
      }) {};
 
+  "pandoc-builder-monadic" = callPackage
+    ({ mkDerivation, base, dlist, mtl, pandoc-types, text }:
+     mkDerivation {
+       pname = "pandoc-builder-monadic";
+       version = "1.0.0";
+       sha256 = "1ww1fwnsp4xka50jgwlaxzqzzpshglih6n0zi0cmd0bj7jn47jrf";
+       libraryHaskellDepends = [ base dlist mtl pandoc-types text ];
+       description = "A monadic DSL for building pandoc documents";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "pandoc-citeproc" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
@@ -224455,6 +224291,17 @@ self: {
        broken = true;
      }) {};
 
+  "pandoc-query" = callPackage
+    ({ mkDerivation, base, pandoc, pandoc-types, text }:
+     mkDerivation {
+       pname = "pandoc-query";
+       version = "1.0.0";
+       sha256 = "071f93skzn188qb5nl010jhhh8wgaji9m54frw1ig54f7xhvmnw0";
+       libraryHaskellDepends = [ base pandoc pandoc-types text ];
+       description = "Pandoc filter to extract only the links";
+       license = lib.licenses.gpl3Only;
+     }) {};
+
   "pandoc-select-code" = callPackage
     ({ mkDerivation, base, pandoc, pandoc-types }:
      mkDerivation {
@@ -224599,6 +224446,8 @@ self: {
        pname = "pandoc-types";
        version = "1.23.1";
        sha256 = "1hd18l1c5yh7x24gsligkbraadq12hn7mim16xyjnicdsa1s03xd";
+       revision = "1";
+       editedCabalFile = "02yaziq3xyz9zqr4qrqm4drlqpa3xnxmm5x0ci52c5p5dr3c3b3d";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq ghc-prim QuickCheck syb
          text transformers
@@ -227471,27 +227320,6 @@ self: {
      }:
      mkDerivation {
        pname = "patrol";
-       version = "1.0.0.5";
-       sha256 = "1nkni4zridr6y6q158f332kv93a828pimq6xwa6644hh4r1gxb25";
-       libraryHaskellDepends = [
-         aeson base bytestring case-insensitive containers exceptions
-         http-client http-types network-uri text time uuid
-       ];
-       testHaskellDepends = [
-         aeson base bytestring case-insensitive containers exceptions hspec
-         http-client http-types network-uri text time uuid
-       ];
-       description = "Sentry SDK";
-       license = lib.licenses.mit;
-     }) {};
-
-  "patrol_1_0_0_6" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, case-insensitive
-     , containers, exceptions, hspec, http-client, http-types
-     , network-uri, text, time, uuid
-     }:
-     mkDerivation {
-       pname = "patrol";
        version = "1.0.0.6";
        sha256 = "02szpfdzhb7b6gklnly45wibma19h7dbklqcrc435ks0bjncgyi7";
        libraryHaskellDepends = [
@@ -227504,7 +227332,6 @@ self: {
        ];
        description = "Sentry SDK";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "patronscraper" = callPackage
@@ -230735,8 +230562,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "phladiprelio-general-datatype";
-       version = "0.3.1.0";
-       sha256 = "1pbd6hd1pb28shag6xa08caamz6f02dn71v9asyyqznxpljf4771";
+       version = "0.5.1.0";
+       sha256 = "10r5wxdqi6ccym7rabha4f1d4y94b2xjih9ib4w6dilqv9f86bi7";
        libraryHaskellDepends = [ base ];
        description = "Extended functionality of PhLADiPreLiO";
        license = lib.licenses.mit;
@@ -230767,8 +230594,8 @@ self: {
      }:
      mkDerivation {
        pname = "phladiprelio-general-simple";
-       version = "0.11.1.0";
-       sha256 = "1rlnkfiacz1d73bf503wy609gfq2xh7h912rqqm1g364kj473f2c";
+       version = "0.13.0.0";
+       sha256 = "020r916dasx5q0ak9caj85dfzh5f1c4affryb39gm2jsf3m25d2n";
        libraryHaskellDepends = [
          async base cli-arguments directory halfsplit
          phladiprelio-general-datatype phladiprelio-general-shared
@@ -230832,8 +230659,8 @@ self: {
      }:
      mkDerivation {
        pname = "phladiprelio-ukrainian-simple";
-       version = "0.12.1.0";
-       sha256 = "0k29gyjfdjy2l36i857dhd5d0jk4w33acvy7c56j4m0lmsw0azmn";
+       version = "0.14.0.0";
+       sha256 = "0hpn6r8817wrn2ywh2ahi5nf8b7rlczfzfvbw8b9y1b4z3r96nir";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -231514,8 +231341,8 @@ self: {
     ({ mkDerivation, base, mmsyn2-array, mmsyn5 }:
      mkDerivation {
        pname = "phonetic-languages-ukrainian-array";
-       version = "0.11.0.0";
-       sha256 = "0rijqyvavk2i7439n25wzb4dggz9xv2hfxw7557p5jqii15jxvcs";
+       version = "0.12.1.0";
+       sha256 = "0aq3rsrgy8gx01zi016hn0mhszg1166ysmr3iqrq5f4ajg6kc0fm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mmsyn2-array mmsyn5 ];
@@ -232566,8 +232393,8 @@ self: {
        pname = "pipes-bytestring";
        version = "2.1.7";
        sha256 = "0ch7145pv4f56601ysdj5gqqwsh5ag2zh34ydswg62fqi8z8cxvc";
-       revision = "2";
-       editedCabalFile = "0nvb4y5s0jrm4v5a3hvxabjlb16xdlivlh0qrqpl4fi1gih1x4yb";
+       revision = "3";
+       editedCabalFile = "0a5mp98prbpn5pqpab0h3xinhh9vnjqhlss44zq9dbvxw14agxak";
        libraryHaskellDepends = [
          base bytestring pipes pipes-group pipes-parse stringsearch
          transformers
@@ -233363,36 +233190,16 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-safe";
-       version = "2.3.4";
-       sha256 = "1ha0q1dwl52rn59shmk8jhp7grngpiwmp8x4qa9h54flvxkqk12x";
-       revision = "6";
-       editedCabalFile = "00zidlhj81dp9ksnilkazi9rzi8azxxyv7gwjm0nn12jii45q6i4";
-       libraryHaskellDepends = [
-         base containers exceptions monad-control mtl pipes primitive
-         transformers transformers-base
-       ];
-       description = "Safety for the pipes ecosystem";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.Gabriella439 ];
-     }) {};
-
-  "pipes-safe_2_3_5" = callPackage
-    ({ mkDerivation, base, containers, exceptions, monad-control, mtl
-     , pipes, primitive, transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "pipes-safe";
        version = "2.3.5";
        sha256 = "13npagy597g6zfr2f3vj4a98h2ssg2ps7lmdzrgdsvm8m28x3cph";
-       revision = "1";
-       editedCabalFile = "0ddvkil91z0j0n5i1jn6xnj423y5qyi1ax3cdwzb71galfjp7adc";
+       revision = "2";
+       editedCabalFile = "04yyjgqr81b10635bw0f2i5kfh0qzp7l3v9k9qbzskvlsl3kdyjy";
        libraryHaskellDepends = [
          base containers exceptions monad-control mtl pipes primitive
          transformers transformers-base
        ];
        description = "Safety for the pipes ecosystem";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
@@ -234504,10 +234311,8 @@ self: {
      }:
      mkDerivation {
        pname = "plots";
-       version = "0.1.1.3";
-       sha256 = "1gkrwigv53vg1q96z56m86xf6z9g9w4jqaapf81rixqsww7hrbng";
-       revision = "1";
-       editedCabalFile = "0khcgsbl837rahz9qkq8fbdz9nrdbppqaxpdimp46aha4jbhkyqd";
+       version = "0.1.1.4";
+       sha256 = "1b68dd1xk6kqfgyypddk4zcllm8lnfxz2a2fhvb4d09ar3ix7s40";
        libraryHaskellDepends = [
          adjunctions base base-orphans colour containers data-default
          diagrams-core diagrams-lib directory distributive filepath
@@ -237648,8 +237453,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgres-websockets";
-       version = "0.11.2.1";
-       sha256 = "0zlm0gk4sxm84kx205n5z0r0nw13kajk7400zbi9v2xslwjpgxnn";
+       version = "0.11.2.2";
+       sha256 = "0sjl0r6mg3b3qh4b3y2p1d4q1i6k456v3dj4vw9fhdi51rmyrhah";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -237826,6 +237631,8 @@ self: {
        pname = "postgresql-libpq";
        version = "0.10.0.0";
        sha256 = "0qnzbc1rws6kgy3g1y9n7c2mh190996jlwrp0j3hbsmgdy9aig2l";
+       revision = "1";
+       editedCabalFile = "1xqf1mqbsq75iay8hv4d8ac5psaay6v106w0nqv00p1y5vfay72w";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring unix ];
        librarySystemDepends = [ postgresql ];
@@ -238161,6 +237968,8 @@ self: {
        pname = "postgresql-simple";
        version = "0.7.0.0";
        sha256 = "0gm1wk2zq35h46v0l1qc0z63jv3gxgqd059j1mcmww80a6sipf4c";
+       revision = "1";
+       editedCabalFile = "0yhggx06wbg57psqa8sswf85qfzy8ndssv13vwmxj0gc1ca1zv4l";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring case-insensitive containers
          hashable Only postgresql-libpq scientific template-haskell text
@@ -240288,25 +240097,6 @@ self: {
      }:
      mkDerivation {
        pname = "prettyprinter-combinators";
-       version = "0.1.1.1";
-       sha256 = "1553qii74af7a5xxj3n6ch9vv84kr5ayd1z69x0d78lqqraibx4y";
-       revision = "1";
-       editedCabalFile = "0dp01v9ywwzpvwbiljnlgrazh7pjz8p94wald2rvxa97xzlcm4z2";
-       libraryHaskellDepends = [
-         base bimap bytestring containers dlist pretty-show prettyprinter
-         syb template-haskell text unordered-containers vector
-       ];
-       description = "Some useful combinators for the prettyprinter package";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "prettyprinter-combinators_0_1_2" = callPackage
-    ({ mkDerivation, base, bimap, bytestring, containers, dlist
-     , pretty-show, prettyprinter, syb, template-haskell, text
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "prettyprinter-combinators";
        version = "0.1.2";
        sha256 = "1kmvzczb9g3m2q7glrhwwaklbjs225xgq61vcp5qbysnyhdbxydi";
        libraryHaskellDepends = [
@@ -240315,7 +240105,6 @@ self: {
        ];
        description = "Some useful combinators for the prettyprinter package";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "prettyprinter-compat-annotated-wl-pprint" = callPackage
@@ -243888,15 +243677,15 @@ self: {
      }) {};
 
   "ptr" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, contravariant, gauge
+    ({ mkDerivation, base, bytestring, cereal, contravariant, criterion
      , profunctors, QuickCheck, quickcheck-instances, rerebase
      , strict-list, tasty, tasty-hunit, tasty-quickcheck, text, time
-     , tostring, vector
+     , vector
      }:
      mkDerivation {
        pname = "ptr";
-       version = "0.16.8.4";
-       sha256 = "047f4j89mhy18p4ga0322nln61xx5bvlfiqg6aiywrm2k95gsblh";
+       version = "0.16.8.5";
+       sha256 = "1rpbvg74cvqdpbvnwn28jy0sb7l5hzf4bs371zyr0dwh0ls3xrg6";
        libraryHaskellDepends = [
          base bytestring contravariant profunctors strict-list text time
          vector
@@ -243905,7 +243694,7 @@ self: {
          cereal QuickCheck quickcheck-instances rerebase tasty tasty-hunit
          tasty-quickcheck
        ];
-       benchmarkHaskellDepends = [ cereal gauge rerebase tostring ];
+       benchmarkHaskellDepends = [ cereal criterion rerebase ];
        description = "Experimental abstractions for operations on pointers";
        license = lib.licenses.mit;
      }) {};
@@ -245835,8 +245624,8 @@ self: {
        pname = "quaalude";
        version = "0.0.0.1";
        sha256 = "0wwsrpm2s7gs2c4fwh4qvhnjywxfyf94dw715bz34q7bzyyk3lc6";
-       revision = "1";
-       editedCabalFile = "0mqgnxadwgz0ky3nvzqrkdnx5xb2a8qbiwvdwjmy63xhwdymy5ap";
+       revision = "2";
+       editedCabalFile = "1danjjnb38pnz5x4xdqas5fr9xb703i6a4jx49kq5q311v8dccva";
        libraryHaskellDepends = [ base ];
        description = "Extremely minimal prelude";
        license = lib.licenses.asl20;
@@ -246301,20 +246090,20 @@ self: {
      , containers, crypto-token, crypton, crypton-x509
      , crypton-x509-system, data-default-class, fast-logger, filepath
      , hspec, hspec-discover, iproute, memory, network
-     , network-byte-order, network-udp, psqueues, QuickCheck, random
-     , stm, tls, unix-time, unliftio, unliftio-core
+     , network-byte-order, network-control, network-udp, QuickCheck
+     , random, stm, tls, unix-time, unliftio, unliftio-core
      }:
      mkDerivation {
        pname = "quic";
-       version = "0.1.7";
-       sha256 = "09pdlp49ix56cnshscq1knmakwcgwjq1p24i2rf4yyfc8hkj3bfc";
+       version = "0.1.9";
+       sha256 = "0xb6ibssn3r45ab48cj74m8c23ic0gszgfrlm5xaj7nmcixna5i2";
        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-udp psqueues random stm tls unix-time unliftio
+         network-control network-udp random stm tls unix-time unliftio
          unliftio-core
        ];
        testHaskellDepends = [
@@ -246919,6 +246708,44 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "quickcheck-state-machine_0_8_0" = callPackage
+    ({ mkDerivation, aeson, ansi-wl-pprint, array, base, base-compat
+     , bifunctors, bytestring, containers, directory, doctest
+     , exceptions, filelock, filepath, generic-data, generics-sop
+     , graphviz, hashable, hashtables, http-client, MemoTrie
+     , monad-logger, mtl, network, persistent, persistent-postgresql
+     , persistent-sqlite, persistent-template, postgresql-simple, pretty
+     , pretty-show, process, QuickCheck, quickcheck-instances, random
+     , resource-pool, resourcet, servant, servant-client, servant-server
+     , sop-core, split, stm, strict, string-conversions, tasty
+     , tasty-hunit, tasty-quickcheck, text, time, unliftio
+     , unliftio-core, vector, wai, warp
+     }:
+     mkDerivation {
+       pname = "quickcheck-state-machine";
+       version = "0.8.0";
+       sha256 = "1fiffmc4bivivdkyb28103rvcnrlc44s28gv63c27r6vkwkwava2";
+       libraryHaskellDepends = [
+         ansi-wl-pprint base base-compat bytestring containers directory
+         exceptions filepath generic-data generics-sop graphviz MemoTrie mtl
+         pretty pretty-show process QuickCheck random sop-core split text
+         time unliftio vector
+       ];
+       testHaskellDepends = [
+         aeson array base bifunctors bytestring containers directory doctest
+         filelock filepath hashable hashtables http-client monad-logger mtl
+         network persistent persistent-postgresql persistent-sqlite
+         persistent-template postgresql-simple pretty-show process
+         QuickCheck quickcheck-instances random resource-pool resourcet
+         servant servant-client servant-server split stm strict
+         string-conversions tasty tasty-hunit tasty-quickcheck text unliftio
+         unliftio-core vector wai warp
+       ];
+       description = "Test monadic programs using state machine based models";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quickcheck-state-machine-distributed" = callPackage
     ({ mkDerivation, base, binary, containers, directory
      , distributed-process, mtl, network-transport
@@ -248247,25 +248074,12 @@ self: {
     ({ mkDerivation, base, hspec }:
      mkDerivation {
        pname = "rampart";
-       version = "2.0.0.6";
-       sha256 = "0znh7v4s7mljlkhk4xpgkps8irbnqh8q2hrb1niwjxnl9mvchpjg";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base hspec ];
-       description = "Determine how intervals relate to each other";
-       license = lib.licenses.mit;
-     }) {};
-
-  "rampart_2_0_0_7" = callPackage
-    ({ mkDerivation, base, hspec }:
-     mkDerivation {
-       pname = "rampart";
        version = "2.0.0.7";
        sha256 = "03yvjnyij98c1lmak3511zn1rfczwnjaal0vrqq3lq5j89ysvyrf";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        description = "Determine how intervals relate to each other";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ramus" = callPackage
@@ -248429,8 +248243,8 @@ self: {
      }:
      mkDerivation {
        pname = "random-cycle";
-       version = "0.1.1.0";
-       sha256 = "10rpgga4kf7ls5a6yphhcqwdprhzl8im81712p7k9wf9iciw96g7";
+       version = "0.1.2.0";
+       sha256 = "0lq5k43ifhknb1nnq4hhsyjh5qlmgcplvsdsxzsmmrk185pmfc9x";
        libraryHaskellDepends = [
          base mwc-random primitive random vector
        ];
@@ -248739,8 +248553,8 @@ self: {
        pname = "range-set-list";
        version = "0.1.3.1";
        sha256 = "0m8c8qhpk9vaykqfy6gsv1csmvdclm27zv9l56ipv152k75xks0j";
-       revision = "5";
-       editedCabalFile = "17a016lbs5p94bclgzqkyld4vhp4rnv4rg8xk4qhqyagggrvq9k7";
+       revision = "6";
+       editedCabalFile = "0gxcsav13k7cm0h45a5xqwd2jqk307cl4vh0d1bqvwsmn014z5w4";
        libraryHaskellDepends = [ base containers deepseq hashable ];
        testHaskellDepends = [
          base containers deepseq hashable tasty tasty-quickcheck
@@ -249195,27 +249009,6 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "2.0.0.9";
-       sha256 = "06zvz041ylpxmipydq1g3lli1w61dbq8dnmqgy2iga8jhd7dif48";
-       libraryHaskellDepends = [
-         aeson base bytestring case-insensitive containers http-client
-         http-client-tls http-types uuid
-       ];
-       testHaskellDepends = [
-         aeson base bytestring case-insensitive containers filepath hspec
-         http-client http-client-tls http-types uuid
-       ];
-       description = "Notify Honeybadger about exceptions";
-       license = lib.licenses.mit;
-     }) {};
-
-  "ratel_2_0_0_10" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, case-insensitive
-     , containers, filepath, hspec, http-client, http-client-tls
-     , http-types, uuid
-     }:
-     mkDerivation {
-       pname = "ratel";
        version = "2.0.0.10";
        sha256 = "1vvz9ia5p7phkwryjfwrzfzvrb94r127vy56qkgikwc9jxxdlxlj";
        libraryHaskellDepends = [
@@ -249228,7 +249021,6 @@ self: {
        ];
        description = "Notify Honeybadger about exceptions";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ratel-wai" = callPackage
@@ -249237,21 +249029,6 @@ self: {
      }:
      mkDerivation {
        pname = "ratel-wai";
-       version = "2.0.0.4";
-       sha256 = "1y5dam4vpisi409d5mnzqj8a1x1nv2aaj0ynq6wavzqw306gwbnz";
-       libraryHaskellDepends = [
-         base bytestring case-insensitive containers http-client ratel wai
-       ];
-       description = "Notify Honeybadger about exceptions via a WAI middleware";
-       license = lib.licenses.mit;
-     }) {};
-
-  "ratel-wai_2_0_0_5" = callPackage
-    ({ mkDerivation, base, bytestring, case-insensitive, containers
-     , http-client, ratel, wai
-     }:
-     mkDerivation {
-       pname = "ratel-wai";
        version = "2.0.0.5";
        sha256 = "1y2rcp1birh1akw98zw10qwjwi5wf7qknk7j5xwwjws7hpmmgy2y";
        libraryHaskellDepends = [
@@ -249259,7 +249036,6 @@ self: {
        ];
        description = "Notify Honeybadger about exceptions via a WAI middleware";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ratelimiter" = callPackage
@@ -257079,8 +256855,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhine";
-       version = "1.0";
-       sha256 = "0xyiiqlx516v78s240r740xdcmj678np8j16a1kg1f3xpxj7m6lp";
+       version = "1.1";
+       sha256 = "09pz2q9bw5c6qlfsy83piryjnzhq3zra1mly3ypqlr9d36zj7bfb";
        libraryHaskellDepends = [
          base containers deepseq dunai free monad-schedule MonadRandom
          random simple-affine-space time time-domain transformers
@@ -257102,15 +256878,15 @@ self: {
      }:
      mkDerivation {
        pname = "rhine-bayes";
-       version = "1.0";
-       sha256 = "0g4y9i15mybi7md221a2mbw1dvilf469a2mcnvy5vd0bsx6xfw1y";
+       version = "1.1";
+       sha256 = "1ybzvbpdz23l3fy1dvv7kn1cpis9c9jy00zxvvwbr47pbvdi9wxc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base dunai log-domain monad-bayes rhine transformers
        ];
        executableHaskellDepends = [
-         base log-domain mmorph monad-bayes rhine rhine-gloss time
+         base dunai log-domain mmorph monad-bayes rhine rhine-gloss time
          transformers
        ];
        description = "monad-bayes backend for Rhine";
@@ -257125,8 +256901,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhine-gloss";
-       version = "1.0";
-       sha256 = "0kx1dqf1rz91im818dn9wvf7nlq8ic0vs5m17xhx349p4yjnk8fi";
+       version = "1.1";
+       sha256 = "12h501lcfskygn1pf407pksh9izcb79g48j4gw63pw4islhcxdbr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -257146,8 +256922,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhine-terminal";
-       version = "1.0";
-       sha256 = "1i00vapdiqgsivwzpnb055iwxxx6626842jyr9w1ccrhib86y00y";
+       version = "1.1";
+       sha256 = "12r7j9mnswbb59mankl8pil7xk9s9ymzxdc73vmi6ads6kf6qvyr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -259152,22 +258928,19 @@ self: {
 
   "rounded-hw" = callPackage
     ({ mkDerivation, array, base, Cabal, deepseq, doctest, fp-ieee
-     , hspec, long-double, primitive, QuickCheck, random, tagged
-     , tasty-bench, vector
+     , hspec, primitive, QuickCheck, random, tagged, tasty-bench, vector
      }:
      mkDerivation {
        pname = "rounded-hw";
-       version = "0.3.0";
-       sha256 = "15y6yz101mnfkc2ff4w6wnqc5r6ykipd7jh0pbg9rjm67jmyr4b5";
-       revision = "1";
-       editedCabalFile = "139hr8a1qyfkdcpxn9pwmi9c7v4q3g86bjrx654nc0q7v87q4afh";
+       version = "0.4.0";
+       sha256 = "1844qb2nsv25ix41jkrcr0n08wa4zsnrn7wpxxavnabi4j7mf8yz";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
-         array base deepseq fp-ieee long-double primitive tagged vector
+         array base deepseq fp-ieee primitive tagged vector
        ];
        testHaskellDepends = [
-         array base deepseq doctest fp-ieee hspec long-double primitive
-         QuickCheck random vector
+         array base deepseq doctest fp-ieee hspec primitive QuickCheck
+         random vector
        ];
        benchmarkHaskellDepends = [
          array base deepseq fp-ieee primitive tasty-bench vector
@@ -261390,25 +261163,12 @@ self: {
     ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "salve";
-       version = "2.0.0.3";
-       sha256 = "027gyrcnyly8wd2znv6gd3ch1r0xq0ycs36lzw1yssiirl4ji5ls";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base HUnit ];
-       description = "Semantic version numbers and constraints";
-       license = lib.licenses.mit;
-     }) {};
-
-  "salve_2_0_0_4" = callPackage
-    ({ mkDerivation, base, HUnit }:
-     mkDerivation {
-       pname = "salve";
        version = "2.0.0.4";
        sha256 = "1csk70mgawp7298x787xk4sshh7xm71vrc703vjwy3mv3i0sg94x";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base HUnit ];
        description = "Semantic version numbers and constraints";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "salvia" = callPackage
@@ -261739,6 +261499,51 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "sandwich_0_2_0_0" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, base, brick
+     , bytestring, colour, containers, deepseq, directory, exceptions
+     , filepath, free, haskell-src-exts, lifted-async, microlens
+     , microlens-th, monad-control, monad-logger, mtl
+     , optparse-applicative, pretty-show, process, safe, safe-exceptions
+     , stm, string-interpolate, template-haskell, text, time
+     , transformers, transformers-base, unix, unliftio-core, vector, vty
+     , vty-crossplatform
+     }:
+     mkDerivation {
+       pname = "sandwich";
+       version = "0.2.0.0";
+       sha256 = "18hr0xyisf9zlfcji63s086mfxgzmhxmpcfhxz41miwlg0780g6f";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         deepseq directory exceptions filepath free haskell-src-exts
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty vty-crossplatform
+       ];
+       executableHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         deepseq directory exceptions filepath free haskell-src-exts
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty vty-crossplatform
+       ];
+       testHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         deepseq directory exceptions filepath free haskell-src-exts
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty vty-crossplatform
+       ];
+       description = "Yet another test framework for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "sandwich-hedgehog" = callPackage
     ({ mkDerivation, base, free, hedgehog, monad-control, mtl
      , safe-exceptions, sandwich, string-interpolate, text, time, vty
@@ -262239,8 +262044,8 @@ self: {
      }:
      mkDerivation {
        pname = "sayable";
-       version = "1.2.3.0";
-       sha256 = "0swwjp1lkfwv4g92d0f4mb6iza56fpf35af2a5kwhxvjg6kp6w32";
+       version = "1.2.3.1";
+       sha256 = "0w4skxbvbmvda2jrvbnnaikka529k5g6qixzc2kz3sqvq784qmks";
        libraryHaskellDepends = [
          base bytestring containers exceptions prettyprinter
          template-haskell text th-abstraction
@@ -262340,6 +262145,8 @@ self: {
        pname = "sbv";
        version = "7.13";
        sha256 = "0bk400swnb4s98c5p71ml1px6jndaiqhf5dj7zmnliyplqcgpfik";
+       revision = "1";
+       editedCabalFile = "0gn00bgvy9v4wiica7psrzmxbbp0fiiknrxmdy55z9k2ycpvw7la";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array async base containers crackNum deepseq directory filepath
@@ -262369,6 +262176,8 @@ self: {
        pname = "sbv";
        version = "10.2";
        sha256 = "1qairjjffy3di61gdav8p1h3zdz4967g13z64xahhd4f2agmr0kz";
+       revision = "1";
+       editedCabalFile = "0vhjrgp4mggvky170m5y3jxcss3byjdbmk3y08bfivb2id94a724";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array async base containers deepseq directory filepath libBF mtl
@@ -265787,6 +265596,8 @@ self: {
        pname = "sensei";
        version = "0.8.0";
        sha256 = "0qmi9qzfbsx9xxkczwjx1pzwmkwpl1dq1c80f4nmjgqh4mm21aw5";
+       revision = "1";
+       editedCabalFile = "1vafgazhxamvwp1ihjhyn2q6v8y57a6hzjvahd10bxdb1ng3mlbx";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -265805,7 +265616,9 @@ self: {
        description = "Automatically run Hspec tests on file modifications";
        license = lib.licenses.mit;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.libjared ];
+       broken = true;
      }) {};
 
   "sensenet" = callPackage
@@ -266322,10 +266135,8 @@ self: {
      }:
      mkDerivation {
        pname = "serialise";
-       version = "0.2.6.0";
-       sha256 = "05m5h5vfjp4wvh6y7j2f3d4c3l6gxww2n1v38vqrjacpw641izwk";
-       revision = "3";
-       editedCabalFile = "1j94b6ry6m86qi9fi4mxwf8qbfai8mv8cwgjw725hbjmmvham97b";
+       version = "0.2.6.1";
+       sha256 = "1x3p9vi6daf50xgv5xxjnclqcq9ynqg1qw7af3ppa1nizycrg533";
        libraryHaskellDepends = [
          array base bytestring cborg containers ghc-prim half hashable
          primitive strict text these time unordered-containers vector
@@ -270433,7 +270244,9 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Treating files as sets to perform rapid set manipulation";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "setdown";
+       broken = true;
      }) {};
 
   "setenv" = callPackage
@@ -270630,8 +270443,8 @@ self: {
      }:
      mkDerivation {
        pname = "sexp-grammar";
-       version = "2.3.4.1";
-       sha256 = "17nyfzz4i74bhd11rbwkzk0inlx4kwqjd2h8hlk3kx5lfj20bspl";
+       version = "2.3.4.2";
+       sha256 = "1pbiccdddnniainx48c9s1l9fjsqf4i57iddrww12mnhdpszr3nw";
        libraryHaskellDepends = [
          array base bytestring containers data-fix deepseq
          invertible-grammar prettyprinter recursion-schemes scientific
@@ -284658,8 +284471,8 @@ self: {
        pname = "step-function";
        version = "0.2.0.1";
        sha256 = "0hpzbjgjgsrx6q7sjk2dz40i2lggx8wraqlf58ibbv3y1yvb2q6a";
-       revision = "1";
-       editedCabalFile = "1zyv6hvh510cgvlj22wxdzs11w508gr35409wrls402g0j75c9d4";
+       revision = "2";
+       editedCabalFile = "034mk1k23qs8d9y1iyxnpxn0zcq0yy6z7jy9lp3l4vin6gmpz0vk";
        libraryHaskellDepends = [ base containers deepseq QuickCheck ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Staircase functions or piecewise constant functions";
@@ -284755,12 +284568,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "stm_2_5_2_1" = callPackage
+  "stm_2_5_3_0" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
        pname = "stm";
-       version = "2.5.2.1";
-       sha256 = "16xis3rj5i0qlr1nc8ybmcrjhhqc2mh4l4lblmi04k2x00aycas1";
+       version = "2.5.3.0";
+       sha256 = "1xy3sj69wcb92fg0y5lp0qxcsi3pyvvrrrn4fpi2snji4j3k47hv";
        libraryHaskellDepends = [ array base ];
        description = "Software Transactional Memory";
        license = lib.licenses.bsd3;
@@ -285875,8 +285688,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-bytestring";
-       version = "0.3.1";
-       sha256 = "0ph6s8a1r0k9zhffmj23plzjlpipy4sr662dd0ya5igb9fbp5i32";
+       version = "0.3.2";
+       sha256 = "0rxsxm0an21d2wrngg61vdz7lqcigi7fs96n8003yfcnah63qnw8";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions ghc-prim mmorph mtl resourcet
          streaming transformers transformers-base
@@ -286860,27 +286673,12 @@ self: {
      }:
      mkDerivation {
        pname = "strict-list";
-       version = "0.1.7.2";
-       sha256 = "1zzrhpgwv4cjjp601fklhv9i1hp4rpabjyylnjwbv757bv8dmlvx";
-       libraryHaskellDepends = [ base deepseq hashable semigroupoids ];
-       testHaskellDepends = [ rerebase tasty tasty-quickcheck ];
-       description = "Strict linked list";
-       license = lib.licenses.mit;
-     }) {};
-
-  "strict-list_0_1_7_3" = callPackage
-    ({ mkDerivation, base, deepseq, hashable, rerebase, semigroupoids
-     , tasty, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "strict-list";
-       version = "0.1.7.3";
-       sha256 = "0bpsnhhg69dq2m9zbzchzzvgpnr0f0jgzsakcn3yzwld8dckxq67";
+       version = "0.1.7.4";
+       sha256 = "0jncppjyzg64d5qxban713z9mxzdky9zlldnnw029l7d1y3yv3x1";
        libraryHaskellDepends = [ base deepseq hashable semigroupoids ];
        testHaskellDepends = [ rerebase tasty tasty-quickcheck ];
        description = "Strict linked list";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "strict-mvar" = callPackage
@@ -287735,23 +287533,6 @@ self: {
      }:
      mkDerivation {
        pname = "strive";
-       version = "6.0.0.9";
-       sha256 = "0zd3c303vyl61alw2bl217znm72ajpsy33qjz2pf52azsdk96qfc";
-       libraryHaskellDepends = [
-         aeson base bytestring data-default gpolyline http-client
-         http-client-tls http-types template-haskell text time transformers
-       ];
-       description = "A client for the Strava V3 API";
-       license = lib.licenses.mit;
-     }) {};
-
-  "strive_6_0_0_10" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, data-default, gpolyline
-     , http-client, http-client-tls, http-types, template-haskell, text
-     , time, transformers
-     }:
-     mkDerivation {
-       pname = "strive";
        version = "6.0.0.10";
        sha256 = "10028krfmrq8v1k00ihdzp5hl6nrq0vdp3kb9xfgsyqgvv8l2ic2";
        libraryHaskellDepends = [
@@ -287760,7 +287541,6 @@ self: {
        ];
        description = "A client for the Strava V3 API";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "strong-path" = callPackage
@@ -288209,6 +287989,8 @@ self: {
        pname = "stylish-haskell";
        version = "0.14.5.0";
        sha256 = "07f0cn7xy8yg1rm0yvkjx27xqv9xc3n1c5s4fqq3yrqyi5szdhbw";
+       revision = "1";
+       editedCabalFile = "0q4k40ys5k2grmbzk14sqnqw9bpq59cq9b7z41cdmbdpdvgbpcsc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -292229,24 +292011,21 @@ self: {
      }) {};
 
   "table-layout" = callPackage
-    ({ mkDerivation, base, data-default-class
-     , data-default-instances-base, hspec, HUnit, QuickCheck
+    ({ mkDerivation, base, data-default-class, doclayout, hspec, HUnit
+     , QuickCheck, text
      }:
      mkDerivation {
        pname = "table-layout";
-       version = "0.9.1.0";
-       sha256 = "0jg6hr835r8m7vn92a01y754ssby3qkkai8sr42bwjvqn7zy7xl8";
+       version = "1.0.0.0";
+       sha256 = "0divq2wf8hpygbrsvp8x4pcbajrbmrr2i4vfjqajwjq914swb2kc";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [
-         base data-default-class data-default-instances-base
-       ];
+       libraryHaskellDepends = [ base data-default-class doclayout text ];
        executableHaskellDepends = [
-         base data-default-class data-default-instances-base
+         base data-default-class doclayout text
        ];
        testHaskellDepends = [
-         base data-default-class data-default-instances-base hspec HUnit
-         QuickCheck
+         base data-default-class doclayout hspec HUnit QuickCheck text
        ];
        description = "Format tabular data as grid or table";
        license = lib.licenses.bsd3;
@@ -292910,8 +292689,8 @@ self: {
      }:
      mkDerivation {
        pname = "tagtree";
-       version = "0.1.0.0";
-       sha256 = "1gmfw1znz4n6a08fpi0g4jkkz1m03yl59v1yj1w6kmlvyzf6dw1z";
+       version = "0.1.0.1";
+       sha256 = "0i9mnlfkxmsvdb33pg8qc3wvlmsdgz4hn9lzwl8ib47qj056fmvd";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default filepattern
          megaparsec parser-combinators relude text
@@ -295737,10 +295516,8 @@ self: {
      }:
      mkDerivation {
        pname = "template-haskell-optics";
-       version = "0.2";
-       sha256 = "13jjycd2yirslab7j6gd1hfl9bn5srid4b2apdz36janxx8np4mm";
-       revision = "1";
-       editedCabalFile = "1asqpnrkwqgvjyc70hicfdjrf90d5h4yh9n2fljsmkjvay3w46r6";
+       version = "0.3";
+       sha256 = "1gz10y1s25fpixcl315q6gqv0687aj1mw4kk8ychsg44nlqm8agz";
        libraryHaskellDepends = [
          base containers optics-core template-haskell th-abstraction
        ];
@@ -296483,14 +296260,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "termbox_2_0_0" = callPackage
+  "termbox_2_0_0_1" = callPackage
     ({ mkDerivation, base, termbox-bindings-hs }:
      mkDerivation {
        pname = "termbox";
-       version = "2.0.0";
-       sha256 = "0al0989wkvkm95m3dz78yrv33zgjb89vskwwq9vgnivvnq8iffhs";
-       revision = "1";
-       editedCabalFile = "0xwap18cxy0w48jhi1mfk15fhihfrjr2wmq1swzqnpmr6b3mpszr";
+       version = "2.0.0.1";
+       sha256 = "0kynby25arx6hcq64cklw9qhw87qxy6vrz9z40d7k7j817gkzccq";
        libraryHaskellDepends = [ base termbox-bindings-hs ];
        description = "termbox";
        license = lib.licenses.bsd3;
@@ -296548,10 +296323,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "termbox-bindings-c";
-       version = "0.1.0";
-       sha256 = "1q7frripz88zgcfmx2lab2vrj19gywnskng07zf7icsj9j6bdwyw";
-       revision = "2";
-       editedCabalFile = "04hnf96p6n9fxczk2hbp53kl3gm06f8zx469nvzl48qjvcxhxc2i";
+       version = "0.1.0.1";
+       sha256 = "1rq695y6491f0nydgm64r6v2l8mkpvzgcrb2gxfdy6g0bwarimxw";
        libraryHaskellDepends = [ base ];
        description = "termbox bindings";
        license = lib.licenses.bsd3;
@@ -296561,21 +296334,19 @@ self: {
     ({ mkDerivation, base, termbox-bindings-c }:
      mkDerivation {
        pname = "termbox-bindings-hs";
-       version = "0.1.0";
-       sha256 = "07m6lp997skqp04a430ynsrzdpwcczblxawvlcbizffsznkmnl64";
-       revision = "2";
-       editedCabalFile = "0bpz5drzp1gfncbpsc9jjz6qyvjjn4c9w16ci79nj60zi7b5q9b5";
+       version = "0.1.1";
+       sha256 = "1f50j6z72g5lsdvakxvlsg77iqspcm2qmwyc1csafgs1zn40ks2i";
        libraryHaskellDepends = [ base termbox-bindings-c ];
        description = "termbox bindings";
        license = lib.licenses.bsd3;
      }) {};
 
-  "termbox-bindings-hs_0_1_1" = callPackage
+  "termbox-bindings-hs_1_0_0" = callPackage
     ({ mkDerivation, base, termbox-bindings-c }:
      mkDerivation {
        pname = "termbox-bindings-hs";
-       version = "0.1.1";
-       sha256 = "1f50j6z72g5lsdvakxvlsg77iqspcm2qmwyc1csafgs1zn40ks2i";
+       version = "1.0.0";
+       sha256 = "1j90pjqrngyygwwwk9zh2ah4sfdz9sv6222k21lmrql60md85g8i";
        libraryHaskellDepends = [ base termbox-bindings-c ];
        description = "termbox bindings";
        license = lib.licenses.bsd3;
@@ -297944,8 +297715,8 @@ self: {
      }:
      mkDerivation {
        pname = "text-builder-linear";
-       version = "0.1.1.1";
-       sha256 = "0yrl0qr8zyfgrn4h618lkk5jv68ij0kzn39bgv3pi05v9dj8rnzm";
+       version = "0.1.2";
+       sha256 = "0ymx978kxqjcgrza82l29g8hp5qwx0miscmkwd04qcvq3iz8ikxa";
        libraryHaskellDepends = [ base bytestring quote-quot text ];
        testHaskellDepends = [ base tasty tasty-quickcheck text ];
        benchmarkHaskellDepends = [
@@ -300355,8 +300126,8 @@ self: {
        pname = "threepenny-gui";
        version = "0.9.4.0";
        sha256 = "08jqa01pp6b300ic0xcn687i0a0kvz76bgym3dchk9n75m6hvc4f";
-       revision = "3";
-       editedCabalFile = "0vciaszq8kmcdxzhjy7l7w4mmhkvq9pnkyrz9i1ixxg4l2riw4f5";
+       revision = "4";
+       editedCabalFile = "11yn9z3n3czfpbhqfjbixcry1zj5p8m3jg2dbx5vcwx5ffklkcav";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -300612,6 +300383,8 @@ self: {
        ];
        description = "A faster time library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tianbar" = callPackage
@@ -307137,8 +306910,8 @@ self: {
        pname = "turtle";
        version = "1.6.2";
        sha256 = "0bav7b2ghbwdhpa4b5a7812psr6hqk7wydvgxjy5dsb62nqnc08s";
-       revision = "1";
-       editedCabalFile = "0bgd9mf1z96iqwv2cdc0pj4dy3dnfxj8qsbvjm26h54cvazc2sbl";
+       revision = "2";
+       editedCabalFile = "14jnb2vyq0nx4cp4c97xflzg7z9xw1avg2d27c1d1cnqg28pd4an";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions filepath foldl hostname managed optional-args
@@ -309318,8 +309091,8 @@ self: {
      }:
      mkDerivation {
        pname = "typesafe-precure";
-       version = "0.10.1.1";
-       sha256 = "11116iqgdpqpmzj0rjqg7bmfyg3zgvwp2ndh4q8m7cy9gcwab734";
+       version = "0.10.1.2";
+       sha256 = "0gn9i4p8idvl3av06il1j14x8dp9lxmb2cpdzqkwp4gsss9hfl73";
        libraryHaskellDepends = [
          aeson aeson-pretty autoexporter base bytestring dlist
          monad-skeleton template-haskell text th-data-compat
@@ -309529,6 +309302,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "typst-symbols_0_1_5" = callPackage
+    ({ mkDerivation, base, text }:
+     mkDerivation {
+       pname = "typst-symbols";
+       version = "0.1.5";
+       sha256 = "1kgw8c0p3qj1an6dhfim310aydgzq05lx086mznbfs5saya1x590";
+       libraryHaskellDepends = [ base text ];
+       description = "Symbol and emoji lookup for typst language";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tyro" = callPackage
     ({ mkDerivation, aeson, base, bytestring, HUnit, protolude
      , reflection, singletons, test-framework, test-framework-hunit
@@ -316087,22 +315872,6 @@ self: {
      }:
      mkDerivation {
        pname = "vector-extras";
-       version = "0.2.8";
-       sha256 = "1xnz733p9p66693hb31fmq2cfsy2rwyw1b0915p7y5my1d8dxyzi";
-       libraryHaskellDepends = [
-         base containers deferred-folds foldl hashable unordered-containers
-         vector
-       ];
-       description = "Utilities for the \"vector\" library";
-       license = lib.licenses.mit;
-     }) {};
-
-  "vector-extras_0_2_8_1" = callPackage
-    ({ mkDerivation, base, containers, deferred-folds, foldl, hashable
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "vector-extras";
        version = "0.2.8.1";
        sha256 = "0bnjh4c001v6ia6ac40i508jdzfdlccp8v0fhy7ayv4scrvpwip2";
        libraryHaskellDepends = [
@@ -316111,7 +315880,6 @@ self: {
        ];
        description = "Utilities for the \"vector\" library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "vector-fft" = callPackage
@@ -316841,6 +316609,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "vertexenum" = callPackage
+    ({ mkDerivation, base, containers, hmatrix-glpk, tasty, tasty-hunit
+     , vector-space
+     }:
+     mkDerivation {
+       pname = "vertexenum";
+       version = "0.1.0.0";
+       sha256 = "0gqc207lns1by4dz57wrdx3r8jnrl1clwpfi65afgi7x09ircxvw";
+       libraryHaskellDepends = [
+         base containers hmatrix-glpk vector-space
+       ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
+       description = "Vertex enumeration";
+       license = lib.licenses.gpl3Only;
+     }) {};
+
   "vessel" = callPackage
     ({ mkDerivation, aeson, aeson-gadt-th, base, base-orphans
      , bifunctors, commutative-semigroups, constraints
@@ -317977,17 +317761,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "vty_6_0" = callPackage
+  "vty_6_1" = callPackage
     ({ mkDerivation, base, binary, blaze-builder, bytestring, deepseq
      , directory, filepath, microlens, microlens-mtl, microlens-th, mtl
      , parsec, stm, text, utf8-string, vector
      }:
      mkDerivation {
        pname = "vty";
-       version = "6.0";
-       sha256 = "0gc57ixmkdkbffzlbj1dda183gwwb6nwz65zsl2jplqwa6airb07";
+       version = "6.1";
+       sha256 = "1mkv9ywqgh4z94sh8dhglklnpa53mkk39qjncjfcwszi15ylpiig";
        revision = "1";
-       editedCabalFile = "0r0l1qb97jdd5ygqw5zzvcji2qgzj7mqapn44zi211z3svzy8kiw";
+       editedCabalFile = "1wy4vfyr4nbb8ycfx80yrp59ggigcbfrsh5w1qk768y04d114kaj";
        libraryHaskellDepends = [
          base binary blaze-builder bytestring deepseq directory filepath
          microlens microlens-mtl microlens-th mtl parsec stm text
@@ -318002,8 +317786,8 @@ self: {
     ({ mkDerivation, base, vty, vty-unix }:
      mkDerivation {
        pname = "vty-crossplatform";
-       version = "0.2.0.0";
-       sha256 = "04ri60dp4gx6ycqhbdz5jd8mcwbwivwqh7fgg2m5vws6kycjma1l";
+       version = "0.4.0.0";
+       sha256 = "06iwxgqrqzz05hmic7z5hxd48x0i49sk935vm0xfi0xq28sl7r9m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base vty vty-unix ];
@@ -318094,8 +317878,8 @@ self: {
      }:
      mkDerivation {
        pname = "vty-unix";
-       version = "0.1.0.0";
-       sha256 = "158j7hw0ddbvhxrhn3k2ifc2wsw70dq7pj0qwnmh5bkd1fs0iakz";
+       version = "0.2.0.0";
+       sha256 = "1hfxc7qw884vlq8qshhyndl3zs10jc2xr6i69vhasjywkvh6gay2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -318119,8 +317903,8 @@ self: {
      }:
      mkDerivation {
        pname = "vty-windows";
-       version = "0.1.0.3";
-       sha256 = "01fwq0mpyxk5nlxkv24bzsr4klg2fpfy8rs124pdssh657aqxaf7";
+       version = "0.2.0.0";
+       sha256 = "03dha87c7nrfyfscnz5bjys9v971xiw4xs60d5z218daazd2rhfy";
        libraryHaskellDepends = [
          base blaze-builder bytestring containers deepseq directory filepath
          microlens microlens-mtl microlens-th mtl parsec stm transformers
@@ -321672,28 +321456,30 @@ self: {
   "webauthn" = callPackage
     ({ mkDerivation, aeson, asn1-encoding, asn1-parse, asn1-types, base
      , base16-bytestring, base64-bytestring, binary, bytestring, cborg
-     , containers, cryptonite, directory, file-embed, filepath, hashable
-     , hourglass, hspec, hspec-expectations-json, jose, lens, memory
-     , monad-time, mtl, pem, QuickCheck, quickcheck-instances, serialise
-     , singletons, text, these, time, unordered-containers, uuid
-     , validation, x509, x509-store, x509-validation
+     , containers, crypton, crypton-x509, crypton-x509-store
+     , crypton-x509-validation, directory, file-embed, filepath
+     , hashable, hourglass, hspec, hspec-expectations-json, jose, lens
+     , memory, monad-time, mtl, pem, QuickCheck, quickcheck-instances
+     , serialise, singletons, text, these, time, unordered-containers
+     , uuid, validation
      }:
      mkDerivation {
        pname = "webauthn";
-       version = "0.8.0.0";
-       sha256 = "1qsywsshgj270zpzw5x5ljdmfy7v8vb8fmdqap118g4sci3ir3b8";
+       version = "0.9.0.0";
+       sha256 = "0rjd4hwap4vhbp7isfb2spyp1kc062x7q9vd5jfdfrvcqmgklav5";
        libraryHaskellDepends = [
          aeson asn1-encoding asn1-parse asn1-types base base16-bytestring
-         base64-bytestring binary bytestring cborg containers cryptonite
-         file-embed hashable hourglass jose lens memory monad-time mtl
-         serialise singletons text these time unordered-containers uuid
-         validation x509 x509-store x509-validation
+         base64-bytestring binary bytestring cborg containers crypton
+         crypton-x509 crypton-x509-store crypton-x509-validation file-embed
+         hashable hourglass jose lens memory monad-time mtl serialise
+         singletons text these time unordered-containers uuid validation
        ];
        testHaskellDepends = [
-         aeson asn1-encoding base bytestring containers cryptonite directory
-         filepath hourglass hspec hspec-expectations-json memory mtl pem
-         QuickCheck quickcheck-instances serialise singletons text these
-         unordered-containers uuid validation x509 x509-store
+         aeson asn1-encoding base bytestring containers crypton crypton-x509
+         crypton-x509-store directory filepath hourglass hspec
+         hspec-expectations-json memory mtl pem QuickCheck
+         quickcheck-instances serialise singletons text these
+         unordered-containers uuid validation
        ];
        description = "Relying party (server) implementation of the WebAuthn 2 specification";
        license = lib.licenses.asl20;
@@ -321837,6 +321623,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "webdriver_0_12_0_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
+     , base64-bytestring, bytestring, call-stack, data-default-class
+     , directory, directory-tree, exceptions, filepath, http-client
+     , http-types, lifted-base, monad-control, network, network-uri
+     , scientific, temporary, text, time, transformers
+     , transformers-base, unordered-containers, vector, zip-archive
+     }:
+     mkDerivation {
+       pname = "webdriver";
+       version = "0.12.0.0";
+       sha256 = "1z54i2ddcnrrfwgyy8bb3jqb279ssmwkyx69nc2zml0195ss5254";
+       libraryHaskellDepends = [
+         aeson attoparsec attoparsec-aeson base base64-bytestring bytestring
+         call-stack data-default-class directory directory-tree exceptions
+         filepath http-client http-types lifted-base monad-control network
+         network-uri scientific temporary text time transformers
+         transformers-base unordered-containers vector zip-archive
+       ];
+       description = "a Haskell client for the Selenium WebDriver protocol";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "webdriver-angular" = callPackage
     ({ mkDerivation, aeson, base, hspec, hspec-webdriver
      , language-javascript, template-haskell, text, transformers
@@ -323345,8 +323155,8 @@ self: {
        pname = "windns";
        version = "0.1.0.1";
        sha256 = "016d1cf51jqvhbzlf5kbizv4l4dymradac1420rl47q2k5faczq8";
-       revision = "6";
-       editedCabalFile = "1hhp85x1k2fxya4j3anqpkz4xnxzdi04l5ld2jqyqb9d5abasy7f";
+       revision = "7";
+       editedCabalFile = "0qbgpy1h3gbhlqs0in014xg9h8mrx7rw6jdkfn81ahycy3xf4l7w";
        libraryHaskellDepends = [ base bytestring deepseq ];
        librarySystemDepends = [ dnsapi ];
        description = "Domain Name Service (DNS) lookup via the <windns.h>/dnsapi.dll standard library";
@@ -323562,25 +323372,6 @@ self: {
      }:
      mkDerivation {
        pname = "witch";
-       version = "1.2.0.2";
-       sha256 = "015raibb13dzsjxpf5m6v9mljhcacix4ic2ypjv1cq8zfwf7wks1";
-       libraryHaskellDepends = [
-         base bytestring containers tagged template-haskell text time
-       ];
-       testHaskellDepends = [
-         base bytestring containers HUnit tagged text time transformers
-       ];
-       description = "Convert values from one type into another";
-       license = lib.licenses.mit;
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "witch_1_2_0_3" = callPackage
-    ({ mkDerivation, base, bytestring, containers, HUnit, tagged
-     , template-haskell, text, time, transformers
-     }:
-     mkDerivation {
-       pname = "witch";
        version = "1.2.0.3";
        sha256 = "1c5kmxb9y7i1amjb0qn1w4rx7c80f52z976d7id644v9sxp00kfx";
        libraryHaskellDepends = [
@@ -323591,7 +323382,6 @@ self: {
        ];
        description = "Convert values from one type into another";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
@@ -323918,8 +323708,8 @@ self: {
        pname = "wl-pprint-text";
        version = "1.2.0.2";
        sha256 = "0axivwh7bxmljxpfnccs66knxzrqck07byxmp2j737xbb26pf5cj";
-       revision = "1";
-       editedCabalFile = "030lk3dxn9ry0si5zd7lh1pww1i1nx670i1h3z8y4wwiil97pni1";
+       revision = "2";
+       editedCabalFile = "1zp64js72l8kkqn47hkl6rcangz14njfrhgdhq0w5x4nhvfi77md";
        libraryHaskellDepends = [ base base-compat text ];
        description = "A Wadler/Leijen Pretty Printer for Text values";
        license = lib.licenses.bsd3;
@@ -327448,8 +327238,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmobar";
-       version = "0.47.1";
-       sha256 = "1l4vpa35nqljsn4kxg5nhwj2d5ns01zj8iikrxr6f8icdirgx4pz";
+       version = "0.47.2";
+       sha256 = "03ln2c59v4aj5936c71zbjn075sia9x5nd7cwy60n92bn3n6wkk9";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -330102,28 +329892,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.7.1.2";
-       sha256 = "1v2rcasjlh4wkqcas652wvs7z8n38cda4yzp18s07f01z0r8ra0r";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring cryptonite errors hoauth2 http-client
-         http-conduit http-types memory microlens mtl safe-exceptions text
-         transformers unliftio uri-bytestring yesod-auth yesod-core
-       ];
-       testHaskellDepends = [ base hspec uri-bytestring ];
-       description = "OAuth 2.0 authentication plugins";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yesod-auth-oauth2_0_7_1_3" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cryptonite, errors
-     , hoauth2, hspec, http-client, http-conduit, http-types, memory
-     , microlens, mtl, safe-exceptions, text, transformers, unliftio
-     , uri-bytestring, yesod-auth, yesod-core
-     }:
-     mkDerivation {
-       pname = "yesod-auth-oauth2";
        version = "0.7.1.3";
        sha256 = "151is1lvhnl3pvp0q4sn3i26l4n936vlpky3hndsn1f76cjy489b";
        isLibrary = true;
@@ -330136,7 +329904,6 @@ self: {
        testHaskellDepends = [ base hspec uri-bytestring ];
        description = "OAuth 2.0 authentication plugins";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-auth-oidc" = callPackage
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
index 9007ab12d754..348d054a6c77 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -20,7 +20,7 @@
 } @ args:
 
 let
-  inherit (lib) getVersion versionAtLeast optional;
+  inherit (lib) getVersion versionAtLeast optional concatStringsSep;
 
 in
 assert versionAtLeast (getVersion erlang) minimumOTPVersion;
@@ -36,7 +36,12 @@ stdenv.mkDerivation ({
   LANG = "C.UTF-8";
   LC_TYPE = "C.UTF-8";
 
-  buildFlags = optional debugInfo "ERL_COMPILER_OPTIONS=debug_info";
+  ERLC_OPTS =
+    let
+      erlc_opts = [ "deterministic" ]
+        ++ optional debugInfo "debug_info";
+    in
+    "[${concatStringsSep "," erlc_opts}]";
 
   preBuild = ''
     patchShebangs ${escriptPath} || true
diff --git a/nixpkgs/pkgs/development/interpreters/gauche/boot.nix b/nixpkgs/pkgs/development/interpreters/gauche/boot.nix
index 7fbc66406e67..61c67b13f78f 100644
--- a/nixpkgs/pkgs/development/interpreters/gauche/boot.nix
+++ b/nixpkgs/pkgs/development/interpreters/gauche/boot.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gauche-bootstrap";
-  version = "0.9.9";
+  version = "0.9.12";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gauche/Gauche-${version}.tgz";
-    sha256 = "1yzpszhw52vkpr65r5d4khf3489mnnvnw58dd2wsvvx7499k5aac";
+    url = "https://github.com/shirok/Gauche/releases/download/release${lib.replaceStrings ["."] ["_"] version}/Gauche-${version}.tgz";
+    hash = "sha256-tK5kkhsHqWZhaV69WqwN7IE9GmjlRqYWCRE9eEP1thc=";
   };
 
   nativeBuildInputs = [ pkg-config texinfo ];
diff --git a/nixpkgs/pkgs/development/interpreters/gauche/default.nix b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
index baa679b6e00d..301cd9db7830 100644
--- a/nixpkgs/pkgs/development/interpreters/gauche/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
@@ -1,20 +1,20 @@
 { stdenv, lib, fetchFromGitHub, autoreconfHook, gaucheBootstrap, pkg-config, texinfo
-, libiconv, gdbm, openssl, zlib, mbedtls, cacert }:
+, libiconv, gdbm, openssl, zlib, mbedtls, cacert, CoreServices }:
 
 stdenv.mkDerivation rec {
   pname = "gauche";
-  version = "0.9.10";
+  version = "0.9.13";
 
   src = fetchFromGitHub {
     owner = "shirok";
     repo = pname;
     rev = "release${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "0ki1w7sa10ivmg51sqjskby0gsznb0d3738nz80x589033km5hmb";
+    hash = "sha256-XD4zJzCktGi/E9sA6BVm9JVQBVrG5119EjZNbP1pVJU=";
   };
 
   nativeBuildInputs = [ gaucheBootstrap pkg-config texinfo autoreconfHook ];
 
-  buildInputs = [ libiconv gdbm openssl zlib mbedtls cacert ];
+  buildInputs = [ libiconv gdbm openssl zlib mbedtls cacert ] ++ lib.optionals stdenv.isDarwin [ CoreServices ];
 
   autoreconfPhase = ''
     ./DIST gen
diff --git a/nixpkgs/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix b/nixpkgs/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix
index d359a7ed82ae..9de0ec441862 100644
--- a/nixpkgs/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix
@@ -3,6 +3,6 @@
 }:
 
 fetchurl {
-  url = "https://pear.php.net/install-pear-nozlib.phar";
+  url = "https://github.com/pear/pearweb_phars/raw/v1.10.21/install-pear-nozlib.phar";
   hash = "sha256-UblKVcsm030tNSA6mdeab+h7ZhANNz7MkFf4Z1iigjs=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
index 970da7c5c5a4..d9b539926b83 100755
--- a/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
+++ b/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
@@ -12,23 +12,24 @@ to update all non-pinned libraries in that folder.
 """
 
 import argparse
+import collections
 import json
 import logging
 import os
 import re
-import requests
+import subprocess
 from concurrent.futures import ThreadPoolExecutor as Pool
-from packaging.version import Version as _Version
-from packaging.version import InvalidVersion
+from typing import Any, Optional
+
+import requests
 from packaging.specifiers import SpecifierSet
-from typing import Optional, Any
-import collections
-import subprocess
+from packaging.version import InvalidVersion
+from packaging.version import Version as _Version
 
 INDEX = "https://pypi.io/pypi"
 """url of PyPI"""
 
-EXTENSIONS = ['tar.gz', 'tar.bz2', 'tar', 'zip', '.whl']
+EXTENSIONS = ["tar.gz", "tar.bz2", "tar", "zip", ".whl"]
 """Permitted file extensions. These are evaluated from left to right and the first occurance is returned."""
 
 PRERELEASES = False
@@ -37,13 +38,16 @@ BULK_UPDATE = False
 
 GIT = "git"
 
-NIXPKGS_ROOT = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode('utf-8').strip()
+NIXPKGS_ROOT = (
+    subprocess.check_output(["git", "rev-parse", "--show-toplevel"])
+    .decode("utf-8")
+    .strip()
+)
 
 logging.basicConfig(level=logging.INFO)
 
 
 class Version(_Version, collections.abc.Sequence):
-
     def __init__(self, version):
         super().__init__(version)
         # We cannot use `str(Version(0.04.21))` because that becomes `0.4.21`
@@ -65,7 +69,7 @@ def _get_values(attribute, text):
 
     :returns: List of matches.
     """
-    regex = fr'{re.escape(attribute)}\s+=\s+"(.*)";'
+    regex = rf'{re.escape(attribute)}\s+=\s+"(.*)";'
     regex = re.compile(regex)
     values = regex.findall(text)
     return values
@@ -73,14 +77,19 @@ def _get_values(attribute, text):
 
 def _get_attr_value(attr_path: str) -> Optional[Any]:
     try:
-        response = subprocess.check_output([
-            "nix",
-            "--extra-experimental-features", "nix-command",
-            "eval",
-            "-f", f"{NIXPKGS_ROOT}/default.nix",
-            "--json",
-            f"{attr_path}"
-        ])
+        response = subprocess.check_output(
+            [
+                "nix",
+                "--extra-experimental-features",
+                "nix-command",
+                "eval",
+                "-f",
+                f"{NIXPKGS_ROOT}/default.nix",
+                "--json",
+                f"{attr_path}",
+            ],
+            stderr=subprocess.DEVNULL,
+        )
         return json.loads(response.decode())
     except (subprocess.CalledProcessError, ValueError):
         return None
@@ -100,12 +109,13 @@ def _get_unique_value(attribute, text):
     else:
         raise ValueError("no value found for {}".format(attribute))
 
+
 def _get_line_and_value(attribute, text, value=None):
     """Match attribute in text. Return the line and the value of the attribute."""
     if value is None:
-        regex = rf'({re.escape(attribute)}\s+=\s+\"(.*)\";)'
+        regex = rf"({re.escape(attribute)}\s+=\s+\"(.*)\";)"
     else:
-        regex = rf'({re.escape(attribute)}\s+=\s+\"({re.escape(value)})\";)'
+        regex = rf"({re.escape(attribute)}\s+=\s+\"({re.escape(value)})\";)"
     regex = re.compile(regex)
     results = regex.findall(text)
     n = len(results)
@@ -138,7 +148,7 @@ def _fetch_page(url):
 
 def _fetch_github(url):
     headers = {}
-    token = os.environ.get('GITHUB_API_TOKEN')
+    token = os.environ.get("GITHUB_API_TOKEN")
     if token:
         headers["Authorization"] = f"token {token}"
     r = requests.get(url, headers=headers)
@@ -151,31 +161,26 @@ def _fetch_github(url):
 
 def _hash_to_sri(algorithm, value):
     """Convert a hash to its SRI representation"""
-    return subprocess.check_output([
-        "nix",
-        "hash",
-        "to-sri",
-        "--type", algorithm,
-        value
-    ]).decode().strip()
+    return (
+        subprocess.check_output(["nix", "hash", "to-sri", "--type", algorithm, value])
+        .decode()
+        .strip()
+    )
 
 
 def _skip_bulk_update(attr_name: str) -> bool:
-    return bool(_get_attr_value(
-        f"{attr_name}.skipBulkUpdate"
-    ))
+    return bool(_get_attr_value(f"{attr_name}.skipBulkUpdate"))
 
 
 SEMVER = {
-    'major' : 0,
-    'minor' : 1,
-    'patch' : 2,
+    "major": 0,
+    "minor": 1,
+    "patch": 2,
 }
 
 
 def _determine_latest_version(current_version, target, versions):
-    """Determine latest version, given `target`.
-    """
+    """Determine latest version, given `target`."""
     current_version = Version(current_version)
 
     def _parse_versions(versions):
@@ -193,7 +198,7 @@ def _determine_latest_version(current_version, target, versions):
     if len(ceiling) == 0:
         ceiling = None
     else:
-        ceiling[-1]+=1
+        ceiling[-1] += 1
         ceiling = Version(".".join(map(str, ceiling)))
 
     # We do not want prereleases
@@ -210,17 +215,19 @@ def _get_latest_version_pypi(package, extension, current_version, target):
     url = "{}/{}/json".format(INDEX, package)
     json = _fetch_page(url)
 
-    versions = json['releases'].keys()
+    versions = json["releases"].keys()
     version = _determine_latest_version(current_version, target, versions)
 
     try:
-        releases = json['releases'][version]
+        releases = json["releases"][version]
     except KeyError as e:
-        raise KeyError('Could not find version {} for {}'.format(version, package)) from e
+        raise KeyError(
+            "Could not find version {} for {}".format(version, package)
+        ) from e
     for release in releases:
-        if release['filename'].endswith(extension):
+        if release["filename"].endswith(extension):
             # TODO: In case of wheel we need to do further checks!
-            sha256 = release['digests']['sha256']
+            sha256 = release["digests"]["sha256"]
             break
     else:
         sha256 = None
@@ -240,33 +247,40 @@ def _get_latest_version_github(package, extension, current_version, target):
     attr_path = os.environ.get("UPDATE_NIX_ATTR_PATH", f"python3Packages.{package}")
     try:
         homepage = subprocess.check_output(
-            ["nix", "eval", "-f", f"{NIXPKGS_ROOT}/default.nix", "--raw", f"{attr_path}.src.meta.homepage"])\
-            .decode('utf-8')
+            [
+                "nix",
+                "eval",
+                "-f",
+                f"{NIXPKGS_ROOT}/default.nix",
+                "--raw",
+                f"{attr_path}.src.meta.homepage",
+            ]
+        ).decode("utf-8")
     except Exception as e:
         raise ValueError(f"Unable to determine homepage: {e}")
-    owner_repo = homepage[len("https://github.com/"):]  # remove prefix
+    owner_repo = homepage[len("https://github.com/") :]  # remove prefix
     owner, repo = owner_repo.split("/")
 
     url = f"https://api.github.com/repos/{owner}/{repo}/releases"
     all_releases = _fetch_github(url)
-    releases = list(filter(lambda x: not x['prerelease'], all_releases))
+    releases = list(filter(lambda x: not x["prerelease"], all_releases))
 
     if len(releases) == 0:
         raise ValueError(f"{homepage} does not contain any stable releases")
 
-    versions = map(lambda x: strip_prefix(x['tag_name']), releases)
+    versions = map(lambda x: strip_prefix(x["tag_name"]), releases)
     version = _determine_latest_version(current_version, target, versions)
 
-    release = next(filter(lambda x: strip_prefix(x['tag_name']) == version, releases))
-    prefix = get_prefix(release['tag_name'])
+    release = next(filter(lambda x: strip_prefix(x["tag_name"]) == version, releases))
+    prefix = get_prefix(release["tag_name"])
 
     # some attributes require using the fetchgit
     git_fetcher_args = []
-    if (_get_attr_value(f"{attr_path}.src.fetchSubmodules")):
+    if _get_attr_value(f"{attr_path}.src.fetchSubmodules"):
         git_fetcher_args.append("--fetch-submodules")
-    if (_get_attr_value(f"{attr_path}.src.fetchLFS")):
+    if _get_attr_value(f"{attr_path}.src.fetchLFS"):
         git_fetcher_args.append("--fetch-lfs")
-    if (_get_attr_value(f"{attr_path}.src.leaveDotGit")):
+    if _get_attr_value(f"{attr_path}.src.leaveDotGit"):
         git_fetcher_args.append("--leave-dotGit")
 
     if git_fetcher_args:
@@ -274,8 +288,10 @@ def _get_latest_version_github(package, extension, current_version, target):
         cmd = [
             "nix-prefetch-git",
             f"https://github.com/{owner}/{repo}.git",
-            "--hash", algorithm,
-            "--rev", f"refs/tags/{release['tag_name']}"
+            "--hash",
+            algorithm,
+            "--rev",
+            f"refs/tags/{release['tag_name']}",
         ]
         cmd.extend(git_fetcher_args)
         response = subprocess.check_output(cmd)
@@ -283,45 +299,60 @@ def _get_latest_version_github(package, extension, current_version, target):
         hash = _hash_to_sri(algorithm, document[algorithm])
     else:
         try:
-            hash = subprocess.check_output([
-                "nix-prefetch-url",
-                "--type", "sha256",
-                "--unpack",
-                f"{release['tarball_url']}"
-            ], stderr=subprocess.DEVNULL).decode('utf-8').strip()
+            hash = (
+                subprocess.check_output(
+                    [
+                        "nix-prefetch-url",
+                        "--type",
+                        "sha256",
+                        "--unpack",
+                        f"{release['tarball_url']}",
+                    ],
+                    stderr=subprocess.DEVNULL,
+                )
+                .decode("utf-8")
+                .strip()
+            )
         except (subprocess.CalledProcessError, UnicodeError):
             # this may fail if they have both a branch and a tag of the same name, attempt tag name
-            tag_url = str(release['tarball_url']).replace("tarball","tarball/refs/tags")
-            hash = subprocess.check_output([
-                "nix-prefetch-url",
-                "--type", "sha256",
-                "--unpack",
-                tag_url
-            ], stderr=subprocess.DEVNULL).decode('utf-8').strip()
+            tag_url = str(release["tarball_url"]).replace(
+                "tarball", "tarball/refs/tags"
+            )
+            hash = (
+                subprocess.check_output(
+                    ["nix-prefetch-url", "--type", "sha256", "--unpack", tag_url],
+                    stderr=subprocess.DEVNULL,
+                )
+                .decode("utf-8")
+                .strip()
+            )
 
     return version, hash, prefix
 
 
 FETCHERS = {
-    'fetchFromGitHub'   :   _get_latest_version_github,
-    'fetchPypi'         :   _get_latest_version_pypi,
-    'fetchurl'          :   _get_latest_version_pypi,
+    "fetchFromGitHub": _get_latest_version_github,
+    "fetchPypi": _get_latest_version_pypi,
+    "fetchurl": _get_latest_version_pypi,
 }
 
 
-DEFAULT_SETUPTOOLS_EXTENSION = 'tar.gz'
+DEFAULT_SETUPTOOLS_EXTENSION = "tar.gz"
 
 
 FORMATS = {
-    'setuptools'        :   DEFAULT_SETUPTOOLS_EXTENSION,
-    'wheel'             :   'whl',
-    'pyproject'         :   'tar.gz',
-    'flit'              :   'tar.gz'
+    "setuptools": DEFAULT_SETUPTOOLS_EXTENSION,
+    "wheel": "whl",
+    "pyproject": "tar.gz",
+    "flit": "tar.gz",
 }
 
+
 def _determine_fetcher(text):
     # Count occurrences of fetchers.
-    nfetchers = sum(text.count('src = {}'.format(fetcher)) for fetcher in FETCHERS.keys())
+    nfetchers = sum(
+        text.count("src = {}".format(fetcher)) for fetcher in FETCHERS.keys()
+    )
     if nfetchers == 0:
         raise ValueError("no fetcher.")
     elif nfetchers > 1:
@@ -329,7 +360,7 @@ def _determine_fetcher(text):
     else:
         # Then we check which fetcher to use.
         for fetcher in FETCHERS.keys():
-            if 'src = {}'.format(fetcher) in text:
+            if "src = {}".format(fetcher) in text:
                 return fetcher
 
 
@@ -341,47 +372,46 @@ def _determine_extension(text, fetcher):
     - fetchurl, we determine the extension from the url.
     - fetchFromGitHub we simply use `.tar.gz`.
     """
-    if fetcher == 'fetchPypi':
+    if fetcher == "fetchPypi":
         try:
-            src_format = _get_unique_value('format', text)
+            src_format = _get_unique_value("format", text)
         except ValueError:
-            src_format = None   # format was not given
+            src_format = None  # format was not given
 
         try:
-            extension = _get_unique_value('extension', text)
+            extension = _get_unique_value("extension", text)
         except ValueError:
-            extension = None    # extension was not given
+            extension = None  # extension was not given
 
         if extension is None:
             if src_format is None:
-                src_format = 'setuptools'
-            elif src_format == 'other':
+                src_format = "setuptools"
+            elif src_format == "other":
                 raise ValueError("Don't know how to update a format='other' package.")
             extension = FORMATS[src_format]
 
-    elif fetcher == 'fetchurl':
-        url = _get_unique_value('url', text)
+    elif fetcher == "fetchurl":
+        url = _get_unique_value("url", text)
         extension = os.path.splitext(url)[1]
-        if 'pypi' not in url:
-            raise ValueError('url does not point to PyPI.')
+        if "pypi" not in url:
+            raise ValueError("url does not point to PyPI.")
 
-    elif fetcher == 'fetchFromGitHub':
+    elif fetcher == "fetchFromGitHub":
         extension = "tar.gz"
 
     return extension
 
 
 def _update_package(path, target):
-
     # Read the expression
-    with open(path, 'r') as f:
+    with open(path, "r") as f:
         text = f.read()
 
     # Determine pname. Many files have more than one pname
-    pnames = _get_values('pname', text)
+    pnames = _get_values("pname", text)
 
     # Determine version.
-    version = _get_unique_value('version', text)
+    version = _get_unique_value("version", text)
 
     # First we check how many fetchers are mentioned.
     fetcher = _determine_fetcher(text)
@@ -393,8 +423,12 @@ def _update_package(path, target):
     for pname in pnames:
         if BULK_UPDATE and _skip_bulk_update(f"python3Packages.{pname}"):
             raise ValueError(f"Bulk update skipped for {pname}")
+        elif _get_attr_value(f"python3Packages.{pname}.cargoDeps") is not None:
+            raise ValueError(f"Cargo dependencies are unsupported, skipping {pname}")
         try:
-            new_version, new_sha256, prefix = FETCHERS[fetcher](pname, extension, version, target)
+            new_version, new_sha256, prefix = FETCHERS[fetcher](
+                pname, extension, version, target
+            )
             successful_fetch = True
             break
         except ValueError:
@@ -411,7 +445,7 @@ def _update_package(path, target):
     if not new_sha256:
         raise ValueError("no file available for {}.".format(pname))
 
-    text = _replace_value('version', new_version, text)
+    text = _replace_value("version", new_version, text)
 
     # hashes from pypi are 16-bit encoded sha256's, normalize it to sri to avoid merge conflicts
     # sri hashes have been the default format since nix 2.4+
@@ -421,16 +455,16 @@ def _update_package(path, target):
     if old_hash := _get_attr_value(f"python3Packages.{pname}.src.outputHash"):
         # fetchers can specify a sha256, or a sri hash
         try:
-            text = _replace_value('hash', sri_hash, text, old_hash)
+            text = _replace_value("hash", sri_hash, text, old_hash)
         except ValueError:
-            text = _replace_value('sha256', sri_hash, text, old_hash)
+            text = _replace_value("sha256", sri_hash, text, old_hash)
     else:
         raise ValueError(f"Unable to retrieve old hash for {pname}")
 
-    if fetcher == 'fetchFromGitHub':
+    if fetcher == "fetchFromGitHub":
         # in the case of fetchFromGitHub, it's common to see `rev = version;` or `rev = "v${version}";`
         # in which no string value is meant to be substituted. However, we can just overwrite the previous value.
-        regex = r'(rev\s+=\s+[^;]*;)'
+        regex = r"(rev\s+=\s+[^;]*;)"
         regex = re.compile(regex)
         matches = regex.findall(text)
         n = len(matches)
@@ -442,30 +476,33 @@ def _update_package(path, target):
             match = matches[0]
             text = text.replace(match, f'rev = "refs/tags/{prefix}${{version}}";')
             # incase there's no prefix, just rewrite without interpolation
-            text = text.replace('"${version}";', 'version;')
+            text = text.replace('"${version}";', "version;")
 
-    with open(path, 'w') as f:
+    with open(path, "w") as f:
         f.write(text)
 
-        logging.info("Path {}: updated {} from {} to {}".format(path, pname, version, new_version))
+        logging.info(
+            "Path {}: updated {} from {} to {}".format(
+                path, pname, version, new_version
+            )
+        )
 
     result = {
-        'path'  : path,
-        'target': target,
-        'pname': pname,
-        'old_version'   : version,
-        'new_version'   : new_version,
+        "path": path,
+        "target": target,
+        "pname": pname,
+        "old_version": version,
+        "new_version": new_version,
         #'fetcher'       : fetcher,
-        }
+    }
 
     return result
 
 
 def _update(path, target):
-
     # We need to read and modify a Nix expression.
     if os.path.isdir(path):
-        path = os.path.join(path, 'default.nix')
+        path = os.path.join(path, "default.nix")
 
     # If a default.nix does not exist, we quit.
     if not os.path.isfile(path):
@@ -485,32 +522,41 @@ def _update(path, target):
 
 
 def _commit(path, pname, old_version, new_version, pkgs_prefix="python: ", **kwargs):
-    """Commit result.
-    """
+    """Commit result."""
+
+    msg = f"{pkgs_prefix}{pname}: {old_version} -> {new_version}"
 
-    msg = f'{pkgs_prefix}{pname}: {old_version} -> {new_version}'
+    if changelog := _get_attr_value(f"{pkgs_prefix}{pname}.meta.changelog"):
+        msg += f"\n\n{changelog}"
 
     try:
-        subprocess.check_call([GIT, 'add', path])
-        subprocess.check_call([GIT, 'commit', '-m', msg])
+        subprocess.check_call([GIT, "add", path])
+        subprocess.check_call([GIT, "commit", "-m", msg])
     except subprocess.CalledProcessError as e:
-        subprocess.check_call([GIT, 'checkout', path])
-        raise subprocess.CalledProcessError(f'Could not commit {path}') from e
+        subprocess.check_call([GIT, "checkout", path])
+        raise subprocess.CalledProcessError(f"Could not commit {path}") from e
 
     return True
 
 
 def main():
-
     epilog = """
 environment variables:
   GITHUB_API_TOKEN\tGitHub API token used when updating github packages
     """
-    parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, epilog=epilog)
-    parser.add_argument('package', type=str, nargs='+')
-    parser.add_argument('--target', type=str, choices=SEMVER.keys(), default='major')
-    parser.add_argument('--commit', action='store_true', help='Create a commit for each package update')
-    parser.add_argument('--use-pkgs-prefix', action='store_true', help='Use python3Packages.${pname}: instead of python: ${pname}: when making commits')
+    parser = argparse.ArgumentParser(
+        formatter_class=argparse.RawDescriptionHelpFormatter, epilog=epilog
+    )
+    parser.add_argument("package", type=str, nargs="+")
+    parser.add_argument("--target", type=str, choices=SEMVER.keys(), default="major")
+    parser.add_argument(
+        "--commit", action="store_true", help="Create a commit for each package update"
+    )
+    parser.add_argument(
+        "--use-pkgs-prefix",
+        action="store_true",
+        help="Use python3Packages.${pname}: instead of python: ${pname}: when making commits",
+    )
 
     args = parser.parse_args()
     target = args.target
@@ -545,6 +591,5 @@ environment variables:
     logging.info("{} package(s) updated".format(count))
 
 
-
-if __name__ == '__main__':
+if __name__ == "__main__":
     main()
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
index 041ac00b2c3a..d914b7a1fac2 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, cctools-port
 , perl
 , CoreServices
 , ApplicationServices
@@ -8,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2023.09";
+  version = "2023.10";
 
   src = fetchFromGitHub {
     owner = "moarvm";
     repo = "moarvm";
     rev = version;
-    hash = "sha256-/78Qr/Td+dIBlzK0kYa2E4duxEjMj2haefw9Uia+3EA=";
+    hash = "sha256-1w6oMoxDro/AHE+QvjKUx9cxNpYuVSXYrRMh31ksgoQ=";
     fetchSubmodules = true;
   };
 
@@ -29,6 +30,10 @@ stdenv.mkDerivation rec {
       --replace '`sw_vers -productVersion`' '"$MACOSX_DEPLOYMENT_TARGET"'
   '';
 
+  nativeBuildInputs = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    cctools-port
+  ];
+
   buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
   doCheck = false; # MoarVM does not come with its own test suite
 
diff --git a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
index 3aa72be01392..8613beaef905 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "15.0.0";
+  version = "15.0.1";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-oX8xhSyK7D5gFvgTJuXK59kcuYDa/9w25ndfwfhGPDE=";
+    hash = "sha256-9vArmudz1Avxz46IS9FZIKbs8wZXoeWMd/FGLmpPitw=";
     fetchSubmodules = true;
   };
 
   # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
   auditable = false;
-  cargoHash = "sha256-cTQrC4xXgx6HMMq5TqGnFLhGAHGt57zKXp1Cc8jEX8Y=";
+  cargoHash = "sha256-/mX9zUN+dZoOCOPMeWCJ9U7KfI6JnFl8B2leYosy2jQ=";
   cargoBuildFlags = [ "--package" "wasmtime-cli" "--package" "wasmtime-c-api" ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/accounts-qml-module/default.nix b/nixpkgs/pkgs/development/libraries/accounts-qml-module/default.nix
new file mode 100644
index 000000000000..aa68cb105af3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/accounts-qml-module/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, accounts-qt
+, dbus-test-runner
+, pkg-config
+, qmake
+, qtbase
+, qtdeclarative
+, signond
+, xvfb-run
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "accounts-qml-module";
+  version = "0.7-unstable-2022-10-28";
+
+  src = fetchFromGitLab {
+    owner = "accounts-sso";
+    repo = "accounts-qml-module";
+    rev = "05e79ebbbf3784a87f72b7be571070125c10dfe3";
+    hash = "sha256-ZpnkZauowLPBnO3DDDtG/x07XoQGVNqEF8AQB5TZK84=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/src.pro \
+      --replace '$$[QT_INSTALL_BINS]/qmlplugindump' 'qmlplugindump' \
+      --replace '$$[QT_INSTALL_QML]' '${placeholder "out"}/${qtbase.qtQmlPrefix}'
+
+    # Don't install test binary
+    sed -i tests/tst_plugin.pro \
+      -e '/TARGET = tst_plugin/a INSTALLS -= target'
+  '' + lib.optionalString (!finalAttrs.doCheck) ''
+    sed -i accounts-qml-module.pro -e '/tests/d'
+  '';
+
+  # QMake can't find Qt modules in buildInputs
+  strictDeps = false;
+
+  nativeBuildInputs = [
+    pkg-config
+    qmake
+    qtdeclarative # qmlplugindump
+  ];
+
+  buildInputs = [
+    accounts-qt
+    qtbase
+    qtdeclarative
+    signond
+  ];
+
+  nativeCheckInputs = [
+    dbus-test-runner
+    xvfb-run
+  ];
+
+  dontWrapQtApps = true;
+
+  qmakeFlags = [
+    # Needs qdoc, https://github.com/NixOS/nixpkgs/pull/245379
+    "CONFIG+=no_docs"
+  ];
+
+  postConfigure = ''
+    make qmake_all
+  '';
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  preCheck = ''
+    # Needs xcb platform plugin
+    export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
+  '';
+
+  preInstall = ''
+    # Same plugin needed here, re-export in case checks are disabled
+    export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
+  '';
+
+  meta = with lib; {
+    description = "QML bindings for libaccounts-qt + libsignon-qt";
+    homepage = "https://gitlab.com/accounts-sso/accounts-qml-module";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
index 10cc9b72f77f..6cbe6fc1899d 100644
--- a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzrtp";
-  version = "5.2.98";
+  version = "5.2.111";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    hash = "sha256-p3r8GVhxShTanEI/tS8Dq59I7VKMDX1blz6S236XFqQ=";
+    hash = "sha256-sLvvQhJ9uVt/dx57xs9ftY/ETi46xmyGDH8372zpqj8=";
   };
 
   buildInputs = [ bctoolbox sqlite ];
diff --git a/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix b/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix
index cca1da7ec627..58906b608231 100644
--- a/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix
@@ -24,13 +24,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ctranslate2";
-  version = "3.22.0";
+  version = "3.23.0";
 
   src = fetchFromGitHub {
     owner = "OpenNMT";
     repo = "CTranslate2";
     rev = "v${version}";
-    hash = "sha256-Fw0pMTc0Zmr4RfH2rdPgpOODZW9CL5UbDbIeH6A4zZQ=";
+    hash = "sha256-jqeLNKOGdGtAVx7ExGGDxxgi5zDmQgmJ6bxIuguaM3k=";
     fetchSubmodules = true;
   };
 
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     cudaPackages.cuda_cudart
     cudaPackages.libcublas
     cudaPackages.libcurand
-  ] ++ lib.optionals withCuDNN [
+  ] ++ lib.optionals (withCUDA && withCuDNN) [
     cudaPackages.cudnn
   ] ++ lib.optionals withOneDNN [
     oneDNN
@@ -87,5 +87,8 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/OpenNMT/CTranslate2/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa misuzu ];
+    broken =
+      (lib.versionOlder cudaPackages.cudaVersion "11.4")
+      || !(withCuDNN -> withCUDA);
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/dlib/default.nix b/nixpkgs/pkgs/development/libraries/dlib/default.nix
index 92b6397c4179..32356fd9ccab 100644
--- a/nixpkgs/pkgs/development/libraries/dlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dlib/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libpng, libjpeg
-, guiSupport ? false, libX11
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, fftw
+, libpng
+, libjpeg
+, libwebp
+, openblas
+, guiSupport ? false
+, libX11
 
   # see http://dlib.net/compile.html
 , sse4Support ? stdenv.hostPlatform.sse4_1Support
@@ -23,12 +33,20 @@ stdenv.mkDerivation rec {
   '';
 
   cmakeFlags = [
-    "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}"
-    "-DUSE_SSE4_INSTRUCTIONS=${if sse4Support then "yes" else "no"}"
-    "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ];
+    (lib.cmakeBool "USE_DLIB_USE_CUDA" cudaSupport)
+    (lib.cmakeBool "USE_SSE4_INSTRUCTIONS" sse4Support)
+    (lib.cmakeBool "USE_AVX_INSTRUCTIONS" avxSupport)
+  ];
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libpng libjpeg ] ++ lib.optional guiSupport libX11;
+
+  buildInputs = [
+    fftw
+    libpng
+    libjpeg
+    libwebp
+    openblas
+  ] ++ lib.optional guiSupport libX11;
 
   meta = with lib; {
     description = "A general purpose cross-platform C++ machine learning library";
diff --git a/nixpkgs/pkgs/development/libraries/example-robot-data/default.nix b/nixpkgs/pkgs/development/libraries/example-robot-data/default.nix
index d9a107bf6497..11b689838226 100644
--- a/nixpkgs/pkgs/development/libraries/example-robot-data/default.nix
+++ b/nixpkgs/pkgs/development/libraries/example-robot-data/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "example-robot-data";
-  version = "4.0.8";
+  version = "4.0.9";
 
   src = fetchFromGitHub {
     owner = "Gepetto";
-    repo = finalAttrs.pname;
+    repo = "example-robot-data";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-xeNbx1f9QCAOJrXfkk3jo9XH2/4HNtnRA1OSnqA2cLs=";
+    hash = "sha256-dLW8QaQhTTDcE4QCP9uV4ykOqwc3nbPUmF1B77r8CHQ=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/futuresql/default.nix b/nixpkgs/pkgs/development/libraries/futuresql/default.nix
index 2adc148701a7..fb6e4061e6f6 100644
--- a/nixpkgs/pkgs/development/libraries/futuresql/default.nix
+++ b/nixpkgs/pkgs/development/libraries/futuresql/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   version = "0.1.1";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
+    url = "mirror://kde/stable/futuresql/futuresql-${version}.tar.xz";
     hash = "sha256-5E7Y1alhizynuimD7ZxfdXLm4KWxmflIaINLccy+vUM=";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gr-framework/default.nix b/nixpkgs/pkgs/development/libraries/gr-framework/default.nix
index 42994adc7375..2157a18f58d1 100644
--- a/nixpkgs/pkgs/development/libraries/gr-framework/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gr-framework/default.nix
@@ -3,8 +3,10 @@
 , fetchFromGitHub
 , nix-update-script
 
-, cairo
 , cmake
+, wrapQtAppsHook
+
+, cairo
 , ffmpeg
 , freetype
 , ghostscript
@@ -13,20 +15,19 @@
 , libtiff
 , qhull
 , qtbase
-, wrapQtAppsHook
 , xorg
 , zeromq
 }:
 
 stdenv.mkDerivation rec {
   pname = "gr-framework";
-  version = "0.72.10";
+  version = "0.72.11";
 
   src = fetchFromGitHub {
     owner = "sciapp";
     repo = "gr";
     rev = "v${version}";
-    hash = "sha256-ZFaun8PBtPTmhZ0+OHzUu27NvcJGxsImh+c7ZvCTNa0=";
+    hash = "sha256-HspDRqO/JKpPeHOfctYAOwwR3y1u+GW3v0OnN7OfLT4=";
   };
 
   patches = [
@@ -60,11 +61,11 @@ stdenv.mkDerivation rec {
 
   passthru.updateScript = nix-update-script { };
 
-  meta = {
+  meta = with lib; {
     description = "GR framework is a graphics library for visualisation applications";
     homepage = "https://gr-framework.org";
-    maintainers = [ lib.maintainers.paveloom ];
-    license = lib.licenses.mit;
-    platforms = lib.platforms.unix;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ paveloom ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/highfive/default.nix b/nixpkgs/pkgs/development/libraries/highfive/default.nix
index ef0030f1d3ab..de9dd9642499 100644
--- a/nixpkgs/pkgs/development/libraries/highfive/default.nix
+++ b/nixpkgs/pkgs/development/libraries/highfive/default.nix
@@ -12,13 +12,13 @@ assert mpiSupport -> mpi != null;
 
 stdenv.mkDerivation rec {
   pname = "highfive${lib.optionalString mpiSupport "-mpi"}";
-  version = "2.7.1";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "BlueBrain";
     repo = "HighFive";
     rev = "v${version}";
-    sha256 = "sha256-apKmIB34uqkqSCtTUzrUOhcRC5a2UG6KCdhp1jnXUgQ=";
+    sha256 = "sha256-INDQ0RqPMSsKXQ/QVDhpCg4qzghLA3zQUViduflLUFY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/kpeoplevcard/default.nix b/nixpkgs/pkgs/development/libraries/kpeoplevcard/default.nix
index 2ba786800fb3..689b7c9869b6 100644
--- a/nixpkgs/pkgs/development/libraries/kpeoplevcard/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kpeoplevcard/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: {
   version = "0.1";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
+    url = "mirror://kde/stable/kpeoplevcard/${finalAttrs.version}/kpeoplevcard-${finalAttrs.version}.tar.xz";
     sha256 = "1hv3fq5k0pps1wdvq9r1zjnr0nxf8qc3vwsnzh9jpvdy79ddzrcd";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/leatherman/default.nix b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
index 8c6eeb3f3fb1..47bdd0ffb480 100644
--- a/nixpkgs/pkgs/development/libraries/leatherman/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.12.10";
+  version = "1.12.11";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-0AHChU96LOVCsd+b77nKV4lOt1FtbVfv+OSNvGjekYo=";
+    sha256 = "sha256-XB5qIXPe1Tu+cfxuL+HAfR9QQNiUY/noO51CVEz9hsU=";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
diff --git a/nixpkgs/pkgs/development/libraries/libadwaita/default.nix b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
index 3b4aed7a8215..76fbf815525e 100644
--- a/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libadwaita";
-  version = "1.4.0";
+  version = "1.4.2";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = "libadwaita";
     rev = version;
-    hash = "sha256-LXrlTca50ALo+Nm55fwXNb4k3haLqHNnzLPc08VhA5s=";
+    hash = "sha256-SsQbCnNtgiRWMZerEjSSw+CU5m6bGRv8ILY/TITGtL4=";
   };
 
   depsBuildBuild = [
diff --git a/nixpkgs/pkgs/development/libraries/libaec/default.nix b/nixpkgs/pkgs/development/libraries/libaec/default.nix
index e9e5c19f777c..5bc6ad6c5f2e 100644
--- a/nixpkgs/pkgs/development/libraries/libaec/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libaec/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libaec";
-  version  = "1.1.1";
+  version  = "1.1.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.dkrz.de";
     owner = "k202009";
     repo = "libaec";
     rev = "v${version}";
-    sha256 = "sha256-5nsJrbJVqjXNb3exYgEvSGUq8ccy9HG+gwmBZvjnupc=";
+    sha256 = "sha256-mmiPpfUZE7W6Hzalr/tcJUFQe5kF4dYM1uZShjBsoVA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libcue/default.nix b/nixpkgs/pkgs/development/libraries/libcue/default.nix
index cdae594d9b68..ec7f1ba26ab1 100644
--- a/nixpkgs/pkgs/development/libraries/libcue/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcue/default.nix
@@ -1,27 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, bison, flex }:
+{ lib, stdenv, fetchFromGitHub, cmake, bison, flex }:
 
 stdenv.mkDerivation rec {
   pname = "libcue";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "lipnitsk";
     repo = "libcue";
     rev = "v${version}";
-    sha256 = "1iqw4n01rv2jyk9lksagyxj8ml0kcfwk67n79zy1r6zv1xfp5ywm";
+    hash = "sha256-ZMUUa8CmpFNparPsM/P2yvRto9E85EdTxpID5sKQbNI=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2023-43641.patch";
-      url = "https://github.com/lipnitsk/libcue/commit/fdf72c8bded8d24cfa0608b8e97f2eed210a920e.patch";
-      hash = "sha256-NjnSMUfman/SwLFWDIhtz2jCOLfpXGGGjO3QwRGURNg=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake bison flex ];
 
-  doCheck = false; # fails all the tests (ctest)
+  doCheck = true;
 
   meta = with lib; {
     description = "CUE Sheet Parser Library";
diff --git a/nixpkgs/pkgs/development/libraries/libdatovka/default.nix b/nixpkgs/pkgs/development/libraries/libdatovka/default.nix
index 89ce56fe6bb8..c4c840dc34cc 100644
--- a/nixpkgs/pkgs/development/libraries/libdatovka/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdatovka/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdatovka";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchurl {
     url = "https://gitlab.nic.cz/datovka/libdatovka/-/archive/v${version}/libdatovka-v${version}.tar.gz";
-    sha256 = "sha256-EqCS77MpjfR0Td07WKB7jWRBxAoKRtbAgyyThFOJXL8=";
+    sha256 = "sha256-cZG86chuh/2bW7kADbnhPhhMwe+Nm63uYy3LIjNrRqo=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libmpc/default.nix b/nixpkgs/pkgs/development/libraries/libmpc/default.nix
index 481f12e17526..fe11b59f4523 100644
--- a/nixpkgs/pkgs/development/libraries/libmpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmpc/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
          built upon and follows the same principles as GNU MPFR.
       '';
 
-    homepage = "http://mpc.multiprecision.org/";
+    homepage = "https://www.multiprecision.org/mpc/";
     license = lib.licenses.lgpl2Plus;
 
     platforms = lib.platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix b/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
index 8c4e32b232c9..9707435dcd29 100644
--- a/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmysqlconnectorcpp";
-  version = "8.1.0";
+  version = "8.2.0";
 
   src = fetchurl {
     url = "https://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-${version}-src.tar.gz";
-    hash = "sha256-LuPH0NAxzlgd7u10fZVh0UAXI3NZK+1dBjCnkOYFPcE=";
+    hash = "sha256-lCRmgiXFpz97eAXNNtddhQLJqOIMoRyVJlMVXvbpCdo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libnbd/default.nix b/nixpkgs/pkgs/development/libraries/libnbd/default.nix
index 31104b262af9..ff90c9b116ad 100644
--- a/nixpkgs/pkgs/development/libraries/libnbd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnbd/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , bash-completion
 , pkg-config
 , perl
@@ -12,13 +13,21 @@
 
 stdenv.mkDerivation rec {
   pname = "libnbd";
-  version = "1.18.0";
+  version = "1.18.1";
 
   src = fetchurl {
     url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
-    hash = "sha256-srJyd32eCIthoncvM9JQEKCWEOZxxc3YntaV4Ay8kZ8=";
+    hash = "sha256-UNHRphDw1ycRnp0KClzHlSuLIxs5Mc4gcjB+EF/smbY=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2023-5871.patch";
+      url = "https://gitlab.com/nbdkit/libnbd/-/commit/4451e5b61ca07771ceef3e012223779e7a0c7701.patch";
+      hash = "sha256-zmg/kxSJtjp2w9917Sp33ezt7Ccj/inngzCUVesF1Tc=";
+    })
+  ];
+
   nativeBuildInputs = [
     bash-completion
     pkg-config
diff --git a/nixpkgs/pkgs/development/libraries/libosinfo/default.nix b/nixpkgs/pkgs/development/libraries/libosinfo/default.nix
index 801b74869509..3fe89f891f8c 100644
--- a/nixpkgs/pkgs/development/libraries/libosinfo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libosinfo/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libosinfo";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-olLgD8WA3rIdoNqMCqA7jDHoRAuESMi5gUP6tHfTIwU=";
+    sha256 = "sha256-G/lu7J4UYPPRpxMWPMof8NSAo0kLUImSkvFFSLOpa2A=";
   };
 
   outputs = [ "out" "dev" ]
diff --git a/nixpkgs/pkgs/development/libraries/libpqxx/default.nix b/nixpkgs/pkgs/development/libraries/libpqxx/default.nix
index 235021769310..acb0013035cb 100644
--- a/nixpkgs/pkgs/development/libraries/libpqxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpqxx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libpqxx";
-  version = "7.7.0";
+  version = "7.7.5";
 
   src = fetchFromGitHub {
     owner = "jtv";
     repo = pname;
     rev = version;
-    sha256 = "sha256-O30czHwEDXz5xY4o3MWhmEK06OKTKMQCy0M6qwSEpy8=";
+    sha256 = "sha256-mvGPMbk4b8NmPvzy5hS+Au69NtDGha8ONTEQf6I3VZE=";
   };
 
   nativeBuildInputs = [ python3 ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [ "--enable-shared --disable-documentation" ];
+  CXXFLAGS = [ "-std=c++17" ];
 
   meta = {
     description = "A C++ library to access PostgreSQL databases";
diff --git a/nixpkgs/pkgs/development/libraries/libunicode/default.nix b/nixpkgs/pkgs/development/libraries/libunicode/default.nix
new file mode 100644
index 000000000000..4241f5bc7676
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libunicode/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, fetchzip, cmake, catch2, fmt, python3 }:
+
+let
+  ucd-version = "15.0.0";
+
+  ucd-src = fetchzip {
+    url = "https://www.unicode.org/Public/${ucd-version}/ucd/UCD.zip";
+    hash = "sha256-jj6bX46VcnH7vpc9GwM9gArG+hSPbOGL6E4SaVd0s60=";
+    stripRoot = false;
+  };
+in stdenv.mkDerivation (final: {
+  pname = "libunicode";
+  version = "0.3.0-unstable-2023-03-05";
+
+  src = fetchFromGitHub {
+    owner = "contour-terminal";
+    repo = "libunicode";
+    rev = "65e0c6ddf9648b94aa9bc7dda0718401efa9ef8e";
+    hash = "sha256-F4CVU5MImkM571mD4iFxqTnNbk2GXKTGksqO4LH2uEk=";
+  };
+
+  nativeBuildInputs = [ cmake python3 ];
+  buildInputs = [ catch2 fmt ];
+
+  cmakeFlags = [ "-DLIBUNICODE_UCD_DIR=${ucd-src}" ];
+
+  meta = with lib; {
+    description = "Modern C++17 Unicode library";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ moni ];
+  };
+})
diff --git a/nixpkgs/pkgs/development/libraries/libzim/default.nix b/nixpkgs/pkgs/development/libraries/libzim/default.nix
index f9bcdeb933b0..855fc48a2aef 100644
--- a/nixpkgs/pkgs/development/libraries/libzim/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libzim/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libzim";
-  version = "8.2.1";
+  version = "9.0.0";
 
   src = fetchFromGitHub {
     owner = "openzim";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-bhztigbiIGdVxBV5cpuHuuRGBN5UgC39w51uwLEq47w=";
+    hash = "sha256-K1S2MiugUeqCfPq0Oclmghb9064xrsKgUEVjFCJHt0U=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/mlt/default.nix b/nixpkgs/pkgs/development/libraries/mlt/default.nix
index ed803772f730..ded5a5990a60 100644
--- a/nixpkgs/pkgs/development/libraries/mlt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mlt/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mlt";
-  version = "7.20.0";
+  version = "7.22.0";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "mlt";
     rev = "v${version}";
-    hash = "sha256-5yELGA3U/YkINEtRyr/tb3HjWMQjqKIWjUbH7ZFMgLU=";
+    hash = "sha256-vJKpeEdQIWBQRRdDui5ibSZtD8qUlDZBD+UQE+0cQqk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/ncurses/default.nix b/nixpkgs/pkgs/development/libraries/ncurses/default.nix
index 9c1c8b422a98..2d383c876cba 100644
--- a/nixpkgs/pkgs/development/libraries/ncurses/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ncurses/default.nix
@@ -89,14 +89,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   doCheck = false;
 
-  # When building a wide-character (Unicode) build, create backward
-  # compatibility links from the the "normal" libraries to the
-  # wide-character libraries (e.g. libncurses.so to libncursesw.so).
   postFixup = let
     abiVersion-extension = if stdenv.isDarwin then "${abiVersion}.$dylibtype" else "$dylibtype.${abiVersion}"; in
   ''
     # Determine what suffixes our libraries have
     suffix="$(awk -F': ' 'f{print $3; f=0} /default library suffix/{f=1}' config.log)"
+  ''
+  # When building a wide-character (Unicode) build, create backward
+  # compatibility links from the the "normal" libraries to the
+  # wide-character libraries (e.g. libncurses.so to libncursesw.so).
+  + lib.optionalString unicodeSupport ''
     libs="$(ls $dev/lib/pkgconfig | tr ' ' '\n' | sed "s,\(.*\)$suffix\.pc,\1,g")"
     suffixes="$(echo "$suffix" | awk '{for (i=1; i < length($0); i++) {x=substr($0, i+1, length($0)-i); print x}}')"
 
@@ -139,10 +141,13 @@ stdenv.mkDerivation (finalAttrs: {
         ln -svf ''${library}$suffix.pc $dev/lib/pkgconfig/$library$newsuffix.pc
       done
     done
+    ''
+    # Unconditional patches. Leading newline is to avoid mass rebuilds.
+    + ''
 
     # add pkg-config aliases for libraries that are built-in to libncurses(w)
     for library in tinfo tic; do
-      for suffix in "" w; do
+      for suffix in "" ${lib.optionalString unicodeSupport "w"}; do
         ln -svf ncurses$suffix.pc $dev/lib/pkgconfig/$library$suffix.pc
       done
     done
diff --git a/nixpkgs/pkgs/development/libraries/nng/default.nix b/nixpkgs/pkgs/development/libraries/nng/default.nix
index cb5aa49ec612..4df09d278f6d 100644
--- a/nixpkgs/pkgs/development/libraries/nng/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nng/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nng";
-  version = "1.6.0-prerelease";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "nanomsg";
     repo = "nng";
-    rev = "a54820ff0e1b74554c7f649e8386ee8c4ecd98f5";
-    sha256 = "sha256-4Vj8nf3c45Y8LJ79YUOrNAAGMmfygdPtAJrs+JuFiUM=";
+    rev = "v${version}";
+    hash = "sha256-Kq8QxPU6SiTk0Ev2IJoktSPjVOlAS4/e1PQvw2+e8UA=";
   };
 
   nativeBuildInputs = [ cmake ninja ]
diff --git a/nixpkgs/pkgs/development/libraries/open62541/default.nix b/nixpkgs/pkgs/development/libraries/open62541/default.nix
index e25ac7bfca51..7799c6d80ae3 100644
--- a/nixpkgs/pkgs/development/libraries/open62541/default.nix
+++ b/nixpkgs/pkgs/development/libraries/open62541/default.nix
@@ -5,8 +5,10 @@
 , cmake
 , pkg-config
 , check
+, libxcrypt
 , subunit
 , python3Packages
+, nix-update-script
 
 , withDoc ? false
 , graphviz-nox
@@ -31,13 +33,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "open62541";
-  version = "1.3.7";
+  version = "1.3.8";
 
   src = fetchFromGitHub {
     owner = "open62541";
     repo = "open62541";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-XmoLmBGTMA6cejLiNU8hAVnHd35eh6lTIu9csmiR+4U=";
+    hash = "sha256-koifSynnJX9IuwX8HUT1TzHoKgJfweNGAVlqUx7nEc4=";
     fetchSubmodules = true;
   };
 
@@ -82,6 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   checkInputs = [
     check
+    libxcrypt
     subunit
   ];
 
@@ -126,6 +129,8 @@ stdenv.mkDerivation (finalAttrs: {
     rm -r bin/libopen62541*
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   passthru.tests = let
     open62541Full = encBackend: open62541.override {
       withDoc = true;
@@ -151,6 +156,7 @@ stdenv.mkDerivation (finalAttrs: {
       OPC UA-based communication into existing applications.
     '';
     homepage = "https://www.open62541.org";
+    changelog = "https://github.com/open62541/open62541/releases/tag/v${finalAttrs.version}";
     license = licenses.mpl20;
     maintainers = with maintainers; [ panicgh ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/openimageio/default.nix b/nixpkgs/pkgs/development/libraries/openimageio/default.nix
index a0f520dcb6ce..f2e98e0d34b6 100644
--- a/nixpkgs/pkgs/development/libraries/openimageio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openimageio/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openimageio";
-  version = "2.4.15.0";
+  version = "2.5.5.0";
 
   src = fetchFromGitHub {
     owner = "OpenImageIO";
     repo = "oiio";
     rev = "v${version}";
-    hash = "sha256-I2/JPmUBDb0bw7qbSZcAkYHB2q2Uo7En7ZurMwWhg/M=";
+    hash = "sha256-FtUZqk1m9ahdnwhrBeMFkUbV0dangMY/w9ShevCASfo=";
   };
 
   # Workaround broken zlib version detecion in CMake < 3.37.
diff --git a/nixpkgs/pkgs/development/libraries/pango/default.nix b/nixpkgs/pkgs/development/libraries/pango/default.nix
index 43f2eae80935..0fae50cdbfed 100644
--- a/nixpkgs/pkgs/development/libraries/pango/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pango/default.nix
@@ -94,7 +94,6 @@ stdenv.mkDerivation rec {
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
-      versionPolicy = "odd-unstable";
       # 1.90 is alpha for API 2.
       freeze = "1.90.0";
     };
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix b/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix
index c58ff8399aec..a5bdb729a102 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wireplumber";
-  version = "0.4.16";
+  version = "0.4.17";
 
   outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "wireplumber";
     rev = version;
-    hash = "sha256-BJ4Q34wLGQNxoihH+M8NBY5ZDw/D9RMda9GvFw7BemY=";
+    hash = "sha256-vhpQT67+849WV1SFthQdUeFnYe/okudTQJoL3y+wXwI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
index 538687dce58a..f77fdac059ce 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
@@ -3,6 +3,7 @@
 , stdenv
 , qtbase
 , qtdeclarative
+, qtquick3d
 , qtshadertools
 , qtsvg
 , pkg-config
@@ -12,8 +13,11 @@
 , gst-plugins-good
 , gst-libav
 , gst-vaapi
+, ffmpeg_6
+, libva
 , libpulseaudio
 , wayland
+, libXrandr
 , elfutils
 , libunwind
 , orc
@@ -23,12 +27,14 @@
 qtModule {
   pname = "qtmultimedia";
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libunwind orc ]
-    ++ lib.optionals stdenv.isLinux [ libpulseaudio elfutils alsa-lib wayland ];
-  propagatedBuildInputs = [ qtbase qtdeclarative qtsvg qtshadertools ]
+  buildInputs = [ libunwind orc ffmpeg_6 ]
+    ++ lib.optionals stdenv.isLinux [ libpulseaudio elfutils alsa-lib wayland libXrandr libva ];
+  propagatedBuildInputs = [ qtbase qtdeclarative qtsvg qtshadertools qtquick3d ]
     ++ lib.optionals stdenv.isLinux [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ]
     ++ lib.optionals stdenv.isDarwin [ VideoToolbox ];
 
+  cmakeFlags = [ "-DENABLE_DYNAMIC_RESOLVE_VAAPI_SYMBOLS=0" ];
+
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin
     "-include AudioToolbox/AudioToolbox.h";
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin
diff --git a/nixpkgs/pkgs/development/libraries/qzxing/default.nix b/nixpkgs/pkgs/development/libraries/qzxing/default.nix
new file mode 100644
index 000000000000..4cb224e2c040
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qzxing/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, testers
+, qmake
+, qtmultimedia
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "qzxing";
+  version = "3.3.0";
+
+  src = fetchFromGitHub {
+    owner = "ftylitak";
+    repo = "qzxing";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-ASgsF5ocNWAiIy2jm6ygpDkggBcEpno6iVNWYkuWcVI=";
+  };
+
+  # QMake can't find qtmultimedia in buildInputs
+  strictDeps = false;
+
+  nativeBuildInputs = [
+    qmake
+  ];
+
+  buildInputs = [
+    qtmultimedia
+  ];
+
+  dontWrapQtApps = true;
+
+  preConfigure = ''
+    cd src
+  '';
+
+  qmakeFlags = [
+    "CONFIG+=qzxing_qml"
+    "CONFIG+=qzxing_multimedia"
+    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
+  ];
+
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    updateScript = nix-update-script { };
+  };
+
+  meta = with lib; {
+    description = "Qt/QML wrapper library for the ZXing library";
+    homepage = "https://github.com/ftylitak/qzxing";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.unix;
+    pkgConfigModules = [
+      "QZXing"
+    ];
+  };
+})
diff --git a/nixpkgs/pkgs/development/libraries/rure/Cargo.lock b/nixpkgs/pkgs/development/libraries/rure/Cargo.lock
index 68a1719d0801..48e04d1f5acb 100644
--- a/nixpkgs/pkgs/development/libraries/rure/Cargo.lock
+++ b/nixpkgs/pkgs/development/libraries/rure/Cargo.lock
@@ -13,9 +13,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "memchr"
diff --git a/nixpkgs/pkgs/development/libraries/science/math/spooles/allocate.patch b/nixpkgs/pkgs/development/libraries/science/math/spooles/allocate.patch
new file mode 100644
index 000000000000..71f539711e7b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/spooles/allocate.patch
@@ -0,0 +1,38 @@
+From cc153b180829c6b561765cbbb9b621d1142ff1cd Mon Sep 17 00:00:00 2001
+From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
+Date: Tue, 28 Nov 2023 13:13:44 +0000
+Subject: [PATCH] use proper format specifier for size_t
+
+---
+ Utilities/MM.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Utilities/MM.h b/Utilities/MM.h
+index 11e86c5..301c3ec 100644
+--- a/Utilities/MM.h
++++ b/Utilities/MM.h
+@@ -33,18 +33,18 @@ if ( (count) > 0 ) { \
+    if ( (ptr = (type *)malloc((unsigned long)((count)*sizeof(type)))) \
+         == NULL ) {\
+       fprintf(stderr, \
+-              "\n ALLOCATE failure : bytes %d, line %d, file %s", \
++              "\n ALLOCATE failure : bytes %zu, line %d, file %s", \
+               (count)*sizeof(type), __LINE__, __FILE__) ; \
+       exit(-1) ; } \
+    else if ( MEMORY_DEBUG > 0 ) { \
+       fprintf(stderr, \
+-              "\n ALLOCATE : address %p, bytes %d, line %d, file %s", \
++              "\n ALLOCATE : address %p, bytes %zu, line %d, file %s", \
+               ptr, (count)*sizeof(type), __LINE__, __FILE__) ; } } \
+ else if ( (count) == 0 ) { \
+    ptr = NULL ; } \
+ else { \
+    fprintf(stderr, \
+-           "\n ALLOCATE error : bytes %d, line %d, file %s", \
++           "\n ALLOCATE error : bytes %zu, line %d, file %s", \
+            (count)*sizeof(type), __LINE__, __FILE__) ; \
+    exit(-1) ; }
+ /*
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix b/nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix
index 6e94d093a2cb..47738008b02d 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/spooles/default.nix
@@ -13,10 +13,14 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./spooles.patch
+    # fix compiler error where NULL is used as a zero parameter
+    ./transform.patch
+    # use proper format specifier for size_t
+    ./allocate.patch
   ];
 
   postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
-    substituteInPlace makefile --replace '-Wl,-soname' '-Wl,-install_name'
+    substituteInPlace makefile --replace "-Wl,-soname," "-Wl,-install_name,$out/lib/"
   '';
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/science/math/spooles/transform.patch b/nixpkgs/pkgs/development/libraries/science/math/spooles/transform.patch
new file mode 100644
index 000000000000..3be3babe9d65
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/spooles/transform.patch
@@ -0,0 +1,43 @@
+From c5d0574182d76af3bf286dce0bb147ae3f098916 Mon Sep 17 00:00:00 2001
+From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
+Date: Tue, 28 Nov 2023 12:57:18 +0000
+Subject: [PATCH] fix compiler error: use zero, not NULL, in calls to IVinit
+
+---
+ ETree/src/transform.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ETree/src/transform.c b/ETree/src/transform.c
+index 1e36981..dbdfc70 100644
+--- a/ETree/src/transform.c
++++ b/ETree/src/transform.c
+@@ -291,7 +291,7 @@ etree2 = ETree_compress(etree, mapIV) ;
+    remap the nzeros[] vector
+    -------------------------
+ */
+-temp = IVinit(nfront, NULL) ;
++temp = IVinit(nfront, 0) ;
+ IVcopy(nfront, temp, nzeros) ;
+ IV_setSize(nzerosIV, nnew) ;
+ nzeros = IV_entries(nzerosIV) ;
+@@ -453,7 +453,7 @@ etree2 = ETree_compress(etree, mapIV) ;
+    remap the nzeros[] vector
+    -------------------------
+ */
+-temp = IVinit(nfront, NULL) ;
++temp = IVinit(nfront, 0) ;
+ IVcopy(nfront, temp, nzeros) ;
+ IV_setSize(nzerosIV, nnew) ;
+ nzeros = IV_entries(nzerosIV) ;
+@@ -614,7 +614,7 @@ etree2 = ETree_compress(etree, mapIV) ;
+    remap the nzeros[] vector
+    -------------------------
+ */
+-temp = IVinit(nfront, NULL) ;
++temp = IVinit(nfront, 0) ;
+ IVcopy(nfront, temp, nzeros) ;
+ IV_setSize(nzerosIV, nnew) ;
+ nzeros = IV_entries(nzerosIV) ;
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/development/libraries/spandsp/3.nix b/nixpkgs/pkgs/development/libraries/spandsp/3.nix
index 24cfc3fc83b6..9e916273809f 100644
--- a/nixpkgs/pkgs/development/libraries/spandsp/3.nix
+++ b/nixpkgs/pkgs/development/libraries/spandsp/3.nix
@@ -9,11 +9,11 @@
 , callPackage
 }:
 
-(callPackage ./common.nix {}).overrideAttrs(finalAttrs: {
+(callPackage ./common.nix {}).overrideAttrs(previousAttrs: {
   version = "3.0.0";
   src = fetchFromGitHub {
     owner = "freeswitch";
-    repo = finalAttrs.pname;
+    repo = previousAttrs.pname;
     rev = "6ec23e5a7e411a22d59e5678d12c4d2942c4a4b6"; # upstream does not seem to believe in tags
     sha256 = "03w0s99y3zibi5fnvn8lk92dggfgrr0mz5255745jfbz28b2d5y7";
   };
diff --git a/nixpkgs/pkgs/development/libraries/termbench-pro/default.nix b/nixpkgs/pkgs/development/libraries/termbench-pro/default.nix
new file mode 100644
index 000000000000..11edecf31cc7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/termbench-pro/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, cmake, fmt }:
+
+stdenv.mkDerivation {
+  pname = "termbench-pro";
+  version = "unstable-2023-01-26";
+
+  src = fetchFromGitHub {
+    owner = "contour-terminal";
+    repo = "termbench-pro";
+    rev = "a4feadd3a698e4fe2d9dd5b03d5f941534a25a91";
+    hash = "sha256-/zpJY9Mecalk7dneYZYzmFOroopFGklWw62a+LbiUVs=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ fmt ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mkdir -p $out/lib
+    mv termbenchpro/tbp $out/bin
+    mv libtermbench/libtermbench.a $out/lib
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Terminal Benchmarking as CLI and library";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ moni ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/tevent/default.nix b/nixpkgs/pkgs/development/libraries/tevent/default.nix
index c5d8d0fd3c49..1d68421c6dcd 100644
--- a/nixpkgs/pkgs/development/libraries/tevent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tevent/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tevent";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchurl {
     url = "mirror://samba/tevent/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ZiqfJ3KBvPUGtrwKC6oD5EpiIpUW7jS8xwOguCqkaQU=";
+    sha256 = "sha256-GqWPIQF+2ML2Bq6Eqn55W1Q57dTdX2jxo4in1vtA9oI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/tiledb/default.nix b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
index ae182ff46136..f8540d4ffaa0 100644
--- a/nixpkgs/pkgs/development/libraries/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
@@ -34,13 +34,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tiledb";
-  version = "2.18.0";
+  version = "2.18.2";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB";
     rev = version;
-    hash = "sha256-y5/kXODzkNKmMn8P+WOOWGy9Htd0nhXbUxmfw/SqSYY=";
+    hash = "sha256-uLiXhigYz3v7NgY38twot3sBHxZS5QCrOiPfME4wWzE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/wxwidgets/wxGTK32.nix b/nixpkgs/pkgs/development/libraries/wxwidgets/wxGTK32.nix
index bcd75412aab2..5bba7315f5cc 100644
--- a/nixpkgs/pkgs/development/libraries/wxwidgets/wxGTK32.nix
+++ b/nixpkgs/pkgs/development/libraries/wxwidgets/wxGTK32.nix
@@ -32,6 +32,7 @@
 , AVFoundation
 , AVKit
 , WebKit
+, fetchpatch
 }:
 let
   catch = fetchFromGitHub {
@@ -59,6 +60,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-YkV150sDsfBEHvHne0GF6i8Y5881NrByPkLtPAmb24E=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "avoid_gtk3_crash.patch";
+      url = "https://github.com/wxWidgets/wxWidgets/commit/8ea22b5e92bf46add0b20059f6e39a938858ff97.patch";
+      hash = "sha256-zAyqVTdej4F3R7vVMLiKkXqJTAHDtGYJnyjaRyDmMOM=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
index 1fd30139bc14..11f598b6544b 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-gnome";
-  version = "45.0";
+  version = "45.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "lJWYhhyAAA/r8YzBKzchyVwbsdGTcfwhVtxPM971r/A=";
+    sha256 = "PpyoIQRABfs3vWjr5K0Zb8PQcoNVgUZ6IqSHnax7X90=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
index bb1569b3a258..e2d12c250171 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-xapp";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "xdg-desktop-portal-xapp";
     rev = version;
-    hash = "sha256-sPpRDoQuzyjqB+kwz0U2WFm/Byx7SueM3aCtpgy38JM=";
+    hash = "sha256-Zz44PCociYhUuHTS3HJNxJPCkiIl01FFe4//7jtgDsk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/lua-modules/generated-packages.nix b/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
index fcde2f41ddce..0bd4d885504e 100644
--- a/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
+++ b/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
@@ -2183,6 +2183,29 @@ buildLuarocksPackage {
   };
 }) {};
 
+luasnip = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, jsregexp, lua, luaOlder }:
+buildLuarocksPackage {
+  pname = "luasnip";
+  version = "2.1.1-1";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/luasnip-2.1.1-1.rockspec";
+    sha256 = "1jrdai8qsanr6x2vqp70hipsxrxh0abvwr2xwh9p4wr29k4wyycb";
+  }).outPath;
+  src = fetchzip {
+    url    = "https://github.com/L3MON4D3/LuaSnip/archive/v2.1.1.zip";
+    sha256 = "0mbpwf3sxfrmrza13d9w0hlcmzlrj551g332syp1qhs94abfnnrd";
+  };
+
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ jsregexp lua ];
+
+  meta = {
+    homepage = "https://github.com/L3MON4D3/LuaSnip";
+    description = "Snippet Engine for Neovim written in Lua.";
+    license.fullName = "Apache-2.0";
+  };
+}) {};
+
 luasocket = callPackage({ buildLuarocksPackage, fetchgit, fetchurl, lua, luaOlder }:
 buildLuarocksPackage {
   pname = "luasocket";
diff --git a/nixpkgs/pkgs/development/misc/avr/libc/default.nix b/nixpkgs/pkgs/development/misc/avr/libc/default.nix
index ac9da31fcc0f..d7e9f0efe999 100644
--- a/nixpkgs/pkgs/development/misc/avr/libc/default.nix
+++ b/nixpkgs/pkgs/development/misc/avr/libc/default.nix
@@ -15,8 +15,11 @@ stdenv.mkDerivation rec {
   stripDebugList = [ "bin" ];
   dontPatchELF = true;
 
+  enableParallelBuilding = true;
+
   passthru = {
     incdir = "/avr/include";
+    libdir = "/avr/lib";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/node-packages/overrides.nix b/nixpkgs/pkgs/development/node-packages/overrides.nix
index 84aaeb51d382..ad6a9cd1371e 100644
--- a/nixpkgs/pkgs/development/node-packages/overrides.nix
+++ b/nixpkgs/pkgs/development/node-packages/overrides.nix
@@ -260,7 +260,7 @@ final: prev: {
 
     src = fetchurl {
       url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz";
-      hash = "sha256-rwpwB+vli3CXRhUFL+UvyUpPlxRk6P/2zLCn0SL9E6s=";
+      hash = "sha256-ej3h4LlF/pkAYeDxePb7wMc8zrfxKMnrp1ogZLoFU+0=";
     };
     postInstall = with pkgs; ''
       wrapProgram "$out/bin/prisma" \
diff --git a/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 97966e6bb33e..080717e1a2cc 100644
--- a/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.54.0";
+  version = "3.56.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    hash = "sha256-P+f7eBqD0/KIEry/807dQQCvtokB2cYu4i0H6CTYIWg=";
+    hash = "sha256-PApfNjW7sfVmYT0NcEKs5MZJG65P7WQ5WVpQuOj8EV4=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/aiosomecomfort/default.nix b/nixpkgs/pkgs/development/python-modules/aiosomecomfort/default.nix
index 5775aece8060..4e5c512a9e24 100644
--- a/nixpkgs/pkgs/development/python-modules/aiosomecomfort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiosomecomfort/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aiosomecomfort";
-  version = "0.0.22";
+  version = "0.0.24";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "mkmer";
     repo = "AIOSomecomfort";
     rev = "refs/tags/${version}";
-    hash = "sha256-d4pyt9+sBPNo/PL05HQ4sjyjubMtTZI9WUGRU1B/dH0=";
+    hash = "sha256-+kAObq8tbTO6Qlb+/93mF6K+gEHd33TofHug5f+zl+4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix b/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix
index 0a2479dd38f4..e69de9cfea33 100644
--- a/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix
@@ -1,26 +1,29 @@
 { lib
 , buildPythonPackage
+, docopt
 , fetchFromGitHub
 , jsonconversion
-, six
 , pytestCheckHook
 , pythonOlder
+, setuptools
+, six
+, tabulate
 }:
 
 buildPythonPackage rec {
   pname = "amazon-ion";
-  version = "0.10.0";
-  format = "setuptools";
+  version = "0.11.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  # test vectors require git submodule
   src = fetchFromGitHub {
-    owner = "amzn";
+    owner = "amazon-ion";
     repo = "ion-python";
     rev = "refs/tags/v${version}";
+    # Test vectors require git submodule
     fetchSubmodules = true;
-    hash = "sha256-pCm3jd/dVqO/uIvT5N/w5yoUWU6ni62Pl2A862e+qSk=";
+    hash = "sha256-0/+bX02qTbOydWDxex4OWL7woP7dW1yJZBmDZAivE7U=";
   };
 
   postPatch = ''
@@ -28,13 +31,19 @@ buildPythonPackage rec {
       --replace "'pytest-runner'," ""
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     jsonconversion
     six
   ];
 
   nativeCheckInputs = [
+    docopt
     pytestCheckHook
+    tabulate
   ];
 
   disabledTests = [
@@ -42,13 +51,19 @@ buildPythonPackage rec {
     "test_roundtrips"
   ];
 
+  disabledTestPaths = [
+    # Exclude benchmarks
+    "tests/test_benchmark_cli.py"
+  ];
+
   pythonImportsCheck = [
     "amazon.ion"
   ];
 
   meta = with lib; {
     description = "Python implementation of Amazon Ion";
-    homepage = "https://github.com/amzn/ion-python";
+    homepage = "https://github.com/amazon-ion/ion-python";
+    changelog = "https://github.com/amazon-ion/ion-python/releases/tag/v${version}";
     sourceProvenance = with sourceTypes; [
       fromSource
       binaryNativeCode
diff --git a/nixpkgs/pkgs/development/python-modules/anchor-kr/default.nix b/nixpkgs/pkgs/development/python-modules/anchor-kr/default.nix
new file mode 100644
index 000000000000..32ce534e6b6b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/anchor-kr/default.nix
@@ -0,0 +1,26 @@
+{ lib,
+  buildPythonPackage,
+  fetchFromGitHub
+}:
+buildPythonPackage {
+  pname = "anchor";
+  version = "3";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "justfoolingaround";
+    repo = "anchor";
+    # Using the commit hash because upstream does not have releases. https://github.com/justfoolingaround/anchor/issues/1
+    rev = "4cedb6a51877ed3a292cad61eb19013382915e86";
+    hash = "sha256-t75IFBSz6ncHRqXRxbrM9EQdr8xPXjSd9di+/y2LegE=";
+  };
+
+  pythonImportsCheck = [ "anchor" ];
+
+  meta = with lib; {
+    description = "Python library for scraping";
+    homepage = "https://github.com/justfoolingaround/anchor";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ passivelemon ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/anitopy/default.nix b/nixpkgs/pkgs/development/python-modules/anitopy/default.nix
new file mode 100644
index 000000000000..313f9631154e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/anitopy/default.nix
@@ -0,0 +1,26 @@
+{ lib,
+  buildPythonPackage,
+  fetchFromGitHub
+}:
+buildPythonPackage rec {
+  pname = "anitopy";
+  version = "2.1.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "igorcmoura";
+    repo = "anitopy";
+    rev = "v${version}";
+    hash = "sha256-xXEf7AJKg7grDmkKfFuC4Fk6QYFJtezClyfA3vq8TfQ=";
+  };
+
+  pythonImportsCheck = [ "anitopy" ];
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Python library for parsing anime video filenames";
+    homepage = "https://github.com/igorcmoura/anitopy";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ passivelemon ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/approval-utilities/default.nix b/nixpkgs/pkgs/development/python-modules/approval-utilities/default.nix
index 3b21c3ffab83..38d22ad57aae 100644
--- a/nixpkgs/pkgs/development/python-modules/approval-utilities/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/approval-utilities/default.nix
@@ -2,18 +2,29 @@
 , buildPythonPackage
 , approvaltests
 , pythonOlder
+, setuptools
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "approval-utilities";
   inherit (approvaltests) version src;
   disabled = pythonOlder "3.7";
-  format = "setuptools";
+  pyproject = true;
 
   postPatch = ''
     mv setup.approval_utilities.py setup.py
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    # used in approval_utilities/utilities/time_utilities.py
+    typing-extensions
+  ];
+
   pythonImportsCheck = [ "approval_utilities" ];
 
   # upstream has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix b/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
index b8ec645c42d1..289755c5ddc6 100644
--- a/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
@@ -5,21 +5,21 @@
 , buildPythonPackage
 , empty-files
 , fetchFromGitHub
-, mock
 , mrjob
 , numpy
 , pyperclip
 , pytest
+, pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , testfixtures
-, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "10.0.0";
-  format = "setuptools";
+  version = "10.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,9 +27,13 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3KorHpJUeWSJKVN/4IN0AqKOIL0sT5MaxkvQqpeilhw=";
+    hash = "sha256-t+Vxo6Pn3b2H3yAg5LGsGTjrZr4MXeGOY2BF9eFFAdE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     allpairspy
     approval-utilities
@@ -39,16 +43,16 @@ buildPythonPackage rec {
     pyperclip
     pytest
     testfixtures
-    typing-extensions
   ];
 
   nativeCheckInputs = [
-    mock
     numpy
+    pytest-asyncio
     pytestCheckHook
   ];
 
   disabledTests = [
+    "test_docstrings"
     # Tests expects paths below ApprovalTests.Python directory
     "test_received_filename"
     "test_pytest_namer"
diff --git a/nixpkgs/pkgs/development/python-modules/ariadne/default.nix b/nixpkgs/pkgs/development/python-modules/ariadne/default.nix
index 3810934eefeb..0e0bf1140a64 100644
--- a/nixpkgs/pkgs/development/python-modules/ariadne/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ariadne/default.nix
@@ -4,7 +4,6 @@
 , hatchling
 , freezegun
 , graphql-core
-, opentracing
 , pytest-asyncio
 , pytest-mock
 , pytestCheckHook
@@ -28,6 +27,9 @@ buildPythonPackage rec {
     rev = "refs/tags/${version}";
     hash = "sha256-v3CaLMTo/zbNEoE3K+aWnFTCgLetcnN7vOU/sFqLq2k=";
   };
+  patches = [
+    ./remove-opentracing.patch
+  ];
 
   nativeBuildInputs = [
     hatchling
@@ -41,7 +43,6 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     freezegun
-    opentracing
     pytest-asyncio
     pytest-mock
     pytestCheckHook
@@ -58,12 +59,18 @@ buildPythonPackage rec {
     "test_attempt_parse_request_missing_content_type_raises_bad_request_error"
     "test_attempt_parse_non_json_request_raises_bad_request_error"
     "test_attempt_parse_non_json_request_body_raises_bad_request_error"
+    # opentracing
+    "test_query_is_executed_for_multipart_form_request_with_file"
+    "test_query_is_executed_for_multipart_request_with_large_file_with_tracing"
   ];
 
   disabledTestPaths = [
     # missing graphql-sync-dataloader test dep
     "tests/test_dataloaders.py"
     "tests/wsgi/test_configuration.py"
+    # both include opentracing module, which has been removed from nixpkgs
+    "tests/tracing/test_opentracing.py"
+    "tests/tracing/test_opentelemetry.py"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ariadne/remove-opentracing.patch b/nixpkgs/pkgs/development/python-modules/ariadne/remove-opentracing.patch
new file mode 100644
index 000000000000..eecbfafea9b9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ariadne/remove-opentracing.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/asgi/conftest.py b/tests/asgi/conftest.py
+index a703466..223586e 100644
+--- a/tests/asgi/conftest.py
++++ b/tests/asgi/conftest.py
+@@ -8,7 +8,6 @@ from ariadne.asgi.handlers import (
+     GraphQLTransportWSHandler,
+     GraphQLWSHandler,
+ )
+-from ariadne.contrib.tracing.opentracing import opentracing_extension
+ 
+ 
+ @pytest.fixture
diff --git a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
index 3b0cc0eb8030..5d7498c794a9 100644
--- a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "4.6.0";
+  version = "4.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "auth0";
     repo = "auth0-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-KNhuonqFt+KrRYctQ426FcnzxISp5sBRs28hFL/Du0Q=";
+    hash = "sha256-weXEwrOP+TKVwhqCeFVqUw4x+q2Wplr0QWVUzpbNPSc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/av/default.nix b/nixpkgs/pkgs/development/python-modules/av/default.nix
index e80f521efb2b..605fb0c66df3 100644
--- a/nixpkgs/pkgs/development/python-modules/av/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/av/default.nix
@@ -1,35 +1,29 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
 , stdenv
-
-# build
+, buildPythonPackage
 , cython
-, pkg-config
-, setuptools
-
-# runtime
+, fetchFromGitHub
 , ffmpeg_5-headless
-
-# tests
 , numpy
 , pillow
+, pkg-config
 , pytestCheckHook
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "av";
-  version = "10.0.0";
-  format = "pyproject";
+  version = "11.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mikeboers";
     repo = "PyAV";
-    rev = "v${version}";
-    hash = "sha256-XcHP8RwC2iwD64Jc7SS+t9OxjFTsz3FbrnjMgJnN7Ak=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-pCKP+4ZmZCJcG7/Qy9H6aS4svQdgaRA9S1QVNWFYhSQ=";
   };
 
   nativeBuildInputs = [
@@ -53,64 +47,54 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    # Tests that want to download FATE data
-    # https://github.com/PyAV-Org/PyAV/issues/955
-    "--deselect=tests/test_audiofifo.py::TestAudioFifo::test_data"
-    "--deselect=tests/test_codec_context.py::TestCodecContext::test_codec_tag"
-    "--deselect=tests/test_codec_context.py::TestCodecContext::test_parse"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_aac"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dnxhd"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dvvideo"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_h264"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mjpeg"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mp2"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg1video"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg4"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_pcm_s24le"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_png"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_tiff"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_xvid"
-    "--deselect=tests/test_decode.py::TestDecode::test_decode_audio_sample_count"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors_no_flag"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_time_base"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_video_frame_count"
-    "--deselect=tests/test_encode.py::TestBasicAudioEncoding::test_transcode"
-    "--deselect=tests/test_file_probing.py::TestAudioProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestAudioProbe::test_stream_probing"
-    "--deselect=tests/test_file_probing.py::TestDataProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestDataProbe::test_stream_probing"
-    "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_stream_probing"
-    "--deselect=tests/test_file_probing.py::TestVideoProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestVideoProbe::test_stream_probing"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer_no_see"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_file"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_pipe_readonly"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_write_readonl"
-    "--deselect=tests/test_seek.py::TestSeek::test_decode_half"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_end"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_float"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_int64"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_middle"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_start"
-    "--deselect=tests/test_seek.py::TestSeek::test_stream_seek"
-    "--deselect=tests/test_streams.py::TestStreams::test_selection"
-    "--deselect=tests/test_streams.py::TestStreams::test_stream_tuples"
-    "--deselect=tests/test_subtitles.py::TestSubtitle::test_movtext"
-    "--deselect=tests/test_subtitles.py::TestSubtitle::test_vobsub"
-    "--deselect=tests/test_videoframe.py::TestVideoFrameImage::test_roundtrip"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # Segmentation Faults
-    "--deselect=tests/test_encode.py::TestBasicVideoEncoding::test_encoding_with_pts"
-    "--deselect=tests/test_pyav.py::test_bayer_write"
-  ];
-
   disabledTests = [
     # urlopen fails during DNS resolution
     "test_writing_to_custom_io"
+    "test_decode_close_then_use"
+    # Tests that want to download FATE data, https://github.com/PyAV-Org/PyAV/issues/955
+    "test_vobsub"
+    "test_transcode"
+    "test_stream_tuples"
+    "test_stream_seek"
+    "test_stream_probing"
+    "test_seek_start"
+    "test_seek_middle"
+    "test_seek_int64"
+    "test_seek_float"
+    "test_seek_end"
+    "test_roundtrip"
+    "test_reading_from_write_readonl"
+    "test_reading_from_pipe_readonly"
+    "test_reading_from_file"
+    "test_reading_from_buffer"
+    "test_reading_from_buffer_no_see"
+    "test_parse"
+    "test_movtext"
+    "test_encoding_xvid"
+    "test_encoding_tiff"
+    "test_encoding_png"
+    "test_encoding_pcm_s24le"
+    "test_encoding_mpeg4"
+    "test_encoding_mpeg1video"
+    "test_encoding_mp2"
+    "test_encoding_mjpeg"
+    "test_encoding_h264"
+    "test_encoding_dvvideo"
+    "test_encoding_dnxhd"
+    "test_encoding_aac"
+    "test_decoded_video_frame_count"
+    "test_decoded_time_base"
+    "test_decoded_motion_vectors"
+    "test_decode_half"
+    "test_decode_audio_sample_count"
+    "test_data"
+    "test_container_probing"
+    "test_codec_tag"
+    "test_selection"
+  ] ++ lib.optionals (stdenv.isDarwin) [
+    # Segmentation Faults
+    "test_encoding_with_pts"
+    "test_bayer_write"
   ];
 
   disabledTestPaths = [
@@ -148,6 +132,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pythonic bindings for FFmpeg/Libav";
     homepage = "https://github.com/mikeboers/PyAV/";
+    changelog = "https://github.com/PyAV-Org/PyAV/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/axisregistry/default.nix b/nixpkgs/pkgs/development/python-modules/axisregistry/default.nix
new file mode 100644
index 000000000000..5fba9f0f02dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/axisregistry/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fonttools
+, protobuf
+, pythonRelaxDepsHook
+, pytestCheckHook
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "axisregistry";
+  version = "0.4.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-elQUcl6Zh/3xXLduFKbiXZ6uQsDE8C6M3QnTEwaJlaA=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+    protobuf
+  ];
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  # Relax the dependency on protobuf 3. Other packages in the Google Fonts
+  # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
+  # so we need to use protobuf 4 here as well to avoid a conflict
+  # in the closure of fontbakery. It seems to be compatible enough.
+  pythonRelaxDeps = [ "protobuf" ];
+
+  meta = with lib; {
+    description = "Google Fonts registry of OpenType variation axis tags";
+    homepage = "https://github.com/googlefonts/axisregistry";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
index 624ce81e5bca..add836eee03f 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
@@ -1,11 +1,11 @@
 { lib
-, azure-common
-, azure-mgmt-core
 , buildPythonPackage
 , fetchPypi
-, isodate
-, msal
 , pythonOlder
+, azure-core
+, cryptography
+, msal
+, msal-extensions
 }:
 
 buildPythonPackage rec {
@@ -21,10 +21,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    azure-common
-    azure-mgmt-core
-    isodate
+    azure-core
+    cryptography
     msal
+    msal-extensions
   ];
 
   pythonImportsCheck = [
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Microsoft Azure Identity Library for Python";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
-    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_${version}/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-identity_${version}/sdk/identity/azure-identity/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ kamadorueda ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/babelfont/default.nix b/nixpkgs/pkgs/development/python-modules/babelfont/default.nix
new file mode 100644
index 000000000000..4cd3e809a890
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/babelfont/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cu2qu
+, defcon
+, fontfeatures
+, fonttools
+, glyphslib
+, openstep-plist
+, orjson
+, poetry-core
+, pytestCheckHook
+, ufoLib2
+}:
+
+buildPythonPackage rec {
+  pname = "babelfont";
+  version = "3.0.1";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "simoncozens";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-1DHcJDVaCgIAODyf5UUrXej8x3ySD4+6/KtxuF2yFV4=";
+  };
+
+  pyproject = true;
+
+  propagatedBuildInputs = [
+    cu2qu
+    fontfeatures
+    fonttools
+    glyphslib
+    openstep-plist
+    orjson
+    ufoLib2
+  ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    defcon
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library to load, examine, and save fonts in a variety of formats";
+    homepage = "https://github.com/simoncozens/babelfont";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix b/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
index 669f997f6e86..ea57e4887bff 100644
--- a/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "backports-entry-points-selectable";
-  version = "1.2.0";
+  version = "1.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "backports.entry_points_selectable";
     inherit version;
-    hash = "sha256-Rwb1kXllfKfB0yWlQ+4TcPj0YzH0MrysYvqyQv3wr6U=";
+    hash = "sha256-F6i0SucA+6VIaG3SdN3JHAYDcVZc1jgGwgodM5EXRuY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/betterproto/default.nix b/nixpkgs/pkgs/development/python-modules/betterproto/default.nix
index 6de1933fca8d..f17fabec994f 100644
--- a/nixpkgs/pkgs/development/python-modules/betterproto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/betterproto/default.nix
@@ -9,6 +9,7 @@
 , jinja2
 , isort
 , python
+, pydantic
 , pytestCheckHook
 , pytest-asyncio
 , pytest-mock
@@ -18,15 +19,15 @@
 
 buildPythonPackage rec {
   pname = "betterproto";
-  version = "2.0.0b5";
+  version = "2.0.0b6";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "danielgtaylor";
     repo = "python-betterproto";
-    rev = "v${version}";
-    hash = "sha256-XyXdpo3Yo4aO1favMWC7i9utz4fNDbKbsnYXJW0b7Gc=";
+    rev = "v.${version}";
+    hash = "sha256-ZuVq4WERXsRFUPNNTNp/eisWX1MyI7UtwqEI8X93wYI=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -45,6 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "betterproto" ];
 
   nativeCheckInputs = [
+    pydantic
     pytestCheckHook
     pytest-asyncio
     pytest-mock
@@ -56,6 +58,7 @@ buildPythonPackage rec {
   # the protoc-gen-python_betterproto script from the package to be on PATH.
   preCheck = ''
     export PATH=$PATH:$out/bin
+    patchShebangs src/betterproto/plugin/main.py
     ${python.interpreter} -m tests.generate
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/beziers/default.nix b/nixpkgs/pkgs/development/python-modules/beziers/default.nix
new file mode 100644
index 000000000000..0bfb5eeb29ee
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/beziers/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, dotmap
+, matplotlib
+, pyclipper
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "beziers";
+  version = "0.5.0";
+
+  # PyPI doesn't have a proper source tarball, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "simoncozens";
+    repo = "beziers.py";
+    rev = "v${version}";
+    hash = "sha256-4014u7s47Tfdpa2Q9hKAoHg7Ebcs1/DVW5TpEmoh2bc=";
+  };
+
+  propagatedBuildInputs = [
+    pyclipper
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    dotmap
+    matplotlib
+    unittestCheckHook
+  ];
+  unittestFlagsArray = [ "-s" "test" "-v" ];
+
+  meta = with lib; {
+    description = "Python library for manipulating Bezier curves and paths in fonts";
+    homepage = "https://github.com/simoncozens/beziers.py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/black/default.nix b/nixpkgs/pkgs/development/python-modules/black/default.nix
index 76890aeda286..52cc36e989cc 100644
--- a/nixpkgs/pkgs/development/python-modules/black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/black/default.nix
@@ -26,14 +26,14 @@
 
 buildPythonPackage rec {
   pname = "black";
-  version = "23.9.1";
+  version = "23.11.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JLaz/1xtnqCKiIj2l36uhY4fNA1yYM9W1wpJgjI2ti0=";
+    hash = "sha256-TGiFWCX/Qy0ZcimEb5cbxNZmbOkEkuWwIBO8rKTZqwU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/blockfrost-python/default.nix b/nixpkgs/pkgs/development/python-modules/blockfrost-python/default.nix
index 043384e80bf0..a8da8d6e45cb 100644
--- a/nixpkgs/pkgs/development/python-modules/blockfrost-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blockfrost-python/default.nix
@@ -8,15 +8,15 @@
 
 buildPythonPackage rec {
   pname = "blockfrost-python";
-  version = "0.5.3";
+  version = "0.6.0";
 
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "blockfrost";
     repo = "blockfrost-python";
-    rev = "${version}";
-    hash = "sha256-mQ8avjyLARJONYn18neCyuHEuv3ySyCNMe+P4+Dlxck=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-mN26QXxizDR+o2V5C2MlqVEbRns1BTmwZdUnnHNcFzw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix b/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix
index 0d65528f6dfa..29adc4aa473f 100644
--- a/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "botocore-stubs";
-  version = "1.31.79";
+  version = "1.33.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "botocore_stubs";
     inherit version;
-    hash = "sha256-ZEiLnziQX4pgBBmY+dyUV1QiLZAKM0W0SQWWZ4kMLBc=";
+    hash = "sha256-9f8WY8hvxlPbFk6zYTH+80sOxa51hPWVZNpuqBA9IPQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix b/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix
index 9a2983aabe8f..439a6241091c 100644
--- a/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-help-colors/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "click-help-colors";
-  version = "0.9.2";
+  version = "0.9.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dWJF5ULSkia7O8BWv6WIhvISuiuC9OjPX8iEF2rJbXI=";
+    hash = "sha256-9Mq+Us9VApm4iI9PLuTF81msJ+M7z+TWHbR3haXMk2w=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/collidoscope/default.nix b/nixpkgs/pkgs/development/python-modules/collidoscope/default.nix
new file mode 100644
index 000000000000..1398043f6b1c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/collidoscope/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, babelfont
+, kurbopy
+, fonttools
+, skia-pathops
+, tqdm
+, uharfbuzz
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "collidoscope";
+  version = "0.6.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-D7MzJ8FZjA/NSXCqCJQ9a02FPPi3t4W0q65wRIDcfSA=";
+  };
+
+  propagatedBuildInputs = [
+    babelfont
+    kurbopy
+    fonttools
+    skia-pathops
+    tqdm
+    uharfbuzz
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+  unittestFlagsArray = [ "-s" "test" "-v" ];
+
+  meta = with lib; {
+    description = "Python library to detect glyph collisions in fonts";
+    homepage = "https://github.com/googlefonts/collidoscope";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/commandlines/default.nix b/nixpkgs/pkgs/development/python-modules/commandlines/default.nix
new file mode 100644
index 000000000000..70e37055c4dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/commandlines/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "commandlines";
+  version = "0.4.1";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "chrissimpkins";
+    repo = "commandlines";
+    rev = "v${version}";
+    hash = "sha256-x3iUeOTAaTKNW5Y5foMPMJcWVxu52uYZoY3Hhe3UvQ4=";
+  };
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library for command line argument parsing";
+    homepage = "https://github.com/chrissimpkins/commandlines";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/configupdater/default.nix b/nixpkgs/pkgs/development/python-modules/configupdater/default.nix
index 2a502963c260..6016a63fbe3d 100644
--- a/nixpkgs/pkgs/development/python-modules/configupdater/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configupdater/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "configupdater";
-  version = "3.1.1";
+  version = "3.2";
 
   src = fetchPypi {
     inherit version;
     pname = "ConfigUpdater";
-    hash = "sha256-RvDHTXPvpyN3Z2S0PJc59oBSSV3T1zQxnB0OtYUR8Vs=";
+    hash = "sha256-n9rFODHBsGKSm/OYtkm4fKMOfxpzXz+/SCBygEEGMGs=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix b/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix
index e8b27794ae46..ef2dd6073da0 100644
--- a/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "cx-freeze";
-  version = "6.15.10";
+  version = "6.15.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cx_Freeze";
     inherit version;
-    hash = "sha256-Bc0md1lpL1EYYdIoYNNeKgW/v3OPliwVdhi7jHcdIyA=";
+    hash = "sha256-xf5Ez5eC+qXAaMoc1d6RPv4PmY1ry82oQ9aGod+W7lY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix b/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
index 4e0357ddd823..dd5cfe0d2981 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "dask-glm";
-  version = "0.3.0";
+  version = "0.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ddaYNBUlvsMzrku7fKrlozRmjshVbQ9yrYIlaRBQCp4=";
+    hash = "sha256-yUelZoZmmKAdeZeK5zIzy16DitXq1ghRQ1gsXpMLmko=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix b/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix
index 3eeac2e85b9b..3253ff91c096 100644
--- a/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix
@@ -23,7 +23,7 @@ let
 in
 buildPythonPackage rec {
   pname = "dataprep-ml";
-  version = "0.0.18";
+  version = "0.0.20";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "dataprep_ml";
     inherit version;
-    hash = "sha256-nIqyRwv62j8x5Fy7ILMLWxw6yJmkkNRE1zyUlfvRYTI=";
+    hash = "sha256-X6mTTj4hfnqiCPMFrc8ESFp2E7bRNELLR1uL/dGzsPg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dehinter/default.nix b/nixpkgs/pkgs/development/python-modules/dehinter/default.nix
new file mode 100644
index 000000000000..30eae7942765
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dehinter/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fonttools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "dehinter";
+  version = "4.0.0";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "source-foundry";
+    repo = "dehinter";
+    rev = "v${version}";
+    hash = "sha256-l988SW6OWKXzJK0WGAJZR/QDFvgnSir+5TwMMvFcOxg=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Utility for removing hinting data from TrueType and OpenType fonts";
+    homepage = "https://github.com/source-foundry/dehinter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix b/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix
index 5832d9a06933..60e04b184e9f 100644
--- a/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-hijack/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "django-hijack";
-  version = "3.4.2";
+  version = "3.4.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "django-hijack";
     repo = "django-hijack";
     rev = "refs/tags/${version}";
-    hash = "sha256-E5gM/5MIB65gdyv/I+Kuw8rbjPvtUnbCPXpasaIDzyo=";
+    hash = "sha256-D9IyuM+ZsvFZL0nhMt1VQ1DYcKg4CS8FPAgSWLtsXeE=";
   };
 
   postPatch = ''
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   npmDeps = fetchNpmDeps {
     inherit src;
-    hash = "sha256-4ZVb+V/oYfflIZdme6hbpoSBFVV7lk5wLfEzzBqZv/Y=";
+    hash = "sha256-X3bJ6STFq6zGIzXHSd2C67d4kSOVJJR5aBSM3o5T850=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/django/5.nix b/nixpkgs/pkgs/development/python-modules/django/5.nix
index 0ea8de9a4c7c..ed4f7a9162a7 100644
--- a/nixpkgs/pkgs/development/python-modules/django/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/5.nix
@@ -42,14 +42,14 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "5.0b1";
+  version = "5.0rc1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yIY15zPwoO9GwhljXiHI9ZeOsqFMORgiRlRUG8XVcDA=";
+    hash = "sha256-pLt3plnaAyt0GpXcuVeGTzaVJ10dWB73Y3IUMA+qrzA=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix b/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix
index 40cfd888a5d4..e6334daff641 100644
--- a/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix
@@ -7,16 +7,16 @@
 
 buildPythonPackage rec {
   pname = "downloader-cli";
-  version = "0.3.3";
+  version = "0.3.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "deepjyoti30";
-    repo = pname;
-    rev = version;
-    hash = "sha256-Dl5XIvdZInz+edL9uQv7V6Kc6FB+7hFAGe/nybnqvQU=";
+    repo = "downloader-cli";
+    rev = "refs/tags/${version}";
+    hash = "sha256-E2K3n9qCQofm4gXu1l7/0iMoJsniuzhsBUplr4aZ39s=";
   };
 
   propagatedBuildInputs = [
@@ -33,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Downloader with an awesome customizable progressbar";
     homepage = "https://github.com/deepjyoti30/downloader-cli";
+    changelog = "https://github.com/deepjyoti30/downloader-cli/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/duecredit/default.nix b/nixpkgs/pkgs/development/python-modules/duecredit/default.nix
index 053fd6504e41..1e24f9112920 100644
--- a/nixpkgs/pkgs/development/python-modules/duecredit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/duecredit/default.nix
@@ -7,23 +7,22 @@
 , vcrpy
 , citeproc-py
 , requests
-, six
 }:
 
 buildPythonPackage rec {
   pname = "duecredit";
-  version = "0.9.2";
+  version = "0.9.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Dg/Yfp5GzmyUMI6feAwgP+g22JYoQE+L9a+Wp0V77Rw=";
+    hash = "sha256-+DeOqQ0R+XUlkuSHySFj2oDZqf85mT64PAi/LtTso3I=";
   };
 
   nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ citeproc-py requests six ];
+  propagatedBuildInputs = [ citeproc-py requests ];
 
   nativeCheckInputs = [ pytestCheckHook vcrpy ];
   disabledTests = [ "test_import_doi" ];  # tries to access network
diff --git a/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix b/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix
index 217782a34e6c..041d2b1a3db1 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "dvc-objects";
-  version = "1.2.0";
+  version = "1.3.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-kTp0CowXtnLXetcnoCeqlXoadgaQhL5mTYTfq9QLIl8=";
+    hash = "sha256-30UnTbEHpGSgSGnhml7pXtPDivH9+NO7nvK4jEmRRUA=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix b/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
index 9f17306b7bdc..57c73ec20ba0 100644
--- a/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , zope_interface
-, zope_testing
+, zope-testing
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "a094ed7961a3dd38fcaaa69cf7a58670038acdff186360166d9e3d964b7a7323";
   };
 
-  propagatedBuildInputs = [ zope_interface zope_testing ];
+  propagatedBuildInputs = [ zope_interface zope-testing ];
 
   # tests fail, see https://hydra.nixos.org/build/4316603/log/raw
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix
index e5bdc6571cc9..6163c7ecc9c7 100644
--- a/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elasticsearch-dsl/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch-dsl";
-  version = "8.9.0";
+  version = "8.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ZkEK34gfArigMuilsqPuCT/e7eS4FPvwTA9s4EmbdHI=";
+    sha256 = "sha256-RK9P1/YgCbsZGTtV4cIUO2kyUX5MDsMBB+f/TZaKEn4=";
   };
 
   propagatedBuildInputs = [ elasticsearch python-dateutil six ];
diff --git a/nixpkgs/pkgs/development/python-modules/empy/default.nix b/nixpkgs/pkgs/development/python-modules/empy/default.nix
index 544506efb0d4..22f2830a447e 100644
--- a/nixpkgs/pkgs/development/python-modules/empy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/empy/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "empy";
-  version = "3.3.4";
+  version = "4.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6xJeFtgFHnfTqGKfHm8EwSop8NMArlHLPEgauiPAbM=";
+    sha256 = "sha256-JNmmKyN+G1+c7Lqw6Ta/9zVAJS0R6sb95/62OxSHuOM=";
   };
   pythonImportsCheck = [ "em" ];
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/es-client/default.nix b/nixpkgs/pkgs/development/python-modules/es-client/default.nix
index e0a88d607c5b..7c72732f7499 100644
--- a/nixpkgs/pkgs/development/python-modules/es-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/es-client/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "es-client";
-  version = "8.10.3";
+  version = "8.11.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "untergeek";
     repo = "es_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EvE40HLNKYl38PZ2bShAhFCsX3DMYsMmusUTcAql9b4=";
+    hash = "sha256-VsHpWe37/CZvGm3PqVq4mJCBA9juvOD9FLmDeW8OjiM=";
   };
 
   pythonRelaxDeps = true;
diff --git a/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix b/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
index 50c4f5e96837..0cdcd90cbe87 100644
--- a/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
@@ -10,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "fake-useragent";
-  version = "1.3.0";
-  format = "pyproject";
+  version = "1.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "fake-useragent";
     repo = "fake-useragent";
     rev = "refs/tags/${version}";
-    hash = "sha256-erGX52ipM0scn3snICf6ipjgVbV8/H5xT4GP3AtvOwo=";
+    hash = "sha256-Jmzq0yIM373bg2T6t0YFymBiH9vSpiCw+UAMfxsMJvY=";
   };
 
   postPatch = ''
@@ -41,6 +41,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "fake_useragent"
+  ];
+
   meta = with lib; {
     description = "Up to date simple useragent faker with real world database";
     homepage = "https://github.com/hellysmile/fake-useragent";
diff --git a/nixpkgs/pkgs/development/python-modules/faster-whisper/default.nix b/nixpkgs/pkgs/development/python-modules/faster-whisper/default.nix
index 30f2174ff7da..84761c3bfa06 100644
--- a/nixpkgs/pkgs/development/python-modules/faster-whisper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/faster-whisper/default.nix
@@ -15,21 +15,16 @@
 
 buildPythonPackage rec {
   pname = "faster-whisper";
-  version = "0.9.0";
+  version = "0.10.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "guillaumekln";
     repo = "faster-whisper";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-kHXX5Z4r7+lFRBtTCsPy9DILwsk3T1mcBzmJnCrKTdk=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-qcpPQv5WoUkT92/TZ+MMq452FgPNcm3ZZ+ZNc0btOGE=";
   };
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "onnxruntime>=1.14,<2" "onnxruntime"
-  '';
-
   propagatedBuildInputs = [
     av
     ctranslate2
@@ -54,7 +49,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    changelog = "https://github.com/guillaumekln/faster-whisper/releases/tag/v${version}";
+    changelog = "https://github.com/guillaumekln/faster-whisper/releases/tag/${version}";
     description = "Faster Whisper transcription with CTranslate2";
     homepage = "https://github.com/guillaumekln/faster-whisper";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flake8-bugbear/default.nix b/nixpkgs/pkgs/development/python-modules/flake8-bugbear/default.nix
index f2455cf2161f..6cf0cd7097ab 100644
--- a/nixpkgs/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "flake8-bugbear";
-  version = "23.9.16";
+  version = "23.11.28";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-fGrefEoyEgJE3danv9hG+Os79ixPzurEzLc3Dnj2M3k=";
+    hash = "sha256-9mVCJZmjYECi62wYRmyipAl3B1wqyDU/nTSNcA7oc04=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch b/nixpkgs/pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch
new file mode 100644
index 000000000000..c12c85e0de25
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch
@@ -0,0 +1,257 @@
+From 001549503eed364d4baaa5804242f67c6236f6c2 Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:55:05 +0100
+Subject: [PATCH] Fix with new dependency versions
+
+- cookie_jar is private in werkzeug 2.3, so recreate the client instead
+- set_cookie does not take a hostname argument anymore, use domain instead
+- Headers need to specify a content type
+---
+ test_seasurf.py | 63 ++++++++++++++++++++++++-------------------------
+ 1 file changed, 31 insertions(+), 32 deletions(-)
+
+diff --git a/test_seasurf.py b/test_seasurf.py
+index 517b2d7..501f82d 100644
+--- a/test_seasurf.py
++++ b/test_seasurf.py
+@@ -71,18 +71,18 @@ class SeaSurfTestCase(BaseTestCase):
+         self.assertEqual(type(token), str)
+ 
+     def test_exempt_view(self):
+-        rv = self.app.test_client().post('/foo')
++        rv = self.app.test_client().post('/foo', content_type='application/json')
+         self.assertIn(b('bar'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/foo/\xf8')
++        rv = self.app.test_client().post(u'/foo/\xf8', content_type='application/json')
+         self.assertIn(b('bar'), rv.data)
+ 
+     def test_token_validation(self):
+         # should produce a logger warning
+-        rv = self.app.test_client().post('/bar')
++        rv = self.app.test_client().post('/bar', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/bar/\xf8')
++        rv = self.app.test_client().post(u'/bar/\xf8', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+     def test_json_token_validation_bad(self):
+@@ -107,7 +107,7 @@ class SeaSurfTestCase(BaseTestCase):
+         data = {'_csrf_token': token}
+         with self.app.test_client() as client:
+             with client.session_transaction() as sess:
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             rv = client.post('/bar', data=data)
+@@ -121,7 +121,7 @@ class SeaSurfTestCase(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             # once this is reached the session was stored
+@@ -144,7 +144,7 @@ class SeaSurfTestCase(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             # once this is reached the session was stored
+@@ -167,7 +167,7 @@ class SeaSurfTestCase(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             rv = client.post('/bar',
+@@ -187,10 +187,10 @@ class SeaSurfTestCase(BaseTestCase):
+                 self.csrf._csrf_header_name: token,
+             }
+ 
+-            rv = client.post('/bar', headers=headers)
++            rv = client.post('/bar', headers=headers, content_type='application/json')
+             self.assertEqual(rv.status_code, 200, rv)
+ 
+-            rv = client.post(u'/bar/\xf8', headers=headers)
++            rv = client.post(u'/bar/\xf8', headers=headers, content_type='application/json')
+             self.assertEqual(rv.status_code, 200, rv)
+ 
+     def test_token_in_form_data(self):
+@@ -280,14 +280,14 @@ class SeaSurfTestCaseExemptViews(BaseTestCase):
+ 
+     def test_exempt_view(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/foo')
++            rv = c.post('/foo', content_type='application/json')
+             self.assertIn(b('bar'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             self.assertEqual(cookie, None)
+ 
+     def test_token_validation(self):
+         # should produce a logger warning
+-        rv = self.app.test_client().post('/bar')
++        rv = self.app.test_client().post('/bar', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+ 
+@@ -319,18 +319,18 @@ class SeaSurfTestCaseIncludeViews(BaseTestCase):
+             return 'foo'
+ 
+     def test_include_view(self):
+-        rv = self.app.test_client().post('/foo')
++        rv = self.app.test_client().post('/foo', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/foo/\xf8')
++        rv = self.app.test_client().post(u'/foo/\xf8', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+     def test_token_validation(self):
+         # should produce a logger warning
+-        rv = self.app.test_client().post('/bar')
++        rv = self.app.test_client().post('/bar', content_type='application/json')
+         self.assertIn(b('foo'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/bar/\xf8')
++        rv = self.app.test_client().post(u'/bar/\xf8', content_type='application/json')
+         self.assertIn(b('foo'), rv.data)
+ 
+ 
+@@ -363,10 +363,10 @@ class SeaSurfTestCaseExemptUrls(BaseTestCase):
+             return 'foo'
+ 
+     def test_exempt_view(self):
+-        rv = self.app.test_client().post('/foo/baz')
++        rv = self.app.test_client().post('/foo/baz', content_type='application/json')
+         self.assertIn(b('bar'), rv.data)
+         with self.app.test_client() as c:
+-            rv = c.post('/foo/quz')
++            rv = c.post('/foo/quz', content_type='application/json')
+             self.assertIn(b('bar'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             self.assertEqual(cookie, None)
+@@ -374,7 +374,7 @@ class SeaSurfTestCaseExemptUrls(BaseTestCase):
+     def test_token_validation(self):
+         with self.app.test_client() as c:
+             # should produce a logger warning
+-            rv = c.post('/bar')
++            rv = c.post('/bar', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -434,7 +434,7 @@ class SeaSurfTestCaseDisableCookie(unittest.TestCase):
+ 
+     def test_no_csrf_cookie_even_after_manually_validated(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/manual')
++            rv = c.post('/manual', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             self.assertEqual(cookie, None)
+@@ -474,14 +474,14 @@ class SeaSurfTestCaseEnableCookie(unittest.TestCase):
+ 
+     def test_has_csrf_cookie(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/exempt_with_cookie')
++            rv = c.post('/exempt_with_cookie', content_type='application/json')
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+             self.assertEqual(cookie, token)
+ 
+     def test_has_csrf_cookie_but_doesnt_validate(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/exempt_with_cookie')
++            rv = c.post('/exempt_with_cookie', content_type='application/json')
+             self.assertIn(b('exempt_with_cookie'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -530,7 +530,7 @@ class SeaSurfTestCaseSkipValidation(unittest.TestCase):
+ 
+     def test_skips_validation(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/foo/quz')
++            rv = c.post('/foo/quz', content_type='application/json')
+             self.assertIn(b('bar'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -538,20 +538,20 @@ class SeaSurfTestCaseSkipValidation(unittest.TestCase):
+ 
+     def test_enforces_validation_reject(self):
+         with self.app.test_client() as c:
+-            rv = c.delete('/foo/baz')
++            rv = c.delete('/foo/baz', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+ 
+     def test_enforces_validation_accept(self):
+         with self.app.test_client() as c:
+             # GET generates CSRF token
+             c.get('/foo/baz')
+-            rv = c.delete('/foo/baz',
++            rv = c.delete('/foo/baz', content_type='application/json',
+                           headers={'X-CSRFToken': self.csrf._get_token()})
+             self.assertIn(b('bar'), rv.data)
+ 
+     def test_manual_validation(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/manual')
++            rv = c.post('/manual', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+ 
+ 
+@@ -578,7 +578,7 @@ class SeaSurfTestManualValidation(unittest.TestCase):
+ 
+     def test_can_manually_validate_exempt_views(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/manual')
++            rv = c.post('/manual', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -651,7 +651,7 @@ class SeaSurfTestCaseReferer(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             # once this is reached the session was stored
+@@ -728,8 +728,7 @@ class SeaSurfTestCaseSetCookie(BaseTestCase):
+                           res3.headers.get('Set-Cookie', ''),
+                           'CSRF cookie always be re-set if a token is requested by the template')
+ 
+-            client.cookie_jar.clear()
+-
++        with self.app.test_client() as client:
+             res4 = client.get('/foo')
+ 
+             self.assertIn(self.csrf._csrf_name,
+@@ -739,14 +738,14 @@ class SeaSurfTestCaseSetCookie(BaseTestCase):
+     def test_header_set_on_post(self):
+         with self.app.test_client() as client:
+             headers = {}
+-            res1 = client.post('/bar', headers=headers)
++            res1 = client.post('/bar', headers=headers, content_type='application/json')
+             self.assertEqual(res1.status_code, 403)
+ 
+             for cookie in client.cookie_jar:
+                 if cookie.name == self.csrf._csrf_name:
+                     headers[self.csrf._csrf_header_name] = cookie.value
+ 
+-            res2 = client.post('/bar', headers=headers)
++            res2 = client.post('/bar', headers=headers, content_type='application/json')
+             self.assertEqual(res2.status_code, 200)
+ 
+     def test_header_set_cookie_samesite(self):
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix b/nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix
index 79d024f5b34f..26dd2d7f5e08 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-seasurf/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, flask, mock, unittestCheckHook }:
+{ lib, fetchFromGitHub, fetchpatch, buildPythonPackage, isPy3k, flask, mock, unittestCheckHook }:
 
 buildPythonPackage rec {
   pname = "Flask-SeaSurf";
@@ -12,6 +12,20 @@ buildPythonPackage rec {
     hash = "sha256-L/ZUEqqHmsyXG5eShcITII36ttwQlZN5GBngo+GcCdw=";
   };
 
+  patches = [
+    # Remove usage of deprecated flask._app_ctx_stack
+    (fetchpatch {
+      url = "https://github.com/maxcountryman/flask-seasurf/commit/9039764a4e44aeb1acb6ae7747deb438bee0826b.patch";
+      hash = "sha256-bVYzJN6MXzH3fNMknd2bh+04JlPJRkU0cLcWv+Rigqc=";
+    })
+    ./0001-Fix-with-new-dependency-versions.patch
+  ];
+
+  postPatch = ''
+    # Disable some tests, pytest is not supported
+    sed -i "s#\(\(test_header_set_on_post\|test_https_good_referer\|test_https_referer_check_disabled\)(self):\)#\1\n        return#g" test_seasurf.py
+  '';
+
   propagatedBuildInputs = [ flask ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flask-themes2/default.nix b/nixpkgs/pkgs/development/python-modules/flask-themes2/default.nix
index 56c03ca39e0c..b4cd08bdcf09 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-themes2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-themes2/default.nix
@@ -1,20 +1,36 @@
-{ lib, fetchPypi, buildPythonPackage, flask, pythonOlder, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, setuptools
+, flask
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "flask-themes2";
-  version = "1.0.0";
-  format = "setuptools";
+  version = "1.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "Flask-Themes2";
     inherit version;
-    hash = "sha256-0U0cSdBddb9+IG3CU6zUPlxaJhQlxOV6OLgxnNDChy8=";
+    hash = "sha256-gsMgQQXjhDfQRhm7H0kBy8jKxd75WY+PhHR6Rk/PUPs=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook ];
-  propagatedBuildInputs = [ flask ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    flask
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Easily theme your Flask app";
diff --git a/nixpkgs/pkgs/development/python-modules/font-v/default.nix b/nixpkgs/pkgs/development/python-modules/font-v/default.nix
new file mode 100644
index 000000000000..8a43dd52adea
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/font-v/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fonttools
+, git
+, gitpython
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "font-v";
+  version = "2.1.0";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "source-foundry";
+    repo = "font-v";
+    rev = "v${version}";
+    hash = "sha256-ceASyYcNul5aWPAPGajCQrqsQ3bN1sE+nMbCbj7f35w=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+    gitpython
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    git
+    pytestCheckHook
+  ];
+  preCheck = ''
+    # Many tests assume they are running from a git checkout, although they
+    # don't care which one. Create a dummy git repo to satisfy the tests:
+    git init -b main
+    git config user.email test@example.invalid
+    git config user.name Test
+    git commit --allow-empty --message 'Dummy commit for tests'
+  '';
+  disabledTests = [
+    # These tests assume they are actually running from a font-v git checkout,
+    # so just skip them:
+    "test_utilities_get_gitrootpath_function"
+  ];
+
+  meta = with lib; {
+    description = "Python utility for manipulating font version headers";
+    homepage = "https://github.com/source-foundry/font-v";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/fontawesomefree/default.nix b/nixpkgs/pkgs/development/python-modules/fontawesomefree/default.nix
index 437259ff6d3e..dea884ab0b30 100644
--- a/nixpkgs/pkgs/development/python-modules/fontawesomefree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fontawesomefree/default.nix
@@ -5,7 +5,7 @@
 
 buildPythonPackage rec {
   pname = "fontawesomefree";
-  version = "6.4.2";
+  version = "6.5.1";
   format = "wheel";
 
   # they only provide a wheel
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    hash = "sha256-zq/378T8Odrf88P/cpinoQlUAxENNz8iRWuxw0q22wI=";
+    hash = "sha256-jexKLuN7+OUzeeu/DTjO/sTgbHySJ/Wa8527exYygXs=";
   };
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/fontbakery/default.nix b/nixpkgs/pkgs/development/python-modules/fontbakery/default.nix
new file mode 100644
index 000000000000..b824ca990b8a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fontbakery/default.nix
@@ -0,0 +1,146 @@
+{ lib
+, buildPythonPackage
+, callPackage
+, fetchpatch
+, fetchPypi
+, axisregistry
+, babelfont
+, beautifulsoup4
+, beziers
+, cmarkgfm
+, collidoscope
+, defcon
+, dehinter
+, fonttools
+, font-v
+, freetype-py
+, gflanguages
+, git
+, glyphsets
+, lxml
+, installShellFiles
+, munkres
+, opentypespec
+, ots-python
+, packaging
+, pip-api
+, protobuf
+, pytestCheckHook
+, pytest-xdist
+, pythonRelaxDepsHook
+, pyyaml
+, requests
+, requests-mock
+, rich
+, setuptools-scm
+, shaperglot
+, stringbrewer
+, toml
+, unicodedata2
+, ufo2ft
+, ufolint
+, vharfbuzz
+}:
+
+buildPythonPackage rec {
+  pname = "fontbakery";
+  version = "0.10.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Ye/TMGvURxSU2yoohwYbSo5RvrmbHKdMnFNj2lUvtMk=";
+  };
+
+  patches = [
+    # Mock HTTP requests in tests (note we still have to skip some below)
+    # https://github.com/googlefonts/fontbakery/pull/4124
+    (fetchpatch {
+      url = "https://github.com/fonttools/fontbakery/pull/4124.patch";
+      hash = "sha256-NXuC2+TtxpHYMdd0t+cF0FJ3lrh4exP5yxspEasKKd0=";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    axisregistry
+    babelfont
+    beautifulsoup4
+    beziers
+    cmarkgfm
+    collidoscope
+    defcon
+    dehinter
+    fonttools
+    font-v
+    freetype-py
+    gflanguages
+    glyphsets
+    lxml
+    munkres
+    ots-python
+    opentypespec
+    packaging
+    pip-api
+    protobuf
+    pyyaml
+    requests
+    rich
+    shaperglot
+    stringbrewer
+    toml
+    ufolint
+    unicodedata2
+    vharfbuzz
+    ufo2ft
+  ];
+  nativeBuildInputs = [
+    installShellFiles
+    pythonRelaxDepsHook
+    setuptools-scm
+  ];
+
+  pythonRelaxDeps = [
+    "collidoscope"
+    "protobuf"
+    "vharfbuzz"
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    git
+    pytestCheckHook
+    pytest-xdist
+    requests-mock
+    ufolint
+  ];
+  preCheck = ''
+    # Let the tests invoke 'fontbakery' command.
+    export PATH="$out/bin:$PATH"
+    # font-v tests assume they are running from a git checkout, although they
+    # don't care which one. Create a dummy git repo to satisfy the tests:
+    git init -b main
+    git config user.email test@example.invalid
+    git config user.name Test
+    git commit --allow-empty --message 'Dummy commit for tests'
+  '';
+  disabledTests = [
+    # These require network access:
+    "test_check_vertical_metrics_regressions"
+    "test_check_cjk_vertical_metrics_regressions"
+    "test_check_fontbakery_version_live_apis"
+  ];
+
+  postInstall = ''
+    installShellCompletion --bash --name fontbakery \
+      snippets/fontbakery.bash-completion
+  '';
+
+  passthru.tests.simple = callPackage ./tests.nix { };
+
+  meta = with lib; {
+    description = "Tool for checking the quality of font projects";
+    homepage = "https://github.com/googlefonts/fontbakery";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/fontbakery/tests.nix b/nixpkgs/pkgs/development/python-modules/fontbakery/tests.nix
new file mode 100644
index 000000000000..4725b1fee3e3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fontbakery/tests.nix
@@ -0,0 +1,22 @@
+{ runCommand
+, fontbakery
+}:
+
+let
+  inherit (fontbakery) pname version src;
+in
+
+runCommand "${pname}-tests" { meta.timeout = 5; } ''
+  # Check the version matches what we packaged.
+  ${fontbakery}/bin/fontbakery --version | grep -q "${version}"
+
+  # Can it list its own subcommands?
+  ${fontbakery}/bin/fontbakery --list-subcommands >>$out
+
+  # Unpack src to get some test fonts.
+  tar -xzf ${src} --strip-components=1 ${pname}-${version}/data/test
+
+  # Run some font checks.
+  ${fontbakery}/bin/fontbakery check-ufo-sources --no-progress --no-colors data/test/test.ufo >>$out
+  # TODO add more
+''
diff --git a/nixpkgs/pkgs/development/python-modules/fontfeatures/default.nix b/nixpkgs/pkgs/development/python-modules/fontfeatures/default.nix
new file mode 100644
index 000000000000..2ea5247d38c8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fontfeatures/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, beziers
+, fonttools
+, fs
+, glyphtools
+, lxml
+, pytestCheckHook
+, youseedee
+}:
+
+buildPythonPackage rec {
+  pname = "fontfeatures";
+  version = "1.8.0";
+
+  src = fetchPypi {
+    pname = "fontFeatures";
+    inherit version;
+    hash = "sha256-XLJD91IyUUjeSqdhWFfIqv9yISPcbU4bgRvXETSHOiY=";
+  };
+
+  propagatedBuildInputs = [
+    beziers
+    fonttools
+    fs
+    glyphtools
+    lxml
+    youseedee
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  disabledTestPaths = [
+    # These tests require babelfont but we have to leave it out and skip them
+    # to break the cyclic dependency with babelfont.
+    "tests/test_shaping_generic.py"
+    "tests/test_shaping_harfbuzz.py"
+  ];
+
+  meta = with lib; {
+    description = "Python library for compiling OpenType font features";
+    homepage = "https://github.com/simoncozens/fontFeatures";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/frozendict/default.nix b/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
index 6bd1622fa44d..7b746f364c98 100644
--- a/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/frozendict/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "frozendict";
-  version = "2.3.9";
+  version = "2.3.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Marco-Sulla";
     repo = "python-frozendict";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wVsTsUK6TES6YLGZGcHcGufrdVQrODyXrqczae8iTJ0=";
+    hash = "sha256-GUpCN5CsCJGuIfdsmgZHQvByA145RLI1l7aVEueqjDM=";
   };
 
   # build C version if it exists
diff --git a/nixpkgs/pkgs/development/python-modules/fschat/default.nix b/nixpkgs/pkgs/development/python-modules/fschat/default.nix
index 573009b2a5ea..44420ae6c61f 100644
--- a/nixpkgs/pkgs/development/python-modules/fschat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fschat/default.nix
@@ -29,7 +29,7 @@
 , protobuf
 }:
 let
-  version = "0.2.32";
+  version = "0.2.33";
 in
 buildPythonPackage {
   pname = "fschat";
@@ -40,7 +40,7 @@ buildPythonPackage {
     owner = "lm-sys";
     repo = "FastChat";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3IJcqVULOK0Nf72sgv80q9U8QZ3pNHLYaNwCQohdBB8=";
+    hash = "sha256-tfFgiYJBuVt71qHOmkDoSrZ2tvXStjubmkw7sexkGZg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix b/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix
index 423cfd34a70f..90b70e8906c8 100644
--- a/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix
@@ -10,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.2.9";
-  format = "pyproject";
+  version = "0.2.11";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-wQWOksI0nfzIMdxgZehMmNytuXWD22GLUNoI7Ki0C3s=";
+    hash = "sha256-T8flktIBRhtXpxd17bqrocncgpIfinMDvVwvaoltZAs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix b/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix
index 7e1d88cde508..93ef73227310 100644
--- a/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "gehomesdk";
-  version = "0.5.23";
+  version = "0.5.25";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6Xk7wAF0bZrHriSyDMnPfaPRBiVinHawj3nEqpwbUmo=";
+    hash = "sha256-VQSefwzw4zA9ycO8723kBlMbtrOJxmKgZ8tfXZmtyQc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/geopy/default.nix b/nixpkgs/pkgs/development/python-modules/geopy/default.nix
index 3a25b434c301..52adbbe07eed 100644
--- a/nixpkgs/pkgs/development/python-modules/geopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geopy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "geopy";
-  version = "2.4.0";
+  version = "2.4.1";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-3Sq76DcnoG0Uv/KPF/B3oep0MO96vemKiANjgR7/k/I=";
+    hash = "sha256-mlOXDEtYry1IUAZWrP2FuY/CGliUnCPYLULnLNN0n4Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gflanguages/default.nix b/nixpkgs/pkgs/development/python-modules/gflanguages/default.nix
new file mode 100644
index 000000000000..baaeeb6c9339
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gflanguages/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, protobuf
+, setuptools-scm
+, pythonRelaxDepsHook
+, pytestCheckHook
+, uharfbuzz
+, youseedee
+}:
+
+buildPythonPackage rec {
+  pname = "gflanguages";
+  version = "0.5.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-JVeI7TlJjbKCa+gGmjylbNiEhX3qmpbLXiH3VpFqgXc=";
+  };
+
+  propagatedBuildInputs = [
+    protobuf
+  ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pythonRelaxDepsHook
+    pytestCheckHook
+    uharfbuzz
+    youseedee
+  ];
+
+  # Relax the dependency on protobuf 3. Other packages in the Google Fonts
+  # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
+  # so we need to use protobuf 4 here as well to avoid a conflict
+  # in the closure of fontbakery. It seems to be compatible enough.
+  pythonRelaxDeps = [ "protobuf" ];
+
+  meta = with lib; {
+    description = "Python library for Google Fonts language metadata";
+    homepage = "https://github.com/googlefonts/lang";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/glfw/default.nix b/nixpkgs/pkgs/development/python-modules/glfw/default.nix
index db9f369a3497..d39daf9e9dc2 100644
--- a/nixpkgs/pkgs/development/python-modules/glfw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glfw/default.nix
@@ -20,10 +20,8 @@ buildPythonPackage rec {
   };
 
   # Patch path to GLFW shared object
-  patches = [ ./search-path.patch ];
-
   postPatch = ''
-    substituteInPlace glfw/library.py --replace "@GLFW@" '${glfw3}/lib'
+    substituteInPlace glfw/library.py --replace "_get_library_search_paths()," "[ '${glfw3}/lib' ],"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/glfw/search-path.patch b/nixpkgs/pkgs/development/python-modules/glfw/search-path.patch
deleted file mode 100644
index 0c4a42ceb362..000000000000
--- a/nixpkgs/pkgs/development/python-modules/glfw/search-path.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/glfw/library.py b/glfw/library.py
-index 20387e1..9bdd62a 100644
---- a/glfw/library.py
-+++ b/glfw/library.py
-@@ -189,5 +189,4 @@ elif sys.platform == 'win32':
-         except OSError:
-             pass
- else:
--    glfw = _load_library(['glfw', 'glfw3'], ['.so', '.dylib'],
--                          _get_library_search_paths(), _glfw_get_version)
-+    glfw = _load_library(['glfw', 'glfw3'], ['.so', '.dylib'], ['@GLFW@'], _glfw_get_version)
diff --git a/nixpkgs/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch b/nixpkgs/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch
new file mode 100644
index 000000000000..96a4047c5ced
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch
@@ -0,0 +1,22 @@
+From de2e02a41b11a708d58dfd1e24d335b8882dd7bd Mon Sep 17 00:00:00 2001
+From: Dan Callaghan <djc@djc.id.au>
+Date: Sun, 23 Apr 2023 12:15:47 +1000
+Subject: [PATCH] relax setuptools-scm dep
+
+
+diff --git a/setup.py b/setup.py
+index 2c122a7..42f9b61 100644
+--- a/setup.py
++++ b/setup.py
+@@ -55,7 +55,7 @@
+         'Programming Language :: Python :: 3'
+     ],
+     python_requires=">=3.7",
+-    setup_requires=['setuptools_scm>=4,<6.1'],
++    setup_requires=['setuptools_scm'],
+     install_requires=[
+         'setuptools',
+         'FontTools[ufo]',
+-- 
+2.38.4
+
diff --git a/nixpkgs/pkgs/development/python-modules/glyphsets/default.nix b/nixpkgs/pkgs/development/python-modules/glyphsets/default.nix
new file mode 100644
index 000000000000..5088deb580b0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/glyphsets/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, defcon
+, fonttools
+, glyphslib
+, pytestCheckHook
+, setuptools
+, setuptools-scm
+, unicodedata2
+}:
+
+buildPythonPackage rec {
+  pname = "glyphsets";
+  version = "0.6.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Zp4VLJ9h6lkz7KOM7LWKAj7UX1KziLobzeT9Dosv5UU=";
+  };
+
+  patches = [
+    # Upstream has a needlessly strict version range for setuptools_scm, our
+    # setuptools-scm is newer. We can't use pythonRelaxDepsHook for this
+    # because it's in setup_requires which means we'll fail the requirement
+    # before pythonRelaxDepsHook can run.
+    ./0001-relax-setuptools-scm-dep.patch
+  ];
+
+  propagatedBuildInputs = [
+    defcon
+    fonttools
+    glyphslib
+    setuptools
+    unicodedata2
+  ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  preCheck = ''
+    export PATH="$out/bin:$PATH"
+  '';
+
+  meta = with lib; {
+    description = "Google Fonts glyph set metadata";
+    homepage = "https://github.com/googlefonts/glyphsets";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix b/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix
index 2a0276a3c7e3..65cbc5b3b205 100644
--- a/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "glyphslib";
-  version = "6.4.1";
+  version = "6.6.0";
 
   format = "pyproject";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "googlefonts";
     repo = "glyphsLib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pDFPn1KDiZ5yw1UzPgi0+Syv3h606bsOOzLbdOiag8s=";
+    hash = "sha256-2Y7JhaZJXKERQXEI9cDCx7m95El6AicU0t+X3Gntbxk=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/glyphtools/default.nix b/nixpkgs/pkgs/development/python-modules/glyphtools/default.nix
new file mode 100644
index 000000000000..f186863459a7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/glyphtools/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, beziers
+, glyphslib
+, numpy
+, setuptoolsCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "glyphtools";
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-PXwXHWMJbsi6ZtN+daaXAnlw3gV5DFAhyRxdBa7UP+M=";
+  };
+
+  propagatedBuildInputs = [
+    beziers
+    glyphslib
+    numpy
+  ];
+
+  # A unit test suite does exist, but it only contains a dummy test that
+  # doesn't test anything. It does import the module though so we still run it.
+  doCheck = true;
+  nativeCheckInputs = [
+    # Upstream apparently prefers the deprecated setuptools 'test' command.
+    setuptoolsCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library for extracting information from font glyphs";
+    homepage = "https://github.com/simoncozens/glyphtools";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
index 67d050c2e722..781218fa7a20 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.33.2";
+  version = "0.33.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MPmyvm2FSrUzb1y5i4xl5Cqea6sxixLoZ7V1hxNi7hw=";
+    hash = "sha256-4sv5wua03gLd9YqwdD8P/VaKv4LcacB42fK5hUAt2vQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gptcache/default.nix b/nixpkgs/pkgs/development/python-modules/gptcache/default.nix
index ea2c09eed4a3..ce04d7df2273 100644
--- a/nixpkgs/pkgs/development/python-modules/gptcache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gptcache/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "gptcache";
-  version = "0.1.42";
+  version = "0.1.43";
   format = "setuptools";
 
   disabled = pythonOlder "3.8.1";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "zilliztech";
     repo = "GPTCache";
     rev = "refs/tags/${version}";
-    hash = "sha256-rrPs5ZwBooltVcvrs4AHObx69xmZ8F+IP/lJGPVTNXY=";
+    hash = "sha256-EDsHzl55j4sehbKk0/be+WOl83f1/7zPLvPyzKnTBP4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix
index f827c8508122..1063dfdb5d9d 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-channelz";
-  version = "1.59.2";
+  version = "1.59.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-apOnMd8EDU+ocj6fL/dkl3tqh6en/Q8H9K/lgvkqFN8=";
+    hash = "sha256-R2rk/4yQ0ldy6yZeauVtEpmmF0Jnx61NMw98y3D5kq4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix
index 4c028e4ec71c..f758a8bf2504 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-health-checking";
-  version = "1.59.0";
+  version = "1.59.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4CIcpupsITlhQXmAi4+LMjA30LG977D8TN2agUmZVx4=";
+    hash = "sha256-AVAXzkFk/H3Ogdo6FxiksxUyMOSBss3r85JGi2E/B2Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix
index cd0506870a27..7ed24e849ccd 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-reflection";
-  version = "1.59.2";
+  version = "1.59.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l5bcvFnc+59tVGXVnn+mKld3o+TVqolPRIVciWpG+os=";
+    hash = "sha256-VAPFpzjG7sS7QIDad+RQMS2s5BqG4pKsN8/QB7JlfU4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gspread/default.nix b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
index f71690c877e2..0e56dd26cb8d 100644
--- a/nixpkgs/pkgs/development/python-modules/gspread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "gspread";
-  version = "5.12.0";
+  version = "5.12.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "burnash";
     repo = "gspread";
     rev = "refs/tags/v${version}";
-    hash = "sha256-v6kpje5rw3/OfcoMWdSCZdkmETyIJ08cly8lLUt9j64=";
+    hash = "sha256-cuSR5QWURHSL1o2R4rc/m3KETz3X+78TC8LuuzZghbs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/html2image/default.nix b/nixpkgs/pkgs/development/python-modules/html2image/default.nix
new file mode 100644
index 000000000000..2b99f6bffeee
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/html2image/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, requests
+, websocket-client
+}:
+
+buildPythonPackage rec {
+  pname = "html2image";
+  version = "2.0.4.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "vgalin";
+    repo = "html2image";
+    rev = version;
+    hash = "sha256-BDl2Kibp1WOAOYNlXa2aaEgQTitk+OZu72OgytciZYI=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+    --replace poetry.masonry.api poetry.core.masonry.api \
+    --replace "poetry>=" "poetry-core>="
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    websocket-client
+  ];
+
+  pythonImportsCheck = [ "html2image" ];
+
+  meta = with lib; {
+    description = "A package acting as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files";
+    homepage = "https://github.com/vgalin/html2image";
+    changelog = "https://github.com/vgalin/html2image/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ happysalada ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/icontract/default.nix b/nixpkgs/pkgs/development/python-modules/icontract/default.nix
index 76e1814ddddd..e525cf89cca2 100644
--- a/nixpkgs/pkgs/development/python-modules/icontract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/icontract/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "icontract";
-  version = "2.6.4";
+  version = "2.6.6";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Parquery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zuaS9mmq47hUIBObYRuzEYQQdTArFXR3TpK9nfZt/yk=";
+    hash = "sha256-R5/FBfuTvXItfTlNZMSnO18Q+etnHbQyXFWpaOpOLes=";
   };
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/imapclient/default.nix b/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
index 58c45f992236..6301970392ac 100644
--- a/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imapclient";
-  version = "3.0.0";
+  version = "3.0.1";
 
   format = "setuptools";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "mjs";
     repo = "imapclient";
     rev = "refs/tags/${version}";
-    hash = "sha256-ylYGh+78I+6pdvHuQPw8Gks9TLkXQL5HQiaZDnJK3DA=";
+    hash = "sha256-WY3OLPUwixrL2NSLfNBSSNMXJEoYBL+O6KoglU3Cz9g=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
index 1d13d50804af..8ca4ed136fe9 100644
--- a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "inquirer";
-  version = "3.1.3";
+  version = "3.1.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "magmax";
     repo = "python-inquirer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-7GfHsCQgnDUdiM1z9YNdDuwMNy6rLjR1UTnZMgpQ5k4=";
+    hash = "sha256-1xaxLIk4GFRpcodhBX+Co9TgpYkWhB/D4OE4Nny4ijM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix b/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
index ff7dad6f0be0..8c7a9f69d50e 100644
--- a/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "intellifire4py";
-  version = "3.1.30";
+  version = "3.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "jeeftor";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-CIcudKyRPVJX6QvWk6dBbYnO5EULREDhaflJTAfJEvc=";
+    hash = "sha256-lbBQbcVhozca7gYkeUFClS+5WaPaTajQMdfqDL07xdk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
index 74cb52629af5..d1b970c34a2e 100644
--- a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "6.25.2";
-  format = "pyproject";
+  version = "6.27.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9Gjd0fF6y0jIzmf8+km6bUbU+awEOMH0Qb58PRNyIws=";
+    hash = "sha256-fV1ZS2aQZUtNKZ7bpehy3Be7c5ao0GCcl8t7ihxgXeY=";
   };
 
   # debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
@@ -55,6 +55,6 @@ buildPythonPackage rec {
     description = "IPython Kernel for Jupyter";
     homepage = "https://ipython.org/";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ fridh ];
+    maintainers = with lib.maintainers; [ fridh ] ++ lib.teams.jupyter.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix b/nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix
index edbb13912ad9..0de6d2feb4ae 100644
--- a/nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipykernel/tests.nix
@@ -5,9 +5,10 @@
 , flaky
 , ipykernel
 , ipyparallel
-, nose
+, pre-commit
 , pytestCheckHook
-
+, pytest-asyncio
+, pytest-timeout
 }:
 
 buildPythonPackage {
@@ -22,15 +23,26 @@ buildPythonPackage {
     flaky
     ipykernel
     ipyparallel
-    nose
+    pre-commit
     pytestCheckHook
+    pytest-asyncio
+    pytest-timeout
   ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = lib.optionals stdenv.isDarwin ([
+  disabledTests = [ # The follwing three tests fail for unclear reasons.
+    # pytest.PytestUnhandledThreadExceptionWarning: Exception in thread Thread-8
+    "test_asyncio_interrupt"
+
+    # DeprecationWarning: Passing unrecognized arguments to super(IPythonKernel)
+    "test_embed_kernel_func"
+
+    # traitlets.config.configurable.MultipleInstanceError: An incompatible siblin...
+    "test_install_kernelspec"
+  ] ++ lib.optionals stdenv.isDarwin ([
     # see https://github.com/NixOS/nixpkgs/issues/76197
     "test_subprocess_print"
     "test_subprocess_error"
diff --git a/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix b/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
index 4030bd5e4041..d80cbc2a6018 100644
--- a/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
@@ -34,11 +34,7 @@
 
 let
   inherit (cudaPackages) cudatoolkit cudnn;
-in
-
-assert cudaSupport -> lib.versionAtLeast cudatoolkit.version "11.1" && lib.versionAtLeast cudnn.version "8.2" && stdenv.isLinux;
 
-let
   version = "0.4.20";
 
   inherit (python) pythonVersion;
@@ -213,5 +209,9 @@ buildPythonPackage {
     license = licenses.asl20;
     maintainers = with maintainers; [ samuela ];
     platforms = [ "aarch64-darwin" "x86_64-linux" "x86_64-darwin" ];
+    broken =
+      !(cudaSupport -> (cudaPackages ? cudatoolkit) && lib.versionAtLeast cudatoolkit.version "11.1")
+      || !(cudaSupport -> (cudaPackages ? cudnn) && lib.versionAtLeast cudnn.version "8.2")
+      || !(cudaSupport -> stdenv.isLinux);
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jplephem/default.nix b/nixpkgs/pkgs/development/python-modules/jplephem/default.nix
index d945d9c11c56..017d8bda6652 100644
--- a/nixpkgs/pkgs/development/python-modules/jplephem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jplephem/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "jplephem";
-  version = "2.20";
+  version = "2.21";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-u5htUI6kbGiTaomWiaZE21+grznJpQRCIImgA+yg4fo=";
+    hash = "sha256-NBlLYQaV8huJIXuYUrjautvOgISMs2nZVn7xLcSCjVU=";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/kurbopy/default.nix b/nixpkgs/pkgs/development/python-modules/kurbopy/default.nix
new file mode 100644
index 000000000000..aa5e33f23757
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/kurbopy/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fonttools
+, pytestCheckHook
+, python
+, rustPlatform
+, unzip
+}:
+
+buildPythonPackage rec {
+  pname = "kurbopy";
+  version = "0.10.40";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-dhpcDi20Na6SDbRxrC8N3SWdN1J/CWJgCUI3scJX/6s=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+  ];
+  nativeBuildInputs = [
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-V3LeT0dqkfft1ftc+azwvuSzzdUJ7/wAp31fN7te9RQ=";
+  };
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  preCheck = ''
+    # pytestCheckHook puts . at the front of Python's sys.path, due to:
+    # https://github.com/NixOS/nixpkgs/issues/255262
+    # So we need to prevent pytest from trying to import kurbopy from
+    # ./kurbopy, which contains the sources but not the newly built module.
+    # We want it to import kurbopy from the nix store via $PYTHONPATH instead.
+    rm -r kurbopy
+  '';
+
+  meta = with lib; {
+    description = "Python wrapper around the Rust kurbo library for 2D curve manipulation";
+    homepage = "https://github.com/simoncozens/kurbopy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/langsmith/default.nix b/nixpkgs/pkgs/development/python-modules/langsmith/default.nix
index 3b81c6128887..78337124ca8f 100644
--- a/nixpkgs/pkgs/development/python-modules/langsmith/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/langsmith/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.0.63";
+  version = "0.0.69";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KE+WMnuWAq1stZuuwZkOPOKQ2lZNKtxzNbZMRoOdmz0=";
+    hash = "sha256-LP97bGCmLw2uFcFdFcDWM7hSuki7r7T6WFHI6i3rF34=";
   };
 
   sourceRoot = "${src.name}/python";
diff --git a/nixpkgs/pkgs/development/python-modules/latexify-py/default.nix b/nixpkgs/pkgs/development/python-modules/latexify-py/default.nix
index f56055e55fd7..ccda72eb03d7 100644
--- a/nixpkgs/pkgs/development/python-modules/latexify-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/latexify-py/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "latexify-py";
-  version = "0.4.1";
+  version = "0.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "google";
     repo = "latexify_py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sxXfm4zJJT+94jcSsYH7Ky3XwFOniSNxvcVUAsgz8u0=";
+    hash = "sha256-bBtAtBJfpStNYWhOJoypDI9hhE4g1ZFHBU8p6S1yCgU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/license-expression/default.nix b/nixpkgs/pkgs/development/python-modules/license-expression/default.nix
index bd95899398f8..71443bb0144a 100644
--- a/nixpkgs/pkgs/development/python-modules/license-expression/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/license-expression/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "license-expression";
-  version = "30.1.1";
-  format = "setuptools";
+  version = "30.2.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nexB";
     repo = "license-expression";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5pRfFRQLxWmhEKoJZiC7gZbmW8BbqBNBWbdwFL0MtpM=";
+    hash = "sha256-vsQsHi2jdB0OiV6stm1APjQvr+238UoKgaaeXVx/isI=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/litellm/default.nix b/nixpkgs/pkgs/development/python-modules/litellm/default.nix
index ef70a50f70d1..d25adcdf65c0 100644
--- a/nixpkgs/pkgs/development/python-modules/litellm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/litellm/default.nix
@@ -6,9 +6,16 @@
 , openai
 , python-dotenv
 , tiktoken
+, tokenizers
+, click
+, jinja2
+, certifi
+, appdirs
+, aiohttp
+, httpx
 }:
 let
-  version = "0.11.1";
+  version = "1.7.11";
 in
 buildPythonPackage rec {
   pname = "litellm";
@@ -19,7 +26,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5Zk1lc7G0dU/AoLE5V+p30wE/gRfYRPsVS3sNgwWzCU=";
+    hash = "sha256-B2LGaA6A+pU2aDzPS2d5stY+Z8Wxq3BkXB1CLY6vBiY=";
   };
 
   postPatch = ''
@@ -31,10 +38,16 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    importlib-metadata
     openai
     python-dotenv
     tiktoken
+    importlib-metadata
+    tokenizers
+    click
+    jinja2
+    certifi
+    appdirs
+    aiohttp
   ];
 
   # the import check phase fails trying to do a network request to openai
diff --git a/nixpkgs/pkgs/development/python-modules/luddite/default.nix b/nixpkgs/pkgs/development/python-modules/luddite/default.nix
index 26570a1540b6..e70493e750c0 100644
--- a/nixpkgs/pkgs/development/python-modules/luddite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/luddite/default.nix
@@ -1,31 +1,31 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, setuptools
+, packaging
 , pytestCheckHook
-, pytest-socket
 , pytest-mock
 }:
 
 buildPythonPackage rec {
   pname = "luddite";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "jumptrading";
     repo = pname;
     rev = "v${version}";
-    sha256 = "8/7uwO5HLhyXYt+T6VUO/O7TN9+FfRlT8y0r5+CJ/l4=";
+    hash = "sha256-JXIM7/5LO95oabM16GwAt3v3a8uldGpGXDWmVic8Ins=";
   };
 
   postPatch = ''
     substituteInPlace pytest.ini \
-      --replace "--cov=luddite --cov-report=html --cov-report=term --no-cov-on-fail" ""
+      --replace "--cov=luddite --cov-report=html --cov-report=term --no-cov-on-fail" "" \
+      --replace "--disable-socket" ""
   '';
 
-  propagatedBuildInputs = [ setuptools ];
+  propagatedBuildInputs = [ packaging ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-socket pytest-mock ];
+  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
   pythonImportsCheck = [ "luddite" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/luqum/default.nix b/nixpkgs/pkgs/development/python-modules/luqum/default.nix
index 2c9f78fc583c..afad9262c7b3 100644
--- a/nixpkgs/pkgs/development/python-modules/luqum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/luqum/default.nix
@@ -1,40 +1,61 @@
 { lib
 , buildPythonPackage
+, elastic-transport
+, elasticsearch-dsl
 , fetchFromGitHub
-, pythonOlder
-# dependencies
 , ply
-# test dependencies
-, elasticsearch-dsl
+, pytestCheckHook
+, pythonOlder
+, setuptools
 }:
-let
+
+buildPythonPackage rec {
   pname = "luqum";
   version = "0.13.0";
-in
-buildPythonPackage {
-  inherit pname version;
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "jurismarches";
-    repo = pname;
-    rev = version;
+    repo = "luqum";
+    rev = "refs/tags/${version}";
     hash = "sha256-lcJCLl0crCl3Y5UlWBMZJR2UtVP96gaJNRxwY9Xn7TM=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '--doctest-modules --doctest-glob="test_*.rst" --cov=luqum --cov-branch --cov-report html --no-cov-on-fail' ""
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     ply
   ];
 
   nativeCheckInputs = [
+    elastic-transport
     elasticsearch-dsl
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "luqum"
+  ];
+
+  disabledTestPaths = [
+    # Tests require an Elasticsearch instance
+    "tests/test_elasticsearch/test_es_integration.py"
+    "tests/test_elasticsearch/test_es_naming.py"
   ];
 
   meta = with lib; {
-    description = "A lucene query parser generating ElasticSearch queries and more !";
+    description = "A lucene query parser generating ElasticSearch queries";
     homepage = "https://github.com/jurismarches/luqum";
+    changelog = "https://github.com/jurismarches/luqum/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/mailchecker/default.nix b/nixpkgs/pkgs/development/python-modules/mailchecker/default.nix
index 4701b456e09a..62b97f53b1e8 100644
--- a/nixpkgs/pkgs/development/python-modules/mailchecker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mailchecker/default.nix
@@ -2,20 +2,25 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "mailchecker";
-  version = "5.0.9";
-  format = "setuptools";
+  version = "6.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iwg5B9pC2qRI2T6xnwyXjd4uhWVhel52Jxs1pfcoXM0=";
+    hash = "sha256-PXo6dfiAqC1WD/z5NBI6UZVUl/cwlvoqKDyfZI4fn2s=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Module has no tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/maison/default.nix b/nixpkgs/pkgs/development/python-modules/maison/default.nix
index 03d4c5c05d87..fc868ffefd2c 100644
--- a/nixpkgs/pkgs/development/python-modules/maison/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maison/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "maison";
-  version = "1.4.1";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "dbatten5";
     repo = "maison";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uJW+7+cIt+jnbiC+HvT7KzyNk1enEtELTxtfc4eXAPU=";
+    hash = "sha256-XNo7QS8BCYzkDozLW0T+KMQPI667lDTCFtOqKq9q3hw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/manuel/default.nix b/nixpkgs/pkgs/development/python-modules/manuel/default.nix
index c0040947488f..abec37fc5ed1 100644
--- a/nixpkgs/pkgs/development/python-modules/manuel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/manuel/default.nix
@@ -5,7 +5,7 @@
 , python
 , isPy27
 , six
-, zope_testing
+, zope-testing
 }:
 
 buildPythonPackage rec {
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [ six ];
-  nativeCheckInputs = [ zope_testing ];
+  nativeCheckInputs = [ zope-testing ];
 
   meta = with lib; {
     description = "A documentation builder";
diff --git a/nixpkgs/pkgs/development/python-modules/meep/default.nix b/nixpkgs/pkgs/development/python-modules/meep/default.nix
index 1e0dbb166839..d99b5c3e2e0c 100644
--- a/nixpkgs/pkgs/development/python-modules/meep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meep/default.nix
@@ -33,13 +33,13 @@ assert !lapack.isILP64;
 
 buildPythonPackage rec {
   pname = "meep";
-  version = "1.27.0";
+  version = "1.28.0";
 
   src = fetchFromGitHub {
     owner = "NanoComp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9ha6YPlvq2HUTuEqngFOAJUqCahBi7L7O8qsIMMfbrY=";
+    hash = "sha256-o/Xrd/Gn1RsbB+ZfggGH6/ugdsGtfTe2RgaHdpY5AyE=";
   };
 
   format = "other";
diff --git a/nixpkgs/pkgs/development/python-modules/millheater/default.nix b/nixpkgs/pkgs/development/python-modules/millheater/default.nix
index 7f2fe358c2fe..33f52d0cea67 100644
--- a/nixpkgs/pkgs/development/python-modules/millheater/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/millheater/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "millheater";
-  version = "0.11.6";
+  version = "0.11.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.10";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pymill";
     rev = "refs/tags/${version}";
-    hash = "sha256-qd9JuZv1utwL523eiQ79P3hXuVQ8+teTatOJCtI6v00=";
+    hash = "sha256-jqtyJHoG/8tgv4OJleb7DV6C7pCpgplieLykfvO3cNM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
index 0bd3f97175ce..85687b1882ba 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-swagger-ui-tag";
-  version = "0.6.6";
+  version = "0.6.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Blueswen";
     repo = "mkdocs-swagger-ui-tag";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NEFogrLJjOh98rChlJuxAeTj31yyL4OoE/jBUcHbBZM=";
+    hash = "sha256-lvE/mN56X2fx835GFNDYQc7ptxBYqwjrJ9Z6Flcvufg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocstrings/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocstrings/default.nix
index d8fb50f586b2..219f0e63c7b1 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocstrings/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocstrings/default.nix
@@ -1,35 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, importlib-metadata
 , jinja2
 , markdown
 , markupsafe
 , mkdocs
 , mkdocs-autorefs
+, pdm-backend
 , pymdown-extensions
 , pytestCheckHook
-, pdm-backend
 , pythonOlder
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "mkdocstrings";
-  version = "0.23.0";
-  format = "pyproject";
+  version = "0.24.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mkdocstrings";
-    repo = pname;
+    repo = "mkdocstrings";
     rev = "refs/tags/${version}";
-    hash = "sha256-t7wxm600XgYl1jsqjOpZdWcmqR9qafdKTaz/xDPdDPY=";
+    hash = "sha256-UqX2jNNYwDNhb71qGdjHNoo2MmSxjf/bZiUoSxlE2XQ=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'dynamic = ["version"]' 'version = "${version}"' \
-      --replace 'license = "ISC"' 'license = {text = "ISC"}'
+      --replace 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
   nativeBuildInputs = [
@@ -43,6 +44,9 @@ buildPythonPackage rec {
     mkdocs
     mkdocs-autorefs
     pymdown-extensions
+  ] ++ lib.optionals (pythonOlder "3.10") [
+    importlib-metadata
+    typing-extensions
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mujoco/default.nix b/nixpkgs/pkgs/development/python-modules/mujoco/default.nix
new file mode 100644
index 000000000000..2392de3847bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mujoco/default.nix
@@ -0,0 +1,70 @@
+{ buildPythonPackage
+, cmake
+, fetchPypi
+, glfw
+, lib
+, mujoco
+, numpy
+, perl
+, pkgs
+, pybind11
+, python
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "mujoco";
+  version = "3.0.1";
+
+  pyproject = true;
+
+  # We do not fetch from the repository because the PyPi tarball is
+  # impurely build via
+  # <https://github.com/google-deepmind/mujoco/blob/main/python/make_sdist.sh>
+  # in the project's CI.
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-pftecOk4q19qKBHs9hBBVenI+SgJg9VT7vc6NKuiY0s=";
+  };
+
+  nativeBuildInputs = [ cmake setuptools ];
+  dontUseCmakeConfigure = true;
+  buildInputs = [ mujoco pybind11 ];
+  propagatedBuildInputs = [ glfw numpy ];
+
+  pythonImportsCheck = [ "${pname}" ];
+
+  env.MUJOCO_PATH = "${mujoco}";
+  env.MUJOCO_PLUGIN_PATH = "${mujoco}/lib";
+  env.MUJOCO_CMAKE_ARGS = "-DMUJOCO_SIMULATE_USE_SYSTEM_GLFW=ON";
+
+  preConfigure =
+    # Use system packages for pybind
+    ''
+      ${perl}/bin/perl -0777 -i -pe "s/(findorfetch\(.{3}USE_SYSTEM_PACKAGE.{3})(OFF)(.{3}PACKAGE_NAME.{3}pybind11.*\))/\1ON\3/gms" mujoco/CMakeLists.txt
+    '' +
+    # Use non-system eigen3, lodepng, abseil: Remove mirror info and prefill
+    # dependency directory. $build from setuptools.
+    (let
+      # E.g. 3.11.2 -> "311"
+      pythonVersionMajorMinor = with lib.versions;
+        "${major python.pythonVersion}${minor python.pythonVersion}";
+    in ''
+      ${perl}/bin/perl -0777 -i -pe "s/GIT_REPO\n.*\n.*GIT_TAG\n.*\n//gm" mujoco/CMakeLists.txt
+      ${perl}/bin/perl -0777 -i -pe "s/(FetchContent_Declare\(\n.*lodepng\n.*)(GIT_REPO.*\n.*GIT_TAG.*\n)(.*\))/\1\3/gm" mujoco/simulate/CMakeLists.txt
+
+      build="/build/${pname}-${version}/build/temp.linux-x86_64-cpython-${pythonVersionMajorMinor}/"
+      mkdir -p $build/_deps
+      ln -s ${mujoco.pin.lodepng} $build/_deps/lodepng-src
+      ln -s ${mujoco.pin.eigen3} $build/_deps/eigen-src
+      ln -s ${mujoco.pin.abseil-cpp} $build/_deps/abseil-cpp-src
+    '');
+
+  meta = with lib; {
+    description =
+      "Python bindings for MuJoCo: a general purpose physics simulator.";
+    homepage = "https://mujoco.org/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tmplt ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nethsm/default.nix b/nixpkgs/pkgs/development/python-modules/nethsm/default.nix
new file mode 100644
index 000000000000..902fa62e3387
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nethsm/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonRelaxDepsHook
+, flit-core
+, certifi
+, cryptography
+, python-dateutil
+, typing-extensions
+, urllib3
+}:
+
+let
+  pname = "nethsm";
+  version = "1.0.0";
+in
+
+buildPythonPackage {
+  inherit pname version;
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-sENuSdA4pYt8v2w2RvDkcQLYCP9V0vZOdWOlkNBi3/o=";
+  };
+
+  propagatedBuildInputs = [
+    certifi
+    cryptography
+    python-dateutil
+    typing-extensions
+    urllib3
+  ];
+
+  nativeBuildInputs = [
+    flit-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = true;
+
+  pythonImportsCheck = [ "nethsm" ];
+
+  meta = with lib; {
+    description = "Client-side Python SDK for NetHSM";
+    homepage = "https://github.com/Nitrokey/nethsm-sdk-py";
+    changelog = "https://github.com/Nitrokey/nethsm-sdk-py/releases/tag/v${version}";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ frogamic ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix b/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix
index fd2ad5c5e8c1..155d1c60b175 100644
--- a/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpy-stl/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "numpy-stl";
-  version = "3.0.1";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3U2ho3nSYy8WhRi+jc2c3dftxsMjgJT9jSFHazWGoLw=";
+    hash = "sha256-947qYsgJOL9T6pFPpbbJL0SPDqtWCeDlpzfd4DlAQzQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
index ae8d6737380e..9bc3ced1208b 100644
--- a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "16.2.0";
+  version = "16.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-z5CFFfVJYeXaDFVPYaBOfUMzgl+Uvn3LYS5Zn1AHRy0=";
+    hash = "sha256-qJrreq2GhJxrX9keZOYVzjihs0RCymad+MGErW5ecPc=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix b/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix
index 37d6dd8b54e8..d36bc9004e33 100644
--- a/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "oelint-parser";
-  version = "2.11.6";
+  version = "2.12.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_parser";
-    hash = "sha256-CTZxxKZPrAvuWGhwD7qAPG10rry0H71QSRXbGT0J3J0=";
+    hash = "sha256-0Ic7WKQbwA7TnFvXRZz+mFehjWP6n+Pyp0IySMy8sdw=";
   };
 
   buildInputs = [ pip ];
diff --git a/nixpkgs/pkgs/development/python-modules/openai/default.nix b/nixpkgs/pkgs/development/python-modules/openai/default.nix
index 89a02ae69f15..3c13e035bf02 100644
--- a/nixpkgs/pkgs/development/python-modules/openai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openai/default.nix
@@ -1,30 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, aiohttp
-, matplotlib
+, pythonOlder
+, hatchling
+# propagated
+, httpx
+, pydantic
+, typing-extensions
+, anyio
+, distro
+, sniffio
+, tqdm
+# optional
 , numpy
-, openpyxl
 , pandas
 , pandas-stubs
-, plotly
+# tests
+, pytestCheckHook
 , pytest-asyncio
 , pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, scikit-learn
-, tenacity
-, tqdm
-, typing-extensions
-, wandb
-, withOptionalDependencies ? false
+, respx
+, dirty-equals
 }:
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "0.28.1";
-  format = "setuptools";
+  version = "1.3.7";
+  pyproject = true;
 
   disabled = pythonOlder "3.7.1";
 
@@ -32,35 +34,30 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-liJyeGxnYIC/jUQKdeATHpVJb/12KGbeM94Y2YQphfY=";
+    hash = "sha256-Pa53s3U5vby1Fq14WMCJnSR6KA3xkVHmBexkNoX/0sk=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   propagatedBuildInputs = [
-    aiohttp
-    requests
+    httpx
+    pydantic
+    anyio
+    distro
+    sniffio
     tqdm
   ] ++ lib.optionals (pythonOlder "3.8") [
     typing-extensions
-  ] ++ lib.optionals withOptionalDependencies (builtins.attrValues {
-    inherit (passthru.optional-dependencies) embeddings wandb;
-  });
+  ];
 
   passthru.optional-dependencies = {
     datalib = [
       numpy
-      openpyxl
       pandas
       pandas-stubs
     ];
-    embeddings = [
-      matplotlib
-      plotly
-      scikit-learn
-      tenacity
-    ] ++ passthru.optional-dependencies.datalib;
-    wandb = [
-      wandb
-    ] ++ passthru.optional-dependencies.datalib;
   };
 
   pythonImportsCheck = [
@@ -71,21 +68,16 @@ buildPythonPackage rec {
     pytestCheckHook
     pytest-asyncio
     pytest-mock
-  ];
-
-  pytestFlagsArray = [
-    "openai/tests"
+    respx
+    dirty-equals
   ];
 
   OPENAI_API_KEY = "sk-foo";
 
   disabledTestPaths = [
-    # Requires a real API key
-    "openai/tests/test_endpoints.py"
-    "openai/tests/asyncio/test_endpoints.py"
-    # openai: command not found
-    "openai/tests/test_file_cli.py"
-    "openai/tests/test_long_examples_validator.py"
+    # makes network requests
+    "tests/test_client.py"
+    "tests/api_resources"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/opentsne/default.nix b/nixpkgs/pkgs/development/python-modules/opentsne/default.nix
index 9fc3c7fe8143..ba3e0b8460b1 100644
--- a/nixpkgs/pkgs/development/python-modules/opentsne/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentsne/default.nix
@@ -7,7 +7,7 @@
 , scipy
 , scikit-learn
 , pytestCheckHook
-, nix-update-script
+, pythonOlder
 , setuptools
 , wheel
 }:
@@ -15,14 +15,16 @@
 let
   self = buildPythonPackage rec {
     pname = "opentsne";
-    version = "1.0.0";
-    format = "pyproject";
+    version = "1.0.1";
+    pyproject = true;
+
+    disabled = pythonOlder "3.7";
 
     src = fetchFromGitHub {
       owner = "pavlin-policar";
       repo = "openTSNE";
-      rev = "v${version}";
-      hash = "sha256-L5Qx6dMJlXF3EaWwlFTQ3dkhGXc5PvQBXYJo+QO+Hxc=";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-UTfEjjNz1mm5fhyTw9GRlMNURwWlr6kLMjrMngkFV3Y=";
     };
 
     nativeBuildInputs = [
@@ -32,13 +34,19 @@ let
       wheel
     ];
 
-    propagatedBuildInputs = [ numpy scipy scikit-learn ];
+    propagatedBuildInputs = [
+      numpy
+      scipy
+      scikit-learn
+    ];
+
+    pythonImportsCheck = [
+      "openTSNE"
+    ];
 
-    pythonImportsCheck = [ "openTSNE" ];
     doCheck = false;
 
     passthru = {
-      updateScript = nix-update-script {};
       tests.pytest = self.overridePythonAttrs (old: {
         pname = "${old.pname}-tests";
         format = "other";
@@ -53,12 +61,12 @@ let
       });
     };
 
-    meta = {
+    meta = with lib; {
       description = "Modular Python implementation of t-Distributed Stochasitc Neighbor Embedding";
       homepage = "https://github.com/pavlin-policar/openTSNE";
-      changelog = "https://github.com/pavlin-policar/openTSNE/releases/tag/${version}";
-      license = [ lib.licenses.bsd3 ];
-      maintainers = [ lib.maintainers.lucasew ];
+      changelog = "https://github.com/pavlin-policar/openTSNE/releases/tag/v${version}";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ lucasew ];
     };
   };
 in self
diff --git a/nixpkgs/pkgs/development/python-modules/opentypespec/default.nix b/nixpkgs/pkgs/development/python-modules/opentypespec/default.nix
new file mode 100644
index 000000000000..c4bf0cde2c97
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/opentypespec/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "opentypespec";
+  version = "1.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fOEHmtlCkFhn1jyIA+CsHIfud7x3PPb7UWQsnrVyDqY=";
+  };
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+  unittestFlagsArray = [ "-s" "test" "-v" ];
+
+  meta = with lib; {
+    description = "Python library for OpenType specification metadata";
+    homepage = "https://github.com/simoncozens/opentypespec-py";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch b/nixpkgs/pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch
new file mode 100644
index 000000000000..233e97d7b4b8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch
@@ -0,0 +1,34 @@
+From 6ba3b97253cf540fdf4b36672f290def72386096 Mon Sep 17 00:00:00 2001
+From: Dan Callaghan <djc@djc.id.au>
+Date: Sun, 23 Apr 2023 21:26:53 +1000
+Subject: [PATCH] use packaged ots
+
+
+diff --git a/setup.py b/setup.py
+index 6c3ccae..ca021da 100755
+--- a/setup.py
++++ b/setup.py
+@@ -248,7 +248,6 @@ def run(self):
+     platforms=["posix", "nt"],
+     package_dir={"": "src/python"},
+     packages=find_packages("src/python"),
+-    ext_modules=[ots_sanitize],
+     zip_safe=False,
+     cmdclass=cmdclass,
+     setup_requires=["setuptools_scm"],
+diff --git a/src/python/ots/__init__.py b/src/python/ots/__init__.py
+index 5fc1724..db9d21e 100644
+--- a/src/python/ots/__init__.py
++++ b/src/python/ots/__init__.py
+@@ -3,7 +3,7 @@
+ import sys
+ import os
+ 
+-OTS_SANITIZE = os.path.join(os.path.dirname(__file__), "ots-sanitize")
++OTS_SANITIZE = "@ots_sanitize@"
+ 
+ __all__ = ["sanitize", "OTSError", "CalledProcessError"]
+ 
+-- 
+2.38.4
+
diff --git a/nixpkgs/pkgs/development/python-modules/ots-python/default.nix b/nixpkgs/pkgs/development/python-modules/ots-python/default.nix
new file mode 100644
index 000000000000..32863e2e4bd3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ots-python/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, opentype-sanitizer
+, setuptools-scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ots-python";
+  version = "9.1.0";
+
+  src = fetchPypi {
+    pname = "opentype-sanitizer";
+    inherit version;
+    hash = "sha256-1Zdd+eRECimZl8L8CCkm7pCjN0TafSsc5i2Y6/oH88I=";
+  };
+
+  patches = [
+    # Invoke ots-sanitize from the opentype-sanitizer package instead of
+    # downloading precompiled binaries from the internet.
+    # (nixpkgs-specific, not upstreamable)
+    (substituteAll {
+      src = ./0001-use-packaged-ots.patch;
+      ots_sanitize = "${opentype-sanitizer}/bin/ots-sanitize";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    opentype-sanitizer
+  ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for ots (OpenType Sanitizer)";
+    homepage = "https://github.com/googlefonts/ots-python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/picobox/default.nix b/nixpkgs/pkgs/development/python-modules/picobox/default.nix
index 176c86e84f07..a70fc8eecbe1 100644
--- a/nixpkgs/pkgs/development/python-modules/picobox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/picobox/default.nix
@@ -1,27 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , flask
 , hatchling
 , hatch-vcs
-, isPy27
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "picobox";
-  version = "3.0.0";
+  version = "4.0.0";
 
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ikalnytskyi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-LQiSurL+eFRJ9iQheoo66o44BlfBtAatk8deuMFROcc=";
+    hash = "sha256-JtrwUVo3b4G34OUShX4eJS2IVubl4vBmEtB/Jhk4eJI=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/nixpkgs/pkgs/development/python-modules/playwright/default.nix b/nixpkgs/pkgs/development/python-modules/playwright/default.nix
index 575ffeff5a6b..555f7aa30197 100644
--- a/nixpkgs/pkgs/development/python-modules/playwright/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/playwright/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , auditwheel
 , buildPythonPackage
 , git
@@ -53,7 +54,7 @@ buildPythonPackage rec {
 
     substituteInPlace pyproject.toml \
       --replace 'requires = ["setuptools==68.2.2", "setuptools-scm==8.0.4", "wheel==0.41.2", "auditwheel==5.4.0"]' \
-                'requires = ["setuptools", "setuptools-scm", "wheel", "auditwheel"]' \
+                'requires = ["setuptools", "setuptools-scm", "wheel"]' \
       --replace 'version_file = "playwright/_repo_version.py"' ""
     # FIXME version_file is available in setuptools-scm>=8.0.0
     echo "__version__ = version = '${version}'" > playwright/_repo_version.py
@@ -69,7 +70,8 @@ buildPythonPackage rec {
   '';
 
 
-  nativeBuildInputs = [ git setuptools-scm setuptools auditwheel ];
+  nativeBuildInputs = [ git setuptools-scm setuptools ]
+    ++ lib.optionals stdenv.isLinux [ auditwheel ];
 
   propagatedBuildInputs = [
     greenlet
diff --git a/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix b/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix
index 13114dd78456..fdb75e22115d 100644
--- a/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , six
-, zope_testing
+, zope-testing
 , setuptools
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "39bc23bbb59b765702090ad61fe579f8bd9fe1f005f4dd1c2988a5bd1a71faf0";
   };
 
-  propagatedBuildInputs = [ six setuptools zope_testing ];
+  propagatedBuildInputs = [ six setuptools zope-testing ];
 
   # Huge amount of testing dependencies (including Zope2)
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pulumi/default.nix b/nixpkgs/pkgs/development/python-modules/pulumi/default.nix
index b6f1ed005540..94a940f8a9fe 100644
--- a/nixpkgs/pkgs/development/python-modules/pulumi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulumi/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     cp ../../README.md .
     substituteInPlace setup.py \
       --replace "3.0.0" "${version}" \
-      --replace "grpcio~=1.59" "grpcio" \
+      --replace "grpcio==1.56.2" "grpcio" \
       --replace "semver~=2.13" "semver"
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/py-serializable/default.nix b/nixpkgs/pkgs/development/python-modules/py-serializable/default.nix
index 028d61f745a2..8b736011fa75 100644
--- a/nixpkgs/pkgs/development/python-modules/py-serializable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-serializable/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "py-serializable";
-  version = "0.15.0";
+  version = "0.16.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "madpah";
     repo = "serializable";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U01XRT6XS0Uxpk+2pYOGAkZiZ5kogMBtcuEU1OJpSMo=";
+    hash = "sha256-javjmdFQBxg/yqa6lsxKK18DgvVu/YmqvaWo2Upgzqs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pygls/default.nix b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
index 34ed59e96061..74e5b243e60b 100644
--- a/nixpkgs/pkgs/development/python-modules/pygls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "1.2.0";
+  version = "1.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "openlawlibrary";
     repo = "pygls";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hIr06qzOkObEcrIgFUloAPBJdOtcipl4htpbbUVkbdw=";
+    hash = "sha256-ARez9fs50kScfMp/W/aFIOcJonpFrcfyrzJuVwou7fk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysignalclirestapi/default.nix b/nixpkgs/pkgs/development/python-modules/pysignalclirestapi/default.nix
index 0e033ad99ff8..b3dd6f696006 100644
--- a/nixpkgs/pkgs/development/python-modules/pysignalclirestapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysignalclirestapi/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pysignalclirestapi";
-  version = "0.3.21";
+  version = "0.3.22";
 
   pyproject = true;
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "bbernhard";
     repo = "pysignalclirestapi";
     rev = version;
-    hash = "sha256-CAZ6UgGz7ZDXlQlngi+hEhczOphvAT/Yl9vLqnrS1Qc=";
+    hash = "sha256-m8Sihf5vTDntd5Tbaa5o55G/k/rqtmjWreoTab58CHU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysyncthru/default.nix b/nixpkgs/pkgs/development/python-modules/pysyncthru/default.nix
index d5761bebee7f..568152605c77 100644
--- a/nixpkgs/pkgs/development/python-modules/pysyncthru/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysyncthru/default.nix
@@ -1,33 +1,40 @@
 { lib
-, isPy27
 , buildPythonPackage
+, pythonOlder
 , fetchFromGitHub
+, setuptools
 , aiohttp
 , demjson3
-, python
+, unittestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pysyncthru";
-  version = "0.7.10";
+  version = "0.8.0";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.7";
+
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nielstron";
     repo = "pysyncthru";
-    rev = "release-${version}";
-    sha256 = "1c29w2ldrnq0vxr9cfa2pjhwdvrpw393c84khgg2y56jrkbidq53";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Zije1WzfgIU9pT0H7T/Mx+5gEBCsRgMLkfsa/KB0YtI=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     demjson3
   ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
 
   pythonImportsCheck = [ "pysyncthru" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytikz-allefeld/default.nix b/nixpkgs/pkgs/development/python-modules/pytikz-allefeld/default.nix
new file mode 100644
index 000000000000..4701431e715d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytikz-allefeld/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, pymupdf
+, numpy
+, ipython
+, texlive
+}:
+
+buildPythonPackage rec {
+  pname = "pytikz-allefeld"; # "pytikz" on pypi is a different module
+  version = "unstable-2022-11-01";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "allefeld";
+    repo = "pytikz";
+    rev = "f878ebd6ce5a647b1076228b48181b147a61abc1";
+    hash = "sha256-G59UUkpjttJKNBN0MB/A9CftO8tO3nv8qlTxt3/fKHk=";
+  };
+
+  propagatedBuildInputs = [
+    pymupdf
+    numpy
+    ipython
+  ];
+
+  pythonImportsCheck = [ "tikz" ];
+
+  nativeCheckInputs = [ texlive.combined.scheme-small ];
+  checkPhase = ''
+    runHook preCheck
+    python -c 'if 1:
+      from tikz import *
+      pic = Picture()
+      pic.draw(line([(0, 0), (1, 1)]))
+      print(pic.code())
+      pic.write_image("test.pdf")
+    '
+    test -s test.pdf
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/allefeld/pytikz";
+    description = "A Python interface to TikZ";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pbsds ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyunpack/default.nix b/nixpkgs/pkgs/development/python-modules/pyunpack/default.nix
index b6dff5a97d03..ea7ad7d416a3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyunpack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyunpack/default.nix
@@ -1,16 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , pytestCheckHook
 , easyprocess
 , entrypoint2
 , patool
+, cabextract
 }:
 
 buildPythonPackage rec {
   pname = "pyunpack";
   version = "0.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ponty";
@@ -23,15 +25,20 @@ buildPythonPackage rec {
     substituteInPlace pyunpack/__init__.py \
       --replace \
        '_exepath("patool")' \
-       '"${patool}/bin/.patool-wrapped"'
+       '"${lib.getBin patool}/bin/.patool-wrapped"'
   '';
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     easyprocess
     entrypoint2
   ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    cabextract
+  ];
 
   pytestFlagsArray = [ "-x" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
index 43da9125f1ae..797bda0d3ea4 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
@@ -2,30 +2,37 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, setuptools
 , pytest-mockito
 , pytestCheckHook
 , robotframework
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "robotframework-pythonlibcore";
-  version = "4.2.0";
+  version = "4.3.0";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "robotframework";
     repo = "PythonLibCore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RJTn1zSVJYgbh93Idr77uHl02u0wpj6p6llSJfQVTQk=";
+    hash = "sha256-5ayOQyOhCg4nLpAyH/eQ6NYEApix0wsL2nhJzEXKJRo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytest-mockito
     pytestCheckHook
     robotframework
+    typing-extensions
   ];
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/rstr/default.nix b/nixpkgs/pkgs/development/python-modules/rstr/default.nix
new file mode 100644
index 000000000000..3c80a274ceaf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rstr/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "rstr";
+  version = "3.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-xKVk1N+0Ry2THRRcQ9HPGteMJFkhQud1W4hmF57qwBI=";
+  };
+
+  pyproject = true;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library to generate random strings";
+    homepage = "https://github.com/leapfrogonline/rstr";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix b/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix
index 2affddbb6a4c..13bee07a1859 100644
--- a/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix
@@ -16,7 +16,6 @@
 , extractcode-libarchive
 , fasteners
 , fetchPypi
-, fetchpatch
 , fingerprints
 , ftfy
 , gemfileparser2
@@ -48,12 +47,12 @@
 , pythonOlder
 , requests
 , saneyaml
+, setuptools
 , spdx-tools
 , text-unidecode
 , toml
 , typecode
 , typecode-libmagic
-, typing
 , urlpy
 , xmltodict
 , zipp
@@ -61,17 +60,22 @@
 
 buildPythonPackage rec {
   pname = "scancode-toolkit";
-  version = "32.0.6";
+  version = "32.0.8";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-suqk7LOnZgSJGlaHq81LDOSCHZWdsJOUbma6MEpHxSM=";
+    hash = "sha256-W6Ev1MV8cZU4bauAfmuZsBzMJKz7xpw8siO3Afn5mc8=";
   };
 
   dontConfigure = true;
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     attrs
     beautifulsoup4
@@ -126,33 +130,12 @@ buildPythonPackage rec {
     xmltodict
   ] ++ lib.optionals (pythonOlder "3.9") [
     zipp
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    typing
   ];
 
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
-  patches = [
-    (fetchpatch {
-      name = "${pname}-allow-stable-spdx-tools.patch";
-      url = "https://github.com/nexB/scancode-toolkit/commit/d89ab6584d3df6b7eb1d1394559e9d967d6db6ae.patch";
-      includes = [ "src/*" ];
-      hash = "sha256-AU3vJlOxmCy3yvkupVaAVxAKxJI3ymXEk+A5DWSkfOM=";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "pdfminer.six >= 20200101" "pdfminer.six" \
-      --replace "pluggy >= 0.12.0, < 1.0" "pluggy" \
-      --replace "pygmars >= 0.7.0" "pygmars" \
-      --replace "license_expression >= 21.6.14" "license_expression" \
-      --replace "intbitset >= 2.3.0,  < 3.0" "intbitset" \
-      --replace "spdx_tools == 0.7.0a3" "spdx_tools"
-  '';
-
   # Importing scancode needs a writeable home, and preCheck happens in between
   # pythonImportsCheckPhase and pytestCheckPhase.
   postInstall = ''
@@ -163,7 +146,13 @@ buildPythonPackage rec {
     "scancode"
   ];
 
-  # takes a long time and doesn't appear to do anything
+  disabledTestPaths = [
+    # Tests are outdated
+    "src/formattedcode/output_spdx.py"
+    "src/scancode/cli.py"
+  ];
+
+  # Takes a long time and doesn't appear to do anything
   dontStrip = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/shaperglot/default.nix b/nixpkgs/pkgs/development/python-modules/shaperglot/default.nix
new file mode 100644
index 000000000000..f1ea7e5a723a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/shaperglot/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, gflanguages
+, num2words
+, poetry-core
+, protobuf
+, pytestCheckHook
+, strictyaml
+, termcolor
+, ufo2ft
+, vharfbuzz
+, youseedee
+}:
+
+buildPythonPackage rec {
+  pname = "shaperglot";
+  version = "0.3.1";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "shaperglot";
+    rev = "v${version}";
+    hash = "sha256-29MzD42rgh+7n/0kjqKGDxXPnUEvj/xxEIKWZg03pxw=";
+  };
+
+  pyproject = true;
+
+  propagatedBuildInputs = [
+    gflanguages
+    num2words
+    protobuf
+    strictyaml
+    termcolor
+    ufo2ft
+    vharfbuzz
+    youseedee
+  ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Tool to test OpenType fonts for language support";
+    homepage = "https://github.com/googlefonts/shaperglot";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sre-yield/default.nix b/nixpkgs/pkgs/development/python-modules/sre-yield/default.nix
new file mode 100644
index 000000000000..91e6904b5772
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sre-yield/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "sre-yield";
+  version = "1.2";
+
+  src = fetchPypi {
+    pname = "sre_yield";
+    inherit version;
+    hash = "sha256-6U8aKjy6//4dzRXB1U5AGhUX4FKqZMfTFk+I3HYde4o=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library to efficiently generate all values that can match a given regular expression";
+    homepage = "https://github.com/sre-yield/sre-yield";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/starline/default.nix b/nixpkgs/pkgs/development/python-modules/starline/default.nix
index ce7418a88734..cdaca053ee1d 100644
--- a/nixpkgs/pkgs/development/python-modules/starline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/starline/default.nix
@@ -2,20 +2,36 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
+, fetchpatch
+, setuptools
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "starline";
-  version = "0.2.0";
+  version = "0.1.5";
 
   disabled = pythonOlder "3.5";
 
+  pyproject = true;
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "550b00ab95cf59d933f7708abab40a4e41e5790e62b653471afe86a3af3320e6";
+    hash = "sha256-F1P1/NKml2rtd1r7A/g5IVnwQMZzkXzAxjRRDZXBPLk=";
   };
 
+  patches = [
+    # https://github.com/Anonym-tsk/starline/pull/5
+    (fetchpatch {
+      url = "https://github.com/Anonym-tsk/starline/commit/4e6cdf8e05c5fb8509ee384e77b39a2495587160.patch";
+      hash = "sha256-y9b6ePH3IEgmt3ALHQGwH102rlm4KfmH4oIoIC93cWU=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/streamlit/default.nix b/nixpkgs/pkgs/development/python-modules/streamlit/default.nix
index 73c36577413a..a043430f8584 100644
--- a/nixpkgs/pkgs/development/python-modules/streamlit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/streamlit/default.nix
@@ -32,14 +32,14 @@
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.28.2";
+  version = "1.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wUQWiIG/e9bWAXqb/eWFtS0gCHsQstXIXTdu9tUqqO4=";
+    hash = "sha256-tt//nF4TLlUYySFQ781FKYDbSSpF+v6sPUaI0jNO+gc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/stringbrewer/default.nix b/nixpkgs/pkgs/development/python-modules/stringbrewer/default.nix
new file mode 100644
index 000000000000..fc39d515a6ec
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/stringbrewer/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, rstr
+, sre-yield
+, pythonImportsCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "stringbrewer";
+  version = "0.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-wtETgi+Tk1ALJzzIM6Ic5zkDbALGL0cELg8X75uepkk=";
+  };
+
+  propagatedBuildInputs = [
+    rstr
+    sre-yield
+  ];
+  nativeBuildInputs = [
+    pythonImportsCheckHook
+  ];
+
+  # Package has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "stringbrewer" ];
+
+  meta = with lib; {
+    description = "Python library to generate random strings matching a pattern";
+    homepage = "https://github.com/simoncozens/stringbrewer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix b/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix
index a8482b18d56a..48e2f79ef2d5 100644
--- a/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix
@@ -11,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "syncedlyrics";
-  version = "0.6.1";
-  format = "pyproject";
+  version = "0.7.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rtcq";
-    repo = pname;
+    repo = "syncedlyrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oMG3TqCJfEyfF5zK8hNhyhQ1z7G+S+De8hI1GLCfctM=";
+    hash = "sha256-qZVUptmLouFFBCWiRviYFO0sQKlyz65GjWMg/b1idXY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/torch/default.nix b/nixpkgs/pkgs/development/python-modules/torch/default.nix
index 49ed033bd6a1..d18dd97df5b4 100644
--- a/nixpkgs/pkgs/development/python-modules/torch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torch/default.nix
@@ -56,10 +56,7 @@
 
 let
   inherit (lib) attrsets lists strings trivial;
-  inherit (cudaPackages) cudaFlags cudnn;
-
-  # Some packages are not available on all platforms
-  nccl = cudaPackages.nccl or null;
+  inherit (cudaPackages) cudaFlags cudnn nccl;
 
   setBool = v: if v then "1" else "0";
 
@@ -212,10 +209,11 @@ in buildPythonPackage rec {
   # For more, see https://github.com/open-mpi/ompi/issues/7733#issuecomment-629806195.
   preConfigure = lib.optionalString cudaSupport ''
     export TORCH_CUDA_ARCH_LIST="${gpuTargetString}"
-    export CUDNN_INCLUDE_DIR=${cudnn.dev}/include
-    export CUDNN_LIB_DIR=${cudnn.lib}/lib
     export CUPTI_INCLUDE_DIR=${cudaPackages.cuda_cupti.dev}/include
     export CUPTI_LIBRARY_DIR=${cudaPackages.cuda_cupti.lib}/lib
+  '' + lib.optionalString (cudaSupport && cudaPackages ? cudnn) ''
+    export CUDNN_INCLUDE_DIR=${cudnn.dev}/include
+    export CUDNN_LIB_DIR=${cudnn.lib}/lib
   '' + lib.optionalString rocmSupport ''
     export ROCM_PATH=${rocmtoolkit_joined}
     export ROCM_SOURCE_DIR=${rocmtoolkit_joined}
@@ -273,7 +271,7 @@ in buildPythonPackage rec {
   PYTORCH_BUILD_VERSION = version;
   PYTORCH_BUILD_NUMBER = 0;
 
-  USE_NCCL = setBool (nccl != null);
+  USE_NCCL = setBool (cudaPackages ? nccl);
   USE_SYSTEM_NCCL = setBool useSystemNccl;                  # don't build pytorch's third_party NCCL
   USE_STATIC_NCCL = setBool useSystemNccl;
 
@@ -348,8 +346,6 @@ in buildPythonPackage rec {
       cuda_nvrtc.lib
       cuda_nvtx.dev
       cuda_nvtx.lib # -llibNVToolsExt
-      cudnn.dev
-      cudnn.lib
       libcublas.dev
       libcublas.lib
       libcufft.dev
@@ -360,7 +356,10 @@ in buildPythonPackage rec {
       libcusolver.lib
       libcusparse.dev
       libcusparse.lib
-    ] ++ lists.optionals (nccl != null) [
+    ] ++ lists.optionals (cudaPackages ? cudnn) [
+      cudnn.dev
+      cudnn.lib
+    ] ++ lists.optionals (useSystemNccl && cudaPackages ? nccl) [
       # Some platforms do not support NCCL (i.e., Jetson)
       nccl.dev # Provides nccl.h AND a static copy of NCCL!
     ] ++ lists.optionals (strings.versionOlder cudaVersion "11.8") [
diff --git a/nixpkgs/pkgs/development/python-modules/torchaudio/0001-setup.py-propagate-cmakeFlags.patch b/nixpkgs/pkgs/development/python-modules/torchaudio/0001-setup.py-propagate-cmakeFlags.patch
new file mode 100644
index 000000000000..a1f6b5ea8aeb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/torchaudio/0001-setup.py-propagate-cmakeFlags.patch
@@ -0,0 +1,32 @@
+From 789ec77d09171f22d82006493cafbcf2496b4f8f Mon Sep 17 00:00:00 2001
+From: Someone Serge <sergei.kozlukov@aalto.fi>
+Date: Sat, 2 Dec 2023 12:47:00 +0000
+Subject: [PATCH] setup.py: propagate cmakeFlags
+
+---
+ tools/setup_helpers/extension.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/tools/setup_helpers/extension.py b/tools/setup_helpers/extension.py
+index 2415bbae..7c2a9351 100644
+--- a/tools/setup_helpers/extension.py
++++ b/tools/setup_helpers/extension.py
+@@ -1,6 +1,7 @@
+ import distutils.sysconfig
+ import os
+ import platform
++import shlex
+ import subprocess
+ from pathlib import Path
+ 
+@@ -141,6 +142,8 @@ class CMakeBuild(build_ext):
+             f"-DUSE_OPENMP:BOOL={'ON' if _USE_OPENMP else 'OFF'}",
+             f"-DUSE_FFMPEG:BOOL={'ON' if _USE_FFMPEG else 'OFF'}",
+         ]
++        if "cmakeFlags" in os.environ:
++            cmake_args.extend(shlex.split(os.environ["cmakeFlags"]))
+         build_args = ["--target", "install"]
+         # Pass CUDA architecture to cmake
+         if _TORCH_CUDA_ARCH_LIST is not None:
+-- 
+2.42.0
diff --git a/nixpkgs/pkgs/development/python-modules/torchaudio/default.nix b/nixpkgs/pkgs/development/python-modules/torchaudio/default.nix
index 4ff44d123a48..1014ab523821 100644
--- a/nixpkgs/pkgs/development/python-modules/torchaudio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchaudio/default.nix
@@ -24,6 +24,10 @@ buildPythonPackage rec {
     hash = "sha256-5UlnOGXXFu1p9M5B+Ixc9DW5hLZ1nskv81Y+McbWu6Q=";
   };
 
+  patches = [
+    ./0001-setup.py-propagate-cmakeFlags.patch
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace 'print(" --- Initializing submodules")' "return" \
diff --git a/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix b/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix
index ee66ee817d1f..9b980206c32a 100644
--- a/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix
@@ -20,7 +20,7 @@
 
 let
   pname = "torchmetrics";
-  version = "1.2.0";
+  version = "1.2.1";
 in
 buildPythonPackage {
   inherit pname version;
@@ -30,7 +30,7 @@ buildPythonPackage {
     owner = "Lightning-AI";
     repo = "torchmetrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g5JuTbiRd8yWx2nM3UE8ejOhuZ0XpAQdS5AC9AlrSFY=";
+    hash = "sha256-uvebKCJL2TSQUGmtVE1MtYwzgs+0lWvHvsN5PwJyl/g=";
   };
 
   disabled = pythonOlder "3.8";
@@ -90,6 +90,7 @@ buildPythonPackage {
   meta = with lib; {
     description = "Machine learning metrics for distributed, scalable PyTorch applications (used in pytorch-lightning)";
     homepage = "https://lightning.ai/docs/torchmetrics/";
+    changelog = "https://github.com/Lightning-AI/torchmetrics/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [
       SomeoneSerge
diff --git a/nixpkgs/pkgs/development/python-modules/txtorcon/default.nix b/nixpkgs/pkgs/development/python-modules/txtorcon/default.nix
index c1acef68d19a..03da40472d5b 100644
--- a/nixpkgs/pkgs/development/python-modules/txtorcon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txtorcon/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "txtorcon";
-  version = "23.5.0";
+  version = "23.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-k/2Aqd1QX2mNCGT+k9uLapwRRLX+uRUwggtw7YmCZRw=";
+    hash = "sha256-cfha6T121yZRAFnJ7XTmCLxaXJ99EDhTtJ5BQoBAai8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/type-infer/default.nix b/nixpkgs/pkgs/development/python-modules/type-infer/default.nix
index 55fe29e972a8..214f7cf4d1ab 100644
--- a/nixpkgs/pkgs/development/python-modules/type-infer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/type-infer/default.nix
@@ -24,7 +24,7 @@ let
 in
 buildPythonPackage rec {
   pname = "type-infer";
-  version = "0.0.15";
+  version = "0.0.16";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "type_infer";
     inherit version;
-    hash = "sha256-AnThYE6hHc3Pwu8fl0VBiQJfGVjeEKo4RrCsOl2pfCA=";
+    hash = "sha256-EWH8odCHAzrEcBtFEYBm5gt4zlrwrK33c6uEfFBgPfA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-s3transfer/default.nix b/nixpkgs/pkgs/development/python-modules/types-s3transfer/default.nix
index 44f025c23c1a..5e87bd726bf7 100644
--- a/nixpkgs/pkgs/development/python-modules/types-s3transfer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-s3transfer/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-s3transfer";
-  version = "0.8.1";
+  version = "0.8.2";
   pyproject = true;
 
   src = fetchPypi {
     pname = "types_s3transfer";
     inherit version;
-    hash = "sha256-tng+wpElwAtWCzVNL+KhhdxcznahfCOsLWMGdK+nAEA=";
+    hash = "sha256-LkF1b8+Ud1qZSa+oVkiaxFcDCGCbBJPfvXtNMz60I+Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
index e9ab0bc6abe3..4f74b552b0c4 100644
--- a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
@@ -4,32 +4,25 @@
 , pythonOlder
 , fetchPypi
 , setuptools
-, wheel
-, pytz-deprecation-shim
 , pytest-mock
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "tzlocal";
-  version = "5.0.1"; # version needs to be compatible with APScheduler
+  version = "5.2"; # version needs to be compatible with APScheduler
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RuuZrUvbcfP3K30k9CZ3U+JAlE7PwW8l0nGbqJgnqAM=";
+    hash = "sha256-jTmSBVePGpNCgWQJzB5GqT69V1XjnqLYUzS+qRG/Dm4=";
   };
 
   nativeBuildInputs = [
     setuptools
-    wheel
-  ];
-
-  propagatedBuildInputs = [
-    pytz-deprecation-shim
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ufolint/default.nix b/nixpkgs/pkgs/development/python-modules/ufolint/default.nix
new file mode 100644
index 000000000000..c7b666c37fab
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ufolint/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, commandlines
+, fonttools
+, fs
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ufolint";
+  version = "1.2.0";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "source-foundry";
+    repo = "ufolint";
+    rev = "v${version}";
+    hash = "sha256-sv8WbnDd2LFHkwNsB9FO04OlLhemdzwjq0tC9+Fd6/M=";
+  };
+
+  propagatedBuildInputs = [
+    commandlines
+    fs
+    fonttools
+  ];
+
+  doCheck = true;
+  nativeBuildInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Linter for Unified Font Object (UFO) source code";
+    homepage = "https://github.com/source-foundry/ufolint";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix b/nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix
new file mode 100644
index 000000000000..fb953a0e7be7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fonttools
+, pythonImportsCheckHook
+, uharfbuzz
+}:
+
+buildPythonPackage rec {
+  pname = "vharfbuzz";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-uDX2fYqxV4wmAAIMfA3dBohWmq1N0VurSTEFOjSRpmY=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+    uharfbuzz
+  ];
+  nativeBuildInputs = [
+    pythonImportsCheckHook
+  ];
+
+  # Package has no tests.
+  doCheck = false;
+  pythonImportsCheck = [ "vharfbuzz" ];
+
+  meta = with lib; {
+    description = "Utility for removing hinting data from TrueType and OpenType fonts";
+    homepage = "https://github.com/source-foundry/dehinter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/vprof/default.nix b/nixpkgs/pkgs/development/python-modules/vprof/default.nix
new file mode 100644
index 000000000000..1f41f7b9a203
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vprof/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, wheel
+, psutil
+}:
+
+buildPythonPackage rec {
+  pname = "vprof";
+  version = "0.38";
+  pyproject = true;
+
+  # We use the Pypi source rather than the GitHub ones because the former include the javascript
+  # dependency for the UI.
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fxAAkS7rekUMfJTTzJZzmvRa0P8B1avMCwmhddQP+ts=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    psutil
+  ];
+
+  pythonImportsCheck = [ "vprof" ];
+
+  # The tests are not included in the Pypi sources
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Visual profiler for Python";
+    homepage = "https://github.com/nvdv/vprof";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ GaetanLepage ];
+    mainProgram = "vprof";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
index d4a04317ad80..7ae231f03f89 100644
--- a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "xkcdpass";
-  version = "1.19.6";
+  version = "1.19.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zrdR4KuORCGIoRTZDednT9JDV/seWQRa3aPal8gxdTE=";
+    hash = "sha256-MK//Q5m4PeNioRsmxHaMbN2x7a4SkgVy0xkxuvnUufo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch b/nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch
new file mode 100644
index 000000000000..26af7ad24c92
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch
@@ -0,0 +1,25 @@
+From 9013d36cfe7b2958eb18ce373f49193b66a0bbf6 Mon Sep 17 00:00:00 2001
+From: Dan Callaghan <djc@djc.id.au>
+Date: Sun, 23 Apr 2023 16:14:55 +1000
+Subject: [PATCH] use packaged unicode data
+
+
+diff --git a/lib/youseedee/__init__.py b/lib/youseedee/__init__.py
+index 4424ef1..9a72f52 100644
+--- a/lib/youseedee/__init__.py
++++ b/lib/youseedee/__init__.py
+@@ -11,10 +11,7 @@
+ UCD_URL = "https://unicode.org/Public/UCD/latest/ucd/UCD.zip"
+ 
+ def ucd_dir():
+-  ucddir = os.path.expanduser("~/.youseedee")
+-  if not os.path.isdir(ucddir):
+-    os.mkdir(ucddir)
+-  return ucddir
++  return "@ucd_dir@"
+ 
+ def ensure_files():
+   if os.path.isfile(os.path.join(ucd_dir(), "UnicodeData.txt")):
+-- 
+2.38.4
+
diff --git a/nixpkgs/pkgs/development/python-modules/youseedee/default.nix b/nixpkgs/pkgs/development/python-modules/youseedee/default.nix
new file mode 100644
index 000000000000..65a98c350b28
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/youseedee/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, requests
+, unicode-character-database
+}:
+
+buildPythonPackage rec {
+  pname = "youseedee";
+  version = "0.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fdI4CBUSMbdKW0qg4y22wjWI6bhotgDkQdFMc9X00as=";
+  };
+
+  patches = [
+    # Load data files from the unicode-character-database package instead of
+    # downloading them from the internet. (nixpkgs-specific, not upstreamable)
+    (substituteAll {
+      src = ./0001-use-packaged-unicode-data.patch;
+      ucd_dir = "${unicode-character-database}/share/unicode";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  doCheck = true;
+  # Package has no unit tests, but we can check an example as per README.rst:
+  checkPhase = ''
+    runHook preCheck
+    python -m youseedee 0x078A | grep -q "'Block': 'Thaana'"
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Python library for querying the Unicode Character Database";
+    homepage = "https://github.com/simoncozens/youseedee";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix b/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix
index 70e2406ffa41..d8be54666a0d 100644
--- a/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zc_lockfile/default.nix
@@ -1,7 +1,7 @@
 { buildPythonPackage
 , fetchPypi
 , mock
-, zope_testing
+, zope-testing
 , lib
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ mock ];
-  propagatedBuildInputs = [ zope_testing ];
+  propagatedBuildInputs = [ zope-testing ];
 
   meta = with lib; {
     description = "Inter-process locks";
diff --git a/nixpkgs/pkgs/development/python-modules/zope-component/default.nix b/nixpkgs/pkgs/development/python-modules/zope-component/default.nix
index 522b2817a845..44f01efa8d2e 100644
--- a/nixpkgs/pkgs/development/python-modules/zope-component/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope-component/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, zope_configuration
+, zope-configuration
 , zope-deferredimport
 , zope-deprecation
 , zope_event
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    zope_configuration
+    zope-configuration
     zope-deferredimport
     zope-deprecation
     zope_event
diff --git a/nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix b/nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix
new file mode 100644
index 000000000000..e5a30f1e7d68
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, setuptools
+, zope-i18nmessageid
+, zope_interface
+, zope_schema
+, pytestCheckHook
+, zope-testing
+, zope_testrunner
+, manuel
+}:
+
+buildPythonPackage rec {
+  pname = "zope-configuration";
+  version = "5.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    pname = "zope.configuration";
+    inherit version;
+    hash = "sha256-I0tKGMcfazub9rzyJSZLrgFJrGjeoHsHLw9pmkzsJuc=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    manuel
+    pytestCheckHook
+    zope-testing
+    zope_testrunner
+  ];
+
+  propagatedBuildInputs = [
+    zope-i18nmessageid
+    zope_interface
+    zope_schema
+  ];
+
+  # Need to investigate how to run the tests with zope-testrunner
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "zope.configuration"
+  ];
+
+  pythonNamespaces = [
+    "zope"
+  ];
+
+  meta = with lib; {
+    description = "Zope Configuration Markup Language (ZCML)";
+    homepage = "https://github.com/zopefoundation/zope.configuration";
+    changelog = "https://github.com/zopefoundation/zope.configuration/blob/${version}/CHANGES.rst";
+    license = licenses.zpl21;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zope-hookable/default.nix b/nixpkgs/pkgs/development/python-modules/zope-hookable/default.nix
index 64db918321d1..a1cd30fd5478 100644
--- a/nixpkgs/pkgs/development/python-modules/zope-hookable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope-hookable/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, zope_testing
+, zope-testing
 }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     hash = "sha256-+2AfAKyH5apYKoExXtlnaM41EygHKdP1H3kxLiuLlKw=";
   };
 
-  nativeCheckInputs = [ zope_testing ];
+  nativeCheckInputs = [ zope-testing ];
 
   meta = with lib; {
     description = "Supports the efficient creation of “hookable” objects";
diff --git a/nixpkgs/pkgs/development/python-modules/zope-testbrowser/default.nix b/nixpkgs/pkgs/development/python-modules/zope-testbrowser/default.nix
index 15b3f74a4394..290066f3e157 100644
--- a/nixpkgs/pkgs/development/python-modules/zope-testbrowser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope-testbrowser/default.nix
@@ -12,7 +12,7 @@
 , wsgiproxy2
 , six
 , mock
-, zope_testing
+, zope-testing
 , zope_testrunner
 , python
 }:
@@ -50,7 +50,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     mock
-    zope_testing
+    zope-testing
     zope_testrunner
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/zope-testing/default.nix b/nixpkgs/pkgs/development/python-modules/zope-testing/default.nix
new file mode 100644
index 000000000000..65672118e4ef
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zope-testing/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "zope-testing";
+  version = "5.0.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    pname = "zope.testing";
+    inherit version;
+    hash = "sha256-6HzQ2NZmVzza8TOBare5vuyAGmSoZZXBnLX+mS7z1kk=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  doCheck = !isPyPy;
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "src/zope/testing/tests.py"
+  ];
+
+  pythonImportsCheck = [
+    "zope.testing"
+  ];
+
+  pythonNamespaces = [
+    "zope"
+  ];
+
+  meta = with lib; {
+    description = "Zope testing helpers";
+    homepage =  "https://github.com/zopefoundation/zope.testing";
+    changelog = "https://github.com/zopefoundation/zope.testing/blob/${version}/CHANGES.rst";
+    license = licenses.zpl21;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix b/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
deleted file mode 100644
index b6cc1c0f9998..000000000000
--- a/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-i18nmessageid
-, zope_schema
-, zope_testrunner
-, manuel
-}:
-
-buildPythonPackage rec {
-  pname = "zope.configuration";
-  version = "4.4.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-giPqSvU5hmznqccwrH6xjlHRfrUVk6p3c7NZPI1tdgg=";
-  };
-
-  nativeCheckInputs = [ zope_testrunner manuel ];
-
-  propagatedBuildInputs = [ zope-i18nmessageid zope_schema ];
-
-  # Need to investigate how to run the tests with zope-testrunner
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Zope Configuration Markup Language (ZCML)";
-    homepage = "https://github.com/zopefoundation/zope.configuration";
-    license = licenses.zpl20;
-    maintainers = with maintainers; [ goibhniu ];
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
index b3694fe09dc9..329ab7455c5c 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
@@ -4,7 +4,7 @@
 , zope_location
 , zope_event
 , zope_interface
-, zope_testing
+, zope-testing
 }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-6tTbywM1TU5BDJo7kERR60TZAlR1Gxy97fSmGu3p+7k=";
   };
 
-  propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ];
+  propagatedBuildInputs = [ zope_location zope_event zope_interface zope-testing ];
 
   # ImportError: No module named 'zope.event'
   # even though zope_event has been included.
diff --git a/nixpkgs/pkgs/development/python-modules/zope_testing/default.nix b/nixpkgs/pkgs/development/python-modules/zope_testing/default.nix
deleted file mode 100644
index bc5d9ed94b2e..000000000000
--- a/nixpkgs/pkgs/development/python-modules/zope_testing/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, zope_interface
-, zope_exceptions
-, zope_location
-}:
-
-buildPythonPackage rec {
-  pname = "zope.testing";
-  version = "5.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-6HzQ2NZmVzza8TOBare5vuyAGmSoZZXBnLX+mS7z1kk=";
-  };
-
-  doCheck = !isPyPy;
-
-  propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ];
-
-  meta = with lib; {
-    description = "Zope testing helpers";
-    homepage =  "http://pypi.python.org/pypi/zope.testing";
-    license = licenses.zpl20;
-    maintainers = with maintainers; [ goibhniu ];
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix b/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
index d687e24082f4..2307494fcbde 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , zope_interface
 , zope_exceptions
-, zope_testing
+, zope-testing
 , six
 }:
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-1r1y9E6jLKpBW5bP4UFSsnhjF67xzW9IqCe2Le8Fj9Q=";
   };
 
-  propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ];
+  propagatedBuildInputs = [ zope_interface zope_exceptions zope-testing six ];
 
   doCheck = false; # custom test modifies sys.path
 
diff --git a/nixpkgs/pkgs/development/skaware-packages/s6-man-pages/default.nix b/nixpkgs/pkgs/development/skaware-packages/s6-man-pages/default.nix
index 417d2d368cd6..c21da0e17ae2 100644
--- a/nixpkgs/pkgs/development/skaware-packages/s6-man-pages/default.nix
+++ b/nixpkgs/pkgs/development/skaware-packages/s6-man-pages/default.nix
@@ -2,8 +2,8 @@
 
 buildManPages {
   pname = "s6-man-pages";
-  version = "2.11.3.2.4";
-  sha256 = "02dmccmcwssv8bkzs3dlbnwl6kkp1crlbnlv5ljbrgm26klw9rc7";
+  version = "2.12.0.2.1";
+  sha256 = "sha256-fFU+cRwXb4SwHsI/r0ghuzCf6hEK/muPPp2XMvD8VtQ=";
   description = "Port of the documentation for the s6 supervision suite to mdoc";
   maintainers = [ lib.maintainers.sternenseemann ];
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
index 6ed8c18d0b1a..3b6b24f327d3 100644
--- a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.222.0";
+  version = "0.223.2";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "sha256-IOy6zsDGUfiSeOalQnku/4uNyjqpz2bMcpmf7Vq9fyI=";
+    hash = "sha256-vjsqQuQxTywSx4c0lnDKrrNr5hfFog9UurhIctq14f4=";
   };
 
   postPatch = ''
@@ -17,6 +17,11 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "FLOW_RELEASE=1" ];
 
+  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
+  };
+
   installPhase = ''
     install -Dm755 bin/flow $out/bin/flow
     install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
diff --git a/nixpkgs/pkgs/development/tools/bloaty/default.nix b/nixpkgs/pkgs/development/tools/bloaty/default.nix
index ff24e7b7c1cd..96a6d28e9787 100644
--- a/nixpkgs/pkgs/development/tools/bloaty/default.nix
+++ b/nixpkgs/pkgs/development/tools/bloaty/default.nix
@@ -1,23 +1,55 @@
-{ lib, stdenv, cmake, zlib, fetchFromGitHub }:
+{ lib, stdenv, cmake, zlib, fetchFromGitHub, re2, abseil-cpp, protobuf, capstone, gtest, pkg-config, lit, llvmPackages_16 }:
 
 stdenv.mkDerivation rec {
-  version = "1.1";
   pname = "bloaty";
+  version = "1.1-unstable-2023-11-06";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "bloaty";
-    rev = "v${version}";
-    sha256 = "1556gb8gb8jwf5mwxppcqz3mp269b5jhd51kj341iqkbn27zzngk";
-    fetchSubmodules = true;
+    rev = "16f9fe54d9cd0e9abe1d25fc1a9b44c214cfaa9f";
+    hash = "sha256-mIVlNMKtJMfH2QdYZ6+oV7619oYzvKkq3fHY6uofqlM=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  # Old vendored package which has no other use than here, so not packaged in nixpkgs.
+  demumble = fetchFromGitHub {
+    owner = "nico";
+    repo = "demumble";
+    rev = "01098eab821b33bd31b9778aea38565cd796aa85";
+    hash = "sha256-605SsXd7TSdm3BH854ChHIZbOXcHI/n8RN+pFMz4Ex4=";
+  };
+
+  cmakeFlags = [
+    "-DLIT_EXECUTABLE=${lit}/bin/lit"
+    "-DFILECHECK_EXECUTABLE=${llvmPackages_16.libllvm}/bin/FileCheck"
+    "-DYAML2OBJ_EXECUTABLE=${llvmPackages_16.libllvm}/bin/yaml2obj"
+  ];
+
+  postPatch = ''
+    # Build system relies on some of those source files
+    rm -rf third_party/googletest third_party/abseil-cpp third_party/demumble
+    ln -s ${gtest.src} third_party/googletest
+    ln -s ${abseil-cpp.src} third_party/abseil-cpp
+    ln -s ${demumble} third_party/demumble
+    substituteInPlace CMakeLists.txt \
+      --replace "find_package(Python COMPONENTS Interpreter)" "" \
+      --replace "if(Python_FOUND AND LIT_EXECUTABLE" "if(LIT_EXECUTABLE" \
+      --replace "COMMAND \''\${Python_EXECUTABLE} \''\${LIT_EXECUTABLE}" "COMMAND \''\${LIT_EXECUTABLE}"
+    # wasm test fail. Possibly due to LLVM version < 17. See https://github.com/google/bloaty/pull/354
+    rm -rf tests/wasm
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ zlib ];
+  buildInputs = [ zlib re2 abseil-cpp protobuf capstone gtest lit llvmPackages_16.libllvm ];
 
   doCheck = true;
 
+  postCheck = ''
+    # These lit tests need to be build seperatly.
+    # See https://github.com/google/bloaty/blob/main/tests/README.md
+    cmake --build . --target check-bloaty
+  '';
   installPhase = ''
     install -Dm755 {.,$out/bin}/bloaty
   '';
diff --git a/nixpkgs/pkgs/development/tools/buildkit/default.nix b/nixpkgs/pkgs/development/tools/buildkit/default.nix
index 41843024a515..8898ff89f371 100644
--- a/nixpkgs/pkgs/development/tools/buildkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildkit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "buildkit";
-  version = "0.12.3";
+  version = "0.12.4";
 
   src = fetchFromGitHub {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    hash = "sha256-ph44J90g5zOTi/+FVbdnDDJp1gXcxPt7coA1rvhsQSQ=";
+    hash = "sha256-nQvrd2W9xWWGTlwN5Q2E3rs67OUxZ4bIp+rK2W2PUww=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock b/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock
index 11d066eaea1b..56928d9368e9 100644
--- a/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock
@@ -2,12 +2,12 @@ GEM
   remote: https://rubygems.org/
   specs:
     builder (3.2.4)
-    cucumber (9.0.2)
+    cucumber (9.1.0)
       builder (~> 3.2, >= 3.2.4)
       cucumber-ci-environment (~> 9.2, >= 9.2.0)
-      cucumber-core (~> 11.1, >= 11.1.0)
-      cucumber-cucumber-expressions (~> 16.1, >= 16.1.2)
-      cucumber-gherkin (>= 24, < 26.2.1)
+      cucumber-core (~> 12.0)
+      cucumber-cucumber-expressions (~> 17.0)
+      cucumber-gherkin (>= 24, < 27)
       cucumber-html-formatter (~> 20.4, >= 20.4.0)
       cucumber-messages (>= 19, < 23)
       diff-lcs (~> 1.5, >= 1.5.0)
@@ -15,17 +15,17 @@ GEM
       multi_test (~> 1.1, >= 1.1.0)
       sys-uname (~> 1.2, >= 1.2.3)
     cucumber-ci-environment (9.2.0)
-    cucumber-core (11.1.0)
-      cucumber-gherkin (>= 24, < 27)
-      cucumber-messages (>= 19, < 22)
-      cucumber-tag-expressions (~> 4.1, >= 4.1.0)
-    cucumber-cucumber-expressions (16.1.2)
+    cucumber-core (12.0.0)
+      cucumber-gherkin (>= 25, < 27)
+      cucumber-messages (>= 20, < 23)
+      cucumber-tag-expressions (~> 5.0, >= 5.0.4)
+    cucumber-cucumber-expressions (17.0.1)
     cucumber-gherkin (26.2.0)
       cucumber-messages (>= 19.1.4, < 22.1)
     cucumber-html-formatter (20.4.0)
       cucumber-messages (>= 18.0, < 22.1)
-    cucumber-messages (21.0.1)
-    cucumber-tag-expressions (4.1.0)
+    cucumber-messages (22.0.0)
+    cucumber-tag-expressions (5.0.6)
     diff-lcs (1.5.0)
     ffi (1.16.3)
     mini_mime (1.1.5)
@@ -40,4 +40,4 @@ DEPENDENCIES
   cucumber
 
 BUNDLED WITH
-   2.4.20
+   2.4.22
diff --git a/nixpkgs/pkgs/development/tools/cucumber/gemset.nix b/nixpkgs/pkgs/development/tools/cucumber/gemset.nix
index 16d750887a3e..1f8f35f1098c 100644
--- a/nixpkgs/pkgs/development/tools/cucumber/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/cucumber/gemset.nix
@@ -15,10 +15,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hwbq5sn4hsd922j1p3a4p2404306yczgx2vqggvr20q01fzx55h";
+      sha256 = "0gmbbj4s4cv9aifks29q9w9yjcrvihcz1i8sijplwbps7334skv1";
       type = "gem";
     };
-    version = "9.0.2";
+    version = "9.1.0";
   };
   cucumber-ci-environment = {
     groups = ["default"];
@@ -36,20 +36,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mrykswrxziy08fc9fjvg3l2aa6jfji2012wzh7pyamhm8pcnjb";
+      sha256 = "1ylxpganbvlzcd4picmgbs060cf0nlpkjc7lqxndyr6xaz2g99y2";
       type = "gem";
     };
-    version = "11.1.0";
+    version = "12.0.0";
   };
   cucumber-cucumber-expressions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8bazf8bwlm0zar2316p4xxmpy44wyjnw2z6bj7zc5nl8nmyvym";
+      sha256 = "0xyvg7l2y9b9gh682z47zcf1na179n8j7bwfyahp79w8s047660b";
       type = "gem";
     };
-    version = "16.1.2";
+    version = "17.0.1";
   };
   cucumber-gherkin = {
     dependencies = ["cucumber-messages"];
@@ -78,20 +78,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0482a63y7my0arn2bv208g401dq8525f0gwhnwaa11mhv6ph0q5i";
+      sha256 = "06d7dnixz68ivngf6qflmi6xrjshjyi85gmyjrl07pbmhqi6r2nh";
       type = "gem";
     };
-    version = "21.0.1";
+    version = "22.0.0";
   };
   cucumber-tag-expressions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v1ssg4chkahck1ddl2j1hcifm0vlcn9sb104ywshw5gyv59s9qd";
+      sha256 = "0rmbw044fdy2756ypnqray8abfxqvwrn1jhsdafdbjwihvvsk62f";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "5.0.6";
   };
   diff-lcs = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/tools/database/litefs/default.nix b/nixpkgs/pkgs/development/tools/database/litefs/default.nix
index c12cde6af918..4c941a7609aa 100644
--- a/nixpkgs/pkgs/development/tools/database/litefs/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/litefs/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "litefs";
-  version = "0.5.4";
+  version = "0.5.8";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gTXIQVnNyVn2UqigozvEPaPm3XoqHd6E0RZnZS4bP3g=";
+    sha256 = "sha256-oF69bmWI4I/ok89Rgve4eedMR9MCcaxmQ4bGff831dI=";
   };
 
-  vendorHash = "sha256-4e1tAAXM2EYuqe1AbN1wng/bq1BP7MSOV6woeKjc3x4=";
+  vendorHash = "sha256-6Dg1fU4y0eUeiX9uUwJ2IUxBr81vWR6eUuCV+iPBNBk=";
 
   subPackages = [ "cmd/litefs" ];
 
diff --git a/nixpkgs/pkgs/development/tools/database/prisma-engines/Cargo.lock b/nixpkgs/pkgs/development/tools/database/prisma-engines/Cargo.lock
index 5f4df8b9a2f9..573e31eababd 100644
--- a/nixpkgs/pkgs/development/tools/database/prisma-engines/Cargo.lock
+++ b/nixpkgs/pkgs/development/tools/database/prisma-engines/Cargo.lock
@@ -321,11 +321,12 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "enumflags2",
- "indoc",
+ "indoc 2.0.3",
  "insta",
  "query-engine-metrics",
  "query-engine-tests",
  "query-tests-setup",
+ "regex",
  "reqwest",
  "serde_json",
  "tokio",
@@ -433,7 +434,7 @@ dependencies = [
  "connection-string",
  "either",
  "enumflags2",
- "indoc",
+ "indoc 2.0.3",
  "lsp-types",
  "once_cell",
  "psl-core",
@@ -673,6 +674,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
 name = "convert_case"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -860,29 +871,26 @@ dependencies = [
 [[package]]
 name = "cuid"
 version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51294db11d38eb763c92936c5c88425d0090e27dce21dd15748134af9e53e739"
+source = "git+https://github.com/prisma/cuid-rust?branch=wasm32-support#81309f9a11f70d178bb545971d51ceb7da692c52"
 dependencies = [
  "base36",
  "cuid-util",
  "cuid2",
- "hostname",
  "num",
  "once_cell",
  "rand 0.8.5",
+ "sha3",
 ]
 
 [[package]]
 name = "cuid-util"
 version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea2bfe0336ff1b7ca74819b2df8dfae9afea358aff6b1688baa5c181d8c3713"
+source = "git+https://github.com/prisma/cuid-rust?branch=wasm32-support#81309f9a11f70d178bb545971d51ceb7da692c52"
 
 [[package]]
 name = "cuid2"
 version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47d99cacd52fd67db7490ad051c8c1973fb75520174d69aabbae08c534c9d0e8"
+source = "git+https://github.com/prisma/cuid-rust?branch=wasm32-support#81309f9a11f70d178bb545971d51ceb7da692c52"
 dependencies = [
  "cuid-util",
  "num",
@@ -892,12 +900,36 @@ dependencies = [
 
 [[package]]
 name = "darling"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
+dependencies = [
+ "darling_core 0.10.2",
+ "darling_macro 0.10.2",
+]
+
+[[package]]
+name = "darling"
 version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
 dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.13.4",
+ "darling_macro 0.13.4",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.9.3",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -916,11 +948,22 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
+dependencies = [
+ "darling_core 0.10.2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
 version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
 dependencies = [
- "darling_core",
+ "darling_core 0.13.4",
  "quote",
  "syn 1.0.109",
 ]
@@ -950,7 +993,7 @@ version = "0.1.0"
 dependencies = [
  "base64 0.13.1",
  "expect-test",
- "indoc",
+ "indoc 2.0.3",
  "once_cell",
  "psl",
  "regex",
@@ -991,7 +1034,7 @@ name = "diagnostics"
 version = "0.1.0"
 dependencies = [
  "colored",
- "indoc",
+ "indoc 2.0.3",
  "pest",
 ]
 
@@ -1036,7 +1079,7 @@ dependencies = [
  "expect-test",
  "flate2",
  "indexmap 1.9.3",
- "indoc",
+ "indoc 2.0.3",
  "itertools",
  "pretty_assertions",
  "prisma-models",
@@ -1378,6 +1421,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+[[package]]
 name = "funty"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1506,8 +1555,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
  "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasm-bindgen",
 ]
 
 [[package]]
@@ -1523,6 +1574,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
+name = "gloo-utils"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e"
+dependencies = [
+ "js-sys",
+ "serde",
+ "serde_json",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
 name = "graphql-parser"
 version = "0.3.0"
 source = "git+https://github.com/prisma/graphql-parser#6a3f58bd879065588e710cb02b5bd30c1ce182c3"
@@ -1824,11 +1888,34 @@ dependencies = [
 
 [[package]]
 name = "indoc"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
+dependencies = [
+ "indoc-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "indoc"
 version = "2.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4"
 
 [[package]]
+name = "indoc-impl"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "unindent",
+]
+
+[[package]]
 name = "insta"
 version = "1.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2310,9 +2397,9 @@ dependencies = [
 
 [[package]]
 name = "mobc"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bdeff49b387edef305eccfe166af3e1483bb57902dbf369dddc42dc824df23b"
+checksum = "90eb49dc5d193287ff80e72a86f34cfb27aae562299d22fea215e06ea1059dd3"
 dependencies = [
  "async-trait",
  "futures-channel",
@@ -2426,11 +2513,11 @@ dependencies = [
  "enumflags2",
  "expect-test",
  "futures",
- "indoc",
+ "indoc 2.0.3",
  "mongodb",
  "mongodb-client",
  "mongodb-schema-describer",
- "names",
+ "names 0.12.0",
  "once_cell",
  "psl",
  "regex",
@@ -2529,6 +2616,15 @@ dependencies = [
 
 [[package]]
 name = "names"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da"
+dependencies = [
+ "rand 0.3.23",
+]
+
+[[package]]
+name = "names"
 version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775"
@@ -2973,6 +3069,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
 name = "pbkdf2"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3234,7 +3336,7 @@ dependencies = [
  "dmmf",
  "enumflags2",
  "expect-test",
- "indoc",
+ "indoc 2.0.3",
  "log",
  "lsp-types",
  "once_cell",
@@ -3251,6 +3353,7 @@ dependencies = [
  "bigdecimal",
  "chrono",
  "cuid",
+ "getrandom 0.2.10",
  "itertools",
  "nanoid",
  "prisma-value",
@@ -3316,6 +3419,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
 name = "proc-macro2"
 version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3386,7 +3495,7 @@ dependencies = [
  "dissimilar",
  "either",
  "expect-test",
- "indoc",
+ "indoc 2.0.3",
  "psl-core",
 ]
 
@@ -3398,7 +3507,7 @@ dependencies = [
  "chrono",
  "diagnostics",
  "enumflags2",
- "indoc",
+ "indoc 2.0.3",
  "itertools",
  "lsp-types",
  "once_cell",
@@ -3463,16 +3572,23 @@ dependencies = [
  "either",
  "futures",
  "hex",
+ "indoc 0.3.6",
  "lru-cache",
  "metrics 0.18.1",
  "mobc",
  "mysql_async",
+ "names 0.11.0",
  "native-tls",
  "num_cpus",
+ "once_cell",
+ "paste",
  "percent-encoding",
  "postgres-native-tls",
  "postgres-types",
+ "quaint-test-macros",
+ "quaint-test-setup",
  "rusqlite",
+ "serde",
  "serde_json",
  "sqlformat",
  "thiserror",
@@ -3487,6 +3603,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "quaint-test-macros"
+version = "0.1.0"
+dependencies = [
+ "darling 0.10.2",
+ "once_cell",
+ "proc-macro2",
+ "quaint-test-setup",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "quaint-test-setup"
+version = "0.1.0"
+dependencies = [
+ "async-trait",
+ "bitflags 1.3.2",
+ "names 0.11.0",
+ "once_cell",
+ "quaint",
+ "tokio",
+]
+
+[[package]]
 name = "quanta"
 version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3567,7 +3707,7 @@ dependencies = [
  "enumflags2",
  "graphql-parser",
  "hyper",
- "indoc",
+ "indoc 2.0.3",
  "mongodb-query-connector",
  "opentelemetry",
  "opentelemetry-otlp",
@@ -3652,7 +3792,7 @@ dependencies = [
  "colored",
  "enumflags2",
  "futures",
- "indoc",
+ "indoc 2.0.3",
  "insta",
  "once_cell",
  "prisma-value",
@@ -3669,10 +3809,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "query-engine-wasm"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "connection-string",
+ "console_error_panic_hook",
+ "futures",
+ "js-sys",
+ "log",
+ "prisma-models",
+ "psl",
+ "serde",
+ "serde-wasm-bindgen",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "tracing-futures",
+ "tracing-subscriber",
+ "tsify",
+ "url",
+ "user-facing-errors",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-logger",
+]
+
+[[package]]
 name = "query-test-macros"
 version = "0.1.0"
 dependencies = [
- "darling",
+ "darling 0.13.4",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -3687,7 +3856,7 @@ dependencies = [
  "enumflags2",
  "hyper",
  "indexmap 1.9.3",
- "indoc",
+ "indoc 2.0.3",
  "itertools",
  "jsonrpc-core",
  "nom",
@@ -3748,6 +3917,29 @@ dependencies = [
 
 [[package]]
 name = "rand"
+version = "0.3.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
+dependencies = [
+ "libc",
+ "rand 0.4.6",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+dependencies = [
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
@@ -3792,6 +3984,21 @@ dependencies = [
 
 [[package]]
 name = "rand_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+dependencies = [
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+[[package]]
+name = "rand_core"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
@@ -3849,6 +4056,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4266,7 +4482,7 @@ dependencies = [
  "base64 0.13.1",
  "connection-string",
  "expect-test",
- "indoc",
+ "indoc 2.0.3",
  "jsonrpc-core",
  "quaint",
  "schema-connector",
@@ -4371,6 +4587,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde-wasm-bindgen"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
+dependencies = [
+ "js-sys",
+ "serde",
+ "wasm-bindgen",
+]
+
+[[package]]
 name = "serde_bytes"
 version = "0.11.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4391,6 +4618,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_derive_internals"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.28",
+]
+
+[[package]]
 name = "serde_json"
 version = "1.0.104"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4441,7 +4679,7 @@ version = "1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
 dependencies = [
- "darling",
+ "darling 0.13.4",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -4624,7 +4862,7 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 name = "sql-ddl"
 version = "0.1.0"
 dependencies = [
- "indoc",
+ "indoc 2.0.3",
 ]
 
 [[package]]
@@ -4635,7 +4873,7 @@ dependencies = [
  "connection-string",
  "enumflags2",
  "expect-test",
- "indoc",
+ "indoc 2.0.3",
  "pretty_assertions",
  "psl",
  "quaint",
@@ -4661,7 +4899,7 @@ dependencies = [
  "connection-string",
  "enumflags2",
  "expect-test",
- "indoc",
+ "indoc 2.0.3",
  "jsonrpc-core",
  "once_cell",
  "pretty_assertions",
@@ -4722,7 +4960,7 @@ dependencies = [
  "datamodel-renderer",
  "either",
  "enumflags2",
- "indoc",
+ "indoc 2.0.3",
  "once_cell",
  "prisma-value",
  "psl",
@@ -4753,7 +4991,7 @@ dependencies = [
  "enumflags2",
  "expect-test",
  "indexmap 1.9.3",
- "indoc",
+ "indoc 2.0.3",
  "once_cell",
  "pretty_assertions",
  "prisma-value",
@@ -4822,6 +5060,12 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 
 [[package]]
 name = "strsim"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+
+[[package]]
+name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
@@ -5495,13 +5739,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
 
 [[package]]
+name = "tsify"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6b26cf145f2f3b9ff84e182c448eaf05468e247f148cf3d2a7d67d78ff023a0"
+dependencies = [
+ "gloo-utils",
+ "serde",
+ "serde_json",
+ "tsify-macros",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "tsify-macros"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a94b0f0954b3e59bfc2c246b4c8574390d94a4ad4ad246aaf2fb07d7dfd3b47"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 2.0.28",
+]
+
+[[package]]
 name = "twox-hash"
 version = "1.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
 dependencies = [
  "cfg-if",
- "rand 0.7.3",
+ "rand 0.8.5",
  "static_assertions",
 ]
 
@@ -5574,6 +5843,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
 
 [[package]]
+name = "unindent"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+
+[[package]]
 name = "unreachable"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5614,7 +5889,7 @@ name = "user-facing-errors"
 version = "0.1.0"
 dependencies = [
  "backtrace",
- "indoc",
+ "indoc 2.0.3",
  "itertools",
  "quaint",
  "serde",
diff --git a/nixpkgs/pkgs/development/tools/database/prisma-engines/default.nix b/nixpkgs/pkgs/development/tools/database/prisma-engines/default.nix
index a180878f9a1c..4d2dc3663184 100644
--- a/nixpkgs/pkgs/development/tools/database/prisma-engines/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/prisma-engines/default.nix
@@ -14,13 +14,13 @@
 # function correctly.
 rustPlatform.buildRustPackage rec {
   pname = "prisma-engines";
-  version = "5.4.1";
+  version = "5.6.0";
 
   src = fetchFromGitHub {
     owner = "prisma";
     repo = "prisma-engines";
     rev = version;
-    sha256 = "sha256-KYPDocC6S6YhJeneyI++UmmpuAYDoX6okqgOtGetilw=";
+    sha256 = "sha256-zyF2NAOPNJe23tIuOHalsvnYytALKZq8QY1L8EWJMno=";
   };
 
   # Use system openssl.
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "barrel-0.6.6-alpha.0" = "sha256-USh0lQ1z+3Spgc69bRFySUzhuY79qprLlEExTmYWFN8=";
+      "cuid-1.3.2" = "sha256-ZihFrLerEIOdbJggaBbByRbC1sZRvF4M0LN2albB7vA=";
       "graphql-parser-0.3.0" = "sha256-0ZAsj2mW6fCLhwTETucjbu4rPNzfbNiHu2wVTBlTNe4=";
       "mysql_async-0.31.3" = "sha256-QIO9s0Upc0/1W7ux1RNJNGKqzO4gB4gMV3NoakAbxkQ=";
       "postgres-native-tls-0.5.0" = "sha256-UYPsxhCkXXWk8yPbqjNS0illwjS5mVm3Z/jFwpVwqfw=";
diff --git a/nixpkgs/pkgs/development/tools/fastgron/default.nix b/nixpkgs/pkgs/development/tools/fastgron/default.nix
index d4ac30958a27..77c09fef99f3 100644
--- a/nixpkgs/pkgs/development/tools/fastgron/default.nix
+++ b/nixpkgs/pkgs/development/tools/fastgron/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fastgron";
-  version = "0.6.4";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "adamritter";
     repo = "fastgron";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-sGTJ98YEvy+pOFVLLIcvgUq5Pn4r1CYL9YEchZhoBeQ=";
+    hash = "sha256-IBs6oC+dbssAkUGk84vXteSlO6j88LZlmlmcV77M2YM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/tools/fsautocomplete/deps.nix b/nixpkgs/pkgs/development/tools/fsautocomplete/deps.nix
index fdd669cf90ab..b807457ad01e 100644
--- a/nixpkgs/pkgs/development/tools/fsautocomplete/deps.nix
+++ b/nixpkgs/pkgs/development/tools/fsautocomplete/deps.nix
@@ -78,9 +78,9 @@
   (fetchNuGet { pname = "McMaster.NETCore.Plugins"; version = "1.4.0"; sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
   (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.108"; sha256 = "0nb1fx8dwl7304kw0bc375bvlhb7pg351l4cl3vqqd7d8zqjwx5v"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.24"; sha256 = "0lriw4f48f0q2vyagbngnffshdismn3msn7d6dj0lb2xdkzsz1f1"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.24"; sha256 = "08670zhn2ywkwy0d7sj89rikxccy5qg0vsjwpbypvzndawng0bb9"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.24"; sha256 = "0knx6lhlqxn3lkgakpab0663788q0si00m9ga7wdn2mzqq0s9yx0"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.25"; sha256 = "1vrmqn5j6ibwkqasbf7x7n4w5jdclnz3giymiwvym2wa0y5zc59q"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.25"; sha256 = "0mgcs4si7mwd0f555s1vg17pf4nqfaijd1pci359l1pgrmv70rrg"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.25"; sha256 = "0wvzhqhlmlbnpa18qp8m3wcrlcgj3ckvp3iv2n7g8vb60c3238aq"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "7.0.0"; sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm"; })
   (fetchNuGet { pname = "Microsoft.Bcl.HashCode"; version = "1.1.0"; sha256 = "1ggsadahlp76zcn1plapszd5v5ja8rh479fwrahqd3knql4dfnr0"; })
   (fetchNuGet { pname = "Microsoft.Build"; version = "17.2.0"; sha256 = "09hs74nr0kv83wc1way9x7vq3nmxbr2s4vdy99hx78kj25pylcr7"; })
@@ -121,11 +121,11 @@
   (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.4.0"; sha256 = "1smx30nq22plrn2mw4wb5vfgxk6hyx12b60c4wabmpnr81lq3nzv"; })
   (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.6.3"; sha256 = "0g5jdg0jp844a2ygwlm04igsxkrihqcq2rpmfx722nrv3vrk0r0z"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.4.1"; sha256 = "02p1j9fncd4fb2hyp51kw49d0dz30vvazhzk24c9f5ccc00ijpra"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.24"; sha256 = "1vyy01i4w2wcx82mrjjsbp98v9sjn1cwhdvkhrw8yrrb04lcxbir"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.24"; sha256 = "02l6javfqwsaialkimmpsq3v4dhb1j4sxy19yvr5w5sdjmq1jh5y"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.24"; sha256 = "1fy1hr14igy4lix4vmwkjj13cbyjjfhx8izch9cd9hc4f1y25767"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.24"; sha256 = "1zcn4px94z67j60cidynm5ab8cln1rrxabv7c24mlajqnkfw14sb"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.24"; sha256 = "0rylvdvdc5rdmw2vcqi0fdzmiwwa1pwlqiavqnb2pslhhq8qg4mh"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.25"; sha256 = "052388yjivzkfllkss0nljbzmjx787jqdjsbb6ls855sp6wh9xfd"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.25"; sha256 = "103xy6kncjwbbchfnpqvsjpjy92x3dralcg9pw939jp0dwggwarz"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.25"; sha256 = "0jfhmfxpx1h4f3axgf60gc8d4cnlvbb853400kag6nk0875hr0x1"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.25"; sha256 = "0jpcmva1l8z36r4phz055l7fz9s6z8pv8pqc4ia69mhhgvr0ks7y"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.25"; sha256 = "012jml0bqxbspahf1j4bvvd91pz85hsbcyhq00gxczcazhxpkhz4"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "7.0.4"; sha256 = "0afmivk3m0hmwsiqnl87frzi7g57aiv5fwnjds0icl66djpb6zsm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
   (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.3"; sha256 = "0hc4d4d4358g5192mf8faijwk0bpf9pjwcfd3h85sr67j0zhj6hl"; })
diff --git a/nixpkgs/pkgs/development/tools/gdtoolkit/default.nix b/nixpkgs/pkgs/development/tools/gdtoolkit/default.nix
index 479b0b2c3636..ea5e5ec8de9a 100644
--- a/nixpkgs/pkgs/development/tools/gdtoolkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/gdtoolkit/default.nix
@@ -1,23 +1,28 @@
 { lib
-, python3Packages
+, python3
 , fetchFromGitHub
 , godot3-server
 }:
 
-let lark080 = python3Packages.lark.overrideAttrs (old: rec {
-  # gdtoolkit needs exactly this lark version
-  version = "0.8.0";
-  src = fetchFromGitHub {
-    owner = "lark-parser";
-    repo = "lark";
-    rev = version;
-    hash = "sha256-KN9buVlH8hJ8t0ZP5yefeYM5vH5Gg7a7TEDGKJYpozs=";
-    fetchSubmodules = true;
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      lark = super.lark.overridePythonAttrs (old: rec {
+        # gdtoolkit needs exactly this lark version
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "lark-parser";
+          repo = "lark";
+          rev = version;
+          hash = "sha256-KN9buVlH8hJ8t0ZP5yefeYM5vH5Gg7a7TEDGKJYpozs=";
+          fetchSubmodules = true;
+        };
+        patches = [ ];
+      });
+    };
   };
-});
-
 in
-python3Packages.buildPythonApplication rec {
+python.pkgs.buildPythonApplication rec {
   pname = "gdtoolkit";
   version = "3.3.1";
 
@@ -29,18 +34,18 @@ python3Packages.buildPythonApplication rec {
     sha256 = "13nnpwy550jf5qnm9ixpxl1bwfnhhbiys8vqfd25g3aim4bm3gnn";
   };
 
-  disabled = python3Packages.pythonOlder "3.7";
+  disabled = python.pythonOlder "3.7";
 
-  propagatedBuildInputs = [ lark080
-  ] ++ (with python3Packages; [
+  propagatedBuildInputs = with python.pkgs; [
     docopt
+    lark
     pyyaml
     setuptools
-  ]);
+  ];
 
   doCheck = true;
 
-  nativeCheckInputs = with python3Packages; [
+  nativeCheckInputs = with python.pkgs; [
     pytestCheckHook
     hypothesis
     godot3-server
diff --git a/nixpkgs/pkgs/development/tools/go-task/default.nix b/nixpkgs/pkgs/development/tools/go-task/default.nix
index f03d51273454..77689b1e1f87 100644
--- a/nixpkgs/pkgs/development/tools/go-task/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-task/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.31.0";
+  version = "3.32.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KkswkTgdhDzPLfbAdyhbo9IyYqxG5se0pt9QVTNZclM=";
+    hash = "sha256-ngBYnPwZ+B5BB2avnR2J6+8mNxT9vxtI8f9agNtD8uw=";
   };
 
-  vendorHash = "sha256-ha2vJDh1rduoFU4a1Ta1cNWegAGt2VCq8N1emUYUZ64=";
+  vendorHash = "sha256-mPQ7sSFLzvcWtNh3pFhHKpnu5gXK+wC5qbGMRLZFTBE=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/gojq/default.nix b/nixpkgs/pkgs/development/tools/gojq/default.nix
index b2d80e1916dc..af7bc42ca751 100644
--- a/nixpkgs/pkgs/development/tools/gojq/default.nix
+++ b/nixpkgs/pkgs/development/tools/gojq/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gojq";
-  version = "0.12.13";
+  version = "0.12.14";
 
   src = fetchFromGitHub {
     owner = "itchyny";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tlnj0CCsPZRQjIZCvNPjN0JD6oqRDvdWOCYR3tYMPUA=";
+    hash = "sha256-mgmgOi3nMPwmcofEAVIN9nTE2oXnNN89lqT+Vi+sjzY=";
   };
 
-  vendorHash = "sha256-DVJZ35C+6SuhaaGDM3u+3fB1497qaW6oTByAUPVwhJI=";
+  vendorHash = "sha256-dv4k2dIFnlJrGDTDM4mXBOpr4MF7oxms0y02ml50YyY=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/nixpkgs/pkgs/development/tools/goperf/default.nix b/nixpkgs/pkgs/development/tools/goperf/default.nix
new file mode 100644
index 000000000000..ed1a6c1a23b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/goperf/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildGoModule
+, fetchgit
+, writeShellScript
+, unstableGitUpdater
+, sd
+}:
+
+buildGoModule rec {
+  pname = "goperf";
+  version = "unstable-2023-11-08";
+
+  src = fetchgit {
+    url = "https://go.googlesource.com/perf";
+    rev = "cb71e802ccb878a069712546879bf26489f0f300";
+    hash = "sha256-1NvrelLsy9lrepttXXnggc0oycC6EgJgU80iXDu3IoI=";
+  };
+
+  vendorHash = "sha256-dJQHqIR6v0yYbxplytkdA98IHtdxnsvi9X6kIESCsB8=";
+
+  passthru.updateScript = writeShellScript "update-goperf" ''
+    export UPDATE_NIX_ATTR_PATH=goperf
+    ${lib.escapeShellArgs (unstableGitUpdater { inherit (src) url; })}
+    set -x
+    oldhash="$(nix-instantiate . --eval --strict -A "goperf.go-modules.drvAttrs.outputHash" | cut -d'"' -f2)"
+    newhash="$(nix-build -A goperf.go-modules --no-out-link 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true)"
+    fname="$(nix-instantiate --eval -E 'with import ./. {}; (builtins.unsafeGetAttrPos "version" goperf).file' | cut -d'"' -f2)"
+    ${lib.getExe sd} --string-mode "$oldhash" "$newhash" "$fname"
+  '';
+
+  meta = with lib; {
+    description = "Tools and packages for analyzing Go benchmark results";
+    homepage = "https://cs.opensource.google/go/x/perf";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pbsds ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/heroku/default.nix b/nixpkgs/pkgs/development/tools/heroku/default.nix
index 683e701b07d5..0df1b97b1520 100644
--- a/nixpkgs/pkgs/development/tools/heroku/default.nix
+++ b/nixpkgs/pkgs/development/tools/heroku/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, lib, fetchurl, makeWrapper, nodejs }:
+{ stdenv, lib, fetchzip, makeWrapper, nodejs, writeScript }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "heroku";
-  version = "7.66.4";
+  version = "8.7.1";
 
-  src = fetchurl {
-    url = "https://cli-assets.heroku.com/heroku-v${version}/heroku-v${version}.tar.xz";
-    sha256 = "sha256-AAiC88RBqR5RXeIj39in7hlvI3JNQB6KUwGmt9jo93A=";
+  src = fetchzip {
+    url = "https://cli-assets.heroku.com/versions/8.7.1/3f5e369/heroku-v8.7.1-3f5e369-linux-x64.tar.xz";
+    hash = "sha256-3pCutQBS8N1Yw4JKTvU046UrOxBi0wLRQywxwezAEeU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -22,6 +22,19 @@ stdenv.mkDerivation rec {
       --set HEROKU_DISABLE_AUTOUPDATE 1
   '';
 
+  passthru.updateScript = writeScript "update-heroku" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -I nixpkgs=./. -i bash -p nix-prefetch curl jq common-updater-scripts
+    resp="$(
+        curl -L "https://cli-assets.heroku.com/versions/heroku-linux-x64-tar-xz.json" \
+            | jq '[to_entries[] | { version: .key, url: .value } | select(.version|contains("-")|not)] | sort_by(.version|split(".")|map(tonumber)) | .[-1]'
+    )"
+    url="$(jq <<<"$resp" .url --raw-output)"
+    version="$(jq <<<"$resp" .version --raw-output)"
+    hash="$(nix-prefetch fetchzip --url "$(jq <<<"$resp" .url --raw-output)")"
+    update-source-version heroku "$version" "$hash" "$url"
+  '';
+
   meta = {
     homepage = "https://devcenter.heroku.com/articles/heroku-cli";
     description = "Everything you need to get started using Heroku";
diff --git a/nixpkgs/pkgs/development/tools/konstraint/default.nix b/nixpkgs/pkgs/development/tools/konstraint/default.nix
index f5afe959967a..b60011095f44 100644
--- a/nixpkgs/pkgs/development/tools/konstraint/default.nix
+++ b/nixpkgs/pkgs/development/tools/konstraint/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "konstraint";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "plexsystems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PSJNPN5hd5Tgt6F70II2gMiUiU0irncSefm6Q7WjUDE=";
+    sha256 = "sha256-rZDLnr3FNLNOadmST70p5ZusK+p9SiUmVrnc5TrKuK4=";
   };
-  vendorHash = "sha256-0zWTVE82GaSyWfgbRASpNdO/d4kKOts1XdPspmgfpV8=";
+  vendorHash = "sha256-gaY3U6+Emk6La5wPyT5TvgTwPsh2Ws2t7C8B5T4c46E=";
 
   # Exclude go within .github folder
   excludedPackages = ".github";
diff --git a/nixpkgs/pkgs/development/tools/melange/default.nix b/nixpkgs/pkgs/development/tools/melange/default.nix
index f5a5eb8ee85a..9e2ce1cb0a99 100644
--- a/nixpkgs/pkgs/development/tools/melange/default.nix
+++ b/nixpkgs/pkgs/development/tools/melange/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "melange";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-sEmbfX7W1juymAxcWwDNxI8d/o7NS2S+0TJM6Vi9aQo=";
+    hash = "sha256-3xUSxsY/+66xldkkGahyCun2SoL1njRkJtdqxlMczD8=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -25,7 +25,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorHash = "sha256-IkbXZu6iHRXjWFsLtRBDxwJio5sVVZvHylk1al0S+/c=";
+  vendorHash = "sha256-XrSq55Cz1ixawx9W7jw16tTxyAVZ8h71iA5zO+H8dCg=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix b/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix
index 733966f47062..373f80a2f052 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix
@@ -123,13 +123,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "hydra";
-  version = "2023-11-17";
+  version = "2023-12-01";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "hydra";
-    rev = "8f48e4ddecbf403be35f8243b97d73cb39dd61bb";
-    hash = "sha256-5q/7yz6jJedD8YU3SuYyXtN3qEAlOBRKGZxOcYt/0X8=";
+    rev = "4d1c8505120961f10897b8fe9a070d4e193c9a13";
+    hash = "sha256-vXTuE83GL15mgZHegbllVAsVdDFcWWSayPfZxTJN5ys=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix b/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
index cfcd86f9dc2b..78a04adde797 100644
--- a/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nxpmicro-mfgtools";
-  version = "1.5.125";
+  version = "1.5.139";
 
   src = fetchFromGitHub {
     owner = "nxp-imx";
     repo = "mfgtools";
     rev = "uuu_${version}";
-    sha256 = "sha256-f9Nt303xXZzLSu3GtOEpyaL91WVFUmKO7mxi8UNX3go=";
+    sha256 = "sha256-t5usUGbcdLQlqPpZkNDeGncka9VfkpO7U933Kw/Sm7U=";
   };
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
diff --git a/nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix b/nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix
index 9e048df45767..8109c1e42a36 100644
--- a/nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/segger-ozone/default.nix
@@ -1,14 +1,13 @@
-{ stdenv
+{ lib
+, stdenv
 , fetchurl
+, autoPatchelfHook
 , fontconfig
 , freetype
-, lib
 , libICE
 , libSM
-, udev
 , libX11
 , libXcursor
-, libXext
 , libXfixes
 , libXrandr
 , libXrender
@@ -16,42 +15,45 @@
 
 stdenv.mkDerivation rec {
   pname = "segger-ozone";
-  version = "3.28e";
+  version = "3.30b";
 
-  src = fetchurl {
-    url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${(lib.replaceStrings ["."] [""] version)}_x86_64.tgz";
-    sha256 = "BfmKBAKyTA0V31zkwFLrbT0Xob221KfHa6v0VxKFsSI=";
-  };
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${builtins.replaceStrings ["."] [""] version}_x86_64.tgz";
+      hash = "sha256-W8Fo0q58pAn1aB92CjYARcN3vMLEguvsyozsS7VRArQ=";
+    };
+    i686-linux = fetchurl {
+      url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${builtins.replaceStrings ["."] [""] version}_i386.tgz";
+      hash = "sha256-Xq/69lwF2Ll5VdkYMDNRtc0YUUvWc+XR0FHJXxOLNQ4=";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
 
-  rpath = lib.makeLibraryPath [
+  buildInputs = [
     fontconfig
     freetype
     libICE
     libSM
-    udev
     libX11
     libXcursor
-    libXext
     libXfixes
     libXrandr
     libXrender
-  ]
-  + ":${stdenv.cc.cc.lib}/lib64";
+    stdenv.cc.cc.lib
+  ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     mv Lib lib
     mv * $out
     ln -s $out/Ozone $out/bin
-  '';
-
-  postFixup = ''
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/Ozone" \
-      --set-rpath ${rpath}:$out/lib "$out/Ozone"
 
-    for file in $(find $out/lib -maxdepth 1 -type f -and -name \*.so\*); do
-      patchelf --set-rpath ${rpath}:$out/lib $file
-    done
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -80,6 +82,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.bmilanov ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix b/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
index ea725b013180..aeca3c437ff4 100644
--- a/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
@@ -9,15 +9,15 @@
 
 stdenv.mkDerivation {
   pname = "ycmd";
-  version = "unstable-2022-08-15";
+  version = "unstable-2023-11-06";
   disabled = !python.isPy3k;
 
   # required for third_party directory creation
   src = fetchFromGitHub {
     owner = "ycm-core";
     repo = "ycmd";
-    rev = "323d4b60f077bd07945f25a60c4584843ca851fb";
-    sha256 = "sha256-5IpXMQc3QIkKJkUrOPSRzciLvL1nhQw6wlP+pVnIucE=";
+    rev = "0607eed2bc211f88f82657b7781f4fe66579855b";
+    hash = "sha256-SzEcMQ4lX7NL2/g9tuhA6CaZ8pX/DGs7Fla/gr+RcOU=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix
index a9b76710605e..257819f4ad3b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "1.42.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "kornelski";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-s/piZ8sCdBz5zFW9i7xdVrf7dQiMjQp/ixCDjFh5SLc=";
+    hash = "sha256-DgKGnIA2ovBLja+r+nYZ97UPaWO7a7RXeXa10guZBTc=";
   };
 
-  cargoHash = "sha256-4iJghmSXsaijNCvYyrM3dEsqCDk6zeTU92oP5Qs6tOY=";
+  cargoHash = "sha256-Sv9i8f0ywMNvjA2yvCX+2ZhFuNCovEGiaMxkg/IV36g=";
 
   nativeBuildInputs = [
     makeWrapper
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
   # This is an FHS specific assert depending on glibc location
   checkFlags = [
     "--skip=dependencies::resolve_test"
+    "--skip=run_cargo_deb_command_on_example_dir_with_separate_debug_symbols"
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-update/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-update/default.nix
index 99c10f7d21f6..3b3418f38dc0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-update/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-update/default.nix
@@ -16,14 +16,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-update";
-  version = "13.2.0";
+  version = "13.3.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-yMHGn/RPtYuxS3rHzm87mW7nBUEaSOGsCT7Ckxvhabk=";
+    sha256 = "sha256-owiMVeH7m4LoM8c4qjLyFx3v/+Flzt+C+O8qEuXazvc=";
   };
 
-  cargoHash = "sha256-hO2W0NRV9fGHnnS1kOkQ+e0sFzVSBQk3MOm8qDYbA00=";
+  cargoHash = "sha256-WtNH62DBo6WFOUcHnZxn0Jco4SUmhO0+1wXPRB2wxic=";
 
   nativeBuildInputs = [
     cmake
diff --git a/nixpkgs/pkgs/development/tools/rust/ravedude/default.nix b/nixpkgs/pkgs/development/tools/rust/ravedude/default.nix
index ea5812e5ad1e..aeb44664cf6c 100644
--- a/nixpkgs/pkgs/development/tools/rust/ravedude/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/ravedude/default.nix
@@ -3,28 +3,40 @@
 , fetchCrate
 , pkg-config
 , udev
+, nix-update-script
+, testers
+, ravedude
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ravedude";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-wcY9fvfIn1pWMAh5FI/QFl18CV2xjmRGSwwoRfGvujo=";
+    hash = "sha256-LhPRz3DUMDoe50Hq3yO+2BHpyh5fQ4sMNGLttjkdSZw=";
   };
 
-  cargoHash = "sha256-AOIrB0FRagbA2+JEURF41d+th0AbR++U5WKCcZmh4Os=";
+  cargoHash = "sha256-Uo8wlTAHBkn/WeGPhPP+BU80wjSyNHsWQj8QvA7mHrk=";
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ udev ];
 
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion {
+      package = ravedude;
+      version = "v${version}";
+    };
+  };
+
   meta = with lib; {
     description = "Tool to easily flash code onto an AVR microcontroller with avrdude";
     homepage = "https://crates.io/crates/ravedude";
     license = with licenses; [ mit /* or */ asl20 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ rvarago ];
+    mainProgram = "ravedude";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/sca2d/default.nix b/nixpkgs/pkgs/development/tools/sca2d/default.nix
index eb28e7acb026..eb745e5bd2c6 100644
--- a/nixpkgs/pkgs/development/tools/sca2d/default.nix
+++ b/nixpkgs/pkgs/development/tools/sca2d/default.nix
@@ -16,6 +16,8 @@ let
           sha256 = "sha256-ctdPPKPSD4weidyhyj7RCV89baIhmuxucF3/Ojx1Efo=";
         };
 
+        patches = [ ];
+
         disabledTestPaths = [ "tests/test_nearley/test_nearley.py" ];
       });
     };
diff --git a/nixpkgs/pkgs/development/tools/twilio-cli/default.nix b/nixpkgs/pkgs/development/tools/twilio-cli/default.nix
index 9a89aa22c809..11a2bfe4e24b 100644
--- a/nixpkgs/pkgs/development/tools/twilio-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/twilio-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "twilio-cli";
-  version = "5.16.2";
+  version = "5.16.3";
 
   src = fetchzip {
     url = "https://twilio-cli-prod.s3.amazonaws.com/twilio-v${finalAttrs.version}/twilio-v${finalAttrs.version}.tar.gz";
-    hash = "sha256-5YIv4Y46PnyvYt1GQZUrL1/00LldbGDqGjjpys3Sphs=";
+    hash = "sha256-CaH0NRK0KvR2F8/Fov16uzig5BvwRuUNf4SDFDu/SLs=";
   };
 
   buildInputs = [ nodejs-slim ];
diff --git a/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch b/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
index 6109101b7ba9..75b8f0cf8dfe 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
+++ b/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
@@ -214,7 +214,7 @@ index edae9b477..782904f49 100644
          cloud init command '%{cmd}' failed on guest '%{guest_name}'.
        command_deprecated: |-
          The command 'vagrant %{name}' has been deprecated and is no longer functional
-@@ -1238,23 +1238,6 @@ en:
+@@ -1245,30 +1245,6 @@ en:
          following command:
  
            vagrant plugin install --local
@@ -225,12 +225,19 @@ index edae9b477..782904f49 100644
 -        again.
 -      plugin_missing_library: |-
 -        Vagrant failed to install the requested plugin because it depends
--        on a library which is not currently installed on this system. The
--        following library is required by the '%{name}' plugin:
+-        on development files for a library which is not currently installed
+-        on this system. The following library is required by the '%{name}'
+-        plugin:
 -
 -          %{library}
 -
--        Please install the library and then run the command again.
+-        If a package manager is used on this system, please install the development
+-        package for the library. The name of the package will be similar to:
+-
+-          %{library}-dev or %{library}-devel
+-
+-        After the library and development files have been installed, please
+-        run the command again.
 -      plugin_missing_ruby_dev: |-
 -        Vagrant failed to install the requested plugin because the Ruby header
 -        files could not be found. Install the ruby development package for your
diff --git a/nixpkgs/pkgs/development/tools/vagrant/default.nix b/nixpkgs/pkgs/development/tools/vagrant/default.nix
index 3b03e4426ba6..5dc9e46671e9 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/default.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/default.nix
@@ -5,9 +5,9 @@
 let
   # NOTE: bumping the version and updating the hash is insufficient;
   # you must use bundix to generate a new gemset.nix in the Vagrant source.
-  version = "2.3.4";
+  version = "2.3.7";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  sha256 = "sha256-Q+sUYcbc/SOgw4ZXDmwqh24G0jiLvA8fDJyZ45OqLw8=";
+  hash = "sha256-+oqWMZqnuf9fSpkbd8vzf1SVSdhHN2JLzr76jyAEv0U=";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
@@ -21,7 +21,7 @@ let
       vagrant = {
         source = {
           type = "url";
-          inherit url sha256;
+          inherit url hash;
         };
         inherit version;
       };
@@ -48,7 +48,7 @@ in buildRubyGem rec {
 
   doInstallCheck = true;
   dontBuild = false;
-  src = fetchurl { inherit url sha256; };
+  src = fetchurl { inherit url hash; };
 
   patches = [
     ./unofficial-installation-nowarn.patch
@@ -98,13 +98,6 @@ in buildRubyGem rec {
     HOME="$(mktemp -d)" $out/bin/vagrant init --output - > /dev/null
   '';
 
-  # `patchShebangsAuto` patches this one script which is intended to run
-  # on foreign systems.
-  postFixup = ''
-    sed -i -e '1c#!/bin/sh -' \
-      $out/lib/ruby/gems/*/gems/vagrant-*/plugins/provisioners/salt/bootstrap-salt.sh
-  '';
-
   passthru = {
     inherit ruby deps;
   };
diff --git a/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix b/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
index 438d436869f6..d31b76a4e7f8 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s8b3bsajwjyrjs53h0nrfrpzzgi8igsrslprhr6fgl80ig3plld";
+      sha256 = "sha256-z0VkRqFk3JU02ULQ+xQbywekzrJgz1YPDul//Ov5ajU=";
       type = "gem";
     };
-    version = "0.9.0";
+    version = "0.11.0";
   };
   fog-xml = {
     dependencies = ["fog-core" "nokogiri"];
@@ -109,10 +109,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy";
+      sha256 = "sha256-RrLSRMxv8BqJv2EnRpDAn9vcpHqErp6sOQOegSMa7nw=";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.8.2";
   };
   multi_json = {
     groups = ["default"];
@@ -130,20 +130,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11w59ga9324yx6339dgsflz3dsqq2mky1qqdwcg6wi5s1bf2yldi";
+      sha256 = "sha256-INyAC4++TE9LWxZOaqOrgqNxvLJ+toXBZpYcNN2KItc=";
       type = "gem";
     };
-    version = "1.13.6";
+    version = "1.15.2";
   };
   racc = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
+      sha256 = "sha256-r2QSSDb908AOgwcD1/hz6l3qvekj83AGo59aXg2hY4c=";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.7.1";
   };
   rexml = {
     groups = ["default"];
@@ -155,6 +155,26 @@
     };
     version = "3.2.5";
   };
+  xml-simple = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "sha256-0hEx5RnIbxpbwrbS1X1G5pmOR/GO0kmyXK2GQz29aV0=";
+      type = "gem";
+    };
+    version = "1.1.9";
+  };
+  diffy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "sha256-NrQv++UTjdxWGCEHwkrY1rBm7P0odoKfOR46SZPYmuE=";
+      type = "gem";
+    };
+    version = "3.4.2";
+  };
   ruby-libvirt = {
     groups = ["default"];
     platforms = [];
@@ -166,14 +186,14 @@
     version = "0.8.0";
   };
   vagrant-libvirt = {
-    dependencies = ["fog-core" "fog-libvirt" "nokogiri" "rexml"];
+    dependencies = ["fog-core" "fog-libvirt" "nokogiri" "rexml" "xml-simple" "diffy"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j31y6sjhslj5yr0ssvb36ngm7prfsbdfj6131757jl0l0ri8pyv";
+      sha256 = "sha256-NMiRjrVQo2Ui9nOJwpDmNJUk+95gsT85pwFMIiw3bwQ=";
       type = "gem";
     };
-    version = "0.8.2";
+    version = "0.12.2";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/vsce/default.nix b/nixpkgs/pkgs/development/tools/vsce/default.nix
index caddb568c65f..911ee57a6932 100644
--- a/nixpkgs/pkgs/development/tools/vsce/default.nix
+++ b/nixpkgs/pkgs/development/tools/vsce/default.nix
@@ -12,13 +12,13 @@
 
 buildNpmPackage rec {
   pname = "vsce";
-  version = "2.21.1";
+  version = "2.22.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vscode-vsce";
     rev = "v${version}";
-    hash = "sha256-cFqjoWQu/6cvbT1vxReERybuKpeL4LCVl5qhvSwr6fs=";
+    hash = "sha256-zpZ/PsqZ9yRDKTXkSrcBgSxYer7JdjNZqsseHwfzkEY=";
   };
 
   npmDepsHash = "sha256-Difk9a9TYmfwzP9SawEuaxm7iHVjdfO+FxFCE7aEMzM=";
diff --git a/nixpkgs/pkgs/development/tools/yq-go/default.nix b/nixpkgs/pkgs/development/tools/yq-go/default.nix
index 9dbbd19d4680..35066727de98 100644
--- a/nixpkgs/pkgs/development/tools/yq-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/yq-go/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.40.1";
+  version = "4.40.3";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    hash = "sha256-S2hsZkospf1VMH/fDLiALEraOA8dbG62JejGY2T/tRU=";
+    hash = "sha256-id8KhHOOpRruANLGxdHIvs86ZEIDzhdbXtgXqWtl5Tc=";
   };
 
-  vendorHash = "sha256-ggb8ZX2KBj/oY+vomCme/7KlnfsykMm4l027kwlxpWY=";
+  vendorHash = "sha256-9gLtVO4HFra1FaFjTwE02x8q1MkrI/Vo/mYZ2iIa7cU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -23,7 +23,7 @@ buildGoModule rec {
   '';
 
   passthru.tests = {
-    simple = runCommand "${pname}-test" {} ''
+    simple = runCommand "${pname}-test" { } ''
       echo "test: 1" | ${yq-go}/bin/yq eval -j > $out
       [ "$(cat $out | tr -d $'\n ')" = '{"test":1}' ]
     '';
diff --git a/nixpkgs/pkgs/development/tools/zed/default.nix b/nixpkgs/pkgs/development/tools/zed/default.nix
index 557e0aff6e27..884b73e9ede8 100644
--- a/nixpkgs/pkgs/development/tools/zed/default.nix
+++ b/nixpkgs/pkgs/development/tools/zed/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "zed";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "brimdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-d/XJirgJlS4jTlmATQpFH+Yn7M4EdY0yNDKM1A2NjoA=";
+    sha256 = "sha256-jW++0am4UfMR9f4Qib7LSald06MzjDVTBWJKV4Ebbsw=";
   };
 
-  vendorHash = "sha256-n/7HV3dyV8qsJeEk+vikZvuM5G7nf0QOwVBtInJdU2k=";
+  vendorHash = "sha256-BWvMy1dc3PzAc3kDTXtI6Y8kjRGLWR+aUleItg5EgRU=";
 
   subPackages = [ "cmd/zed" "cmd/zq" ];
 
diff --git a/nixpkgs/pkgs/games/amoeba/default.nix b/nixpkgs/pkgs/games/amoeba/default.nix
index 0e21a9a1b9ea..445c86c3bd16 100644
--- a/nixpkgs/pkgs/games/amoeba/default.nix
+++ b/nixpkgs/pkgs/games/amoeba/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchurl, amoeba-data, alsa-lib, expat, freetype, gtk2, libvorbis, libGLU, xorg, pkg-config }:
+{ lib, stdenv, fetchurl, amoeba-data, alsa-lib, expat, freetype, gtk3, libvorbis, libGLU, xorg, pkg-config, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "amoeba";
   version = "1.1";
-  debver = "29.1";
+  debver = "31";
 
   srcs = [
     (fetchurl {
       url = "http://http.debian.net/debian/pool/contrib/a/amoeba/amoeba_${version}.orig.tar.gz";
-      sha256 = "1hyycw4r36ryka2gab9vzkgs8gq4gqhk08vn29cwak95w0rahgim";
+      hash = "sha256-NT6oMuAlTcVZEnYjMCF+BD+k3/w7LfWEmj6bkQln3sM=";
     })
     (fetchurl {
       url = "http://http.debian.net/debian/pool/contrib/a/amoeba/amoeba_${version}-${debver}.debian.tar.xz";
-      sha256 = "1xgi2sqzq97w6hd3dcyq6cka8xmp6nr25qymzhk52cwqh7qb75p3";
+      hash = "sha256-Ga/YeXbPXjkG/6qd9Z201d14Hlj/Je6DxgzeIQOqrWc=";
     })
   ];
   sourceRoot = "amoeba-1.1.orig";
@@ -22,17 +22,17 @@ stdenv.mkDerivation rec {
   '';
   postPatch = ''
     sed -i packer/pakfile.cpp -e 's|/usr/share/amoeba|${amoeba-data}/share/amoeba|'
-    sed -i main/linux-config/linux-config.cpp -e 's|libgdk-x11-2.0.so.0|${gtk2}/lib/&|'
-    sed -i main/linux-config/linux-config.cpp -e 's|libgtk-x11-2.0.so.0|${gtk2}/lib/&|'
+    sed -i main/linux-config/linux-config.cpp -e 's|libgdk-x11-2.0.so.0|${gtk3}/lib/&|'
+    sed -i main/linux-config/linux-config.cpp -e 's|libgtk-x11-2.0.so.0|${gtk3}/lib/&|'
   '';
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsa-lib expat freetype gtk2 libvorbis libGLU xorg.libXxf86vm ];
+  nativeBuildInputs = [ pkg-config installShellFiles ];
+  buildInputs = [ alsa-lib expat freetype gtk3 libvorbis libGLU xorg.libXxf86vm ];
 
   installPhase = ''
-    mkdir -p $out/bin $out/share/man/man1/
+    mkdir -p $out/bin
     cp amoeba $out/bin/
-    cp ../debian/amoeba.1 $out/share/man/man1/
+    installManPage ../debian/amoeba.1
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/games/chiaki4deck/default.nix b/nixpkgs/pkgs/games/chiaki4deck/default.nix
index 850e67eefcef..01c505d60f27 100644
--- a/nixpkgs/pkgs/games/chiaki4deck/default.nix
+++ b/nixpkgs/pkgs/games/chiaki4deck/default.nix
@@ -20,13 +20,13 @@
 
 mkDerivation rec {
   pname = "chiaki4deck";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "streetpea";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-udSGtpBUbxEZU9l+jLmUWJbkaCxKGoPuKAaYVmEEezk=";
+    hash = "sha256-W/t9uYApt8j5UMjtVWhFtq+IHmu9vi6M92I8N4kRtEk=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/games/doom-ports/zandronum/add_gitinfo.patch b/nixpkgs/pkgs/games/doom-ports/zandronum/add_gitinfo.patch
index 4d8d7c837961..33f51ecb125d 100644
--- a/nixpkgs/pkgs/games/doom-ports/zandronum/add_gitinfo.patch
+++ b/nixpkgs/pkgs/games/doom-ports/zandronum/add_gitinfo.patch
@@ -1,15 +1,15 @@
-diff -Naur blah/src/gitinfo.h blah2/src/gitinfo.h
---- blah/src/gitinfo.h	1969-12-31 16:00:00.000000000 -0800
-+++ blah2/src/gitinfo.h	2017-09-15 01:44:43.953562714 -0700
+diff -r 4178904d7698 src/gitinfo.h
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/src/gitinfo.h	Fri Dec 01 13:02:42 2023 -0300
 @@ -0,0 +1,11 @@
-+// dd3c3b57023f64cda84f09ed13e4c03a4ad2b920
++// 4178904d769879e6c2919fb647ee6dd2736399e9
 +//
 +// This file was automatically generated by the
 +// updaterevision tool. Do not edit by hand.
 +
-+#define GIT_DESCRIPTION "ZA_3.0-0-dd3c3b57023f"
-+#define GIT_HASH "dd3c3b57023f64cda84f09ed13e4c03a4ad2b920"
-+#define GIT_TIME "2017-09-01 06:40:50 -0500"
-+#define HG_REVISION_NUMBER 1504266050
-+#define HG_REVISION_HASH_STRING "dd3c3b57023f"
-+#define HG_TIME "170901-1140"
++#define GIT_DESCRIPTION "ZA_3.0.1-572-4178904d7698"
++#define GIT_HASH "4178904d769879e6c2919fb647ee6dd2736399e9"
++#define GIT_TIME "2021-12-11 16:35:55 -0500"
++#define HG_REVISION_NUMBER 1639258555
++#define HG_REVISION_HASH_STRING "4178904d7698"
++#define HG_TIME "211211-2135"
diff --git a/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix b/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix
index 436a8738b5b1..0006ea3c7ce5 100644
--- a/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix
@@ -1,36 +1,54 @@
-{ stdenv, lib, fetchhg, cmake, pkg-config, makeWrapper, callPackage
-, soundfont-fluid, SDL, libGL, glew, bzip2, zlib, libjpeg, fluidsynth, openssl, gtk2, python3, game-music-emu
+{ stdenv
+, lib
+, fetchhg
+, cmake
+, pkg-config
+, makeWrapper
+, callPackage
+, soundfont-fluid
+, SDL_compat
+, libGL
+, glew
+, bzip2
+, zlib
+, libjpeg
+, fluidsynth
+, fmodex
+, openssl
+, gtk2
+, python3
+, game-music-emu
 , serverOnly ? false
 }:
 
 let
   suffix = lib.optionalString serverOnly "-server";
-  fmod = callPackage ./fmod.nix { };
+  fmod = fmodex; # fmodex is on nixpkgs now
   sqlite = callPackage ./sqlite.nix { };
   clientLibPath = lib.makeLibraryPath [ fluidsynth ];
 
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "zandronum${suffix}";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchhg {
-    url = "https://hg.osdn.net/view/zandronum/zandronum-stable";
-    rev = "ZA_${version}";
-    sha256 = "16v5b6wfrmabs3ky6isbfhlrqdjrr1pvfxlxwk0im02kcpxxw9qw";
+    # expired ssl certificate
+    url = "http://hg.osdn.net/view/zandronum/zandronum-stable";
+    rev = "4178904d7698";
+    hash = "sha256-5t36CoRPPjDKQE0DVSv2Qqpqko6JAXBI53tuAYiylHQ=";
   };
 
   # zandronum tries to download sqlite now when running cmake, don't let it
-
   # it also needs the current mercurial revision info embedded in gitinfo.h
   # otherwise, the client will fail to connect to servers because the
   # protocol version doesn't match.
-
-  patches = [ ./zan_configure_impurity.patch ./add_gitinfo.patch ./dont_update_gitinfo.patch ];
+  patches = [ ./zan_configure_impurity.patch ./dont_update_gitinfo.patch ./add_gitinfo.patch ];
 
   # I have no idea why would SDL and libjpeg be needed for the server part!
   # But they are.
-  buildInputs = [ openssl bzip2 zlib SDL libjpeg sqlite game-music-emu ]
-             ++ lib.optionals (!serverOnly) [ libGL glew fmod fluidsynth gtk2 ];
+  buildInputs = [ openssl bzip2 zlib SDL_compat libjpeg sqlite game-music-emu ]
+    ++ lib.optionals (!serverOnly) [ libGL glew fmod fluidsynth gtk2 ];
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper python3 ];
 
@@ -53,6 +71,7 @@ in stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  # Won't work well without C or en_US. Setting LANG might not be enough if the user is making use of LC_* so wrap with LC_ALL instead
   installPhase = ''
     mkdir -p $out/bin
     mkdir -p $out/lib/zandronum
@@ -61,6 +80,8 @@ in stdenv.mkDerivation rec {
        ${lib.optionalString (!serverOnly) "liboutput_sdl.so"} \
        $out/lib/zandronum
     makeWrapper $out/lib/zandronum/zandronum${suffix} $out/bin/zandronum${suffix}
+    wrapProgram $out/bin/zandronum${suffix} \
+      --set LC_ALL="C"
   '';
 
   postFixup = lib.optionalString (!serverOnly) ''
@@ -76,7 +97,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://zandronum.com/";
     description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software";
     maintainers = with maintainers; [ lassulus MP2E ];
-    license = licenses.unfreeRedistributable;
+    license = licenses.sleepycat;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch b/nixpkgs/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch
index d6dd3a58f457..d1cf831819c3 100644
--- a/nixpkgs/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch
+++ b/nixpkgs/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch
@@ -1,10 +1,10 @@
-diff -r dd3c3b57023f src/CMakeLists.txt
---- a/src/CMakeLists.txt	Fri Sep 01 06:40:50 2017 -0500
-+++ b/src/CMakeLists.txt	Fri Sep 15 01:46:34 2017 -0700
-@@ -636,15 +636,6 @@
-	add_definitions( -DBACKPATCH )
+diff -r 4178904d7698 src/CMakeLists.txt
+--- a/src/CMakeLists.txt	Sat Dec 11 16:35:55 2021 -0500
++++ b/src/CMakeLists.txt	Fri Dec 01 13:00:32 2023 -0300
+@@ -642,15 +642,6 @@
+ 	add_definitions( -DBACKPATCH )
  endif( BACKPATCH )
-
+ 
 -# Update gitinfo.h
 -
 -get_target_property( UPDATEREVISION_EXE updaterevision LOCATION )
@@ -15,5 +15,5 @@ diff -r dd3c3b57023f src/CMakeLists.txt
 -	DEPENDS updaterevision )
 -
  # Libraries ZDoom needs
-
+ 
  message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
diff --git a/nixpkgs/pkgs/games/doom-ports/zandronum/sqlite.nix b/nixpkgs/pkgs/games/doom-ports/zandronum/sqlite.nix
index c7687f89589d..67dbb84f515a 100644
--- a/nixpkgs/pkgs/games/doom-ports/zandronum/sqlite.nix
+++ b/nixpkgs/pkgs/games/doom-ports/zandronum/sqlite.nix
@@ -8,8 +8,8 @@ stdenv.mkDerivation {
   version = "3.0";
 
   src = fetchurl {
-    url = "https://www.sqlite.org/2017/sqlite-autoconf-3180000.tar.gz";
-    hash = "sha256-N1dhJGOXbn0IxenwrzAhYT/CS7z+HFEZfWd2uezprFw=";
+    url = "https://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz";
+    sha256 = "1qxwkfvd185dfcqbakrzikrsw6ffr5jp1gl3dch9dsdyjvmw745x";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch b/nixpkgs/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch
index 0cf7150502e4..9dafc6219d29 100644
--- a/nixpkgs/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch
+++ b/nixpkgs/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch
@@ -1,13 +1,13 @@
-diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
---- a/sqlite/CMakeLists.txt	Sun Sep 10 18:53:00 2017 +0200
-+++ b/sqlite/CMakeLists.txt	Fri Sep 15 00:12:11 2017 -0700
-@@ -1,62 +1,5 @@
+diff -r 4178904d7698 sqlite/CMakeLists.txt
+--- a/sqlite/CMakeLists.txt	Sat Dec 11 16:35:55 2021 -0500
++++ b/sqlite/CMakeLists.txt	Fri Dec 01 12:57:55 2023 -0300
+@@ -1,65 +1,5 @@
  cmake_minimum_required( VERSION 2.4 )
-
+ 
 -# [BB/EP] Download SQLite archive and extract the sources if necessary.
--set( ZAN_SQLITE_VERSION 3180000 ) # SQL version 3.18.0
--set( ZAN_SQLITE_YEAR 2017 )
--set( ZAN_SQLITE_SHA1 "74559194e1dd9b9d577cac001c0e9d370856671b" )
+-set( ZAN_SQLITE_VERSION 3360000 ) # SQL version 3.36.0
+-set( ZAN_SQLITE_YEAR 2021 )
+-set( ZAN_SQLITE_SHA1 "a4bcf9e951bfb9745214241ba08476299fc2dc1e" )
 -set( ZAN_SQLITE_DOWNLOAD_NAME "sqlite-autoconf-${ZAN_SQLITE_VERSION}" )
 -set( ZAN_SQLITE_TEMP_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz" )
 -set( ZAN_SQLITE_HASHED_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/sqlite-${ZAN_SQLITE_SHA1}.tar.gz" )
@@ -15,38 +15,41 @@ diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
 -if( IS_DIRECTORY ${ZAN_SQLITE_HASHED_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_HASHED_ARCHIVE} )
 -	message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_HASHED_ARCHIVE} must be a valid file.\n"
 -				"SQLite: Please remove it and try again." )
--elseif( NOT EXISTS ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-elseif( ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sqlite3.c ) OR ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sqlite3.h ) OR ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sqlite3ext.h ) )
 -
--	if( IS_DIRECTORY ${ZAN_SQLITE_TEMP_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_TEMP_ARCHIVE} )
--		message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_TEMP_ARCHIVE} must be a valid file.\n"
+-	if( NOT EXISTS ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-		if( IS_DIRECTORY ${ZAN_SQLITE_TEMP_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_TEMP_ARCHIVE} )
+-			message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_TEMP_ARCHIVE} must be a valid file.\n"
 -					"SQLite: Please remove it and try again." )
--	endif()
--	message( STATUS "SQLite: downloading the archive..." )
+-		endif()
 -
--	file( DOWNLOAD https://www.sqlite.org/${ZAN_SQLITE_YEAR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz ${ZAN_SQLITE_TEMP_ARCHIVE}
--			SHOW_PROGRESS
--			STATUS ZAN_SQLITE_DOWNLOAD_STATUS )
+-		message( STATUS "SQLite: downloading the archive..." )
 -
--	# Report any problem if present and abort immediately.
--	list( GET ZAN_SQLITE_DOWNLOAD_STATUS 0 ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
--	if( ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
--		list( GET ZAN_SQLITE_DOWNLOAD_STATUS 1 ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE )
--		message( FATAL_ERROR "SQLite: download failed. Reason: ${ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE}" )
--	endif()
+-		file( DOWNLOAD https://www.sqlite.org/${ZAN_SQLITE_YEAR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz ${ZAN_SQLITE_TEMP_ARCHIVE}
+-				SHOW_PROGRESS
+-				STATUS ZAN_SQLITE_DOWNLOAD_STATUS )
+-
+-		# Report any problem if present and abort immediately.
+-		list( GET ZAN_SQLITE_DOWNLOAD_STATUS 0 ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-		if( ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-			list( GET ZAN_SQLITE_DOWNLOAD_STATUS 1 ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE )
+-			message( FATAL_ERROR "SQLite: download failed. Reason: ${ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE}" )
+-		endif()
 -
--	# Check the hash. Abort immediately if it's not valid (something is wrong with the download)
--	file( SHA1 ${ZAN_SQLITE_TEMP_ARCHIVE} ZAN_SQLITE_CURRENT_SHA1 )
--	if( NOT ZAN_SQLITE_CURRENT_SHA1 STREQUAL ZAN_SQLITE_SHA1 )
--		message( FATAL_ERROR "SQLite: download failed. The downloaded file has a different hash:\n"
--					"SQLite:    valid:      ${ZAN_SQLITE_SHA1}\n"
--					"SQLite:    downloaded: ${ZAN_SQLITE_CURRENT_SHA1}" )
+-		# Check the hash. Abort immediately if it's not valid (something is wrong with the download)
+-		file( SHA1 ${ZAN_SQLITE_TEMP_ARCHIVE} ZAN_SQLITE_CURRENT_SHA1 )
+-		if( NOT ZAN_SQLITE_CURRENT_SHA1 STREQUAL ZAN_SQLITE_SHA1 )
+-			message( FATAL_ERROR "SQLite: download failed. The downloaded file has a different hash:\n"
+-						"SQLite:    valid:      ${ZAN_SQLITE_SHA1}\n"
+-						"SQLite:    downloaded: ${ZAN_SQLITE_CURRENT_SHA1}" )
+-		endif()
+-
+-		# Rename the archive.
+-		execute_process( COMMAND ${CMAKE_COMMAND} -E rename ${ZAN_SQLITE_TEMP_ARCHIVE} ${ZAN_SQLITE_HASHED_ARCHIVE} )
 -	endif()
 -
 -	message( STATUS "SQLite: saving the source files into the 'sqlite' directory." )
 -
--	# Rename the archive.
--	execute_process( COMMAND ${CMAKE_COMMAND} -E rename ${ZAN_SQLITE_TEMP_ARCHIVE} ${ZAN_SQLITE_HASHED_ARCHIVE} )
--
 -	# Extract the archive.
 -	execute_process( COMMAND ${CMAKE_COMMAND} -E tar xzf ${ZAN_SQLITE_HASHED_ARCHIVE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
 -
@@ -61,5 +64,6 @@ diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
 -	message( STATUS "SQLite: done." )
 -endif()
 -
- add_library( sqlite3 sqlite3.c )
- target_link_libraries( sqlite3 ${CMAKE_DL_LIBS} )
+ # [BB] Silence all GCC warnings
+ IF ( CMAKE_COMPILER_IS_GNUCXX )
+ 	ADD_DEFINITIONS ( -w )
diff --git a/nixpkgs/pkgs/games/gcompris/default.nix b/nixpkgs/pkgs/games/gcompris/default.nix
index 4a5670bb9c3e..a9e9f860d852 100644
--- a/nixpkgs/pkgs/games/gcompris/default.nix
+++ b/nixpkgs/pkgs/games/gcompris/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   version = "3.3";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
+    url = "mirror://kde/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
     hash = "sha256-8hqiq1wYw4irbOXCrwcJqTMuLISzSmSqPuw2Rn8XzQA=";
   };
 
diff --git a/nixpkgs/pkgs/games/openttd/jgrpp.nix b/nixpkgs/pkgs/games/openttd/jgrpp.nix
index b8b071697667..a8fce07cdb34 100644
--- a/nixpkgs/pkgs/games/openttd/jgrpp.nix
+++ b/nixpkgs/pkgs/games/openttd/jgrpp.nix
@@ -2,13 +2,13 @@
 
 openttd.overrideAttrs (oldAttrs: rec {
   pname = "openttd-jgrpp";
-  version = "0.55.3";
+  version = "0.56.0";
 
   src = fetchFromGitHub rec {
     owner = "JGRennison";
     repo = "OpenTTD-patches";
     rev = "jgrpp-${version}";
-    hash = "sha256-E1+pXpXNHOu9nPTGSY8baVaKf1Um6IGDjpi1MmENez8=";
+    hash = "sha256-J5xDg8c5Vvgu0LBZnt7uMJ5etbqmCPlEeizR7/Uj8K0=";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ zstd ];
diff --git a/nixpkgs/pkgs/games/runelite/default.nix b/nixpkgs/pkgs/games/runelite/default.nix
index 88c27d864cf1..9d390292733f 100644
--- a/nixpkgs/pkgs/games/runelite/default.nix
+++ b/nixpkgs/pkgs/games/runelite/default.nix
@@ -6,6 +6,7 @@
 , jre
 , xorg
 , gitUpdater
+, libGL
 }:
 
 maven.buildMavenPackage rec {
@@ -45,7 +46,7 @@ maven.buildMavenPackage rec {
     ln -s ${desktop}/share/applications/RuneLite.desktop $out/share/applications/RuneLite.desktop
 
     makeWrapper ${jre}/bin/java $out/bin/runelite \
-      --prefix LD_LIBRARY_PATH : "${xorg.libXxf86vm}/lib" \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ xorg.libXxf86vm libGL ]}" \
       --add-flags "-jar $out/share/RuneLite.jar"
   '';
 
diff --git a/nixpkgs/pkgs/games/starsector/default.nix b/nixpkgs/pkgs/games/starsector/default.nix
index e1bc4a8dbbcf..2d70022049e1 100644
--- a/nixpkgs/pkgs/games/starsector/default.nix
+++ b/nixpkgs/pkgs/games/starsector/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchzip
 , libXxf86vm
+, libGL
 , makeWrapper
 , openal
 , openjdk
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ copyDesktopItems makeWrapper ];
-  buildInputs = [ xorg.libXxf86vm openal ];
+  buildInputs = [ xorg.libXxf86vm openal libGL ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix
index 424781dd8958..aebe85f891bd 100644
--- a/nixpkgs/pkgs/games/ultrastardx/default.nix
+++ b/nixpkgs/pkgs/games/ultrastardx/default.nix
@@ -31,13 +31,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "2023.9.0";
+  version = "2023.11.0";
 
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
     rev = "v${version}";
-    hash = "sha256-KvYfWdpgN72F8Y5iFNba0SCjPoS33O3FAdrrC49xoGo=";
+    hash = "sha256-y+6RptHOYtNQXnWIe+e0MPyGK7t6x4+FTUQZkQSI3OA=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/nixpkgs/pkgs/misc/documentation-highlighter/LICENSE b/nixpkgs/pkgs/misc/documentation-highlighter/LICENSE
index 422deb7350fe..2250cc7eca9b 100644
--- a/nixpkgs/pkgs/misc/documentation-highlighter/LICENSE
+++ b/nixpkgs/pkgs/misc/documentation-highlighter/LICENSE
@@ -1,24 +1,29 @@
-Copyright (c) 2006, Ivan Sagalaev
+BSD 3-Clause License
+
+Copyright (c) 2006, Ivan Sagalaev.
 All rights reserved.
+
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
 
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of highlight.js nor the names of its contributors 
-      may be used to endorse or promote products derived from this software 
-      without specific prior written permission.
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
 
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/nixpkgs/pkgs/misc/documentation-highlighter/README.md b/nixpkgs/pkgs/misc/documentation-highlighter/README.md
index f4baa3c8e001..569c90affed9 100644
--- a/nixpkgs/pkgs/misc/documentation-highlighter/README.md
+++ b/nixpkgs/pkgs/misc/documentation-highlighter/README.md
@@ -1,132 +1,30 @@
 This file was generated with pkgs/misc/documentation-highlighter/update.sh
 
-# Highlight.js
+# Highlight.js CDN Assets
 
-[![Build Status](https://travis-ci.org/isagalaev/highlight.js.svg?branch=master)](https://travis-ci.org/isagalaev/highlight.js)
+[![install size](https://packagephobia.now.sh/badge?p=highlight.js)](https://packagephobia.now.sh/result?p=highlight.js)
 
-Highlight.js is a syntax highlighter written in JavaScript. It works in
-the browser as well as on the server. It works with pretty much any
-markup, doesn’t depend on any framework and has automatic language
-detection.
-
-## Getting Started
-
-The bare minimum for using highlight.js on a web page is linking to the
-library along with one of the styles and calling
-[`initHighlightingOnLoad`][1]:
-
-```html
-<link rel="stylesheet" href="/path/to/styles/default.css">
-<script src="/path/to/highlight.pack.js"></script>
-<script>hljs.initHighlightingOnLoad();</script>
-```
-
-This will find and highlight code inside of `<pre><code>` tags; it tries
-to detect the language automatically. If automatic detection doesn’t
-work for you, you can specify the language in the `class` attribute:
-
-```html
-<pre><code class="html">...</code></pre>
-```
-
-The list of supported language classes is available in the [class
-reference][2].  Classes can also be prefixed with either `language-` or
-`lang-`.
-
-To disable highlighting altogether use the `nohighlight` class:
-
-```html
-<pre><code class="nohighlight">...</code></pre>
-```
-
-## Custom Initialization
-
-When you need a bit more control over the initialization of
-highlight.js, you can use the [`highlightBlock`][3] and [`configure`][4]
-functions. This allows you to control *what* to highlight and *when*.
-
-Here’s an equivalent way to calling [`initHighlightingOnLoad`][1] using
-jQuery:
-
-```javascript
-$(document).ready(function() {
-  $('pre code').each(function(i, block) {
-    hljs.highlightBlock(block);
-  });
-});
-```
-
-You can use any tags instead of `<pre><code>` to mark up your code. If
-you don't use a container that preserve line breaks you will need to
-configure highlight.js to use the `<br>` tag:
+**This package contains only the CDN build assets of highlight.js.**
 
-```javascript
-hljs.configure({useBR: true});
+This may be what you want if you'd like to install the pre-built distributable highlight.js client-side assets via NPM. If you're wanting to use highlight.js mainly on the server-side you likely want the [highlight.js][1] package instead.
 
-$('div.code').each(function(i, block) {
-  hljs.highlightBlock(block);
-});
-```
+To access these files via CDN:<br>
+https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@latest/build/
 
-For other options refer to the documentation for [`configure`][4].
+**If you just want a single .js file with the common languages built-in:
+<https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@latest/build/highlight.min.js>**
 
+---
 
-## Web Workers
+## Highlight.js
 
-You can run highlighting inside a web worker to avoid freezing the browser
-window while dealing with very big chunks of code.
-
-In your main script:
-
-```javascript
-addEventListener('load', function() {
-  var code = document.querySelector('#code');
-  var worker = new Worker('worker.js');
-  worker.onmessage = function(event) { code.innerHTML = event.data; }
-  worker.postMessage(code.textContent);
-})
-```
-
-In worker.js:
-
-```javascript
-onmessage = function(event) {
-  importScripts('<path>/highlight.pack.js');
-  var result = self.hljs.highlightAuto(event.data);
-  postMessage(result.value);
-}
-```
-
-
-## Getting the Library
-
-You can get highlight.js as a hosted, or custom-build, browser script or
-as a server module. Right out of the box the browser script supports
-both AMD and CommonJS, so if you wish you can use RequireJS or
-Browserify without having to build from source. The server module also
-works perfectly fine with Browserify, but there is the option to use a
-build specific to browsers rather than something meant for a server.
-Head over to the [download page][5] for all the options.
-
-**Don't link to GitHub directly.** The library is not supposed to work straight
-from the source, it requires building. If none of the pre-packaged options
-work for you refer to the [building documentation][6].
-
-**The CDN-hosted package doesn't have all the languages.** Otherwise it'd be
-too big. If you don't see the language you need in the ["Common" section][5],
-it can be added manually:
-
-```html
-<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.4.0/languages/go.min.js"></script>
-```
-
-**On Almond.** You need to use the optimizer to give the module a name. For
-example:
-
-```
-r.js -o name=hljs paths.hljs=/path/to/highlight out=highlight.js
-```
+Highlight.js is a syntax highlighter written in JavaScript. It works in
+the browser as well as on the server. It works with pretty much any
+markup, doesn’t depend on any framework, and has automatic language
+detection.
 
+If you'd like to read the full README:<br>
+<https://github.com/highlightjs/highlight.js/blob/main/README.md>
 
 ## License
 
@@ -137,16 +35,13 @@ for details.
 
 The official site for the library is at <https://highlightjs.org/>.
 
+The Github project may be found at: <https://github.com/highlightjs/highlight.js>
+
 Further in-depth documentation for the API and other topics is at
 <http://highlightjs.readthedocs.io/>.
 
-Authors and contributors are listed in the [AUTHORS.en.txt][8] file.
+A list of the Core Team and contributors can be found in the [CONTRIBUTORS.md][8] file.
 
-[1]: http://highlightjs.readthedocs.io/en/latest/api.html#inithighlightingonload
-[2]: http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html
-[3]: http://highlightjs.readthedocs.io/en/latest/api.html#highlightblock-block
-[4]: http://highlightjs.readthedocs.io/en/latest/api.html#configure-options
-[5]: https://highlightjs.org/download/
-[6]: http://highlightjs.readthedocs.io/en/latest/building-testing.html
-[7]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE
-[8]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.en.txt
+[1]: https://www.npmjs.com/package/highlight.js
+[7]: https://github.com/highlightjs/highlight.js/blob/main/LICENSE
+[8]: https://github.com/highlightjs/highlight.js/blob/main/CONTRIBUTORS.md
diff --git a/nixpkgs/pkgs/misc/documentation-highlighter/highlight.pack.js b/nixpkgs/pkgs/misc/documentation-highlighter/highlight.pack.js
index f909702367ec..b8008d3650f0 100644
--- a/nixpkgs/pkgs/misc/documentation-highlighter/highlight.pack.js
+++ b/nixpkgs/pkgs/misc/documentation-highlighter/highlight.pack.js
@@ -1,2 +1,345 @@
-/*! highlight.js v9.12.0 | BSD3 License | git.io/hljslicense */
-!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return w(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||w(i))return i}function o(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function o(e){function r(e){return" "+e.nodeName+'="'+n(e.value).replace('"',"&quot;")+'"'}s+="<"+t(e)+E.map.call(e.attributes,r).join("")+">"}function u(e){s+="</"+t(e)+">"}function c(e){("start"===e.event?o:u)(e.node)}for(var l=0,s="",f=[];e.length||r.length;){var g=i();if(s+=n(a.substring(l,g[0].offset)),l=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===l);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return s+n(a.substr(l))}function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(n){return o(e,{v:null},n)})),e.cached_variants||e.eW&&[o(e)]||[e]}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var o={},u=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");o[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?u("keyword",a.k):x(a.k).forEach(function(e){u(e,a.k[e])}),a.k=o}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return l("self"===e?a:e)})),a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var c=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=c.length?t(c.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function l(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function p(e,n,t,r){var a=r?"":I.classPrefix,i='<span class="'+a,o=t?"":C;return i+=e+'">',i+n+o}function h(){var e,t,r,a;if(!E.k)return n(k);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(k);r;)a+=n(k.substring(t,r.index)),e=l(E,r),e?(B+=e[1],a+=p(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(k);return a+n(k.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!y[E.sL])return n(k);var t=e?f(E.sL,k,!0,x[E.sL]):g(k,E.sL.length?E.sL:void 0);return E.r>0&&(B+=t.r),e&&(x[E.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){L+=null!=E.sL?d():h(),k=""}function v(e){L+=e.cN?p(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(k+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?k+=n:(t.eB&&(k+=n),b(),t.rB||t.eB||(k=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?k+=n:(a.rE||a.eE||(k+=n),b(),a.eE&&(k=n));do E.cN&&(L+=C),E.skip||(B+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"<unnamed>")+'"');return k+=n,n.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var R,E=i||N,x={},L="";for(R=E;R!==N;R=R.parent)R.cN&&(L=p(R.cN,"",!0)+L);var k="",B=0;try{for(var M,j,O=0;;){if(E.t.lastIndex=O,M=E.t.exec(t),!M)break;j=m(t.substring(O,M.index),M[0]),O=M.index+j}for(m(t.substr(O)),R=E;R.parent;R=R.parent)R.cN&&(L+=C);return{r:B,value:L,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function g(e,t){t=t||I.languages||x(y);var r={r:0,value:n(e)},a=r;return t.filter(w).forEach(function(n){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function p(e){return I.tabReplace||I.useBR?e.replace(M,function(e,n){return I.useBR&&"\n"===e?"<br>":I.tabReplace?n.replace(/\t/g,I.tabReplace):""}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function d(e){var n,t,r,o,l,s=i(e);a(s)||(I.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):n=e,l=n.textContent,r=s?f(s,l,!0):g(l),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),l)),r.value=p(r.value),e.innerHTML=r.value,e.className=h(e.className,s,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function b(e){I=o(I,e)}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,d)}}function m(){addEventListener("DOMContentLoaded",v,!1),addEventListener("load",v,!1)}function N(n,t){var r=y[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function R(){return x(y)}function w(e){return e=(e||"").toLowerCase(),y[e]||y[L[e]]}var E=[],x=Object.keys,y={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="</span>",I={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=f,e.highlightAuto=g,e.fixMarkup=p,e.highlightBlock=d,e.configure=b,e.initHighlighting=v,e.initHighlightingOnLoad=m,e.registerLanguage=N,e.listLanguages=R,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("nix",function(e){var r={keyword:"rec with let in inherit assert if else then",literal:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},t={cN:"subst",b:/\$\{/,e:/}/,k:r},i={b:/[a-zA-Z0-9-_]+(\s*=)/,rB:!0,r:0,c:[{cN:"attr",b:/\S+/}]},s={cN:"string",c:[t],v:[{b:"''",e:"''"},{b:'"',e:'"'}]},a=[e.NM,e.HCM,e.CBCM,s,i];return t.c=a,{aliases:["nixos"],k:r,c:a}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}});
\ No newline at end of file
+/*!
+  Highlight.js v11.9.0 (git: b7ec4bfafc)
+  (c) 2006-2023 undefined and other contributors
+  License: BSD-3-Clause
+ */
+var hljs=function(){"use strict";function e(t){
+return t instanceof Map?t.clear=t.delete=t.set=()=>{
+throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
+throw Error("set is read-only")
+}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{
+const i=t[n],s=typeof i;"object"!==s&&"function"!==s||Object.isFrozen(i)||e(i)
+})),t}class t{constructor(e){
+void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
+ignoreMatch(){this.isMatchIgnored=!0}}function n(e){
+return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
+}function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
+;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const s=e=>!!e.scope
+;class o{constructor(e,t){
+this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
+this.buffer+=n(e)}openNode(e){if(!s(e))return;const t=((e,{prefix:t})=>{
+if(e.startsWith("language:"))return e.replace("language:","language-")
+;if(e.includes(".")){const n=e.split(".")
+;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")
+}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}
+closeNode(e){s(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
+this.buffer+=`<span class="${e}">`}}const r=(e={})=>{const t={children:[]}
+;return Object.assign(t,e),t};class a{constructor(){
+this.rootNode=r(),this.stack=[this.rootNode]}get top(){
+return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
+this.top.children.push(e)}openNode(e){const t=r({scope:e})
+;this.add(t),this.stack.push(t)}closeNode(){
+if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
+for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
+walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
+return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
+t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
+"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
+a._collapse(e)})))}}class c extends a{constructor(e){super(),this.options=e}
+addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
+this.closeNode()}__addSublanguage(e,t){const n=e.root
+;t&&(n.scope="language:"+t),this.add(n)}toHTML(){
+return new o(this,this.options).value()}finalize(){
+return this.closeAllNodes(),!0}}function l(e){
+return e?"string"==typeof e?e:e.source:null}function g(e){return h("(?=",e,")")}
+function u(e){return h("(?:",e,")*")}function d(e){return h("(?:",e,")?")}
+function h(...e){return e.map((e=>l(e))).join("")}function f(...e){const t=(e=>{
+const t=e[e.length-1]
+;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}
+})(e);return"("+(t.capture?"":"?:")+e.map((e=>l(e))).join("|")+")"}
+function p(e){return RegExp(e.toString()+"|").exec("").length-1}
+const b=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
+;function m(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n
+;let i=l(e),s="";for(;i.length>0;){const e=b.exec(i);if(!e){s+=i;break}
+s+=i.substring(0,e.index),
+i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],
+"("===e[0]&&n++)}return s})).map((e=>`(${e})`)).join(t)}
+const E="[a-zA-Z]\\w*",x="[a-zA-Z_]\\w*",w="\\b\\d+(\\.\\d+)?",y="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",_="\\b(0b[01]+)",O={
+begin:"\\\\[\\s\\S]",relevance:0},v={scope:"string",begin:"'",end:"'",
+illegal:"\\n",contains:[O]},k={scope:"string",begin:'"',end:'"',illegal:"\\n",
+contains:[O]},N=(e,t,n={})=>{const s=i({scope:"comment",begin:e,end:t,
+contains:[]},n);s.contains.push({scope:"doctag",
+begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
+end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
+;const o=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
+;return s.contains.push({begin:h(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s
+},S=N("//","$"),M=N("/\\*","\\*/"),R=N("#","$");var j=Object.freeze({
+__proto__:null,APOS_STRING_MODE:v,BACKSLASH_ESCAPE:O,BINARY_NUMBER_MODE:{
+scope:"number",begin:_,relevance:0},BINARY_NUMBER_RE:_,COMMENT:N,
+C_BLOCK_COMMENT_MODE:M,C_LINE_COMMENT_MODE:S,C_NUMBER_MODE:{scope:"number",
+begin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{
+"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
+t.data._beginMatch!==e[1]&&t.ignoreMatch()}}),HASH_COMMENT_MODE:R,IDENT_RE:E,
+MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+x,relevance:0},
+NUMBER_MODE:{scope:"number",begin:w,relevance:0},NUMBER_RE:w,
+PHRASAL_WORDS_MODE:{
+begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
+},QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
+end:/\/[gimuy]*/,contains:[O,{begin:/\[/,end:/\]/,relevance:0,contains:[O]}]},
+RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
+SHEBANG:(e={})=>{const t=/^#![ ]*\//
+;return e.binary&&(e.begin=h(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t,
+end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},
+TITLE_MODE:{scope:"title",begin:E,relevance:0},UNDERSCORE_IDENT_RE:x,
+UNDERSCORE_TITLE_MODE:{scope:"title",begin:x,relevance:0}});function A(e,t){
+"."===e.input[e.index-1]&&t.ignoreMatch()}function I(e,t){
+void 0!==e.className&&(e.scope=e.className,delete e.className)}function T(e,t){
+t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
+e.__beforeBegin=A,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
+void 0===e.relevance&&(e.relevance=0))}function L(e,t){
+Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function B(e,t){
+if(e.match){
+if(e.begin||e.end)throw Error("begin & end are not supported with match")
+;e.begin=e.match,delete e.match}}function P(e,t){
+void 0===e.relevance&&(e.relevance=1)}const D=(e,t)=>{if(!e.beforeMatch)return
+;if(e.starts)throw Error("beforeMatch cannot be used with starts")
+;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]
+})),e.keywords=n.keywords,e.begin=h(n.beforeMatch,g(n.begin)),e.starts={
+relevance:0,contains:[Object.assign(n,{endsParent:!0})]
+},e.relevance=0,delete n.beforeMatch
+},H=["of","and","for","in","not","or","if","then","parent","list","value"],C="keyword"
+;function $(e,t,n=C){const i=Object.create(null)
+;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
+Object.assign(i,$(e[n],t,n))})),i;function s(e,n){
+t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
+;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){
+return t?Number(t):(e=>H.includes(e.toLowerCase()))(e)?0:1}const z={},W=e=>{
+console.error(e)},X=(e,...t)=>{console.log("WARN: "+e,...t)},G=(e,t)=>{
+z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0)
+},K=Error();function F(e,t,{key:n}){let i=0;const s=e[n],o={},r={}
+;for(let e=1;e<=t.length;e++)r[e+i]=s[e],o[e+i]=!0,i+=p(t[e-1])
+;e[n]=r,e[n]._emit=o,e[n]._multi=!0}function Z(e){(e=>{
+e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
+delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
+_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
+}),(e=>{if(Array.isArray(e.begin)){
+if(e.skip||e.excludeBegin||e.returnBegin)throw W("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
+K
+;if("object"!=typeof e.beginScope||null===e.beginScope)throw W("beginScope must be object"),
+K;F(e,e.begin,{key:"beginScope"}),e.begin=m(e.begin,{joinWith:""})}})(e),(e=>{
+if(Array.isArray(e.end)){
+if(e.skip||e.excludeEnd||e.returnEnd)throw W("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
+K
+;if("object"!=typeof e.endScope||null===e.endScope)throw W("endScope must be object"),
+K;F(e,e.end,{key:"endScope"}),e.end=m(e.end,{joinWith:""})}})(e)}function V(e){
+function t(t,n){
+return RegExp(l(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))
+}class n{constructor(){
+this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
+addRule(e,t){
+t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
+this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
+;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(m(e,{joinWith:"|"
+}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
+;const t=this.matcherRe.exec(e);if(!t)return null
+;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
+;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
+this.rules=[],this.multiRegexes=[],
+this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
+if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n
+;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
+t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
+return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
+this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
+const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
+;let n=t.exec(e)
+;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
+const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
+return n&&(this.regexIndex+=n.position+1,
+this.regexIndex===this.count&&this.considerAll()),n}}
+if(e.compilerExtensions||(e.compilerExtensions=[]),
+e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
+;return e.classNameAliases=i(e.classNameAliases||{}),function n(o,r){const a=o
+;if(o.isCompiled)return a
+;[I,B,Z,D].forEach((e=>e(o,r))),e.compilerExtensions.forEach((e=>e(o,r))),
+o.__beforeBegin=null,[T,L,P].forEach((e=>e(o,r))),o.isCompiled=!0;let c=null
+;return"object"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),
+c=o.keywords.$pattern,
+delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=$(o.keywords,e.case_insensitive)),
+a.keywordPatternRe=t(c,!0),
+r&&(o.begin||(o.begin=/\B|\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\B|\b/),
+o.end&&(a.endRe=t(a.end)),
+a.terminatorEnd=l(a.end)||"",o.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(o.end?"|":"")+r.terminatorEnd)),
+o.illegal&&(a.illegalRe=t(o.illegal)),
+o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>i(e,{
+variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?i(e,{
+starts:e.starts?i(e.starts):null
+}):Object.isFrozen(e)?i(e):e))("self"===e?o:e)))),o.contains.forEach((e=>{n(e,a)
+})),o.starts&&n(o.starts,r),a.matcher=(e=>{const t=new s
+;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
+}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
+}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){
+return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{
+constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}
+const Y=n,Q=i,ee=Symbol("nomatch"),te=n=>{
+const i=Object.create(null),s=Object.create(null),o=[];let r=!0
+;const a="Could not find the language '{}', did you forget to load/include a language module?",l={
+disableAutodetect:!0,name:"Plain text",contains:[]};let p={
+ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
+languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
+cssSelector:"pre code",languages:null,__emitter:c};function b(e){
+return p.noHighlightRe.test(e)}function m(e,t,n){let i="",s=""
+;"object"==typeof t?(i=e,
+n=t.ignoreIllegals,s=t.language):(G("10.7.0","highlight(lang, code, ...args) has been deprecated."),
+G("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
+s=e,i=t),void 0===n&&(n=!0);const o={code:i,language:s};N("before:highlight",o)
+;const r=o.result?o.result:E(o.language,o.code,n)
+;return r.code=o.code,N("after:highlight",r),r}function E(e,n,s,o){
+const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(R)
+;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(R),n=""
+;for(;t;){n+=R.substring(e,t.index)
+;const s=_.case_insensitive?t[0].toLowerCase():t[0],o=(i=s,N.keywords[i]);if(o){
+const[e,i]=o
+;if(M.addText(n),n="",c[s]=(c[s]||0)+1,c[s]<=7&&(j+=i),e.startsWith("_"))n+=t[0];else{
+const n=_.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0]
+;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(R)}var i
+;n+=R.substring(e),M.addText(n)}function g(){null!=N.subLanguage?(()=>{
+if(""===R)return;let e=null;if("string"==typeof N.subLanguage){
+if(!i[N.subLanguage])return void M.addText(R)
+;e=E(N.subLanguage,R,!0,S[N.subLanguage]),S[N.subLanguage]=e._top
+}else e=x(R,N.subLanguage.length?N.subLanguage:null)
+;N.relevance>0&&(j+=e.relevance),M.__addSublanguage(e._emitter,e.language)
+})():l(),R=""}function u(e,t){
+""!==e&&(M.startScope(t),M.addText(e),M.endScope())}function d(e,t){let n=1
+;const i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue}
+const i=_.classNameAliases[e[n]]||e[n],s=t[n];i?u(s,i):(R=s,l(),R=""),n++}}
+function h(e,t){
+return e.scope&&"string"==typeof e.scope&&M.openNode(_.classNameAliases[e.scope]||e.scope),
+e.beginScope&&(e.beginScope._wrap?(u(R,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
+R=""):e.beginScope._multi&&(d(e.beginScope,t),R="")),N=Object.create(e,{parent:{
+value:N}}),N}function f(e,n,i){let s=((e,t)=>{const n=e&&e.exec(t)
+;return n&&0===n.index})(e.endRe,i);if(s){if(e["on:end"]){const i=new t(e)
+;e["on:end"](n,i),i.isMatchIgnored&&(s=!1)}if(s){
+for(;e.endsParent&&e.parent;)e=e.parent;return e}}
+if(e.endsWithParent)return f(e.parent,n,i)}function b(e){
+return 0===N.matcher.regexIndex?(R+=e[0],1):(T=!0,0)}function m(e){
+const t=e[0],i=n.substring(e.index),s=f(N,e,i);if(!s)return ee;const o=N
+;N.endScope&&N.endScope._wrap?(g(),
+u(t,N.endScope._wrap)):N.endScope&&N.endScope._multi?(g(),
+d(N.endScope,e)):o.skip?R+=t:(o.returnEnd||o.excludeEnd||(R+=t),
+g(),o.excludeEnd&&(R=t));do{
+N.scope&&M.closeNode(),N.skip||N.subLanguage||(j+=N.relevance),N=N.parent
+}while(N!==s.parent);return s.starts&&h(s.starts,e),o.returnEnd?0:t.length}
+let w={};function y(i,o){const a=o&&o[0];if(R+=i,null==a)return g(),0
+;if("begin"===w.type&&"end"===o.type&&w.index===o.index&&""===a){
+if(R+=n.slice(o.index,o.index+1),!r){const t=Error(`0 width match regex (${e})`)
+;throw t.languageName=e,t.badRule=w.rule,t}return 1}
+if(w=o,"begin"===o.type)return(e=>{
+const n=e[0],i=e.rule,s=new t(i),o=[i.__beforeBegin,i["on:begin"]]
+;for(const t of o)if(t&&(t(e,s),s.isMatchIgnored))return b(n)
+;return i.skip?R+=n:(i.excludeBegin&&(R+=n),
+g(),i.returnBegin||i.excludeBegin||(R=n)),h(i,e),i.returnBegin?0:n.length})(o)
+;if("illegal"===o.type&&!s){
+const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"<unnamed>")+'"')
+;throw e.mode=N,e}if("end"===o.type){const e=m(o);if(e!==ee)return e}
+if("illegal"===o.type&&""===a)return 1
+;if(I>1e5&&I>3*o.index)throw Error("potential infinite loop, way more iterations than matches")
+;return R+=a,a.length}const _=O(e)
+;if(!_)throw W(a.replace("{}",e)),Error('Unknown language: "'+e+'"')
+;const v=V(_);let k="",N=o||v;const S={},M=new p.__emitter(p);(()=>{const e=[]
+;for(let t=N;t!==_;t=t.parent)t.scope&&e.unshift(t.scope)
+;e.forEach((e=>M.openNode(e)))})();let R="",j=0,A=0,I=0,T=!1;try{
+if(_.__emitTokens)_.__emitTokens(n,M);else{for(N.matcher.considerAll();;){
+I++,T?T=!1:N.matcher.considerAll(),N.matcher.lastIndex=A
+;const e=N.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e)
+;A=e.index+t}y(n.substring(A))}return M.finalize(),k=M.toHTML(),{language:e,
+value:k,relevance:j,illegal:!1,_emitter:M,_top:N}}catch(t){
+if(t.message&&t.message.includes("Illegal"))return{language:e,value:Y(n),
+illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A,
+context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:k},_emitter:M};if(r)return{
+language:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:N}
+;throw t}}function x(e,t){t=t||p.languages||Object.keys(i);const n=(e=>{
+const t={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new p.__emitter(p)}
+;return t._emitter.addText(e),t})(e),s=t.filter(O).filter(k).map((t=>E(t,e,!1)))
+;s.unshift(n);const o=s.sort(((e,t)=>{
+if(e.relevance!==t.relevance)return t.relevance-e.relevance
+;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1
+;if(O(t.language).supersetOf===e.language)return-1}return 0})),[r,a]=o,c=r
+;return c.secondBest=a,c}function w(e){let t=null;const n=(e=>{
+let t=e.className+" ";t+=e.parentNode?e.parentNode.className:""
+;const n=p.languageDetectRe.exec(t);if(n){const t=O(n[1])
+;return t||(X(a.replace("{}",n[1])),
+X("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}
+return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return
+;if(N("before:highlightElement",{el:e,language:n
+}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
+;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
+console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
+console.warn("The element with unescaped HTML:"),
+console.warn(e)),p.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML)
+;t=e;const i=t.textContent,o=n?m(i,{language:n,ignoreIllegals:!0}):x(i)
+;e.innerHTML=o.value,e.dataset.highlighted="yes",((e,t,n)=>{const i=t&&s[t]||n
+;e.classList.add("hljs"),e.classList.add("language-"+i)
+})(e,n,o.language),e.result={language:o.language,re:o.relevance,
+relevance:o.relevance},o.secondBest&&(e.secondBest={
+language:o.secondBest.language,relevance:o.secondBest.relevance
+}),N("after:highlightElement",{el:e,result:o,text:i})}let y=!1;function _(){
+"loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(w):y=!0
+}function O(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}
+function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
+s[e.toLowerCase()]=t}))}function k(e){const t=O(e)
+;return t&&!t.disableAutodetect}function N(e,t){const n=e;o.forEach((e=>{
+e[n]&&e[n](t)}))}
+"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
+y&&_()}),!1),Object.assign(n,{highlight:m,highlightAuto:x,highlightAll:_,
+highlightElement:w,
+highlightBlock:e=>(G("10.7.0","highlightBlock will be removed entirely in v12.0"),
+G("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{p=Q(p,e)},
+initHighlighting:()=>{
+_(),G("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
+initHighlightingOnLoad:()=>{
+_(),G("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
+},registerLanguage:(e,t)=>{let s=null;try{s=t(n)}catch(t){
+if(W("Language definition for '{}' could not be registered.".replace("{}",e)),
+!r)throw t;W(t),s=l}
+s.name||(s.name=e),i[e]=s,s.rawDefinition=t.bind(null,n),s.aliases&&v(s.aliases,{
+languageName:e})},unregisterLanguage:e=>{delete i[e]
+;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
+listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v,
+autoDetection:k,inherit:Q,addPlugin:e=>{(e=>{
+e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
+e["before:highlightBlock"](Object.assign({block:t.el},t))
+}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
+e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),o.push(e)},
+removePlugin:e=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}),n.debugMode=()=>{
+r=!1},n.safeMode=()=>{r=!0},n.versionString="11.9.0",n.regex={concat:h,
+lookahead:g,either:f,optional:d,anyNumberOfTimes:u}
+;for(const t in j)"object"==typeof j[t]&&e(j[t]);return Object.assign(n,j),n
+},ne=te({});return ne.newInstance=()=>te({}),ne}()
+;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `bash` grammar compiled for Highlight.js 11.9.0 */
+(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/,
+end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{
+className:"variable",variants:[{
+begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={
+className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]
+},i=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),c={
+begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
+end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,
+contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(o);const r={begin:/\$?\(\(/,
+end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
+},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
+}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
+contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
+name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
+keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],
+literal:["true","false"],
+built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
+},contains:[l,e.SHEBANG(),m,r,i,c,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{
+className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}})()
+;hljs.registerLanguage("bash",e)})();/*! `nix` grammar compiled for Highlight.js 11.9.0 */
+(()=>{var e=(()=>{"use strict";return e=>{const n={
+keyword:["rec","with","let","in","inherit","assert","if","else","then"],
+literal:["true","false","or","and","null"],
+built_in:["import","abort","baseNameOf","dirOf","isNull","builtins","map","removeAttrs","throw","toString","derivation"]
+},s={className:"subst",begin:/\$\{/,end:/\}/,keywords:n},a={className:"string",
+contains:[{className:"char.escape",begin:/''\$/},s],variants:[{begin:"''",
+end:"''"},{begin:'"',end:'"'}]
+},i=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{
+begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{
+className:"attr",begin:/\S+/,relevance:.2}]}];return s.contains=i,{name:"Nix",
+aliases:["nixos"],keywords:n,contains:i}}})();hljs.registerLanguage("nix",e)
+})();/*! `shell` grammar compiled for Highlight.js 11.9.0 */
+(()=>{var s=(()=>{"use strict";return s=>({name:"Shell Session",
+aliases:["console","shellsession"],contains:[{className:"meta.prompt",
+begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
+subLanguage:"bash"}}]})})();hljs.registerLanguage("shell",s)})();
\ No newline at end of file
diff --git a/nixpkgs/pkgs/misc/documentation-highlighter/loader.js b/nixpkgs/pkgs/misc/documentation-highlighter/loader.js
index 4ad7dbf24b51..cf0fdac574dd 100644
--- a/nixpkgs/pkgs/misc/documentation-highlighter/loader.js
+++ b/nixpkgs/pkgs/misc/documentation-highlighter/loader.js
@@ -1,7 +1,6 @@
 /* This file is NOT part of highlight.js */
-document.onreadystatechange = function () {
-    var listings = document.querySelectorAll('.programlisting, .screen');
-    for (i = 0; i < listings.length; ++i) {
-        hljs.highlightBlock(listings[i]);
-    }
-}
+document.addEventListener('DOMContentLoaded', (event) => {
+    document.querySelectorAll('.programlisting, .screen').forEach((element) => {
+        hljs.highlightElement(element);
+    });
+});
diff --git a/nixpkgs/pkgs/misc/documentation-highlighter/mono-blue.css b/nixpkgs/pkgs/misc/documentation-highlighter/mono-blue.css
index 884c97c7673f..bc9bceae4b10 100644
--- a/nixpkgs/pkgs/misc/documentation-highlighter/mono-blue.css
+++ b/nixpkgs/pkgs/misc/documentation-highlighter/mono-blue.css
@@ -1,17 +1,18 @@
+pre code.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 1em
+}
+code.hljs {
+  padding: 3px 5px
+}
 /*
   Five-color theme from a single blue hue.
 */
 .hljs {
-  display: block;
-  overflow-x: auto;
-  padding: 0.5em;
   background: #eaeef3;
+  color: #00193a
 }
-
-.hljs {
-  color: #00193a;
-}
-
 .hljs-keyword,
 .hljs-selector-tag,
 .hljs-title,
@@ -19,13 +20,11 @@
 .hljs-doctag,
 .hljs-name,
 .hljs-strong {
-  font-weight: bold;
+  font-weight: bold
 }
-
 .hljs-comment {
-  color: #738191;
+  color: #738191
 }
-
 .hljs-string,
 .hljs-title,
 .hljs-section,
@@ -38,9 +37,8 @@
 .hljs-name,
 .hljs-selector-id,
 .hljs-selector-class {
-  color: #0048ab;
+  color: #0048ab
 }
-
 .hljs-meta,
 .hljs-subst,
 .hljs-symbol,
@@ -51,9 +49,8 @@
 .hljs-template-variable,
 .hljs-link,
 .hljs-bullet {
-  color: #4c81c9;
+  color: #4c81c9
 }
-
 .hljs-emphasis {
-  font-style: italic;
-}
+  font-style: italic
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/misc/documentation-highlighter/update.sh b/nixpkgs/pkgs/misc/documentation-highlighter/update.sh
index 3b77af4af416..8d44e9ddd9a1 100755
--- a/nixpkgs/pkgs/misc/documentation-highlighter/update.sh
+++ b/nixpkgs/pkgs/misc/documentation-highlighter/update.sh
@@ -21,19 +21,21 @@ trap finish EXIT
 mkdir $scratch/src
 cd $scratch/src
 
-token=$(curl https://highlightjs.org/download/ -c "$scratch/jar" \
-    | grep csrf \
-    | cut -d"'" -f6)
+curl \
+    -X POST \
+    -H 'Content-Type: application/json' \
+    --data-raw '{
+      "api": 2,
+      "languages": ["bash", "nix", "shell"]
+    }' \
+    https://highlightjs.org/api/download > $scratch/out.zip
 
-curl --header "Referer: https://highlightjs.org/download/"\
-    -b "$scratch/jar" \
-    --data "csrfmiddlewaretoken=$token&nix.js=on&bash.js=on" \
-    https://highlightjs.org/download/ > $scratch/out.zip
 
 unzip "$scratch/out.zip"
 out="$root/"
 mkdir -p "$out"
-cp ./{highlight.pack.js,LICENSE,styles/mono-blue.css} "$out"
+cp ./highlight.min.js "$out/highlight.pack.js"
+cp ./{LICENSE,styles/mono-blue.css} "$out"
 
 (
     echo "This file was generated with pkgs/misc/documentation-highlighter/update.sh"
diff --git a/nixpkgs/pkgs/misc/doge/default.nix b/nixpkgs/pkgs/misc/doge/default.nix
deleted file mode 100644
index 3fbf5992ade7..000000000000
--- a/nixpkgs/pkgs/misc/doge/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ lib, python3Packages, fetchPypi }:
-
-python3Packages.buildPythonPackage rec {
-  pname = "doge";
-  version = "3.5.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0lwdl06lbpnaqqjk8ap9dsags3bzma30z17v0zc7spng1gz8m6xj";
-  };
-
-  meta = with lib; {
-    homepage = "https://github.com/thiderman/doge";
-    description = "wow very terminal doge";
-    license = licenses.mit;
-    maintainers = with maintainers; [ Gonzih ];
-    mainProgram = "doge";
-  };
-}
diff --git a/nixpkgs/pkgs/misc/scrcpy/default.nix b/nixpkgs/pkgs/misc/scrcpy/default.nix
index 8630cc859917..a1c8fb43c20f 100644
--- a/nixpkgs/pkgs/misc/scrcpy/default.nix
+++ b/nixpkgs/pkgs/misc/scrcpy/default.nix
@@ -16,12 +16,12 @@
 }:
 
 let
-  version = "2.2";
+  version = "2.3.1";
   prebuilt_server = fetchurl {
     name = "scrcpy-server";
     inherit version;
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    hash = "sha256-yFxKqEMF77aRFc1JehIOvdECWJk7TPEjqCRbPZnUmHQ=";
+    hash = "sha256-9oFIIvwwinpTLyU0hckDgYPGKWpsXfRwqeODtPjnYFs=";
   };
 in
 stdenv.mkDerivation rec {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = "scrcpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2/IsDZJAtERs2AG6J4LR/ffy4XYmaj0KeSwZLQ849Lc=";
+    hash = "sha256-RM29WjzsYnn26x/Xr2RKp0p87/v+Jl8skEcAwxhZEtU=";
   };
 
   #   display.c: When run without a hardware accelerator, this allows the command to continue working rather than failing unexpectedly.
diff --git a/nixpkgs/pkgs/os-specific/linux/autosuspend/default.nix b/nixpkgs/pkgs/os-specific/linux/autosuspend/default.nix
index fc2b2f0c4e38..5abacf966b9e 100644
--- a/nixpkgs/pkgs/os-specific/linux/autosuspend/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/autosuspend/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchPypi
 , python3
 }:
 
@@ -8,11 +9,16 @@ let
     packageOverrides = self: super: {
       # autosuspend is incompatible with tzlocal v5
       # See https://github.com/regebro/tzlocal#api-change
-      tzlocal = super.tzlocal.overridePythonAttrs (prev: {
-        src = prev.src.override {
-          version = "4.3.1";
+      tzlocal = super.tzlocal.overridePythonAttrs (prev: rec {
+        version = "4.3.1";
+        src = fetchPypi {
+          inherit (prev) pname;
+          inherit version;
           hash = "sha256-7jLvjCCAPBmpbtNmrd09SnKe9jCctcc1mgzC7ut/pGo=";
         };
+        propagatedBuildInputs = with self; [
+          pytz-deprecation-shim
+        ];
       });
     };
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
index 2954ee8f78b9..4b38ffc5069c 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
@@ -275,6 +275,12 @@ let
       INFINIBAND = module;
       INFINIBAND_IPOIB = module;
       INFINIBAND_IPOIB_CM = yes;
+    } // optionalAttrs (stdenv.hostPlatform.system == "aarch64-linux") {
+      # Not enabled by default, hides modules behind it
+      NET_VENDOR_MEDIATEK = yes;
+      # Enable SoC interface for MT7915 module, required for MT798X.
+      MT7986_WMAC = whenBetween "5.18" "6.6" yes;
+      MT798X_WMAC = whenAtLeast "6.6" yes;
     };
 
     wireless = {
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json b/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json
index 25b28539bc39..dfbd892615fd 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -1,19 +1,19 @@
 {
     "testing": {
-        "version": "6.7-rc3",
-        "hash": "sha256:1bi80271g76pcajzmzr0dxcmzzlzicqddm38mr7pkz8zi0070arf"
+        "version": "6.7-rc4",
+        "hash": "sha256:1igynlm5pv62brfkyjh6w8lzvmmy8c3g8phrn5wgdyy8svc48r8h"
     },
     "6.5": {
         "version": "6.5.13",
         "hash": "sha256:1dfbbydmayfj9npx3z0g38p574pmcx3qgs49dv0npigl48wd9yvq"
     },
     "6.1": {
-        "version": "6.1.64",
-        "hash": "sha256:1ry7dp39010hfja1wial6r6q6ilgygwm7gdz22bg4rzaycwam7b2"
+        "version": "6.1.65",
+        "hash": "sha256:02mj394ina3npp6qqinc4pc6afp5pg1rlbjc90g4p902d29jjwj0"
     },
     "5.15": {
-        "version": "5.15.140",
-        "hash": "sha256:0isa9si9wjn10lw41431wdqsbp9y685ch5lzhwswng3g6j5ywaxy"
+        "version": "5.15.141",
+        "hash": "sha256:1yicgvq413801qrfzr0rdzwgg45dszrvfd6y9dmrhak9bk36lvck"
     },
     "5.10": {
         "version": "5.10.202",
@@ -32,7 +32,7 @@
         "hash": "sha256:03sk82dgvccv70i3hy8gf2hw0n4m305f7rxjw93p7jnjrbpdrp1r"
     },
     "6.6": {
-        "version": "6.6.3",
-        "hash": "sha256:19wmjkyyv5glv1w647qisrv829hhhpba5x905a7p7kch9wyzrv98"
+        "version": "6.6.4",
+        "hash": "sha256:0i9ym5nqf704iz5674k66kn9a5hkm0y0sdhqy5c6v39xr5h9dr29"
     }
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
index 85c8a8b8a10e..8aaf8c5ecb16 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "6.1.59-rt16"; # updated by ./update-rt.sh
+  version = "6.1.64-rt17"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "1860r1aan258yi2jq68bp1kdbcyy7ygc7d8g54wnc0vmqqj7fzv2";
+    sha256 = "1ry7dp39010hfja1wial6r6q6ilgygwm7gdz22bg4rzaycwam7b2";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1cmgw6a8zlj89172mp85lxaksz1pvc155mj2fq59l1ry35gwb5q7";
+      sha256 = "1vvn21bprsqqzmqvcmj1jx3xn1dc6kih5fib9qpcyrh0j1c7s077";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix b/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix
index e72df64c4a22..4a1bd7543b1b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/nixpkgs/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.6.3"; #zen
+    version = "6.6.4"; #zen
     suffix = "zen1"; #zen
-    sha256 = "0hjn4qq8dppa0cn4rx7n98cxvzhkbn30hlm3bgcv97fwyvglsdwc"; #zen
+    sha256 = "1zks4fpbw788aaw9rysdpfhmqzr8l5y6afq92md1gizyyl1rjhq1"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.6.3"; #lqx
+    version = "6.6.4"; #lqx
     suffix = "lqx1"; #lqx
-    sha256 = "1mh2pngz589z1c4jqdx2slh1dsmjqq7f1yriz2yp50kkv8abff8z"; #lqx
+    sha256 = "049pga9bc5pbnwki5vmnz9pdx0p5r7sssb66b4580h9x9skzi9m2"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
diff --git a/nixpkgs/pkgs/os-specific/linux/libnss-mysql/default.nix b/nixpkgs/pkgs/os-specific/linux/libnss-mysql/default.nix
index 77e629b03074..133312801119 100644
--- a/nixpkgs/pkgs/os-specific/linux/libnss-mysql/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libnss-mysql/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, which, libmysqlclient }:
+{ lib
+, nixosTests
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, which
+, libmysqlclient
+}:
 
 stdenv.mkDerivation rec {
   pname = "libnss-mysql";
@@ -20,6 +27,10 @@ stdenv.mkDerivation rec {
     rm -r $out/etc
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) auth-mysql;
+  };
+
   meta = with lib; {
     description = "MySQL module for the Solaris Nameservice Switch (NSS)";
     homepage = "https://github.com/saknopper/libnss-mysql";
diff --git a/nixpkgs/pkgs/os-specific/linux/light/default.nix b/nixpkgs/pkgs/os-specific/linux/light/default.nix
index 6caa8e394508..5a5064719fef 100644
--- a/nixpkgs/pkgs/os-specific/linux/light/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/light/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
     description = "GNU/Linux application to control backlights";
     homepage = "https://haikarainen.github.io/light/";
     license = lib.licenses.gpl3;
+    mainProgram = "light";
     maintainers = with lib.maintainers; [ puffnfresh dtzWill ];
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
index ecfc04115d00..d9caae7f457f 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -59,11 +59,11 @@ rec {
   # Vulkan developer beta driver
   # See here for more information: https://developer.nvidia.com/vulkan-driver
   vulkan_beta = generic rec {
-    version = "535.43.16";
+    version = "535.43.19";
     persistencedVersion = "535.98";
     settingsVersion = "535.98";
-    sha256_64bit = "sha256-c93CJSMPlGZgk+jhp9zTHCKSZ0LdnJu+ifLo+qMvIIk=";
-    openSha256 = "sha256-509KaBavGIOOpzdrdJuAR1PYq91Clwo8n+nhruxO1wM=";
+    sha256_64bit = "sha256-zxyZnXpNQuYJ17NDm3s8P/7GzQ4xD4Q4oCZA0ei+Wqs=";
+    openSha256 = "sha256-K14Av5fCda1J9o5pkQBhmwW34d2hgqrF3J99FWPsNjM=";
     settingsSha256 = "sha256-jCRfeB1w6/dA27gaz6t5/Qo7On0zbAPIi74LYLel34s=";
     persistencedSha256 = "sha256-WviDU6B50YG8dO64CGvU3xK8WFUX8nvvVYm/fuGyroM=";
     url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux";
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_mysql/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_mysql/default.nix
index 036d4b20cb4c..1088d8abe7a6 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam_mysql/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam_mysql/default.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pam, pkg-config, libmysqlclient, mariadb, libxcrypt }:
+{ lib
+, nixosTests
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pam
+, pkg-config
+, libmysqlclient
+, mariadb
+, libxcrypt
+}:
 
 stdenv.mkDerivation rec {
   pname = "pam_mysql";
@@ -14,6 +25,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson pkg-config ninja ];
   buildInputs = [ pam libmysqlclient mariadb libxcrypt ];
 
+  passthru.tests = {
+    inherit (nixosTests) auth-mysql;
+  };
+
   meta = with lib; {
     description = "PAM authentication module against a MySQL database";
     homepage = "https://github.com/NigelCunningham/pam-MySQL";
diff --git a/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix b/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
index a8bd3ba5a7a1..b45cf273dfd6 100644
--- a/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -38,12 +38,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "rabbitmq-server";
-  version = "3.12.7";
+  version = "3.12.8";
 
   # when updating, consider bumping elixir version in all-packages.nix
   src = fetchurl {
     url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz";
-    hash = "sha256-EX7+f6R1dfU2hYt2ftEjpevmaUtAJ1wHcr+X30z5Bb8=";
+    hash = "sha256-ggqTlKGeMr5jq64KkLIIHDmaR/otfE1nSSRjQICiR+Q=";
   };
 
   nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync python3 ];
diff --git a/nixpkgs/pkgs/servers/etcd/3.4.nix b/nixpkgs/pkgs/servers/etcd/3.4.nix
index 61b3f99d0147..597cad35021b 100644
--- a/nixpkgs/pkgs/servers/etcd/3.4.nix
+++ b/nixpkgs/pkgs/servers/etcd/3.4.nix
@@ -2,25 +2,25 @@
 
 buildGoModule rec {
   pname = "etcd";
-  version = "3.4.27";
-
-  vendorHash = "sha256-duqOIMIXAuJjvKDM15mDdi+LZUZm0uK0MjTv2Dsl3FA=";
-
-  doCheck = false;
+  version = "3.4.28";
 
   src = fetchFromGitHub {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "sha256-iw9rWfloK1h0M0O10AqCFKETSN6Adn71ujn4twVgsnk=";
+    hash = "sha256-M0iD05Wk3pC56kGKeIb0bfMUpy9idMKin0+DYhBo/cw=";
   };
 
+  vendorHash = "sha256-DbDIz/cbXqYHaGqNqP+wYpuiaFiZYElRXmQwBXnCbMk=";
+
   buildPhase = ''
     patchShebangs .
     ./build
     ./functional/build
   '';
 
+  doCheck = false;
+
   installPhase = ''
     install -Dm755 bin/* bin/functional/cmd/* -t $out/bin
   '';
diff --git a/nixpkgs/pkgs/servers/etcd/3.5.nix b/nixpkgs/pkgs/servers/etcd/3.5.nix
index a7507f1dd237..e5d9a677f950 100644
--- a/nixpkgs/pkgs/servers/etcd/3.5.nix
+++ b/nixpkgs/pkgs/servers/etcd/3.5.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, symlinkJoin, nixosTests }:
 
 let
-  version = "3.5.9";
+  version = "3.5.10";
 
   src = fetchFromGitHub {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    hash = "sha256-Vp8U49fp0FowIuSSvbrMWjAKG2oDO1o0qO4izSnTR3U=";
+    hash = "sha256-X/de8YA55SZ6p8r/pV8CGxfDKN8voJlyA0r4ckan6ZE=";
   };
 
   CGO_ENABLED = 0;
@@ -25,7 +25,7 @@ let
 
     inherit CGO_ENABLED meta src version;
 
-    vendorHash = "sha256-vu5VKHnDbvxSd8qpIFy0bA88IIXLaQ5S8dVUJEwnKJA=";
+    vendorHash = "sha256-kFR6RvHoNM4SZOgJd7inUuw5GfRLM+3WsKU73We8UzU=";
 
     modRoot = "./server";
 
@@ -45,7 +45,7 @@ let
 
     inherit CGO_ENABLED meta src version;
 
-    vendorHash = "sha256-i60rKCmbEXkdFOZk2dTbG5EtYKb5eCBSyMcsTtnvATs=";
+    vendorHash = "sha256-oVabZ2JZlLKHFCuAeeWRTrcSCxzz05HlvDu/YSMKuCs=";
 
     modRoot = "./etcdutl";
   };
@@ -55,7 +55,7 @@ let
 
     inherit CGO_ENABLED meta src version;
 
-    vendorHash = "sha256-awl/4kuOjspMVEwfANWK0oi3RId6ERsFkdluiRaaXlA=";
+    vendorHash = "sha256-0j35caQfLh7kwDKgmTe1novqKfz/3JlQLbUk3+GFPhk=";
 
     modRoot = "./etcdctl";
   };
diff --git a/nixpkgs/pkgs/servers/komga/default.nix b/nixpkgs/pkgs/servers/komga/default.nix
index f29a9b5f701e..e35f552a347d 100644
--- a/nixpkgs/pkgs/servers/komga/default.nix
+++ b/nixpkgs/pkgs/servers/komga/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "komga";
-  version = "1.6.4";
+  version = "1.8.3";
 
   src = fetchurl {
-    url = "https://github.com/gotson/${pname}/releases/download/v${version}/${pname}-${version}.jar";
-    sha256 = "sha256-tqrC3l2njYGRVIdvt86JVKTCVaAK7GPoYacx3hFRggg=";
+    url = "https://github.com/gotson/${pname}/releases/download/${version}/${pname}-${version}.jar";
+    sha256 = "sha256-kZzyDzFDVrzjScpvCFw5xXk3uCYW01sP7y28YDADVHc=";
   };
 
   nativeBuildInputs = [
@@ -27,12 +27,12 @@ stdenvNoCC.mkDerivation rec {
     komga = nixosTests.komga;
   };
 
-  meta = with lib; {
+  meta = {
     description = "Free and open source comics/mangas server";
     homepage = "https://komga.org/";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     platforms = jdk17_headless.meta.platforms;
-    maintainers = with maintainers; [ govanify ];
+    maintainers = with lib.maintainers; [ govanify ];
     mainProgram = "komga";
   };
 
diff --git a/nixpkgs/pkgs/servers/krill/default.nix b/nixpkgs/pkgs/servers/krill/default.nix
index 46619bc960fd..bff404b244e9 100644
--- a/nixpkgs/pkgs/servers/krill/default.nix
+++ b/nixpkgs/pkgs/servers/krill/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "krill";
-  version = "0.13.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "NLnetLabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-UwvSwV1EHcEsF+IScdDiuuU56sXojEWGObzPKrLvlEQ=";
+    hash = "sha256-cAKH05iTLtHgujxfyiyU2e+Ns4en1loYUduh1X9OmuI=";
   };
 
-  cargoHash = "sha256-ts0yr1BY/StEmklUB29blR4K6RfHbH5WzIP2Zs2sVR4=";
+  cargoHash = "sha256-RcsAfdyCIBtcFdyPGbqRuY9NDygnBwz+0Jp2xgJLBFo=";
 
   buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkg-config ];
@@ -26,6 +26,9 @@ rustPlatform.buildRustPackage rec {
   # Needed to get openssl-sys to use pkgconfig.
   OPENSSL_NO_VENDOR = 1;
 
+  # disable failing tests on darwin
+  doCheck = !stdenv.isDarwin;
+
   meta = with lib; {
     description = "RPKI Certificate Authority and Publication Server written in Rust";
     longDescription = ''
diff --git a/nixpkgs/pkgs/servers/mail/mailman/package.nix b/nixpkgs/pkgs/servers/mail/mailman/package.nix
index d4f5a082ed51..6b3663b9f853 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/package.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/package.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     requests
     sqlalchemy
     zope-component
-    zope_configuration
+    zope-configuration
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/servers/misc/virtiofsd/default.nix b/nixpkgs/pkgs/servers/misc/virtiofsd/default.nix
index 8a1a1aca85a9..db725261dbc3 100644
--- a/nixpkgs/pkgs/servers/misc/virtiofsd/default.nix
+++ b/nixpkgs/pkgs/servers/misc/virtiofsd/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/virtio-fs/virtiofsd";
     description = "vhost-user virtio-fs device backend written in Rust";
     maintainers = with maintainers; [ qyliss astro ];
+    mainProgram = "virtiofsd";
     platforms = platforms.linux;
     license = with licenses; [ asl20 /* and */ bsd3 ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
index 18af89b946b0..96487015df8c 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -14,16 +14,16 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.38.0";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-lXjtKZJNkYffizNiX+rrRVu94mr+WXnsKKpEaLdd2Rs=";
+    hash = "sha256-caqJE92yEzqU/UQS7Cgxe+4+wGqBqPshhhPAyPP2WPQ=";
   };
 
-  vendorHash = "sha256-+6ReDdjCHED8kYVt7WSUFT+Gsmg+AIyS3oIfj2kTCGo=";
+  vendorHash = "sha256-aN/vIBbezieMhWG/czwXxx+/M40mDySZmM8pxVVs3Vs=";
   proxyVendor = true; # darwin/linux hash mismatch
 
   frontendYarnOfflineCache = fetchYarnDeps {
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
index c4c9c75903a2..2cc7042068d4 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
@@ -2,27 +2,36 @@
 
 buildGoModule rec {
   pname = "grafana";
-  version = "10.2.0";
+  version = "10.2.2";
 
   excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" "devenv" "modowners" ];
 
   src = fetchFromGitHub {
-    rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    hash = "sha256-PNKvu7DfVHzBaRGM/Zej0oI5pbi6gPta+ZzVEXXmTsI=";
+    rev = "v${version}";
+    hash = "sha256-MlrGBa/ZQwfETr5vt7CyJxtvZC021aeWsgKtfuc8wAc=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    hash = "sha256-KE026VWxlJYzRqTqry4h8vm1NIXB7sJUucz+W/s1eoE=";
+    hash = "sha256-Mt0si5TxkXGQp5vmVD37fl3WKXuuIcJNtiTcEYCroZ8=";
   };
 
-  vendorHash = "sha256-Mybo7ZVP7fwmBwloC3jHJnqPmhbj1DQSwz8T2onkL3Y=";
+  vendorHash = "sha256-z2eDbnezG9TWrqLPxAXHBgdtXvaEf8ccUQUe9MnhjtQ=";
 
   nativeBuildInputs = [ wire ];
 
-  preBuild = ''
+  preBuild = let
+    skipTest = lineOffset: testCase: file:
+      let
+        jumpAndAppend = lib.concatStringsSep ";" (lib.replicate (lineOffset - 1) "n" ++ [ "a" ]);
+      in ''
+        sed -i -e '/${testCase}/{
+        ${jumpAndAppend} t.Skip();
+        }' ${file}
+      '';
+  in ''
     # Generate DI code that's required to compile the package.
     # From https://github.com/grafana/grafana/blob/v8.2.3/Makefile#L33-L35
     wire gen -tags oss ./pkg/server
@@ -42,12 +51,14 @@ buildGoModule rec {
     # [...]
     # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get latest.json repo from github.com" logger=update.checker error="Get \"https://raw.githubusercontent.com/grafana/grafana/main/latest.json\": dial tcp: lookup raw.githubusercontent.com on [::1]:53: read udp [::1]:36391->[::1]:53: read: connection refused"
     # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get plugins repo from grafana.com" logger=plugin.manager error="Get \"https://grafana.com/api/plugins/versioncheck?slugIn=&grafanaVersion=\": dial tcp: lookup grafana.com on [::1]:53: read udp [::1]:41796->[::1]:53: read: connection refused"
-    sed -i -e '/Request is not forbidden if from an admin/a t.Skip();' pkg/tests/api/plugins/api_plugins_test.go
+    ${skipTest 1 "Request is not forbidden if from an admin" "pkg/tests/api/plugins/api_plugins_test.go"}
 
     # Skip a flaky test (https://github.com/NixOS/nixpkgs/pull/126928#issuecomment-861424128)
-    sed -i -e '/it should change folder successfully and return correct result/{N;s/$/\nt.Skip();/}'\
-      pkg/services/libraryelements/libraryelements_patch_test.go
+    ${skipTest 2 "it should change folder successfully and return correct result" "pkg/services/libraryelements/libraryelements_patch_test.go"}
 
+    # Skip flaky tests (https://logs.ofborg.org/?key=nixos/nixpkgs.263185&attempt_id=5b056a17-67a7-4b74-9dc7-888eb1d6c2dd)
+    ${skipTest 1 "TestIntegrationRulerAccess" "pkg/tests/api/alerting/api_alertmanager_test.go"}
+    ${skipTest 1 "TestIntegrationRulePause" "pkg/tests/api/alerting/api_ruler_test.go"}
 
     # main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/scripts/go
     rm -r scripts/go
diff --git a/nixpkgs/pkgs/servers/monitoring/plugins/default.nix b/nixpkgs/pkgs/servers/monitoring/plugins/default.nix
index 2f6122caa69e..6f3d8c5ffd89 100644
--- a/nixpkgs/pkgs/servers/monitoring/plugins/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/plugins/default.nix
@@ -34,7 +34,6 @@ let
     lm_sensors
     net-snmp
     procps
-    unixtools.ping
   ];
 
   mailq = runCommand "mailq-wrapper" { preferLocalBuild = true; } ''
@@ -76,8 +75,8 @@ stdenv.mkDerivation rec {
       -e 's|^DEFAULT_PATH=.*|DEFAULT_PATH=\"${binPath}\"|'
 
     configureFlagsArray+=(
-      --with-ping-command='ping -4 -n -U -w %d -c %d %s'
-      --with-ping6-command='ping -6 -n -U -w %d -c %d %s'
+      --with-ping-command='${lib.getBin unixtools.ping}/bin/ping -4 -n -U -w %d -c %d %s'
+      --with-ping6-command='${lib.getBin unixtools.ping}/bin/ping -6 -n -U -w %d -c %d %s'
     )
 
     install -Dm555 ${share} $out/share
diff --git a/nixpkgs/pkgs/servers/nosql/immudb/default.nix b/nixpkgs/pkgs/servers/nosql/immudb/default.nix
index 716f9f0a9f74..ff6e31498436 100644
--- a/nixpkgs/pkgs/servers/nosql/immudb/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/immudb/default.nix
@@ -14,13 +14,13 @@ let
 in
 buildGoModule rec {
   pname = "immudb";
-  version = "1.5.0";
+  version = "1.9DOM.0";
 
   src = fetchFromGitHub {
     owner = "codenotary";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xvbks6dUiS14cntydAjSNTujxsSwYzmf+B4Zh4V/NwI=";
+    sha256 = "sha256-4N6E2dA7hF5sxHDLO5MMlKraXtwu7eHVB5WKs7J8ZmA=";
   };
 
   preBuild = ''
@@ -29,7 +29,7 @@ buildGoModule rec {
     go generate -tags webconsole ./webconsole
   '';
 
-  vendorHash = "sha256-7mMutYx2/jmTx+7h9S412fYCFXiJnTGz0qwDSO7BIzM=";
+  vendorHash = "sha256-Yvxra/B5Z8qfxh7zsFDj7H+G7SYRfdP7U8UZ9g2os6A=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/servers/nosql/janusgraph/default.nix b/nixpkgs/pkgs/servers/nosql/janusgraph/default.nix
index 36385fd46cca..0c16f90db60d 100644
--- a/nixpkgs/pkgs/servers/nosql/janusgraph/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/janusgraph/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "janusgraph";
-  version = "0.6.4";
+  version = "1.0.0";
 
   src = fetchzip {
     url = "https://github.com/JanusGraph/janusgraph/releases/download/v${version}/janusgraph-${version}.zip";
-    sha256 = "sha256-rfqZE7HYgudVjrz+Ij+ggltaBXvYbczgRwCqsNTojTg=";
+    sha256 = "sha256-X/ZHvmCJzo0X/sUpbm1CkQcnNi3NMNAaVXep6cpoIAA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/owncast/default.nix b/nixpkgs/pkgs/servers/owncast/default.nix
index 2740e19dbff2..a5ec0dc214da 100644
--- a/nixpkgs/pkgs/servers/owncast/default.nix
+++ b/nixpkgs/pkgs/servers/owncast/default.nix
@@ -9,7 +9,7 @@
 }:
 
 let
-  version = "0.1.1";
+  version = "0.1.2";
 in buildGoModule {
   pname = "owncast";
   inherit version;
@@ -17,9 +17,9 @@ in buildGoModule {
     owner = "owncast";
     repo = "owncast";
     rev = "v${version}";
-    hash = "sha256-nBTuvVVnFlC75p8bRCN+lNl9fExBZrsLEesvXWwNlAQ=";
+    hash = "sha256-pPBY2PcXe3k9G6kjj/vF5VB6DEmiwKDUrK4VGR4xNzU=";
   };
-  vendorHash = "sha256-yjy5bDJjWk7UotBVqvVFiGx8mpfhpqMTxoQm/eWHcw4=";
+  vendorHash = "sha256-7HxiZh5X5AZVMiZT6B8DfOy6stJ3+dFEixwJYv5X0dY=";
 
   propagatedBuildInputs = [ ffmpeg ];
 
diff --git a/nixpkgs/pkgs/servers/prowlarr/default.nix b/nixpkgs/pkgs/servers/prowlarr/default.nix
index 9e43e30559db..a2fca49db2d3 100644
--- a/nixpkgs/pkgs/servers/prowlarr/default.nix
+++ b/nixpkgs/pkgs/servers/prowlarr/default.nix
@@ -21,15 +21,15 @@ let
   }.${stdenv.hostPlatform.system} or unsupported;
 
   hash = {
-    aarch64-darwin = "sha256-5K18Vd0Ly/2YSmAvTbgiSQR8ifaz9wMs3vI0WFtB90g=";
-    aarch64-linux = "sha256-QI4+TVW/Zj1sI4yoxTGpzYNPufKnp68fLgDmajzD+6Y=";
-    x86_64-darwin = "sha256-qofWOMJIen8dI1wDFwNWeYuV9Ett3KvaTLfuK/v2USs=";
-    x86_64-linux = "sha256-qqAoXPdsjpn6Al5CLcvqfsZe9PRp8Swg1Wiy0w20hHs=";
+    aarch64-darwin = "sha256-l2HS1/HoKYf93qKxfMU80J3QOXjMRtX2A9hJm8E2Kh4=";
+    aarch64-linux = "sha256-ab5xavO2TVL1j9vqNv97bgAmQLZQJxnbam08DzdgDVE=";
+    x86_64-darwin = "sha256-nXas2i2eq7qdTFV0S+F5sPuqzSwE4qeJ+ms4fcJgZmQ=";
+    x86_64-linux = "sha256-HltmiQSJSwoW5+iEiXlJiCWwKRmuxDBcPbvOkJwLQXA=";
   }.${stdenv.hostPlatform.system} or unsupported;
 
 in stdenv.mkDerivation rec {
   inherit pname;
-  version = "1.9.4.4039";
+  version = "1.10.5.4116";
 
   src = fetchurl {
     url = "https://github.com/Prowlarr/Prowlarr/releases/download/v${version}/Prowlarr.master.${version}.${os}-core-${arch}.tar.gz";
diff --git a/nixpkgs/pkgs/servers/rmfakecloud/webui.nix b/nixpkgs/pkgs/servers/rmfakecloud/webui.nix
index f870dc013b5a..2555bf50801c 100644
--- a/nixpkgs/pkgs/servers/rmfakecloud/webui.nix
+++ b/nixpkgs/pkgs/servers/rmfakecloud/webui.nix
@@ -1,4 +1,4 @@
-{ version, src, stdenv, lib, fetchFromGitHub, fetchYarnDeps, fixup_yarn_lock, yarn, nodejs }:
+{ version, src, stdenv, lib, fetchFromGitHub, fetchYarnDeps, prefetch-yarn-deps, yarn, nodejs }:
 
 stdenv.mkDerivation rec {
   inherit version src;
@@ -10,12 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-37P+acjaeG7TCyLoIHIHsB+DCUOsQOJ1H9T5SgajtLc=";
   };
 
-  nativeBuildInputs = [ fixup_yarn_lock yarn nodejs ];
+  nativeBuildInputs = [ prefetch-yarn-deps yarn nodejs ];
 
   buildPhase = ''
     export HOME=$(mktemp -d)
     cd ui
-    fixup_yarn_lock yarn.lock
+    fixup-yarn-lock yarn.lock
     yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
     yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
     patchShebangs node_modules
diff --git a/nixpkgs/pkgs/servers/search/opensearch/default.nix b/nixpkgs/pkgs/servers/search/opensearch/default.nix
index 73eb1fd97fa7..3c09530d1790 100644
--- a/nixpkgs/pkgs/servers/search/opensearch/default.nix
+++ b/nixpkgs/pkgs/servers/search/opensearch/default.nix
@@ -11,11 +11,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "opensearch";
-  version = "2.11.0";
+  version = "2.11.1";
 
   src = fetchurl {
     url = "https://artifacts.opensearch.org/releases/bundle/opensearch/${finalAttrs.version}/opensearch-${finalAttrs.version}-linux-x64.tar.gz";
-    hash = "sha256-j9bN09E4VikDPqvhRULfOjATme5KgVGrdv0rIPdd4Sw=";
+    hash = "sha256-km6z+Z9ZLnUY1dweJQrhHRu0XvdmqQIiqN8Ruy7jWpw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/servers/sql/pgpool/default.nix b/nixpkgs/pkgs/servers/sql/pgpool/default.nix
index 6d825ddb6680..74fd51d45266 100644
--- a/nixpkgs/pkgs/servers/sql/pgpool/default.nix
+++ b/nixpkgs/pkgs/servers/sql/pgpool/default.nix
@@ -10,12 +10,12 @@
 
 stdenv.mkDerivation rec {
   pname = "pgpool-II";
-  version = "4.4.4";
+  version = "4.4.5";
 
   src = fetchurl {
     url = "https://www.pgpool.net/mediawiki/download.php?f=pgpool-II-${version}.tar.gz";
     name = "pgpool-II-${version}.tar.gz";
-    sha256 = "sha256-EL7Wb4GXx03LAKDnP2GAZtXV4K3IeIZcL8+hyUXmj08=";
+    hash = "sha256-zNSSLIaUmRECor72TdQ/M/U59qGFvULyGDIrqwo4imA=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
index 2a0f3de88499..827fc57af62b 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
@@ -1,27 +1,48 @@
 { lib
 , fetchFromGitHub
-, buildPgxExtension
+, buildPgrxExtension
 , postgresql
 , nixosTests
-, cargo-pgx_0_7_1
+, cargo-pgrx
+, fetchCrate
 , nix-update-script
 , stdenv
 }:
 
-(buildPgxExtension.override {cargo-pgx = cargo-pgx_0_7_1;})rec {
+let
+
+  cargo-pgrx_0_10_2 = cargo-pgrx.overrideAttrs (old: rec {
+    name = "cargo-pgrx-${version}";
+    version = "0.10.2";
+
+    src = fetchCrate {
+      pname = "cargo-pgrx";
+      inherit version;
+      hash = "sha256-FqjfbJmSy5UCpPPPk4bkEyvQCnaH9zYtkI7txgIn+ls=";
+    };
+
+    cargoDeps = old.cargoDeps.overrideAttrs (_: {
+      inherit src;
+      outputHash = "sha256-itU000vyVGnDUUZx6qOLJqiPdyNHikW2KNFzBmJPqv0=";
+    });
+  });
+
+in
+
+(buildPgrxExtension.override { cargo-pgrx = cargo-pgrx_0_10_2; }) rec {
   inherit postgresql;
 
   pname = "timescaledb_toolkit";
-  version = "1.16.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = "timescaledb-toolkit";
     rev = version;
-    sha256 = "sha256-aivGURTsm0dGaFq75qR3wIkXwsbvBiDEg+qLMcqKMj8=";
+    hash = "sha256-Lm/LFBkG91GeWlJL9RBqP8W0tlhBEeGQ6kXUzzv4xRE=";
   };
 
-  cargoSha256 = "sha256-AO5nSgQYvTmohXbzjWvDylnBgS2WpKP6wFOnkUx7ksI=";
+  cargoHash = "sha256-LME8oftHmmiN8GU3eTBTSB6m0CE+KtDFRssL1g2Cjm8=";
   buildAndTestSubdir = "extension";
 
   passthru = {
diff --git a/nixpkgs/pkgs/servers/sunshine/default.nix b/nixpkgs/pkgs/servers/sunshine/default.nix
index b5b855a4b698..1767b544f21a 100644
--- a/nixpkgs/pkgs/servers/sunshine/default.nix
+++ b/nixpkgs/pkgs/servers/sunshine/default.nix
@@ -31,6 +31,7 @@
 , libepoxy
 , libva
 , libvdpau
+, libglvnd
 , numactl
 , amf-headers
 , intel-media-sdk
@@ -131,6 +132,7 @@ stdenv.mkDerivation rec {
     mesa
     xorg.libXrandr
     libxcb
+    libglvnd
   ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/servers/tailscale/default.nix b/nixpkgs/pkgs/servers/tailscale/default.nix
index b4c2d2475172..60f82bf57e88 100644
--- a/nixpkgs/pkgs/servers/tailscale/default.nix
+++ b/nixpkgs/pkgs/servers/tailscale/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, iptables, iproute2, procps, shadow, getent }:
 
 let
-  version = "1.54.0";
+  version = "1.54.1";
 in
 buildGoModule {
   pname = "tailscale";
@@ -11,7 +11,7 @@ buildGoModule {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    hash = "sha256-/l3csuj1AZQo7C0BzkhqvkMNEQxc6Ers0KtZvxWS96Q=";
+    hash = "sha256-dYYmqz1o3+FhdHmQ3KzUkAoSfEHNQhQt6neV3rFI+QE=";
   };
   vendorHash = "sha256-/kuu7DKPklMZOvYqJpsOp3TeDG9KDEET4U0G+sq+4qY=";
 
diff --git a/nixpkgs/pkgs/servers/teleport/11/default.nix b/nixpkgs/pkgs/servers/teleport/11/default.nix
deleted file mode 100644
index 3a935b630e72..000000000000
--- a/nixpkgs/pkgs/servers/teleport/11/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ callPackage, ... }@args:
-callPackage ../generic.nix ({
-  version = "11.3.27";
-  hash = "sha256-A3EeFQsDOaggfb5S+eyRCe/vm054MabfRrcHPxhO0So=";
-  vendorHash = "sha256-hjMv/H4dlinlv3ku7i1km2/b+6uCdbznHtVOMIjDlUc=";
-  yarnHash = "sha256-hip0WQVZpx2qfVDmEy4nk4UFYEjX1Xhj8HsIIQ8PF1Y=";
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "rdp-rs-0.1.0" = "sha256-GJfUyiYQwcDTMqt+iik3mFI0f6mu13RJ2XuoDzlg9sU=";
-    };
-  };
-  extPatches = [
-    # https://github.com/NixOS/nixpkgs/issues/120738
-    ../tsh.patch
-    # https://github.com/NixOS/nixpkgs/issues/132652
-    ../test.patch
-  ];
-} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/nixpkgs/pkgs/servers/web-apps/netbox/default.nix b/nixpkgs/pkgs/servers/web-apps/netbox/default.nix
index ab648d7daa7b..4c19eaf0a4d2 100644
--- a/nixpkgs/pkgs/servers/web-apps/netbox/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/netbox/default.nix
@@ -22,8 +22,8 @@ lib.fix (self: {
   };
 
   netbox_3_6 = callPackage generic {
-    version = "3.6.3";
-    hash = "sha256-8Xir2Gvwh2cllHu5qVAzumuH0lknMMtjd8BuFuuf9A0=";
+    version = "3.6.6";
+    hash = "sha256-viC4grOqpWvG2pqcSi+MJykpEXSQYqfpkKF9it9Tj1g=";
     extraPatches = [
       # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL
       ./config.patch
diff --git a/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix b/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix
index afd02d798535..ec544b1e8772 100644
--- a/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix
+++ b/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , python3
 , version
 , hash
@@ -94,6 +93,7 @@
       passthru = {
         # PYTHONPATH of all dependencies used by the package
         pythonPath = python3.pkgs.makePythonPath propagatedBuildInputs;
+        gunicorn = python3.pkgs.gunicorn;
         inherit tests;
       };
 
diff --git a/nixpkgs/pkgs/servers/web-apps/nifi/default.nix b/nixpkgs/pkgs/servers/web-apps/nifi/default.nix
index 46535e0b4b4b..182b1fb22fd5 100644
--- a/nixpkgs/pkgs/servers/web-apps/nifi/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/nifi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nifi";
-  version = "1.23.2";
+  version = "1.24.0";
 
   src = fetchzip {
     url = "mirror://apache/nifi/${version}/nifi-${version}-bin.zip";
-    hash = "sha256-NRX0lEE5/HsYnZXtLDlPUpgWMsg/2Z3cRUnJwKDGxfw=";
+    hash = "sha256-8S06E8RiH/EnfAa60eRzjmHmzMn+3UZbykJpvFFXEho=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix b/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
index 010112dff80b..6b655c63cd86 100644
--- a/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
+++ b/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "zigbee2mqtt";
-  version = "1.33.2";
+  version = "1.34.0";
 
   src = fetchFromGitHub {
     owner = "Koenkk";
     repo = "zigbee2mqtt";
     rev = version;
-    hash = "sha256-pRY4FOIJwsLSKYieN0D1esKdoUqx62NMFgiYXaXguJ0=";
+    hash = "sha256-2D9WylfpetnEZdY4STIrGEU6Gg1gET/zf5p7Ou/Wm5Q=";
   };
 
-  npmDepsHash = "sha256-9bOFM8Ie0334H2L94ypgkMrB6zyVJ9YTvNnKeBJjOUI=";
+  npmDepsHash = "sha256-MXTKZNERxryt7L42dHxKx7XfXByNQ67oU+4FKTd0u4U=";
 
   nativeBuildInputs = [
     python3
diff --git a/nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix b/nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix
index 6efbb285f29f..9ff6c464bbe2 100644
--- a/nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "agdsn-zsh-config";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "agdsn";
     repo = "agdsn-zsh-config";
     rev = "v${version}";
-    sha256 = "sha256-kbpiA+aI3mXQAanmTyZo2rJNOKX77FKjpVsQywyyq90=";
+    sha256 = "sha256-8POQPk/hsJBMJ/ZJe9XzVj7Rd7C2+QnpzgYbUR0s3Fc=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
index 37deb7960532..3a0b72a158de 100644
--- a/nixpkgs/pkgs/tools/admin/awscli2/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -13,6 +13,11 @@
 let
   py = python3 // {
     pkgs = python3.pkgs.overrideScope (final: prev: {
+      sphinx = prev.sphinx.overridePythonAttrs (prev: {
+        disabledTests = prev.disabledTests ++ [
+          "test_check_link_response_only" # fails on hydra https://hydra.nixos.org/build/242624087/nixlog/1
+        ];
+      });
       ruamel-yaml = prev.ruamel-yaml.overridePythonAttrs (prev: {
         src = prev.src.override {
           version = "0.17.21";
diff --git a/nixpkgs/pkgs/tools/admin/berglas/default.nix b/nixpkgs/pkgs/tools/admin/berglas/default.nix
index 75a4bc591e7b..150b5535f1ce 100644
--- a/nixpkgs/pkgs/tools/admin/berglas/default.nix
+++ b/nixpkgs/pkgs/tools/admin/berglas/default.nix
@@ -27,16 +27,16 @@ in
 
 buildGoModule rec {
   pname = "berglas";
-  version = "1.0.3";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4hbRX0kKMWixcu5SWjrM5lVvhLMOaeBdG4GH5NVAh70=";
+    sha256 = "sha256-Jf6yPVydM7UnG1yiLEFe+7FMkWANIQebZ3QAwg6/OQs=";
   };
 
-  vendorHash = "sha256-qcFS07gma7GVxhdrYca0E6rcczNcZmU8JcjjcpEaxp0=";
+  vendorHash = "sha256-3WDBl/GqCgRFMmh6TQvtHhACCRzf9sdIO8fel8CAMP0=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/admin/lxd/ui.nix b/nixpkgs/pkgs/tools/admin/lxd/ui.nix
index c248199b4ad7..7e3f1427008e 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/ui.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/ui.nix
@@ -9,18 +9,18 @@
 
 stdenv.mkDerivation rec {
   pname = "lxd-ui";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "lxd-ui";
     rev = "refs/tags/${version}";
-    hash = "sha256-l9Fp/Vm7NxMCp5QcM8+frFyfahhPG7TyF6NhfU1SEaA=";
+    hash = "sha256-52MRf7bk8Un9wqz00+JjDmuJgPKYhgAhIbMbcAuf8W8=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    hash = "sha256-R6OeaBC6xBHa229YGyc2LDjjenwvS805PW8ueU/o99I=";
+    hash = "sha256-WWnNjwzhN57PzTPmLWWzPoj66VFUnuzW1hTjKlVV8II=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix b/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix
index 299d77ff8acf..00cd07621ae9 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix
@@ -1,12 +1,12 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.94.0";
+  version = "3.95.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.94.0-linux-x64.tar.gz";
-        sha256 = "1yn97xxqwgrcd5psrrimcz1gjv34s7mri40nwb2mgmqj7xs4hyi3";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-linux-x64.tar.gz";
+        sha256 = "1ig942izr0bjjnmccjdrna1fy1245s0l5mbr80xbxm5lima9z66p";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-linux-amd64.tar.gz";
@@ -17,52 +17,52 @@
         sha256 = "0pf1pka8pq4cizlnf5hm5ji1hf5nchkj21mwpi2cxdk2w4ghw0ds";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.2-linux-amd64.tar.gz";
-        sha256 = "0qi3wp5iy9pym4yqzx1186paz80dv7lppcd0jw4fgpi8lclfygbm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-linux-amd64.tar.gz";
+        sha256 = "0cp4f5syq1jbkvw1gjxyfwf6kv1qkzb68x7gqm2xdb9j4glx4wab";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.4.2-linux-amd64.tar.gz";
-        sha256 = "06ycizhynnmr9g0awqn9y8jglxl7brxrzibxh9lb55kiy5vl8vry";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-linux-amd64.tar.gz";
+        sha256 = "0gha4nm5gg4s3hqy7whdywkd0mpndmgjq9xmswqzvapjj7hjcnh6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "0vyhmdyln0cpcf1fgc0v641c78a66dzx97i7xq6isspl6zx9njn5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "05mhvif4minkr5mi0yjghsd9ffx9wyb5chjp0kz3256d4clld6ai";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.8.0-linux-amd64.tar.gz";
-        sha256 = "112rd5hhmcp2h7r6jzihcb8g1w1r4g1ba1mwk808nwqfgswfi2wf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-linux-amd64.tar.gz";
+        sha256 = "1p4k8fx6ix8y7bb8mjvk0avq5r7lam3yywncb05vxiw5qwqls9s0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.44.0-linux-amd64.tar.gz";
-        sha256 = "0slbvp9pg2yrrm5i4z7zhyksn8lmz82xymvwadr69z71h59s3b1x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-linux-amd64.tar.gz";
+        sha256 = "0dl60nrgilg9ccn28dnyrv0lw6sqrcy26r4kgcbdqkw0f15isjhv";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-linux-amd64.tar.gz";
         sha256 = "029xymc6ynb7aq5wdkvksgqhjl9aix5j3rn8dfzlbmrmmz0xyvxr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.55.0-linux-amd64.tar.gz";
-        sha256 = "0hk2niplgjhkq7fhkwhhka33cikdami7r6g2f80c7d94g8wpgf5x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-linux-amd64.tar.gz";
+        sha256 = "17q3186a3awbh0v0rxby4a8qdl49zbbc46a1fjaqhsg14sizryfl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.14.0-linux-amd64.tar.gz";
-        sha256 = "1vn3rayqdg8hff0bcbmzy2nz9pzbki00y729jxdlkv2k4y4raik6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-linux-amd64.tar.gz";
+        sha256 = "05k325y99wcg3584bbgkrh20zq46y6hi1sk2bi0jm6njvwyb786w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.10.0-linux-amd64.tar.gz";
-        sha256 = "1h7rxzax73hq6dyldb6dqxrjhbddamaljn2h0cabdjlvrvbnkg0l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-linux-amd64.tar.gz";
+        sha256 = "1v8x27yi6mqj8sxwwl7jvw5960pv98y4lkyj9gyx3260a3hsgav2";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-linux-amd64.tar.gz";
         sha256 = "0bsbfsc7wxsjyqyz5klxn91hd1lwini4pbpm0lw5pf78af7z8v0z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.23.0-linux-amd64.tar.gz";
-        sha256 = "1r1sfxngwkf89lni0l8zalh2vz5a7m9ap4p15cs4bc98zmkin762";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-linux-amd64.tar.gz";
+        sha256 = "1j7zkyjn7v98l5m9a3cgpy5ckx5y4kirda8i3im58dbyripwzppi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.5-linux-amd64.tar.gz";
-        sha256 = "1m44dwr8q8w60s5clm4n1hini1bm5bqc7p7h1gvbh5zg1482hn5q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-linux-amd64.tar.gz";
+        sha256 = "0v4bg7iz6fnvca59z74ymqilkra4mldbs1xa4w1ijw4jvbnyq3vr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-amd64.tar.gz";
@@ -73,32 +73,32 @@
         sha256 = "1l3pqshzxscv3pxp5wjyrc83irkhh6g7hbdi51x2jhdywjz5r55m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.0.0-linux-amd64.tar.gz";
-        sha256 = "1047qlwrv42llknx25r2iqdchparcrc5krpbjcqq194rpzq73m02";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-linux-amd64.tar.gz";
+        sha256 = "0llybkwlzzd8ylxcch4hns3xbba715iyf1mrfy9vnn60kfn2jprc";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-linux-amd64.tar.gz";
         sha256 = "0hnaanqg991xy4jmk09rcd5adzx760707133yaax0nx6r1g0lbdc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.5.0-linux-amd64.tar.gz";
-        sha256 = "0x22g7rdywxk1crgcf424n6w2h1jslk4fhhh66g642d553jpz1ci";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-linux-amd64.tar.gz";
+        sha256 = "10cxlavxvb98207plgrvmf8c8sgp5w2hpnpcj493i033am07g7yc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-linux-amd64.tar.gz";
-        sha256 = "1xq92rsk7bimkr52c13mjypd0ygs7qc9ijyi2ghnf0585d1z5bk5";
+        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.16.2-linux-amd64.tar.gz";
         sha256 = "0f5sii66fffq5qrri8r1a3xzskvj9yx6chr7j2s34kgc11dqrbxc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.4-linux-amd64.tar.gz";
-        sha256 = "1r079igvw2cv90sq5c7ldfvyfni3a6vh8bwj9hzbjwmcmpdf2lri";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-linux-amd64.tar.gz";
+        sha256 = "13nrdwka7pxyqjy5hjc3678sfayfs11hwqfj7r4apml8sws0g3xj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.5-linux-amd64.tar.gz";
-        sha256 = "10llnm73xzm8p2jjiny1zbx9snh633vi8psbaxc2hrjv8ks803i0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-linux-amd64.tar.gz";
+        sha256 = "10a0kr20ai5qhhxsr5210ag5ijkzxjihm7afy2mzsslqv4zdc953";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-linux-amd64.tar.gz";
@@ -121,20 +121,20 @@
         sha256 = "1v59k0m4rrad5vbd2x4znb985cbwj9py6ki60x1skq704pmcli5g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.39.0-linux-amd64.tar.gz";
-        sha256 = "1g5rx5vy8miwlz66dwv6nks9jk0pjyxb37w6wgnpcgw02m9famrl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-linux-amd64.tar.gz";
+        sha256 = "10m3mqqi1gr5n7phsjyrdpy6vd9f3qri7vryj10p6fp7my9sgr3q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.58.1-linux-amd64.tar.gz";
-        sha256 = "1k3xipaw1nrfc0vms20xcxnaz4f0wni3a3w85lwiyi4vx5pd0kn7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-linux-amd64.tar.gz";
+        sha256 = "00mml1dpyjc683yrp7g7w49pvjyd5mdm6bls26q9rbirgblajcnf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-linux-amd64.tar.gz";
-        sha256 = "1knsb0ha7xbgvlna67nhxmmrr6rw3h52va3dh4ra47b7r8ii7dca";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-linux-amd64.tar.gz";
+        sha256 = "0nssdk2zp42ssnkgq87mw4rk1lzlzgi3adr4l5g9ipmqjfphw3bx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-linux-amd64.tar.gz";
-        sha256 = "06gvx51nl93rj244yximp6059yiyxh4jcdqqcrjic8r7wabzsiiw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-linux-amd64.tar.gz";
+        sha256 = "148ifpnjh8jm4x9f9snlzfq1z7f2z0c630bhhx6a86ankaavyr00";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-linux-amd64.tar.gz";
@@ -149,8 +149,8 @@
         sha256 = "044w1qwjadrz0ylr00qnwppvq6mc8c8z759b0wfn69a2r25az19f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.8.1-linux-amd64.tar.gz";
-        sha256 = "1y8yfzmgxx2x15ljwjyc5kyrkmai1if59hz65avsf67615xisnyy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-linux-amd64.tar.gz";
+        sha256 = "1dp9vldrs2b0ml542rn0jna0rbz2hxx7il86bliamj5fwr89k49w";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-linux-amd64.tar.gz";
@@ -163,8 +163,8 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.94.0-darwin-x64.tar.gz";
-        sha256 = "0v854xz9imq9kxslvyx3km20jzcia8m6wkq6ga1gxlsrbx3ajgrn";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-darwin-x64.tar.gz";
+        sha256 = "13lb757py7ls6p4l2x5s20xy5mp21a10y8cdnbfsr9l03kz50yhi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-darwin-amd64.tar.gz";
@@ -175,52 +175,52 @@
         sha256 = "0i4kjngs8ly5cxikxc1jz2lcma31sx87vbdbny2j7xxz3fqsyi19";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.2-darwin-amd64.tar.gz";
-        sha256 = "0rrs93qrqz4bs66ydjb2y4jl6l7pdycs4hqpgp110mipn54bkfix";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-darwin-amd64.tar.gz";
+        sha256 = "0ld394yzmhmagn2mb1ds7mg30v283f1q1xg67r1bs3wmf4zkxi8l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.4.2-darwin-amd64.tar.gz";
-        sha256 = "03rvwmslb8z5y0whfw8n9ycdi943kniacw5jxasi4crciz5ynldf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-darwin-amd64.tar.gz";
+        sha256 = "1ci55mz72y68wwcih0sx500n3pmrkq798janhc7nksyn8qdj14ik";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "04imkdrj388nk88r734f0p0a6z1hffzmplwgmx55kfwqz3zpz4y5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "16yqva40xq8xfqjnxx7r9kx3r6nrxsqivqpm056hpnad6bjy5d7s";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.8.0-darwin-amd64.tar.gz";
-        sha256 = "08acycw7qz7dz6hb7yrja38gkqb309nbski68g9vpbvgg71b4kkm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-darwin-amd64.tar.gz";
+        sha256 = "1abmbagldr2bv73qz39kpbpyjjwy3c8slikwvak9mmzxjpk2lvay";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.44.0-darwin-amd64.tar.gz";
-        sha256 = "1b01rnms4fzi0w4pmyxjrp06001fz99dpas4r06ri2mm21kdbyvf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-darwin-amd64.tar.gz";
+        sha256 = "0gr4is4k9hzjncg5qvy1n4j4hzvmn8f37f119bdgima1s6r9aiz4";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-darwin-amd64.tar.gz";
         sha256 = "16zc13z31p92775v3vsn6j6pmz1wcjqb8rhzxpnr03zbqviws7mi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.55.0-darwin-amd64.tar.gz";
-        sha256 = "1jdxf418lrh1rzhmkcjpvx1l5pc7gjigyxdxfzf9ig8fxhwrnwhm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-darwin-amd64.tar.gz";
+        sha256 = "06nr217ymzfkr6l4fgwj9fjp724v08lyvxap7xw56mq9z0bf1vgk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.14.0-darwin-amd64.tar.gz";
-        sha256 = "0h6lsjh7243792x943900aw714i7nkjcyn8sgcy4y2z2c43ic1pz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-darwin-amd64.tar.gz";
+        sha256 = "1v3axsc678s7w0pkpc4b8l32rl2yb0jcdwba6i8v9jlawg4rv4z0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.10.0-darwin-amd64.tar.gz";
-        sha256 = "0wyjcpl5iw3f97k0s372lh4xrpdibsrczwdprl55w56wxd7kdjq1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-darwin-amd64.tar.gz";
+        sha256 = "07iwdpvxqf3vkd1l1daazhs3agbbq067bcyp0vr2jqapz355yjad";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-darwin-amd64.tar.gz";
         sha256 = "1qyb6v3bxg7hsr5viwpc4nzdgq63frjqgxs7kqyg1pp40rcmh2bm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.23.0-darwin-amd64.tar.gz";
-        sha256 = "0iymy2rjyxya49w7awrjns4pnj4m2m66iqf59f1a6ww4i5qmx5f1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-darwin-amd64.tar.gz";
+        sha256 = "0hm1jx48i6315xykn5fx3zw1m4cp5blizjmvcidrs5x1j1fwpcl4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.5-darwin-amd64.tar.gz";
-        sha256 = "0g8rcdbfbpmsw3wqx9jy5kz6pcmr9im2njisi3rlkkyfazm7fmqd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-darwin-amd64.tar.gz";
+        sha256 = "0arzbimf0rwn6j41ia6fl90xnkz7yyhc3lnnzr51sw4g8y3jihj9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-amd64.tar.gz";
@@ -231,32 +231,32 @@
         sha256 = "0xdfxxlfxm44bkljc5c8h3ici7dlkbgbg6z2ns4870p15lhq34n5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.0.0-darwin-amd64.tar.gz";
-        sha256 = "159p2fxfhgck431cbzs5ik6s4bprx8jp5nxi28ir52qyfaj3xx6x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-darwin-amd64.tar.gz";
+        sha256 = "0974a34i4im82ccc4b25l6v3hdvi0hkh2xadhdn765g2bdcr7vh8";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-darwin-amd64.tar.gz";
         sha256 = "1547hc9jdg0j6n66sk5j7iid5m5pvkv8q9j09q9vkcrkj3kkjcvb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.5.0-darwin-amd64.tar.gz";
-        sha256 = "1kipsvsji6s9j2644ka46rpg4mhscj3hb61b5g3ghfmm66hxijs6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-darwin-amd64.tar.gz";
+        sha256 = "0a03z495j6yy3y5aqbd4515iwm601pzr6is7lq885vcripxvs4x7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-darwin-amd64.tar.gz";
-        sha256 = "18vqn7cs5l6fyxmplvcmb779sa91ka8vzz40giggdxzsdjjj9dpx";
+        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.16.2-darwin-amd64.tar.gz";
         sha256 = "19zm781g8ii062dp48wf11pdyrddk10c5rf18xk4bpf2prbg5vsi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.4-darwin-amd64.tar.gz";
-        sha256 = "1mj438fnidycdbxi168z3bkc8fxpw1fzagssxzwawd2d6faxv919";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-darwin-amd64.tar.gz";
+        sha256 = "1ikshq05lkh39m5z7p72mv3cnd9ji16b09cb5g78zlrdzlgq2086";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.5-darwin-amd64.tar.gz";
-        sha256 = "087i49sx3cw7vylq01vby1mhblr03ib302yhss7sx944brzc53hv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-darwin-amd64.tar.gz";
+        sha256 = "0h177vx31q53xpqrvfdajf4knwchhrz7l605s50v5isqbpgagl5m";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-darwin-amd64.tar.gz";
@@ -279,20 +279,20 @@
         sha256 = "1jg3qdm331dvnq2igf6q0xd2ld21jnhm0h756pmxszngadfnmcdw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.39.0-darwin-amd64.tar.gz";
-        sha256 = "19pm2qfjmdfz32py93xcmw85byyffgq1xpv6rdk31r25ys9qhdbl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-darwin-amd64.tar.gz";
+        sha256 = "144rydj53334sj11p55npmgss3kam2lxrm7shrcjvb1v28m8vdnx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.58.1-darwin-amd64.tar.gz";
-        sha256 = "19i67kpf5ghw9w5mdww10njz7cf0v7975in0nrp2i6l61p9c9yl1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-darwin-amd64.tar.gz";
+        sha256 = "0yxqhzx5rdy0a7g8q8c1s9w52h1clssnx70pp8900vdfsviwxqvf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-darwin-amd64.tar.gz";
-        sha256 = "0xgihb099s99qb5bk6wavwm9227z73jgqrysmvjrqkn83kh7942v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-darwin-amd64.tar.gz";
+        sha256 = "06cwx6642byqb953g8xa9a3s9jcp8cf6ib12agchkwmpfws5piz1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-darwin-amd64.tar.gz";
-        sha256 = "1pm5j9q4kvv70c6paficcfb664df6666mq559zvdklf5ndjpw5z9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-darwin-amd64.tar.gz";
+        sha256 = "0mpwjrbayckaapvz8vs2x918ya5a3rk44f3cx1dri18wq82klln7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-darwin-amd64.tar.gz";
@@ -307,8 +307,8 @@
         sha256 = "19wmv952wn2njbd1ppl1lfzf1f47wf11m4qiiqc3wyd1qc33qsn1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.8.1-darwin-amd64.tar.gz";
-        sha256 = "0ghxpf03h1gg1fc0wpzzdij9dydc9knvjyn9xvjhwr7ar3bvswq5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-darwin-amd64.tar.gz";
+        sha256 = "18kai9s283hip893867hc65pr0jpgydw0b2gwqdj2zi3mibbm08x";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-darwin-amd64.tar.gz";
@@ -321,8 +321,8 @@
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.94.0-linux-arm64.tar.gz";
-        sha256 = "075pyjjinc77283cqd81745sdjxlcrdn02nx17jis28w4gp7y88n";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-linux-arm64.tar.gz";
+        sha256 = "0sf96mbqlj4q6lf6xlx6bd4v12byg929m2vx4w7smqdd7w27gsja";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-linux-arm64.tar.gz";
@@ -333,52 +333,52 @@
         sha256 = "0y1i2lwvy0wjvngpjf5rscidrlqb3mhhkhqvj227alz3c4xhf091";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.2-linux-arm64.tar.gz";
-        sha256 = "1mncqhlr8ga43pkay8cn0nj9b3kzd8jb65wp02gqsgf8adracrks";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-linux-arm64.tar.gz";
+        sha256 = "0fas3734vf8ibx36ikgwjr5ky1sprxh7qn95jd43d13ii9a8ic9l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.4.2-linux-arm64.tar.gz";
-        sha256 = "0x6k6ng49nnh72ca1jcqg1nci8i4qhnw90xwgwi0mxc7dndnx73x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-linux-arm64.tar.gz";
+        sha256 = "0ahp2aqlp9j7hr6c8rxzwrabyn1cfxqcncfax4sbj1prqw0jrac2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-linux-arm64.tar.gz";
-        sha256 = "11ph5yjy754sb55sncdlgibrmijg2jsylrjfpvy4mclrwg64cari";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-linux-arm64.tar.gz";
+        sha256 = "0ivkm1cidvc6fz6k65z386qw0d7skh31i81yqccaql1i0n67mlsh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.8.0-linux-arm64.tar.gz";
-        sha256 = "0l8kqxk85vskg4jw2m9qvqjp9bdlzbllbhzj4q1fifmcwj5ks649";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-linux-arm64.tar.gz";
+        sha256 = "0329lf1r9lga72x0crdwgx7m2xg14ydl6hb1c5jj76lkisqqzzyp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.44.0-linux-arm64.tar.gz";
-        sha256 = "0fkjdd51b3pa224ycf9fi1zdcrf6vcbp9vph1rgqynz9ha7axyiz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-linux-arm64.tar.gz";
+        sha256 = "045mc5ifkbpwp74z6826nzi16a2p5h44szxfn8h4mn3zjq86yjsi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-linux-arm64.tar.gz";
         sha256 = "11gx8zlkakfbwf7vc4j29cd0bfakjf6flgp0a05d8ka5kjq3qkcx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.55.0-linux-arm64.tar.gz";
-        sha256 = "0gvvzv2qrdma9qah36giwgxgs7vhq86xjmxrsbja2n6jxzdrfszk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-linux-arm64.tar.gz";
+        sha256 = "0yfsci2jc0az4n4mkr0wfd6npzxqw1mkci09wagrs7wibwb4wx5d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.14.0-linux-arm64.tar.gz";
-        sha256 = "0v5665apxp9bg8vj73p8bni7dqqa2cqawx4dda9rfv35a63rd89w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-linux-arm64.tar.gz";
+        sha256 = "1iq7phnx0sz539vgsc6j6md6djw7rdnywfmlbjrc6f31fsx2v0ln";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.10.0-linux-arm64.tar.gz";
-        sha256 = "0980s2a1c3pkswf8ai91wb526hyghcbzjnykf5ivam4vy0mlc8k5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-linux-arm64.tar.gz";
+        sha256 = "1x92ls4p3l44p276rdgy1dxf5qy29ssw3zgjajf6jlfimgp8746f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-linux-arm64.tar.gz";
         sha256 = "1h7yh118iqr0bdkkagf3m0yxnphz5na7vyqqmzs7d9y9kcgfg8gi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.23.0-linux-arm64.tar.gz";
-        sha256 = "11q7cnncwdmjp8klk74wrnm6674ap5lrdjfq7413ps8rbdjpyvhl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-linux-arm64.tar.gz";
+        sha256 = "10dvhbv5l1wwb6r7c9aiy0pqpwsj2s8s6gdyabvqm8hcza37jlnd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.5-linux-arm64.tar.gz";
-        sha256 = "1dxam51n9r2nmkw29fdwl5b0664ll2a1qczva0fgh1wpdslisp8s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-linux-arm64.tar.gz";
+        sha256 = "0447lckkgq6vs8a2ra4wi86yir8w61mm41ahp9nn6xxmnsqrn3jm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-arm64.tar.gz";
@@ -389,32 +389,32 @@
         sha256 = "11dfjx05inx1fdknzli0q7gma4hc1217jmfn4bx9ky635nqh5ckq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.0.0-linux-arm64.tar.gz";
-        sha256 = "0w2zwbz9slbwnk2zaw88y5npiqh2b5klw1j33c5wv1lr75fy2192";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-linux-arm64.tar.gz";
+        sha256 = "00b9b6zpkd88j5vsfff1q3q5wna22h2jvfhri6kap372whvdbpac";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-linux-arm64.tar.gz";
         sha256 = "0gwdlk1m4f91fbqnlv3jb83fi66nay261180nr72bk4hc9757y8i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.5.0-linux-arm64.tar.gz";
-        sha256 = "03j4ka8jdyxzkbsd0bgiqnnz1a8472mb0v3mlfnyvi0c6gs4y7cq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-linux-arm64.tar.gz";
+        sha256 = "14dk14j27kbjbda02x62621kjfvr6g2fc65cxdgcl0qb662fms2x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-linux-arm64.tar.gz";
-        sha256 = "17bykmfj9kxw2c94wjxcfakd10apnc88axr3wx2pa2k5idxd3ih0";
+        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.16.2-linux-arm64.tar.gz";
         sha256 = "1z67c7jwfs2z2hi0fqsxzsb426iv82n9sv3ik6smhq2agcxlaas2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.4-linux-arm64.tar.gz";
-        sha256 = "0b81vgi6n1j3gh8kbf3g3fxlix7iyrn08kkrizmpc7bv5wd0i9ry";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-linux-arm64.tar.gz";
+        sha256 = "0mxw0f756b4p0far801vwpsw2md0pph33bsh5xij5is5c1kiqwjr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.5-linux-arm64.tar.gz";
-        sha256 = "1wvl8h7wfkr1d7rff8j0n30xdc9yx1q3ps7zm8b485isx8hhq4f4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-linux-arm64.tar.gz";
+        sha256 = "0s1gk18fszs6vwy3kwask0vsyykvxwwgigml1va67i9w0bqp199l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-linux-arm64.tar.gz";
@@ -437,20 +437,20 @@
         sha256 = "18wkr5sfa9v8b9b4c3hdgnq8wd8qpykcyqbcmiypykj8y954hxjk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.39.0-linux-arm64.tar.gz";
-        sha256 = "0a8vzhiy7jdxyvfmqd6z9n7iqvpdxc51qcwy212r9vy84mqxjsig";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-linux-arm64.tar.gz";
+        sha256 = "0j4qhlxkpxr7j4s76vkkqxwhjb9b4kvdn19wcd83j2ybxlz698zw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.58.1-linux-arm64.tar.gz";
-        sha256 = "1nv5vd4cv8bfvihv2m316pw39yip7i61xx29lxvyvi5pib2yl0h2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-linux-arm64.tar.gz";
+        sha256 = "0p2wlfs2lwwiz0az4kdb2jpaswn8z8yrv2mwk1hhcjn7g8xyn5zc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-linux-arm64.tar.gz";
-        sha256 = "1kqv70w3d84a9a0kj0w2hmd88h50zlfc35xkf57kgd43l948wcin";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-linux-arm64.tar.gz";
+        sha256 = "1pzkcm9nw8q8i440lc3xgpg9l5qrkxf1x22y7llvm5k0z1vv5rpq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-linux-arm64.tar.gz";
-        sha256 = "1rlf5gl7a7ym8zl4h0v7i42a9830zi401axw032h0v4q6w4zki3n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-linux-arm64.tar.gz";
+        sha256 = "1hyff2mkpkkbg8li0kblqmb17xcjql77wly33fjph6gw66wymnqb";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-linux-arm64.tar.gz";
@@ -465,8 +465,8 @@
         sha256 = "0gx4n9palj6yana77hs3aiv96ck4vzvnqblb1h7h9z1jfmdl7m01";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.8.1-linux-arm64.tar.gz";
-        sha256 = "1qj7640s3kqiz3x30k7dvd4v2anzqm1mb9qf045igmmf2bm6q5fm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-linux-arm64.tar.gz";
+        sha256 = "1pkkm24f4n6qd5hsgb6ayv38jfs6k77mb3xcvdzsy3bmynxn7662";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-linux-arm64.tar.gz";
@@ -479,8 +479,8 @@
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.94.0-darwin-arm64.tar.gz";
-        sha256 = "05yyw5pjbmzgqimcd72xidwzqsvvkj7ayafwy701smmxdpck31b0";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.95.0-darwin-arm64.tar.gz";
+        sha256 = "0k09shsrpzi378xfqggx532szq35w67nja91ysljm8w5q8f1s06a";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.7.2-darwin-arm64.tar.gz";
@@ -491,52 +491,52 @@
         sha256 = "1lz73k8v5iixivydvfrwr239sw6i5qx4h7qkd0l3hvbih3v97v6a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.44.2-darwin-arm64.tar.gz";
-        sha256 = "1prm3b7w0i751rpvwglfkm2wkq24318k2ra8z6rkjsdkcvxa1i5j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.45.0-darwin-arm64.tar.gz";
+        sha256 = "1dqs6ygjpah10g47k4d3ms2cin5k76c2kbzgg86ipar3gcyn2lx9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.4.2-darwin-arm64.tar.gz";
-        sha256 = "10blif15dymdbdr40lazaiq8sncfp0gd9phahzcr2m9fh6rx4lpd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v5.5.0-darwin-arm64.tar.gz";
+        sha256 = "0f3nd7sy17sg522lxsc5ypsqpk8allw0wvzw7i6vc5781xa40xqi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.0.0-darwin-arm64.tar.gz";
-        sha256 = "07f30h74hyg3j9dj78a0al5v9i5n105y52yn362mlyvfh807blml";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.0-darwin-arm64.tar.gz";
+        sha256 = "02hlp97294ds7cpj775lks5w05hxwv644y8v9pil5y6n2xllkrqg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.8.0-darwin-arm64.tar.gz";
-        sha256 = "05ifn20vn66k6sy69l3z1nmnjajfjazlq12cm1vz4apxa8yqxqn4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.13.0-darwin-arm64.tar.gz";
+        sha256 = "042hqdj5j8ib1l9r0h62m2x79x2iglz2fnvw6007absn6vi3qhsq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.44.0-darwin-arm64.tar.gz";
-        sha256 = "1v9xk41876gcsgggr3igjj8n8ff3zd5fvqbp81s7g180z1pgsrkk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.46.0-darwin-arm64.tar.gz";
+        sha256 = "0l0g5qgv5f6q0fij8mkvawdkm7h3wfqcg6mfskw6s0kwbmrbavpj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.14.0-darwin-arm64.tar.gz";
         sha256 = "0asaq5gg22jgq5x2bn89m9qn3jm7cmdhkypdl5barkmccvsbpfg0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.55.0-darwin-arm64.tar.gz";
-        sha256 = "1vnh7d4n7sd5bfms9vxgr87k9r1ahchmmfng0wml60jvssjbgiyf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.58.0-darwin-arm64.tar.gz";
+        sha256 = "0rmgha9nxabkdb7z3asi16zbslz69jxchlw2awjsv0dq1nyn4pvq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.14.0-darwin-arm64.tar.gz";
-        sha256 = "1q5474wibhb0y600mcbw1wa59dadcjj2l6p7ihrv6yvdals39408";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.16.0-darwin-arm64.tar.gz";
+        sha256 = "0zi7zzn7kpvmjfmaviyf1bzzrlilbgkz6dcm4fqa73qcbm1rq515";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.10.0-darwin-arm64.tar.gz";
-        sha256 = "0q4150r8c31c2bxa7hkc820bhrihxwxkjgrmn5wzgjpjbq3aw5ja";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.0-darwin-arm64.tar.gz";
+        sha256 = "0qz4cqxvwn5wzq3wh5cfwxh0ch22p7wi2wcvjgymlar6q57flk75";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.23.0-darwin-arm64.tar.gz";
         sha256 = "066w46l9dv02pnq59h632w1f7sjj8qqh6867cb33bbh6if681fpa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.23.0-darwin-arm64.tar.gz";
-        sha256 = "1glpfbinny7cm7bk3q5y7g7lyrzmhdlsfjyiaxqwpkwx2960p5iv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.24.0-darwin-arm64.tar.gz";
+        sha256 = "1x579nqa93yi68zwq0ax6a3rs06bxfqh5snfiiwflp5x68yvbnl0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.4.5-darwin-arm64.tar.gz";
-        sha256 = "0kcivc4bs720s7cdjphjcy1sss7pfsands37c8gikhiq0cnl39mb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.0-darwin-arm64.tar.gz";
+        sha256 = "0z2s6yy3m871p5zhvcvgb7v7v51mr1y0msm71pqbqr9jj6mdlvpj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-arm64.tar.gz";
@@ -547,32 +547,32 @@
         sha256 = "16m568zmhfh9y0ynjs789yiawn22r23i1zz9xsrq1kfx8raq94an";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.0.0-darwin-arm64.tar.gz";
-        sha256 = "1g2qds6iciclawr343ps693ndnwjnss8pxfb5mxc69gf7qz8j03i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.2.1-darwin-arm64.tar.gz";
+        sha256 = "14ar812kqjccam04wyzzn46620vp4fym70fq1qzdawh7a5njzdab";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v5.22.0-darwin-arm64.tar.gz";
         sha256 = "04svj7zrhwfy5hjccy2dn4a5il793fncj0b83bvkrvh4qcs8c8as";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.5.0-darwin-arm64.tar.gz";
-        sha256 = "15vh197lvrbb5x08xxkdsgmjaqq9qvvcm4ncj5xjrm4jaczbpd2a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.6.0-darwin-arm64.tar.gz";
+        sha256 = "0dwx5bkp7n7jjikk1nr55brma4dg0gldpf7mfwc62dzc36lgfyny";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.31.1-darwin-arm64.tar.gz";
-        sha256 = "0wcxrcpijn6jzz0l5azfqvh31xzg5q5bvk39iifczimdvw37xnva";
+        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.16.2-darwin-arm64.tar.gz";
         sha256 = "0i0lhxzvxvgi695x9g1nnqrzlipsydjsc3xz8zd7n9438pav3cmc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.4-darwin-arm64.tar.gz";
-        sha256 = "10phh7s0d83z4n9plh77wqjjr8h5h3zmsjdxk7fj7d72p2awf111";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.5.5-darwin-arm64.tar.gz";
+        sha256 = "09r89pxzk18pb65vd47bp31sbilgbpbp7j3a30b39lfff3larwd5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.8.5-darwin-arm64.tar.gz";
-        sha256 = "08aigahkv3calhcdyws3pm1nac5mdxk81jbys8qxr3c9x3b8wgqz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.9.0-darwin-arm64.tar.gz";
+        sha256 = "0qj26bd23qgz8pibsvhsb1gzlk96jh2hkh3l9s23jvlvbxd53hql";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.0-darwin-arm64.tar.gz";
@@ -595,20 +595,20 @@
         sha256 = "08llqzf509ds0nbcllpq5k3zl6l656yxx0bx0z9pibd9iwzjy3wj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.39.0-darwin-arm64.tar.gz";
-        sha256 = "1vk4kdxxx2rk3rhqwgw97xyfl53kxzc209xx8wh1fd3wd676rc2q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.41.0-darwin-arm64.tar.gz";
+        sha256 = "1z3sc1ihwn3g02mwm99shizdzfgzsqxivmkwmw5p5r2gxaflz1gh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.58.1-darwin-arm64.tar.gz";
-        sha256 = "1gf4p1x0mxv2zjz266inkz468p125wn68ls08az7naf4qmh4j50w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.60.0-darwin-arm64.tar.gz";
+        sha256 = "15cn9gfc957zalmwl3xxjrpyxh50gkdkzph31akwfw1lil1y6ws5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.19.0-darwin-arm64.tar.gz";
-        sha256 = "17ngmwyh6z1g6x3lrd77pxa9wwwarh4mqdcq7aiwf57plx4a4l6j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.0-darwin-arm64.tar.gz";
+        sha256 = "1h4q8s8bzs2w8b0hvlaw9awa0m3kzw22z38avaryv85n4jvq6zn2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.2-darwin-arm64.tar.gz";
-        sha256 = "09agrp3sb7mzhwaja4rvz0p25rpsb2n4v3s2kyzcx3pyfyhigvfn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.13.3-darwin-arm64.tar.gz";
+        sha256 = "0cq1cvvmfki8v0861ylckpchlm5xzshirixz95d7kvdchr6j4ds7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.11.1-darwin-arm64.tar.gz";
@@ -623,8 +623,8 @@
         sha256 = "0xlxx5i1ph57vn5q00hv8s0d5vj5jy3hrrkm7qvmjf47d7flqqv8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.8.1-darwin-arm64.tar.gz";
-        sha256 = "0nqyk1jn1d1s5s5kdzfzpqzz44gy6rif0l781jk10fq9lw7bvwld";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.0-darwin-arm64.tar.gz";
+        sha256 = "039lsilaazm80p07l08skcmplz45qpiq122rnscc25cwkjnmv0lg";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.0.4-darwin-arm64.tar.gz";
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
index ef43a412482e..88da6f0d33f4 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
@@ -8,7 +8,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/go/pulumi-language-go";
 
-  vendorHash = "sha256-6JnRPns+qOLXP2RBjsgq4v6nuLn3uX8jF4+uinr2Wt8";
+  vendorHash = "sha256-mBK9VEatuxeoZtXXOKdwj7wtZ/lo4Bi2h7N00zK6Hpw=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
index dc1368afe2df..f6d3cbec0c23 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
@@ -9,7 +9,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs";
 
-  vendorHash = "sha256-gbZoDUJCKb5wcLhJ7DRSGHT3Q0xUlptUeS6Wen4dle0";
+  vendorHash = "sha256-gEOVtAyn7v8tsRU11NgrD3swMFFBxOTIjMWCqSSvHlI=";
 
   postPatch = ''
     # Gives github.com/pulumi/pulumi/pkg/v3: is replaced in go.mod, but not marked as replaced in vendor/modules.txt etc
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
index 16610c2f46f6..6994f26b92c6 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
@@ -9,7 +9,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python";
 
-  vendorHash = "sha256-aLCgAcrgnNH/eYpGkr5Kj4xWjSgP76nz0YoV6998i9M=";
+  vendorHash = "sha256-upRXs8Bo0dpnANNetfXqkatip9bA+Fqhg72Cd60ltz8=";
 
   postPatch = ''
     substituteInPlace main_test.go \
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/default.nix b/nixpkgs/pkgs/tools/admin/pulumi/default.nix
index 3aa9e58985c5..1998eec1bfcd 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/default.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/default.nix
@@ -14,7 +14,7 @@
 
 buildGoModule rec {
   pname = "pulumi";
-  version = "3.90.1";
+  version = "3.93.0";
 
   # Used in pulumi-language packages, which inherit this prop
   sdkVendorHash = lib.fakeHash;
@@ -23,12 +23,12 @@ buildGoModule rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dAQpQapkdccRr/O8XT8dHrLwPvIPqeV8f3HS+GtK2GM=";
+    hash = "sha256-EaYYIbV7IItnmVfyEHtaAbAXvrZ8CXMjW+yNXOBIxg8=";
     # Some tests rely on checkout directory name
     name = "pulumi";
   };
 
-  vendorHash = "sha256-ijFYlHVH0axDpFoPGvthGVRt8UIUZDsWv3vAOe0U4H4";
+  vendorHash = "sha256-G+LspC6b2TvboMU6rKB0qrhhMNaLPVt/nUYZzkiVr/Q=";
 
   sourceRoot = "${src.name}/pkg";
 
diff --git a/nixpkgs/pkgs/tools/admin/simplotask/default.nix b/nixpkgs/pkgs/tools/admin/simplotask/default.nix
index ba7241a753d8..f8a4e4462c16 100644
--- a/nixpkgs/pkgs/tools/admin/simplotask/default.nix
+++ b/nixpkgs/pkgs/tools/admin/simplotask/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "simplotask";
-  version = "1.11.5";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "umputun";
     repo = "spot";
     rev = "v${version}";
-    hash = "sha256-ZPmYAUfkWo+inD2CwzT4Hncsshk3Y2W6aldy/5v1sks=";
+    hash = "sha256-bbn6RLkAAlQeHsaMmb34FFrhaYvouf8rSOJpGdYE7Y4=";
   };
 
   vendorHash = null;
@@ -29,7 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for effortless deployment and configuration management";
-    homepage = "https://simplotask.com/";
+    homepage = "https://spot.umputun.dev/";
     maintainers = with maintainers; [ sikmir ];
     license = licenses.mit;
     mainProgram = "spot";
diff --git a/nixpkgs/pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch b/nixpkgs/pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch
new file mode 100644
index 000000000000..dd89f8998498
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/mpdcron/fix-canonicalize-conflict-with-glibc.patch
@@ -0,0 +1,22 @@
+diff --git a/ext/nokogiri/xml_document.c b/ext/nokogiri/xml_document.c
+index 1d2119c8..c1c87713 100644
+--- a/ext/nokogiri/xml_document.c
++++ b/ext/nokogiri/xml_document.c
+@@ -492,7 +492,7 @@ static int block_caller(void * ctx, xmlNodePtr _node, xmlNodePtr _parent)
+  * The block must return a non-nil, non-false value if the +obj+ passed in
+  * should be included in the canonicalized document.
+  */
+-static VALUE canonicalize(int argc, VALUE* argv, VALUE self)
++static VALUE nokogiri_xml_document_canonicalize(int argc, VALUE* argv, VALUE self)
+ {
+   VALUE mode;
+   VALUE incl_ns;
+@@ -573,7 +573,7 @@ void init_xml_document()
+   rb_define_method(klass, "encoding", encoding, 0);
+   rb_define_method(klass, "encoding=", set_encoding, 1);
+   rb_define_method(klass, "version", version, 0);
+-  rb_define_method(klass, "canonicalize", canonicalize, -1);
++  rb_define_method(klass, "nokogiri_xml_document_canonicalize", canonicalize, -1);
+   rb_define_method(klass, "dup", duplicate_document, -1);
+   rb_define_method(klass, "url", url, 0);
+   rb_define_method(klass, "create_entity", create_entity, -1);
diff --git a/nixpkgs/pkgs/tools/audio/mpdcron/gemset.nix b/nixpkgs/pkgs/tools/audio/mpdcron/gemset.nix
index 836878c9d88a..ee254bb6354b 100644
--- a/nixpkgs/pkgs/tools/audio/mpdcron/gemset.nix
+++ b/nixpkgs/pkgs/tools/audio/mpdcron/gemset.nix
@@ -18,6 +18,19 @@
       sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
       type = "gem";
     };
+
+    dontBuild = false;
+    patches = [
+      # Fixes a naming conflict of nokogiri's `canonicalize` function
+      # with one defined in glibc. This has been fixed upstream in 2020
+      # in a much newer version (1.15.5), but through the divergence
+      # of the affected file, the commit isn't directly applicable to
+      # the one packaged here:
+      #
+      # https://github.com/sparklemotion/nokogiri/pull/2106/commits/7a74cdbe4538e964023e5a0fdca58d8af708b91e
+      # https://github.com/sparklemotion/nokogiri/issues/2105
+      ./fix-canonicalize-conflict-with-glibc.patch
+    ];
     version = "1.10.3";
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/bup/default.nix b/nixpkgs/pkgs/tools/backup/bup/default.nix
index 7bea67dc621b..4b9951f2e2ea 100644
--- a/nixpkgs/pkgs/tools/backup/bup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bup/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
     "LIBDIR=$(out)/lib/bup"
   ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=implicit-function-declaration";
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration -Wno-error=implicit-int";
 
   postInstall = ''
     wrapProgram $out/bin/bup \
diff --git a/nixpkgs/pkgs/tools/compression/ouch/default.nix b/nixpkgs/pkgs/tools/compression/ouch/default.nix
index b2e4bafc3af1..a1b4131ca703 100644
--- a/nixpkgs/pkgs/tools/compression/ouch/default.nix
+++ b/nixpkgs/pkgs/tools/compression/ouch/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ouch";
-  version = "0.4.2";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "ouch-org";
     repo = "ouch";
     rev = version;
-    hash = "sha256-XJOv7JFUJulEkGCMLxGi9nldHaPM/CUzyENIC2TdtoE=";
+    hash = "sha256-WqV04GhX7lIla5BEdHRgRZsAWBSweb1HFAC9XZYqpYo=";
   };
 
-  cargoHash = "sha256-TfAAU46rH6Jq0MuLRjbaVMRjzoSLYNAWBnUcT8DyIVg=";
+  cargoHash = "sha256-A3YcgHed5mp7//FMoC/02KAU7Y+7YiG50eWE9tP5mF8=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix
index fd4643025605..a5ca282955f3 100644
--- a/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo
-, fuse
+, withFuse ? stdenv.isLinux, fuse
 , shared ? !stdenv.hostPlatform.isStatic
 , e2fsprogs, runCommand
 }:
@@ -15,12 +15,12 @@ stdenv.mkDerivation rec {
 
   # fuse2fs adds 14mb of dependencies
   outputs = [ "bin" "dev" "out" "man" "info" ]
-    ++ lib.optionals stdenv.isLinux [ "fuse2fs" ];
+    ++ lib.optionals withFuse [ "fuse2fs" ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkg-config texinfo ];
   buildInputs = [ libuuid gettext ]
-    ++ lib.optionals stdenv.isLinux [ fuse ];
+    ++ lib.optionals withFuse [ fuse ];
 
   patches = [
     (fetchpatch { # avoid using missing __GNUC_PREREQ(X,Y)
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
     if [ -f $out/lib/${pname}/e2scrub_all_cron ]; then
       mv $out/lib/${pname}/e2scrub_all_cron $bin/bin/
     fi
-  '' + lib.optionalString stdenv.isLinux ''
+  '' + lib.optionalString withFuse ''
     mkdir -p $fuse2fs/bin
     mv $bin/bin/fuse2fs $fuse2fs/bin/fuse2fs
   '';
diff --git a/nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch b/nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
index a01822c0366e..38d5dcd3af16 100644
--- a/nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
+++ b/nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
@@ -1,14 +1,14 @@
-From ccbe5c0401d6965a6daaa0b7bb022f63908c8942 Mon Sep 17 00:00:00 2001
+From c9ca58262045b82537bd8284d426c91582cc7ed7 Mon Sep 17 00:00:00 2001
 From: Philipp Rintz <git@rintz.net>
-Date: Mon, 28 Aug 2023 19:19:41 +0200
+Date: Thu, 28 Sep 2023 21:22:18 +0200
 Subject: [PATCH] uncommited
 
 ---
- pocket_updater.csproj | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
+ pocket_updater.csproj | 1 +
+ 1 file changed, 1 insertion(+)
 
 diff --git a/pocket_updater.csproj b/pocket_updater.csproj
-index 11f604c..410bd47 100644
+index 30f77d5..ad6bf69 100644
 --- a/pocket_updater.csproj
 +++ b/pocket_updater.csproj
 @@ -12,6 +12,7 @@
@@ -19,13 +19,6 @@ index 11f604c..410bd47 100644
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="CommandLineParser" Version="2.9.1" />
-@@ -26,4 +27,4 @@
-   <ItemGroup>
-     <RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
-   </ItemGroup>
--</Project>
-\ No newline at end of file
-+</Project>
 -- 
 2.40.1
 
diff --git a/nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix b/nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix
index 2d841c00c516..3fb5acb27aae 100644
--- a/nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix
+++ b/nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix
@@ -7,17 +7,18 @@
 , openssl ? pkgs.openssl
 , zlib ? pkgs.zlib
 , hostPlatform ? stdenv.hostPlatform
+, nix-update-script ? stdenv.nix-update-script
 }:
 
 buildDotnetModule rec {
   pname = "pocket-updater-utility";
-  version = "2.31.0";
+  version = "2.37.0";
 
   src = fetchFromGitHub {
     owner = "mattpannella";
     repo = "${pname}";
     rev = "${version}";
-    hash = "sha256-z90YITAW2Nv+Mq2q56As4PoHqGPEnvDUPH73bhz/xnw=";
+    hash = "sha256-J9FYmoUNkMhLWsRCf64qBDAJaP8AIWGcuH0UjWx90ls=";
   };
 
   buildInputs = [
@@ -48,6 +49,10 @@ buildDotnetModule rec {
   dotnet-sdk = dotnetCorePackages.sdk_6_0;
   dotnet-runtime = dotnetCorePackages.runtime_6_0;
 
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/mattpannella/pocket-updater-utility";
     description = "Analogue Pocket Updater Utility";
diff --git a/nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix b/nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix
index 0e9f626012d9..eea7ea49accb 100644
--- a/nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix
+++ b/nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix
@@ -3,6 +3,7 @@
 
 { fetchNuGet }: [
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
+  (fetchNuGet { pname = "ConsoleMenu-simple"; version = "2.6.1"; sha256 = "1vbi77schslq3nsardm4v8mrk0zi0phczwm2np1bl9z7c84h5cym"; })
   (fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
diff --git a/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix b/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix
index 271d5a5754f9..941e4cfec22c 100644
--- a/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/argyllcms/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "argyllcms";
-  version = "3.0.2";
+  version = "3.1.0";
 
   src = fetchzip {
     # Kind of flacky URL, it was reaturning 406 and inconsistent binaries for a
     # while on me. It might be good to find a mirror
     url = "https://www.argyllcms.com/Argyll_V${version}_src.zip";
-    hash = "sha256-9+rUhZVwSzAM9Ko6FYyl2OVvsOFBaUCA1PJs9kaLWaE=";
+    hash = "sha256-IZScf+xpvvMt5YFlYQprg51cw2ztMdOrqcLm7l5uBhU=";
   };
 
   nativeBuildInputs = [ jam unzip ];
diff --git a/nixpkgs/pkgs/tools/graphics/qrcode/default.nix b/nixpkgs/pkgs/tools/graphics/qrcode/default.nix
index ce623e25db0e..e870f53da82e 100644
--- a/nixpkgs/pkgs/tools/graphics/qrcode/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/qrcode/default.nix
@@ -2,17 +2,15 @@
 
 stdenv.mkDerivation {
   pname = "qrcode";
-  version = "unstable-2022-01-10";
+  version = "unstable-2023-12-02";
 
   src = fetchFromGitHub {
     owner = "qsantos";
     repo = "qrcode";
-    rev = "f4475866bbf963ad118db936060f606eedc224d5";
-    hash = "sha256-IbWYSAc0PvSWcxKaPUXDldGDCK/lPZjptepYtLppPmA=";
+    rev = "96fac69ad3e4f616ce75c0e3ef4ed0574cfab315";
+    hash = "sha256-Aesjys6FchB6qcLRWJNGfcEZRlO3stw3+IM8Xe2pF+Q=";
   };
 
-  env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
-
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix b/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix
index e148f51d8689..d590ac7d340c 100644
--- a/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, buildPackages
 , cmake
 , pkg-config
 , python3
@@ -72,12 +73,14 @@ stdenv.mkDerivation rec {
 
   dontPatchELF = true;
 
+  env.PKG_CONFIG_WAYLAND_SCANNER_WAYLAND_SCANNER="${buildPackages.wayland-scanner}/bin/wayland-scanner";
+
   cmakeFlags = [
     # Don't build the mock ICD as it may get used instead of other drivers, if installed
     "-DBUILD_ICD=OFF"
     # vulkaninfo loads libvulkan using dlopen, so we have to add it manually to RPATH
     "-DCMAKE_INSTALL_RPATH=${libraryPath}"
-    "-DPKG_CONFIG_EXECUTABLE=${pkg-config}/bin/pkg-config"
+    "-DPKG_CONFIG_EXECUTABLE=${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config"
     "-DGLSLANG_INSTALL_DIR=${glslang}"
     # Hide dev warnings that are useless for packaging
     "-Wno-dev"
diff --git a/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile b/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile
index deeb92357964..7cee961df4a0 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile
+++ b/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile
@@ -1,13 +1,15 @@
 source 'https://rubygems.org'
-gem "fusuma"
+gem "fusuma", ">=3.0.0"
 gem "fusuma-plugin-appmatcher"
 gem "fusuma-plugin-keypress"
 gem "fusuma-plugin-sendkey"
-gem "fusuma-plugin-tap"
 gem "fusuma-plugin-wmctrl"
 
 # I've not activated the following plugins for the reasons given below.
 
+# tap has been archived by upstream
+# gem "fusuma-plugin-tap"
+
 # touchscreen needs specific h/w support I don't have access to, so I can't confirm
 # if it's problem free.  A quick check didn't reveal any problems.
 #gem "fusuma-plugin-touchscreen"
diff --git a/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock b/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock
index e6055e890d47..283d4c3fa5e1 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock
@@ -1,35 +1,32 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    fusuma (3.1.0)
-    fusuma-plugin-appmatcher (0.6.0)
-      fusuma (~> 3.0)
+    fusuma (3.3.1)
+    fusuma-plugin-appmatcher (0.6.1)
+      fusuma (>= 3.0)
       rexml
       ruby-dbus
-    fusuma-plugin-keypress (0.8.0)
-      fusuma (~> 2.0)
+    fusuma-plugin-keypress (0.9.0)
+      fusuma (>= 3.1)
     fusuma-plugin-sendkey (0.10.1)
-      fusuma (~> 3.1)
+      fusuma (>= 3.1)
       revdev
-    fusuma-plugin-tap (0.4.2)
-      fusuma (~> 2.0)
     fusuma-plugin-wmctrl (1.3.1)
-      fusuma (~> 3.1)
+      fusuma (>= 3.1)
     revdev (0.2.1)
-    rexml (3.2.5)
-    ruby-dbus (0.19.0)
+    rexml (3.2.6)
+    ruby-dbus (0.23.1)
       rexml
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  fusuma
+  fusuma (>= 3.0.0)
   fusuma-plugin-appmatcher
   fusuma-plugin-keypress
   fusuma-plugin-sendkey
-  fusuma-plugin-tap
   fusuma-plugin-wmctrl
 
 BUNDLED WITH
-   2.4.6
+   2.4.22
diff --git a/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix b/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix
index a118e56687d4..47d5f6215995 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "163an1yv8lasbdmdjsj2a4byq1rljg7vf5z86ip33xpb9l133xmm";
+      sha256 = "13pbvmkjriq6myynv4gfismiqa9y7bfbvvrfcv25670l4zyiakhm";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.3.1";
   };
   fusuma-plugin-appmatcher = {
     dependencies = ["fusuma" "rexml" "ruby-dbus"];
@@ -15,10 +15,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "28e8c59d5984a5723510f19868c37c363bec93e51f6cb7a573170cf7f5b9189f";
+      sha256 = "1qkir4a657znq0fnx91lik7bw5kyq54jwhiy2zrlplln78xs5yai";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "0.6.1";
   };
   fusuma-plugin-keypress = {
     dependencies = ["fusuma"];
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "045c1820d909307abb1d232c0cf26bbd88eafa0453004124c07b15fff5d680de";
+      sha256 = "0as95haqa943i740xs7czcaibb8lvy4gn6kr8nbldq20nly64bih";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "0.9.0";
   };
   fusuma-plugin-sendkey = {
     dependencies = ["fusuma" "revdev"];
@@ -37,29 +37,18 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "f792fec194b611d5d79b93b6694876292c43bee55635d9422f885b6509eeb765";
+      sha256 = "0rdpxq4nanw85x1djdanwnz46b19fr46kdlkkgbxa4dnjk0zx4pp";
       type = "gem";
     };
     version = "0.10.1";
   };
-  fusuma-plugin-tap = {
-    dependencies = ["fusuma"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0jlw08iw20fpykjglzj4c2fy3z13zsnmi63zbfpn0gmvs05869ys";
-      type = "gem";
-    };
-    version = "0.4.2";
-  };
   fusuma-plugin-wmctrl = {
     dependencies = ["fusuma"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "067939b2d8b99cf8fce43be40341cda3de3371596a8a4fb24eb13ca84c0bffe5";
+      sha256 = "1rgz1d6ahg5i9sr4z2kab5qk7pm3rm0h7r1vwkygi75rv2r3jy86";
       type = "gem";
     };
     version = "1.3.1";
@@ -79,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   ruby-dbus = {
     dependencies = ["rexml"];
@@ -90,9 +79,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18zbsr03drpx7mknm927i2kz5b49s0lwmrbmsdknfa674z0xy6sm";
+      sha256 = "0hf9y5lbi1xcadc2fw87wlif75s1359c2wwlvvd0gag7cq5dm0pm";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.23.1";
   };
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 8e072ffeb3b4..c5f02f4c8a22 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-table";
-  version = "1.17.3";
+  version = "1.17.4";
 
   src = fetchFromGitHub {
     owner  = "kaio";
     repo   = "ibus-table";
     rev    = version;
-    sha256 = "sha256-rolnpjJojtL+0tUbZIQgL1IIkv+d3MoMWoedfEMpr8A=";
+    sha256 = "sha256-XljpwsDsdZkcnXimnN7BzPhOZdUmEEJbBM53Sv/9rIo=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/input-remapper/default.nix b/nixpkgs/pkgs/tools/inputmethods/input-remapper/default.nix
index ff2a7363d90e..04f8c7f74c15 100644
--- a/nixpkgs/pkgs/tools/inputmethods/input-remapper/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/input-remapper/default.nix
@@ -33,21 +33,21 @@
 let
   maybeXmodmap = lib.optional withXmodmap xmodmap;
 in
-(buildPythonApplication {
+(buildPythonApplication rec {
   pname = "input-remapper";
-  version = "1.5.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
-    rev = "e31a1b2bc5d23fe13130afcc242063196335399f";
     owner = "sezanzeb";
     repo = "input-remapper";
-    hash = "sha256-KPQLgXSonuOgphagYN2JN+CMIpmjTIPUTCqOPDk0UYU=";
+    rev = version;
+    hash = "sha256-rwlVGF/cWSv6Bsvhrs6nMDQ8avYT80aasrhWyQv55/A=";
   };
 
   postPatch = ''
     # fix FHS paths
     substituteInPlace inputremapper/configs/data.py \
-      --replace "/usr/share/input-remapper"  "$out/usr/share/input-remapper"
+      --replace "/usr/share"  "$out/usr/share"
   '' + lib.optionalString withDebugLogLevel ''
     # if debugging
     substituteInPlace inputremapper/logger.py --replace "logger.setLevel(logging.INFO)"  "logger.setLevel(logging.DEBUG)"
diff --git a/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix b/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix
index b9517722a04e..e93acecb62bf 100644
--- a/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "keymapper";
-  version = "2.7.2";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "houmain";
     repo = "keymapper";
     rev = finalAttrs.version;
-    hash = "sha256-QgrMkGja8kMhXUE/kvPMq66xv/9tE/mEphlaEyDPHnM=";
+    hash = "sha256-X2Qk/cAczdkteB+6kyURGjvm1Ryio6WHj3Ga2POosCA=";
   };
 
   # all the following must be in nativeBuildInputs
diff --git a/nixpkgs/pkgs/tools/misc/esphome/default.nix b/nixpkgs/pkgs/tools/misc/esphome/default.nix
index 6ac1f24a2010..2b683e73ed0f 100644
--- a/nixpkgs/pkgs/tools/misc/esphome/default.nix
+++ b/nixpkgs/pkgs/tools/misc/esphome/default.nix
@@ -16,14 +16,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2023.11.4";
+  version = "2023.11.6";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-KIDqIf9aJP5IS+qE0Gy5j3F2DGz/WGbN4Wf9SGzgnzA=";
+    hash = "sha256-9LqZlhCt+7p6tnSHFhbnUzkEOJQDsg/Pd/hgd/Il0ZQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/fend/default.nix b/nixpkgs/pkgs/tools/misc/fend/default.nix
index 074088f3f19e..7abb37592c6a 100644
--- a/nixpkgs/pkgs/tools/misc/fend/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fend/default.nix
@@ -8,6 +8,10 @@
 , copyDesktopItems
 , makeDesktopItem
 , nix-update-script
+, testers
+, writeText
+, runCommand
+, fend
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -58,11 +62,26 @@ rustPlatform.buildRustPackage rec {
     })
   ];
 
-  passthru.updateScript = nix-update-script { };
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = {
+      version = testers.testVersion { package = fend; };
+      units = testers.testEqualContents {
+        assertion = "fend does simple math and unit conversions";
+        expected = writeText "expected" ''
+          36 kph
+        '';
+        actual = runCommand "actual" { } ''
+          ${lib.getExe fend} '(100 meters) / (10 seconds) to kph' > $out
+        '';
+      };
+    };
+  };
 
   meta = with lib; {
     description = "Arbitrary-precision unit-aware calculator";
     homepage = "https://github.com/printfn/fend";
+    changelog = "https://github.com/printfn/fend/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ djanatyn liff ];
     mainProgram = "fend";
diff --git a/nixpkgs/pkgs/tools/misc/goaccess/default.nix b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
index f355d3029067..ac13cb69370a 100644
--- a/nixpkgs/pkgs/tools/misc/goaccess/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
@@ -10,14 +10,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.8";
+  version = "1.8.1";
   pname = "goaccess";
 
   src = fetchFromGitHub {
     owner = "allinurl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nZqjC6PEpD/md+mWRhuro2hAxVAGiUhETfZMVHlfP5o=";
+    sha256 = "sha256-GTW7ECSHjFBw8O2NewvMgC+3aheusupDlSBTxZriHHc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
index f99789dfc1c1..1f494dea8438 100644
--- a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kak-lsp";
-  version = "14.2.0";
+  version = "15.0.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U4eqIzvYzUfwprVpPHV/OFPKiBXK4/5z2p8kknX2iME=";
+    sha256 = "sha256-DpWYZa6Oe+Lkzga7Fol/8bTujb58wTFDpNJTaDEWBx8=";
   };
 
-  cargoSha256 = "sha256-g63Kfi4xJZO/+fq6eK2iB1dUGoSGWIIRaJr8BWO/txM=";
+  cargoHash = "sha256-+3cpAL+8X8L833kmZapUoGSwHOj+hnDN6oDNJZ6y24Q=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
 
diff --git a/nixpkgs/pkgs/tools/misc/moar/default.nix b/nixpkgs/pkgs/tools/misc/moar/default.nix
index 6bcbd8a9ac41..c4508d442478 100644
--- a/nixpkgs/pkgs/tools/misc/moar/default.nix
+++ b/nixpkgs/pkgs/tools/misc/moar/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "moar";
-  version = "1.18.4";
+  version = "1.18.5";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-zF+Hnsmw5TJCYYoItrwcnyh3NSmKrV9JoTPwTMVyw7Y=";
+    hash = "sha256-3s95PjuHIQ0qeTtVOXqsrWFrCeuUUaaA9Lgab4ATetg=";
   };
 
   vendorHash = "sha256-x6BeU6JDayCOi8T8+NvXZe59QmTaO9RAYwSiFlDPL/c=";
diff --git a/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix b/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
index cf0ab2776ba5..be78d6c02600 100644
--- a/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/osinfo-db-tools/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db-tools";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "sha256-gCzdU7QWcG6lhE8Ebdz7ZYwbSQa5+UDHmserxQmBymg=";
+    sha256 = "sha256-i6bTG7XvBwVuOIeeBwZxr7z+wOtBqH+ZUEULu4MbCh0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/panoply/default.nix b/nixpkgs/pkgs/tools/misc/panoply/default.nix
index 5a333a38a4bc..0f6471c322c7 100644
--- a/nixpkgs/pkgs/tools/misc/panoply/default.nix
+++ b/nixpkgs/pkgs/tools/misc/panoply/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "panoply";
-  version = "5.2.10";
+  version = "5.3.0";
 
   src = fetchurl {
     url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
-    sha256 = "sha256-en/CAmk9Rj2MrUF5vfsZu1fUDJFaAifL7PYgUT3Uu8k=";
+    sha256 = "sha256-UU+CVLUSysDercLvPzDwO0f+w0DNgHmQ/JrC/MJ7Qtg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/rkvm/default.nix b/nixpkgs/pkgs/tools/misc/rkvm/default.nix
index 688c774209c6..bf6ef6e482d0 100644
--- a/nixpkgs/pkgs/tools/misc/rkvm/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rkvm/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rkvm";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "htrefil";
     repo = pname;
     rev = version;
-    hash = "sha256-3IdwBMN+VZBrcoT5vF7pF6xoNWZBn4k/jRJqADlpM7k=";
+    hash = "sha256-bWDVc5pWc5gtwGF3vwUgjDhqZP7E79nteKiuAEEbw6E=";
   };
 
-  cargoHash = "sha256-/SZKJI4gMkike2m8UVzbwfMqj697A8zbJEKAnnbSx3s=";
+  cargoHash = "sha256-FUaycVxW7QJ5gTZ/8bWjqSaMSepRF5iqlBNJLaDRNxc=";
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook makeWrapper ];
   buildInputs = [ libevdev ];
diff --git a/nixpkgs/pkgs/tools/misc/snapper/default.nix b/nixpkgs/pkgs/tools/misc/snapper/default.nix
index 865bd0eb8077..dd50b9a04089 100644
--- a/nixpkgs/pkgs/tools/misc/snapper/default.nix
+++ b/nixpkgs/pkgs/tools/misc/snapper/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.10.6";
+  version = "0.10.7";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "sha256-tKxjzJ69wr48QQEgYLp7G6aOqxs9CCUiTHV1kaRCiHM=";
+    sha256 = "sha256-ELhWVimZWKaHL/PK7HtALKCTmzjcZN2ScDS0yOX3lVs=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/tools/misc/sshx/default.nix b/nixpkgs/pkgs/tools/misc/sshx/default.nix
new file mode 100644
index 000000000000..9ae65dcaee1c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/sshx/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, callPackage
+, rustPlatform
+, fetchFromGitHub
+, protobuf
+, darwin
+, stdenv
+, buildNpmPackage
+}:
+let
+  version = "unstable-2023-11-23";
+
+  src = fetchFromGitHub {
+    owner = "ekzhang";
+    repo = "sshx";
+    rev = "2677f7e1fa3b369132cc7f27f6028a04b92ba5cf";
+    hash = "sha256-9fo8hNUzJr4gse0J2tw7j+alqE82+y8McADzTkxryWk=";
+  };
+
+  mkSshxPackage = { pname, cargoHash, ... }@args:
+    rustPlatform.buildRustPackage (rec {
+      inherit
+        pname
+        version
+        src
+        cargoHash;
+
+      nativeBuildInputs = [ protobuf ];
+      buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+
+      cargoBuildFlags = [ "--package" pname ];
+      cargoTestFlags = cargoBuildFlags;
+
+      meta = {
+        description = "Fast, collaborative live terminal sharing over the web";
+        homepage = "https://github.com/ekzhang/sshx";
+        license = lib.licenses.mit;
+        maintainers = with lib.maintainers; [ pinpox kranzes ];
+        mainProgram = pname;
+      };
+    } // args);
+in
+{
+  sshx = mkSshxPackage {
+    pname = "sshx";
+    cargoHash = "sha256-dA5Aen/qANW8si75pj/RsBknvOo3KDyU5UISAmmcfRE=";
+  };
+
+  sshx-server = mkSshxPackage rec {
+    pname = "sshx-server";
+    cargoHash = "sha256-1GRWCMXsOzqvORgtwfuywV4wLyX3r4nURhM3Dl5V9Ss=";
+
+    postPatch = ''
+      substituteInPlace crates/sshx-server/src/web.rs \
+        --replace 'ServeDir::new("build")' 'ServeDir::new("${passthru.web.outPath}")' \
+        --replace 'ServeFile::new("build/spa.html")' 'ServeFile::new("${passthru.web.outPath}/spa.html")'
+    '';
+
+    passthru.web = buildNpmPackage {
+      pname = "sshx-web";
+
+      inherit
+        version
+        src;
+
+      postPatch = ''
+        substituteInPlace vite.config.ts \
+          --replace 'execSync("git rev-parse --short HEAD").toString().trim()' '"${src.rev}"'
+      '';
+
+      npmDepsHash = "sha256-bKePCxo6+n0EG+4tbbMimPedJ0Hu1O8yZsgspmhobOs=";
+
+      installPhase = ''
+        mkdir -p "$out"
+        cp -r build/* "$out"
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/servers/teleport/11/Cargo.lock b/nixpkgs/pkgs/tools/misc/vrc-get/Cargo.lock
index 582ffb9b4c12..4eafab4798a1 100644
--- a/nixpkgs/pkgs/servers/teleport/11/Cargo.lock
+++ b/nixpkgs/pkgs/tools/misc/vrc-get/Cargo.lock
@@ -3,6 +3,21 @@
 version = 3
 
 [[package]]
+name = "addr2line"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
 name = "aho-corasick"
 version = "0.7.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -12,62 +27,79 @@ dependencies = [
 ]
 
 [[package]]
-name = "asn1-rs"
-version = "0.5.1"
+name = "anstream"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4"
+checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
 dependencies = [
- "asn1-rs-derive",
- "asn1-rs-impl",
- "displaydoc",
- "nom",
- "num-traits",
- "rusticata-macros",
- "thiserror",
- "time",
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
 ]
 
 [[package]]
-name = "asn1-rs-derive"
-version = "0.4.0"
+name = "anstyle"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
+checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "synstructure",
+ "utf8parse",
 ]
 
 [[package]]
-name = "asn1-rs-impl"
-version = "0.1.0"
+name = "anstyle-query"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "atomic-polyfill"
-version = "0.1.11"
+name = "anstyle-wincon"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28"
+checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
 dependencies = [
- "critical-section",
+ "anstyle",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "atty"
-version = "0.2.14"
+name = "async-compression"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+checksum = "bb42b2197bf15ccb092b62c74515dbd8b86d0effd934795f6687c93b6e679a2c"
 dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
+ "deflate64",
+ "flate2",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async_zip"
+version = "0.0.15"
+source = "git+https://github.com/Majored/rs-async-zip.git?rev=a58024e#a58024eee84d3d50e105de79bd6210f832667984"
+dependencies = [
+ "async-compression",
+ "crc32fast",
+ "futures-util",
+ "pin-project",
+ "thiserror",
+ "tokio",
+ "tokio-util",
 ]
 
 [[package]]
@@ -77,35 +109,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
-name = "base64"
-version = "0.13.1"
+name = "backtrace"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64ct"
-version = "1.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
+checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide 0.7.1",
+ "object",
+ "rustc-demangle",
+]
 
 [[package]]
-name = "bindgen"
-version = "0.60.1"
+name = "base64"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6"
-dependencies = [
- "bitflags",
- "cexpr",
- "clang-sys",
- "lazy_static",
- "lazycell",
- "peeking_take_while",
- "proc-macro2",
- "quote",
- "regex",
- "rustc-hash",
- "shlex",
-]
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
 
 [[package]]
 name = "bitflags"
@@ -115,368 +137,343 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "block-buffer"
-version = "0.7.3"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
+checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
 dependencies = [
- "block-padding",
- "byte-tools",
- "byteorder",
- "generic-array 0.12.4",
+ "generic-array",
 ]
 
 [[package]]
-name = "block-padding"
-version = "0.1.5"
+name = "bumpalo"
+version = "3.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-dependencies = [
- "byte-tools",
-]
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
 
 [[package]]
-name = "boring"
-version = "2.1.0"
+name = "bytes"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c713ad6d8d7a681a43870ac37b89efd2a08015ceb4b256d82707509c1f0b6bb"
-dependencies = [
- "bitflags",
- "boring-sys",
- "foreign-types",
- "lazy_static",
- "libc",
-]
+checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"
 
 [[package]]
-name = "boring-sys"
-version = "2.1.0"
+name = "cc"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7663d3069437a5ccdb2b5f4f481c8b80446daea10fa8503844e89ac65fcdc363"
-dependencies = [
- "bindgen",
- "cmake",
-]
+checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
 
 [[package]]
-name = "bufstream"
-version = "0.1.4"
+name = "cfg-if"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
-name = "bumpalo"
-version = "3.11.1"
+name = "clap"
+version = "4.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
 
 [[package]]
-name = "byte-tools"
-version = "0.3.1"
+name = "clap_builder"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
 
 [[package]]
-name = "byteorder"
-version = "1.4.3"
+name = "clap_complete"
+version = "4.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "4110a1e6af615a9e6d0a36f805d5c99099f8bab9b8042f5bc1fa220a4a89e36f"
+dependencies = [
+ "clap",
+]
 
 [[package]]
-name = "cbindgen"
-version = "0.24.3"
+name = "clap_derive"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb"
+checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
 dependencies = [
- "clap",
  "heck",
- "indexmap",
- "log",
  "proc-macro2",
  "quote",
- "serde",
- "serde_json",
- "syn",
- "tempfile",
- "toml",
+ "syn 2.0.29",
 ]
 
 [[package]]
-name = "cc"
-version = "1.0.77"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
-
-[[package]]
-name = "cexpr"
-version = "0.6.0"
+name = "clap_lex"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
-dependencies = [
- "nom",
-]
+checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
 
 [[package]]
-name = "cfg-if"
+name = "colorchoice"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
-name = "cipher"
-version = "0.4.3"
+name = "core-foundation"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
 dependencies = [
- "crypto-common",
- "inout",
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
-name = "clang-sys"
-version = "1.4.0"
+name = "core-foundation-sys"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
-dependencies = [
- "glob",
- "libc",
- "libloading",
-]
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
 
 [[package]]
-name = "clap"
-version = "3.2.23"
+name = "cpufeatures"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
 dependencies = [
- "atty",
- "bitflags",
- "clap_lex",
- "indexmap",
- "strsim",
- "termcolor",
- "textwrap",
+ "libc",
 ]
 
 [[package]]
-name = "clap_lex"
-version = "0.2.4"
+name = "crc32fast"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
 dependencies = [
- "os_str_bytes",
+ "cfg-if",
 ]
 
 [[package]]
-name = "cmake"
-version = "0.1.49"
+name = "crypto-common"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 dependencies = [
- "cc",
+ "generic-array",
+ "typenum",
 ]
 
 [[package]]
-name = "const-oid"
-version = "0.7.1"
+name = "deflate64"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
+checksum = "30dc5bb425a582de72bb57130320aac133893ea85f6151f79bd9aa9067114f60"
 
 [[package]]
-name = "const-oid"
-version = "0.9.1"
+name = "digest"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
 
 [[package]]
-name = "critical-section"
-version = "1.1.1"
+name = "either"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52"
+checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
 
 [[package]]
-name = "crypto-bigint"
-version = "0.3.2"
+name = "encoding_rs"
+version = "0.8.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21"
+checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
 dependencies = [
- "generic-array 0.14.6",
- "subtle 2.4.1",
+ "cfg-if",
 ]
 
 [[package]]
-name = "crypto-common"
-version = "0.1.6"
+name = "env_logger"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
 dependencies = [
- "generic-array 0.14.6",
- "typenum",
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
 ]
 
 [[package]]
-name = "crypto-mac"
-version = "0.7.0"
+name = "equivalent"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
-dependencies = [
- "generic-array 0.12.4",
- "subtle 1.0.0",
-]
+checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
 
 [[package]]
-name = "data-encoding"
-version = "2.3.2"
+name = "errno"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
+checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.45.0",
+]
 
 [[package]]
-name = "delog"
-version = "0.1.6"
+name = "errno-dragonfly"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd67f90cc14e0a91cf693141453cccf2b74db9d59c40f6be18b79169fe77dfd"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
 dependencies = [
- "log",
+ "cc",
+ "libc",
 ]
 
 [[package]]
-name = "der"
-version = "0.5.1"
+name = "fastrand"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
+checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
 dependencies = [
- "const-oid 0.7.1",
- "crypto-bigint",
- "pem-rfc7468 0.3.1",
+ "instant",
 ]
 
 [[package]]
-name = "der"
-version = "0.6.0"
+name = "flate2"
+version = "1.0.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13dd2ae565c0a381dde7fade45fce95984c568bdcb4700a4fdbe3175e0380b2f"
+checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
 dependencies = [
- "const-oid 0.9.1",
- "pem-rfc7468 0.6.0",
- "zeroize",
+ "crc32fast",
+ "miniz_oxide 0.6.2",
 ]
 
 [[package]]
-name = "der-parser"
-version = "8.1.0"
+name = "fnv"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1"
-dependencies = [
- "asn1-rs",
- "displaydoc",
- "nom",
- "num-bigint 0.4.3",
- "num-traits",
- "rusticata-macros",
-]
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
-name = "derivative"
-version = "2.2.0"
+name = "foreign-types"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "foreign-types-shared",
 ]
 
 [[package]]
-name = "digest"
-version = "0.8.1"
+name = "foreign-types-shared"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
-dependencies = [
- "generic-array 0.12.4",
-]
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
-name = "digest"
-version = "0.10.6"
+name = "form_urlencoded"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
 dependencies = [
- "const-oid 0.9.1",
- "crypto-common",
+ "percent-encoding",
 ]
 
 [[package]]
-name = "displaydoc"
-version = "0.2.3"
+name = "futures"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
 ]
 
 [[package]]
-name = "env_logger"
-version = "0.9.1"
+name = "futures-channel"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
 dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
+ "futures-core",
+ "futures-sink",
 ]
 
 [[package]]
-name = "fake-simd"
-version = "0.1.2"
+name = "futures-core"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
 
 [[package]]
-name = "fastrand"
-version = "1.8.0"
+name = "futures-executor"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
 dependencies = [
- "instant",
+ "futures-core",
+ "futures-task",
+ "futures-util",
 ]
 
 [[package]]
-name = "foreign-types"
-version = "0.5.0"
+name = "futures-io"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
-dependencies = [
- "foreign-types-macros",
- "foreign-types-shared",
-]
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
 
 [[package]]
-name = "foreign-types-macros"
-version = "0.2.2"
+name = "futures-macro"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.29",
 ]
 
 [[package]]
-name = "foreign-types-shared"
-version = "0.3.1"
+name = "futures-sink"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
 
 [[package]]
-name = "generic-array"
-version = "0.12.4"
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
 dependencies = [
- "typenum",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
 ]
 
 [[package]]
@@ -490,27 +487,6 @@ 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 = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
 name = "getrandom"
 version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -518,22 +494,32 @@ checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
-name = "glob"
-version = "0.3.0"
+name = "gimli"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
 
 [[package]]
-name = "hash32"
-version = "0.2.1"
+name = "h2"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
+checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f"
 dependencies = [
- "byteorder",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 1.9.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
 ]
 
 [[package]]
@@ -543,17 +529,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
-name = "heapless"
-version = "0.7.16"
+name = "hashbrown"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743"
-dependencies = [
- "atomic-polyfill",
- "hash32",
- "rustc_version",
- "spin 0.9.4",
- "stable_deref_trait",
-]
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
 
 [[package]]
 name = "heck"
@@ -563,549 +542,410 @@ checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
 dependencies = [
  "libc",
 ]
 
 [[package]]
-name = "hmac"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
-dependencies = [
- "crypto-mac",
- "digest 0.8.1",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "indexmap"
-version = "1.9.2"
+name = "hermit-abi"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
+checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
 
 [[package]]
-name = "inout"
-version = "0.1.3"
+name = "http"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
 dependencies = [
- "generic-array 0.14.6",
+ "bytes",
+ "fnv",
+ "itoa",
 ]
 
 [[package]]
-name = "instant"
-version = "0.1.12"
+name = "http-body"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
 dependencies = [
- "cfg-if",
+ "bytes",
+ "http",
+ "pin-project-lite",
 ]
 
 [[package]]
-name = "iso7816"
-version = "0.1.1"
+name = "httparse"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7e6ac743d509349b7865595ce90bbfcfbe59f42b8ec0db9e76ec361ace3f652"
-dependencies = [
- "delog",
- "heapless",
-]
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
-name = "iso7816-tlv"
-version = "0.4.2"
+name = "httpdate"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "395d8e0ae63eb5016fbcf4a72864155880e34bce0158206fcfa7218efdd52e82"
-dependencies = [
- "untrusted 0.9.0",
-]
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
 
 [[package]]
-name = "itoa"
-version = "1.0.4"
+name = "humantime"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
-name = "js-sys"
-version = "0.3.60"
+name = "hyper"
+version = "0.14.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c"
 dependencies = [
- "wasm-bindgen",
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.4.9",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
 ]
 
 [[package]]
-name = "lazy_static"
-version = "1.4.0"
+name = "hyper-tls"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
 dependencies = [
- "spin 0.5.2",
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
 ]
 
 [[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.137"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
-
-[[package]]
-name = "libloading"
-version = "0.7.4"
+name = "idna"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
 dependencies = [
- "cfg-if",
- "winapi",
+ "unicode-bidi",
+ "unicode-normalization",
 ]
 
 [[package]]
-name = "libm"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
-
-[[package]]
-name = "lock_api"
-version = "0.4.9"
+name = "indexmap"
+version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
 dependencies = [
  "autocfg",
- "scopeguard",
+ "hashbrown 0.12.3",
 ]
 
 [[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "md-5"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "opaque-debug",
-]
-
-[[package]]
-name = "md4"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4030c65cf2aab7ada769cae7d1e7159f8d034d6ded4f39afba037f094bfd9a1"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug",
-]
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "nom"
-version = "7.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.2.6"
+name = "indexmap"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
+checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
 dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
+ "equivalent",
+ "hashbrown 0.14.0",
+ "serde",
 ]
 
 [[package]]
-name = "num-bigint"
-version = "0.4.3"
+name = "instant"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
+ "cfg-if",
 ]
 
 [[package]]
-name = "num-bigint-dig"
-version = "0.8.2"
+name = "io-lifetimes"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905"
+checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e"
 dependencies = [
- "byteorder",
- "lazy_static",
- "libm",
- "num-integer",
- "num-iter",
- "num-traits",
- "rand 0.8.5",
- "smallvec",
- "zeroize",
+ "libc",
+ "windows-sys 0.42.0",
 ]
 
 [[package]]
-name = "num-derive"
-version = "0.3.3"
+name = "ipnet"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
+checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
+name = "is-terminal"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
 dependencies = [
- "autocfg",
- "num-traits",
+ "hermit-abi 0.3.1",
+ "io-lifetimes",
+ "rustix",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "num-iter"
-version = "0.1.43"
+name = "itertools"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
 dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
+ "either",
 ]
 
 [[package]]
-name = "num-traits"
-version = "0.2.15"
+name = "itoa"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
- "libm",
-]
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
 
 [[package]]
-name = "num_enum"
-version = "0.4.3"
+name = "js-sys"
+version = "0.3.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4"
+checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
 dependencies = [
- "derivative",
- "num_enum_derive",
+ "wasm-bindgen",
 ]
 
 [[package]]
-name = "num_enum_derive"
-version = "0.4.3"
+name = "lazy_static"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
-name = "oid-registry"
-version = "0.6.0"
+name = "libc"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d4bda43fd1b844cbc6e6e54b5444e2b1bc7838bce59ad205902cccbb26d6761"
-dependencies = [
- "asn1-rs",
-]
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
-name = "once_cell"
-version = "1.16.0"
+name = "linux-raw-sys"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f"
 
 [[package]]
-name = "opaque-debug"
-version = "0.2.3"
+name = "log"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
-name = "os_str_bytes"
-version = "6.4.1"
+name = "memchr"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
-name = "peeking_take_while"
-version = "0.1.2"
+name = "mime"
+version = "0.3.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
 
 [[package]]
-name = "pem-rfc7468"
-version = "0.3.1"
+name = "miniz_oxide"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30"
+checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
 dependencies = [
- "base64ct",
+ "adler",
 ]
 
 [[package]]
-name = "pem-rfc7468"
-version = "0.6.0"
+name = "miniz_oxide"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
 dependencies = [
- "base64ct",
+ "adler",
 ]
 
 [[package]]
-name = "pkcs1"
-version = "0.3.3"
+name = "mio"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
 dependencies = [
- "der 0.5.1",
- "pkcs8 0.8.0",
- "zeroize",
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "pkcs1"
-version = "0.4.1"
+name = "native-tls"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
 dependencies = [
- "der 0.6.0",
- "pkcs8 0.9.0",
- "spki 0.6.0",
- "zeroize",
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
 ]
 
 [[package]]
-name = "pkcs8"
-version = "0.8.0"
+name = "num_cpus"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
 dependencies = [
- "der 0.5.1",
- "spki 0.5.4",
- "zeroize",
+ "hermit-abi 0.2.6",
+ "libc",
 ]
 
 [[package]]
-name = "pkcs8"
-version = "0.9.0"
+name = "object"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
+checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
 dependencies = [
- "der 0.6.0",
- "spki 0.6.0",
+ "memchr",
 ]
 
 [[package]]
-name = "ppv-lite86"
-version = "0.2.17"
+name = "once_cell"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
 
 [[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
+name = "openssl"
+version = "0.10.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
+checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
 dependencies = [
- "toml",
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
 ]
 
 [[package]]
-name = "proc-macro2"
-version = "1.0.47"
+name = "openssl-macros"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
 dependencies = [
- "unicode-ident",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
 ]
 
 [[package]]
-name = "quote"
-version = "1.0.21"
+name = "openssl-probe"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
-dependencies = [
- "proc-macro2",
-]
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
-name = "rand"
-version = "0.7.3"
+name = "openssl-src"
+version = "111.25.0+1.1.1t"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+checksum = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6"
 dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
+ "cc",
 ]
 
 [[package]]
-name = "rand"
-version = "0.8.5"
+name = "openssl-sys"
+version = "0.9.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
 dependencies = [
+ "cc",
  "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
 ]
 
 [[package]]
-name = "rand_chacha"
-version = "0.2.2"
+name = "percent-encoding"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
 
 [[package]]
-name = "rand_chacha"
-version = "0.3.1"
+name = "pin-project"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
 dependencies = [
- "ppv-lite86",
- "rand_core 0.6.4",
+ "pin-project-internal",
 ]
 
 [[package]]
-name = "rand_core"
-version = "0.5.1"
+name = "pin-project-internal"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
 dependencies = [
- "getrandom 0.1.16",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
 ]
 
 [[package]]
-name = "rand_core"
-version = "0.6.4"
+name = "pin-project-lite"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom 0.2.8",
-]
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
-name = "rand_hc"
-version = "0.2.0"
+name = "pin-utils"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
-name = "rc4"
-version = "0.1.0"
+name = "pkg-config"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1256e23efe6097f27aa82d6ca6889361c001586ae0f6917cbad072f05eb275"
-dependencies = [
- "cipher",
-]
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
 
 [[package]]
-name = "rdp-client"
-version = "0.1.0"
+name = "proc-macro2"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
 dependencies = [
- "bitflags",
- "byteorder",
- "cbindgen",
- "env_logger",
- "iso7816",
- "iso7816-tlv",
- "libc",
- "log",
- "num-derive",
- "num-traits",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rdp-rs",
- "rsa 0.7.2",
- "tempfile",
- "utf16string",
- "uuid",
+ "unicode-ident",
 ]
 
 [[package]]
-name = "rdp-rs"
-version = "0.1.0"
-source = "git+https://github.com/gravitational/rdp-rs?rev=8f9f2ab4835f3e52cc9d1771114cc745f3c02759#8f9f2ab4835f3e52cc9d1771114cc745f3c02759"
-dependencies = [
- "boring",
- "bufstream",
- "byteorder",
- "gethostname",
- "hmac",
- "indexmap",
- "md-5",
- "md4",
- "num-bigint 0.2.6",
- "num_enum",
- "oid-registry",
- "rand 0.7.3",
- "rc4",
- "ring",
- "rsa 0.6.1",
- "rustls",
- "x509-parser",
- "yasna",
+name = "quote"
+version = "1.0.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+dependencies = [
+ "proc-macro2",
 ]
 
 [[package]]
@@ -1119,9 +959,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.7.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1144,218 +984,194 @@ dependencies = [
 ]
 
 [[package]]
-name = "ring"
-version = "0.16.20"
+name = "reqwest"
+version = "0.11.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
 dependencies = [
- "cc",
- "libc",
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
  "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-native-tls",
+ "tokio-util",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
  "web-sys",
- "winapi",
+ "winreg",
 ]
 
 [[package]]
-name = "rsa"
-version = "0.6.1"
+name = "rustc-demangle"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b"
-dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.3.3",
- "pkcs8 0.8.0",
- "rand_core 0.6.4",
- "smallvec",
- "subtle 2.4.1",
- "zeroize",
-]
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
-name = "rsa"
-version = "0.7.2"
+name = "rustix"
+version = "0.37.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099c"
+checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2"
 dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.4.1",
- "pkcs8 0.9.0",
- "rand_core 0.6.4",
- "signature",
- "smallvec",
- "subtle 2.4.1",
- "zeroize",
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
-name = "rustc-hash"
-version = "1.1.0"
+name = "ryu"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
 
 [[package]]
-name = "rustc_version"
-version = "0.4.0"
+name = "schannel"
+version = "0.1.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
 dependencies = [
- "semver",
+ "windows-sys 0.42.0",
 ]
 
 [[package]]
-name = "rusticata-macros"
-version = "4.1.0"
+name = "security-framework"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+checksum = "645926f31b250a2dca3c232496c2d898d91036e45ca0e97e0e2390c54e11be36"
 dependencies = [
- "nom",
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
 ]
 
 [[package]]
-name = "rustls"
-version = "0.20.7"
+name = "security-framework-sys"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c"
+checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
 dependencies = [
- "log",
- "ring",
- "sct",
- "webpki",
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
-name = "ryu"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "sct"
-version = "0.7.0"
+name = "semver"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
 dependencies = [
- "ring",
- "untrusted 0.7.1",
+ "serde",
 ]
 
 [[package]]
-name = "semver"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
-
-[[package]]
 name = "serde"
-version = "1.0.148"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53f64bb4ba0191d6d0676e1b141ca55047d83b74f5607e6d8eb88126c52c2dc"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.148"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a55492425aa53521babf6137309e7d34c20bbfbbfcfe2c7f3a047fd1f6b92c0c"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.29",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.89"
+version = "1.0.107"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
+checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
 dependencies = [
+ "indexmap 2.0.0",
  "itoa",
  "ryu",
  "serde",
 ]
 
 [[package]]
-name = "shlex"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
-
-[[package]]
-name = "signature"
-version = "1.6.4"
+name = "serde_urlencoded"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
 dependencies = [
- "digest 0.10.6",
- "rand_core 0.6.4",
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
 ]
 
 [[package]]
-name = "smallvec"
-version = "1.10.0"
+name = "sha2"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
- "lock_api",
+ "cfg-if",
+ "cpufeatures",
+ "digest",
 ]
 
 [[package]]
-name = "spki"
-version = "0.5.4"
+name = "slab"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
+checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
 dependencies = [
- "base64ct",
- "der 0.5.1",
+ "autocfg",
 ]
 
 [[package]]
-name = "spki"
-version = "0.6.0"
+name = "socket2"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
 dependencies = [
- "base64ct",
- "der 0.6.0",
+ "libc",
+ "winapi",
 ]
 
 [[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
+name = "socket2"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
 
 [[package]]
 name = "strsim"
@@ -1364,22 +1180,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
-name = "subtle"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
-
-[[package]]
-name = "subtle"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-
-[[package]]
 name = "syn"
-version = "1.0.104"
+version = "1.0.107"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ae548ec36cf198c0ef7710d3c230987c2d6d7bd98ad6edc0274462724c585ce"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1387,15 +1191,14 @@ dependencies = [
 ]
 
 [[package]]
-name = "synstructure"
-version = "0.12.6"
+name = "syn"
+version = "2.0.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
@@ -1414,134 +1217,231 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.1.3"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
-name = "textwrap"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-
-[[package]]
 name = "thiserror"
-version = "1.0.37"
+version = "1.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
 ]
 
 [[package]]
-name = "time"
-version = "0.3.17"
+name = "tinyvec"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
 dependencies = [
- "itoa",
- "serde",
- "time-core",
- "time-macros",
+ "tinyvec_macros",
 ]
 
 [[package]]
-name = "time-core"
+name = "tinyvec_macros"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
 [[package]]
-name = "time-macros"
-version = "0.2.6"
+name = "tokio"
+version = "1.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
 dependencies = [
- "time-core",
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2 0.5.4",
+ "tokio-macros",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "toml"
-version = "0.5.9"
+name = "tokio-macros"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
- "serde",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.29",
 ]
 
 [[package]]
-name = "typenum"
-version = "1.15.0"
+name = "tokio-native-tls"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
 
 [[package]]
-name = "unicode-ident"
-version = "1.0.5"
+name = "tokio-util"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-io",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[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.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "pin-project-lite",
+ "tracing-core",
+]
 
 [[package]]
-name = "unicode-xid"
+name = "tracing-core"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
 
 [[package]]
-name = "untrusted"
-version = "0.7.1"
+name = "typenum"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
 
 [[package]]
-name = "untrusted"
-version = "0.9.0"
+name = "unicode-bidi"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+checksum = "0046be40136ef78dc325e0edefccf84ccddacd0afcc1ca54103fa3c61bbdab1d"
 
 [[package]]
-name = "utf16string"
-version = "0.2.0"
+name = "unicode-ident"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b62a1e85e12d5d712bf47a85f426b73d303e2d00a90de5f3004df3596e9d216"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
 dependencies = [
- "byteorder",
+ "tinyvec",
 ]
 
 [[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
 name = "uuid"
-version = "1.2.2"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
+checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
 dependencies = [
- "getrandom 0.2.8",
+ "getrandom",
 ]
 
 [[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 = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
+name = "vrc-get"
+version = "1.3.0"
+dependencies = [
+ "async_zip",
+ "clap",
+ "clap_complete",
+ "env_logger",
+ "futures",
+ "indexmap 2.0.0",
+ "itertools",
+ "log",
+ "pin-project-lite",
+ "reqwest",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "tokio",
+ "tokio-util",
+ "uuid",
+ "windows",
+]
+
+[[package]]
+name = "want"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+dependencies = [
+ "log",
+ "try-lock",
+]
 
 [[package]]
 name = "wasi"
@@ -1570,11 +1470,23 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
 name = "wasm-bindgen-macro"
 version = "0.2.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1592,7 +1504,7 @@ checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.107",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -1604,23 +1516,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
 
 [[package]]
-name = "web-sys"
-version = "0.3.60"
+name = "wasm-streams"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
 dependencies = [
+ "futures-util",
  "js-sys",
  "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
 ]
 
 [[package]]
-name = "webpki"
-version = "0.22.0"
+name = "web-sys"
+version = "0.3.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
+checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
 dependencies = [
- "ring",
- "untrusted 0.7.1",
+ "js-sys",
+ "wasm-bindgen",
 ]
 
 [[package]]
@@ -1655,31 +1570,177 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "x509-parser"
-version = "0.14.0"
+name = "windows"
+version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
 dependencies = [
- "asn1-rs",
- "base64",
- "data-encoding",
- "der-parser",
- "lazy_static",
- "nom",
- "oid-registry",
- "rusticata-macros",
- "thiserror",
- "time",
+ "windows-core",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "yasna"
-version = "0.3.2"
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+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-sys"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de7bff972b4f2a06c85f6d8454b09df153af7e3a4ec2aac81db1b105b684ddb"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
 
 [[package]]
-name = "zeroize"
-version = "1.5.7"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[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_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_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_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_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_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_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_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 = "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",
+]
diff --git a/nixpkgs/pkgs/tools/misc/vrc-get/default.nix b/nixpkgs/pkgs/tools/misc/vrc-get/default.nix
index 6026f9d6f734..e6ea0c595e68 100644
--- a/nixpkgs/pkgs/tools/misc/vrc-get/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vrc-get/default.nix
@@ -2,14 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vrc-get";
-  version = "1.1.3";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "anatawa12";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-CJBwW2QsLNLyNubawBPD+Cy74JrrdSUHe7JBSdbMnjY=";
-    fetchSubmodules = true;
+    hash = "sha256-FCLIc5c+50qGpBEbJ4bUSNAfQVdpeswNwiWrVcO91zI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -19,7 +18,12 @@ rustPlatform.buildRustPackage rec {
   # Make openssl-sys use pkg-config.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoHash = "sha256-PnNo+MmBo/Ke7pL6KwRKXz3gycJmbYefTRMWOvlCQaQ=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "async_zip-0.0.15" = "sha256-UXBVZy3nf20MUh9jQdYeS5ygrZfeRWtiNRtiyMvkdSs=";
+    };
+  };
 
   meta = with lib; {
     description = "Command line client of VRChat Package Manager, the main feature of VRChat Creator Companion (VCC)";
diff --git a/nixpkgs/pkgs/tools/networking/dirb/default.nix b/nixpkgs/pkgs/tools/networking/dirb/default.nix
index 1ff6c33bcc26..17a518bdea21 100644
--- a/nixpkgs/pkgs/tools/networking/dirb/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dirb/default.nix
@@ -32,8 +32,9 @@ in stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-fcommon";
 
   postInstall = ''
-    mkdir -p $out/share/dirb/
+    mkdir -p $out/share/{dirb,wordlists}
     cp -r wordlists/ $out/share/dirb/
+    ln -s $out/share/dirb/wordlists/ $out/share/wordlists/dirb
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/networking/mockoon/default.nix b/nixpkgs/pkgs/tools/networking/mockoon/default.nix
index 9f5f579e5889..63e4e3c28030 100644
--- a/nixpkgs/pkgs/tools/networking/mockoon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mockoon/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "mockoon";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "https://github.com/mockoon/mockoon/releases/download/v${version}/mockoon-${version}.AppImage";
-    hash = "sha256-CxWjnDNobeDbvNx5gVLGfVxrQyMITZJYmJMzf2XlzQQ=";
+    hash = "sha256-FF2F16ulKerNnwgumaz2Theff7pRN4Up3FooCNW8kbg=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
index 653439179520..f557030f991d 100644
--- a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -1,7 +1,7 @@
 { callPackage, lib, stdenv, fetchurl, jre, makeWrapper }:
 
 let this = stdenv.mkDerivation rec {
-  version = "7.0.1";
+  version = "7.1.0";
   pname = "openapi-generator-cli";
 
   jarfilename = "${pname}-${version}.jar";
@@ -12,7 +12,7 @@ let this = stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/org/openapitools/${pname}/${version}/${jarfilename}";
-    sha256 = "sha256-ATh8c5Bd5Hpuz4gB+RyNYWJPih6JDIBYIl31HUk7wyo=";
+    sha256 = "sha256-hfq3pNgKnh5lxYJLzTdcOa0pSvB0kGCVKcjninvaZzo=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/networking/sing-box/default.nix b/nixpkgs/pkgs/tools/networking/sing-box/default.nix
index d29bbe1292db..d75a49f6c9e6 100644
--- a/nixpkgs/pkgs/tools/networking/sing-box/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sing-box/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "sing-box";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XD4xWOQumqbXMBbzHgCIgFIegUqJnFZsAvk1VZXX5rc=";
+    hash = "sha256-5n5AnuJQvw/26X3UWdLvegFhwYzjtS7o0d4cN3c3bfQ=";
   };
 
-  vendorHash = "sha256-U70FjJ0HO5dyFj50qpyjy+k2r7IR/6gOLDi2LM3M3No=";
+  vendorHash = "sha256-UvLZY4vMS6dI6z9kPcSzbB/cW/7rfbrlhcWh51q5sak=";
 
   tags = [
     "with_quic"
diff --git a/nixpkgs/pkgs/tools/networking/whois/default.nix b/nixpkgs/pkgs/tools/networking/whois/default.nix
index fe4950d5c240..992303ec6072 100644
--- a/nixpkgs/pkgs/tools/networking/whois/default.nix
+++ b/nixpkgs/pkgs/tools/networking/whois/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, perl, gettext, pkg-config, libidn2, libiconv }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, perl, gettext, pkg-config, libidn2, libiconv }:
 
 stdenv.mkDerivation rec {
   version = "5.5.20";
@@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-0vQ6GBBtNA6Phlqhl3NZvEJqoyZ1um7VdkpsIRKhsm4=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/macports/macports-ports/raw/93de4e9fc1e5e8427bf98f48209e783a5e8fab57/net/whois/files/implicit.patch";
+      extraPrefix = "";
+      hash = "sha256-ogVylQz//tpXxPNIWIHkhghvToU1z1D1FfnUBdZLyRY=";
+    })
+  ];
+
   nativeBuildInputs = [ perl gettext pkg-config ];
   buildInputs = [ libidn2 libiconv ];
 
diff --git a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
index ffe64cde4d34..b9227814dea2 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
+++ b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
@@ -97,8 +97,8 @@ class HTMLRenderer(Renderer):
     def strong_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         return "</strong></span>"
     def fence(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        # TODO use token.info. docbook doesn't so we can't yet.
-        return f'<pre class="programlisting">\n{escape(token.content)}</pre>'
+        info = f" {escape(token.info, True)}" if token.info != "" else ""
+        return f'<pre><code class="programlisting{info}">{escape(token.content)}</code></pre>'
     def blockquote_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         return '<div class="blockquote"><blockquote class="blockquote">'
     def blockquote_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
diff --git a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
index d0229e074c54..9a00da567fa9 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
+++ b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py
@@ -496,8 +496,8 @@ class OptionsHTMLRenderer(OptionDocsRestrictions, HTMLRenderer):
         token.meta['compact'] = False
         return super().bullet_list_open(token, tokens, i)
     def fence(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        # TODO use token.info. docbook doesn't so we can't yet.
-        return f'<pre class="programlisting">{html.escape(token.content)}</pre>'
+        info = f" {html.escape(token.info, True)}" if token.info != "" else ""
+        return f'<pre><code class="programlisting{info}">{html.escape(token.content)}</code></pre>'
 
 class HTMLConverter(BaseConverter[OptionsHTMLRenderer]):
     __option_block_separator__ = ""
diff --git a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
index 96cf8d0b7dff..fba0ce2679a4 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
+++ b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
@@ -204,8 +204,10 @@ def test_full() -> None:
           <div class="blockquote">
            <blockquote class="blockquote">
             <p>with <span class="emphasis"><em>nesting</em></span></p>
-            <pre class="programlisting">↵
-             nested code block↵
+            <pre>
+             <code class="programlisting">
+              nested code block↵
+             </code>
             </pre>
            </blockquote>
           </div>
@@ -213,8 +215,10 @@ def test_full() -> None:
            <ul class="itemizedlist compact" style="list-style-type: disc;">
             <li class="listitem"><p>and lists</p></li>
             <li class="listitem">
-             <pre class="programlisting">↵
-              containing code↵
+             <pre>
+              <code class="programlisting">
+               containing code↵
+              </code>
              </pre>
             </li>
            </ul>
@@ -240,11 +244,15 @@ def test_full() -> None:
              </p>
             </blockquote>
            </div>
-           <pre class="programlisting">↵
-            code block↵
+           <pre>
+            <code class="programlisting">
+             code block↵
+            </code>
            </pre>
-           <pre class="programlisting">↵
-            fenced block↵
+           <pre>
+            <code class="programlisting">
+             fenced block↵
+            </code>
            </pre>
            <p>text</p>
           </dd>
diff --git a/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix b/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix
index d2557b36dc2e..bd6e4c15fa27 100644
--- a/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix
+++ b/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd-vault-plugin";
-  version = "1.16.1";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "argoproj-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-7bUpshg+OqlS5wvFkZkovQVaLglvSpp7FsVA9qNOk1U=";
+    hash = "sha256-YH7yNRaKdYzasaxYSManuiImyxglmIwgLvDKjUg3MR8=";
   };
 
-  vendorHash = "sha256-r9Pcm95gU0QTiREdiQiyJMOKZb5Lt2bIJywLerzgbdg=";
+  vendorHash = "sha256-0PrGrcS8Gx0cVImGrlmXlycFgWCTLjg2ISi0OhYoPpw=";
 
   # integration tests require filesystem and network access for credentials
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/security/clevis/default.nix b/nixpkgs/pkgs/tools/security/clevis/default.nix
index 0498f0599052..fa1be45a5b99 100644
--- a/nixpkgs/pkgs/tools/security/clevis/default.nix
+++ b/nixpkgs/pkgs/tools/security/clevis/default.nix
@@ -16,6 +16,7 @@
 , ninja
 , pkg-config
 , tpm2-tools
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
@@ -29,6 +30,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-3J3ti/jRiv+p3eVvJD7u0ko28rPd8Gte0mCJaVaqyOs=";
   };
 
+  patches = [
+    # Replaces the clevis-decrypt 300s timeout to a 10s timeout
+    # https://github.com/latchset/clevis/issues/289
+    ./tang-timeout.patch
+  ];
+
   postPatch = ''
     for f in $(find src/ -type f); do
       grep -q "/bin/cat" "$f" && substituteInPlace "$f" \
@@ -65,6 +72,14 @@ stdenv.mkDerivation rec {
     "man"
   ];
 
+  passthru.tests = {
+    inherit (nixosTests.installer) clevisBcachefs clevisBcachefsFallback clevisLuks clevisLuksFallback clevisZfs clevisZfsFallback;
+    clevisLuksSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisLuks;
+    clevisLuksFallbackSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisLuksFallback;
+    clevisZfsSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisZfs;
+    clevisZfsFallbackSystemdStage1 = nixosTests.installer-systemd-stage-1.clevisZfsFallback;
+  };
+
   meta = with lib; {
     description = "Automated Encryption Framework";
     homepage = "https://github.com/latchset/clevis";
diff --git a/nixpkgs/pkgs/tools/security/clevis/tang-timeout.patch b/nixpkgs/pkgs/tools/security/clevis/tang-timeout.patch
new file mode 100644
index 000000000000..454541d5e77c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/clevis/tang-timeout.patch
@@ -0,0 +1,13 @@
+diff --git a/src/pins/tang/clevis-decrypt-tang b/src/pins/tang/clevis-decrypt-tang
+index 72393b4..40b660f 100755
+--- a/src/pins/tang/clevis-decrypt-tang
++++ b/src/pins/tang/clevis-decrypt-tang
+@@ -101,7 +101,7 @@ xfr="$(jose jwk exc -i '{"alg":"ECMR"}' -l- -r- <<< "$clt$eph")"
+ 
+ rec_url="$url/rec/$kid"
+ ct="Content-Type: application/jwk+json"
+-if ! rep="$(curl -sfg -X POST -H "$ct" --data-binary @- "$rec_url" <<< "$xfr")"; then
++if ! rep="$(curl --connect-timeout 10 -sfg -X POST -H "$ct" --data-binary @- "$rec_url" <<< "$xfr")"; then
+     echo "Error communicating with server $url" >&2
+     exit 1
+ fi
diff --git a/nixpkgs/pkgs/tools/security/cnspec/default.nix b/nixpkgs/pkgs/tools/security/cnspec/default.nix
index 25b866285e95..b1f8cbb81b2a 100644
--- a/nixpkgs/pkgs/tools/security/cnspec/default.nix
+++ b/nixpkgs/pkgs/tools/security/cnspec/default.nix
@@ -5,17 +5,17 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "9.8.0";
+  version = "9.9.3";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XxjFmFU6G7pTJCkWUYadFTEAQh5HZigfvUNoNNw1DOM=";
+    hash = "sha256-OlM/gcwHQWfXmKLcDDHh3okvqHIELRL+dRQJ6dOcItc=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-Ykb1dmvdOgOBqgsCJbLGwUbbMfsao0is95g8a2chVME=";
+  vendorHash = "sha256-yhPixXldWUhJURZ/lIScIAbhsw/b/JCjYi1+Y5UOnnQ=";
 
   subPackages = [
     "apps/cnspec"
diff --git a/nixpkgs/pkgs/tools/security/exploitdb/default.nix b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
index cd54bad53de0..acfbad10cd55 100644
--- a/nixpkgs/pkgs/tools/security/exploitdb/default.nix
+++ b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2023-12-01";
+  version = "2023-12-02";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-tWwcNZ4xyeNMhIyH6cYfW910syfZd4KF9G73XItz8hk=";
+    hash = "sha256-rITeDc1PQFjV4ZlBK97T+hvIzuWMIoPxBLscqkXiMwc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix
index 10efc22d4a1b..6573c511474a 100644
--- a/nixpkgs/pkgs/tools/security/gopass/default.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/default.nix
@@ -13,7 +13,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.15.10";
+  version = "1.15.11";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = "gopass";
     rev = "v${version}";
-    hash = "sha256-6s4rg2+oC+RB2gE4FQIY2MPmFSh+RxiZxaIuMI/T8hE=";
+    hash = "sha256-wgrZkRRMEWA9Lk9eW+iGi+dZNYfDVhRu1phimZC079c=";
   };
 
-  vendorHash = "sha256-tbZpNraGVC+p6O1MOh4vPmcwUgW5ykg7rGTNOWKFk0M=";
+  vendorHash = "sha256-TvohrwSFVv5ylVRd6jPdRDyRRhqqWa0xey9KN9vtyY8=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/git-credential.nix b/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
index 038cdaf84167..8654d05d9d13 100644
--- a/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "git-credential-gopass";
-  version = "1.15.10";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "git-credential-gopass";
     rev = "v${version}";
-    hash = "sha256-DQPjnCwpFOKN0ObPXPbwy7GK1VsPSj+pcLKjfSPPPRo=";
+    hash = "sha256-qnWgrpcj3DZQu5haP/5xqoO7eogkRjBmc8XpgFFNT6I=";
   };
 
-  vendorHash = "sha256-gvnBlf0JfdrHSHTF+OQxBHFER5F910mruzCa/prvIYA=";
+  vendorHash = "sha256-bit4+YgQ+Y/TA2q7KdZwYTE3ZKBwL6tUam+tHzBMiQw=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/hibp.nix b/nixpkgs/pkgs/tools/security/gopass/hibp.nix
index 79a72bf891f8..11ee0a94dbf9 100644
--- a/nixpkgs/pkgs/tools/security/gopass/hibp.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/hibp.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gopass-hibp";
-  version = "1.15.10";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-hibp";
     rev = "v${version}";
-    hash = "sha256-v3FtWBi5H9LiFN/mowufonABr+aV3Z8MWBKiIUoy0NE=";
+    hash = "sha256-2XhvUIa8RxQ6CAKPGpL8/rBiJSX/WsSGtIpaHLIBM1E=";
   };
 
-  vendorHash = "sha256-c4kk1RrvB+c+8IfbIsLRvG7O3cy+u9l+pDZ52XX1AhI=";
+  vendorHash = "sha256-i9PUqircNf+jz5gcr3rVIR4tD9/bkV2h6LiDFhjiLaw=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix b/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
index 21345240a647..37ac46356c3a 100644
--- a/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "gopass-jsonapi";
-  version = "1.15.10";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-jsonapi";
     rev = "v${version}";
-    hash = "sha256-3E55MNS9QBLeae+Dc7NqbVMGie6NUKMBMGvkMqKeWoE=";
+    hash = "sha256-wJlnm+sgFg55LW4RWGjcT538DgNhJtFjwgwgqwLWH50=";
   };
 
-  vendorHash = "sha256-sarNWeBi93oXL9v2EkP/z2+Bd4TyNy+z6576hOCf1/Q=";
+  vendorHash = "sha256-qRmPO2WM9RD43twl5a47IT3xC1LGFwNF99ojIU2xg6A=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/summon.nix b/nixpkgs/pkgs/tools/security/gopass/summon.nix
index 48740f91954c..97aed94c05fe 100644
--- a/nixpkgs/pkgs/tools/security/gopass/summon.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/summon.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gopass-summon-provider";
-  version = "1.15.10";
+  version = "1.15.11";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-summon-provider";
     rev = "v${version}";
-    hash = "sha256-S4BPUl7KuRakHr2fvNobChfevFw1UAbAdpFUkwXcmxs=";
+    hash = "sha256-rbfzmr6HtGUBCjO9jkocSghTAN+aNXTsSsMC38HqgW0=";
   };
 
-  vendorHash = "sha256-gvnBlf0JfdrHSHTF+OQxBHFER5F910mruzCa/prvIYA=";
+  vendorHash = "sha256-bit4+YgQ+Y/TA2q7KdZwYTE3ZKBwL6tUam+tHzBMiQw=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
index e7de6a9a982e..b16aa8a0ddb3 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile
+++ b/nixpkgs/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.3.44"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.45"
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
index 9a129de0728c..bdef38c32aad 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 54a9eee7f85d369feef55d6a340340ad965f80a0
-  ref: refs/tags/6.3.44
+  revision: dd2f4b923912fc2ffc84d4a1d5e3bbccd5a8efc1
+  ref: refs/tags/6.3.45
   specs:
-    metasploit-framework (6.3.44)
+    metasploit-framework (6.3.45)
       actionpack (~> 7.0.0)
       activerecord (~> 7.0.0)
       activesupport (~> 7.0.0)
diff --git a/nixpkgs/pkgs/tools/security/metasploit/default.nix b/nixpkgs/pkgs/tools/security/metasploit/default.nix
index 6f9af0634e97..842fc64b6440 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/default.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.3.44";
+  version = "6.3.45";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = "refs/tags/${version}";
-    hash = "sha256-LBmyFE617G2ryEAp5fig3G2T/goa9NXUggu0XH4X1xs=";
+    hash = "sha256-vDTbuvMkudwV3rCEEwE62emXNSMgXR1XHyVB3sDN56Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
index 5f3386d4f2eb..d6d0ced8a5d1 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
@@ -654,12 +654,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "54a9eee7f85d369feef55d6a340340ad965f80a0";
-      sha256 = "06yp2xz5rd0bhbadbx0s1bz96vfwl3wfaaa0r2mnvv5m9qab469c";
+      rev = "dd2f4b923912fc2ffc84d4a1d5e3bbccd5a8efc1";
+      sha256 = "19p7rp0dwh953xbisp904csrgsfr780i715hvqaxrf94yfxdnd5w";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.3.44";
+    version = "6.3.45";
   };
   metasploit-model = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/security/oauth2c/default.nix b/nixpkgs/pkgs/tools/security/oauth2c/default.nix
index c4e187ea53ed..b36eebea7b5f 100644
--- a/nixpkgs/pkgs/tools/security/oauth2c/default.nix
+++ b/nixpkgs/pkgs/tools/security/oauth2c/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "oauth2c";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "cloudentity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Qb4eES7xT/bQTMtcpFy6aQ7n5U/0yA1GXdTR9ga3aYU=";
+    hash = "sha256-iFYKAdoeCvyhAeZ5K3CHSsHG0Uq+Ok0C8ACe9RztDmY=";
   };
 
-  vendorHash = "sha256-+rkRo9zY3dRqElKApkbaBrDW8SqilqlGAhOM9vDeQps=";
+  vendorHash = "sha256-olDtsLoslxOsbAq60RnLp9MGZOt17/BPo9E9SgWOqoQ=";
 
   doCheck = false; # tests want to talk to oauth2c.us.authz.cloudentity.io
 
diff --git a/nixpkgs/pkgs/tools/security/pinentry-bemenu/default.nix b/nixpkgs/pkgs/tools/security/pinentry-bemenu/default.nix
index aec655d0b559..ed43ee382597 100644
--- a/nixpkgs/pkgs/tools/security/pinentry-bemenu/default.nix
+++ b/nixpkgs/pkgs/tools/security/pinentry-bemenu/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pinentry-bemenu";
-  version = "0.12.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "t-8ch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5ll4a/1Ughx0s2l/mcIsp1g4oNoNhm0RWvY/tXDvPGE=";
+    sha256 = "sha256-h+PC8IGwCW5ZroLGpypcmpejOo+JGM7zG4N5fguBWvM=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/nixpkgs/pkgs/tools/security/pynitrokey/default.nix b/nixpkgs/pkgs/tools/security/pynitrokey/default.nix
index 690d566c476d..2d1979c1b0c1 100644
--- a/nixpkgs/pkgs/tools/security/pynitrokey/default.nix
+++ b/nixpkgs/pkgs/tools/security/pynitrokey/default.nix
@@ -1,63 +1,82 @@
 { lib
-, python3Packages
+, buildPythonApplication
 , fetchPypi
-, nrfutil
+, pythonRelaxDepsHook
+, installShellFiles
 , libnitrokey
-, nix-update-script
+, flit-core
+, certifi
+, cffi
+, click
+, cryptography
+, ecdsa
+, fido2
+, intelhex
+, nkdfu
+, python-dateutil
+, pyusb
+, requests
+, spsdk
+, tqdm
+, tlv8
+, typing-extensions
+, pyserial
+, protobuf
+, click-aliases
+, semver
+, nethsm
+, importlib-metadata
 }:
 
-with python3Packages;
-
-buildPythonApplication rec {
+let
   pname = "pynitrokey";
-  version = "0.4.40";
-  format = "pyproject";
+  version = "0.4.43";
+  mainProgram = "nitropy";
+in
+
+buildPythonApplication {
+  inherit pname version;
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Hu+8UooDzv4GhkWt0sCckQQyHjWn4V/zt2ADlVCoHmk=";
+    hash = "sha256-dYOdokqALDg4Xn7N6Yd0skM/tit+j5+xY73sm9k76hE=";
   };
 
   propagatedBuildInputs = [
     certifi
     cffi
     click
-    click-aliases
     cryptography
     ecdsa
-    frozendict
     fido2
     intelhex
     nkdfu
-    nrfutil
     python-dateutil
     pyusb
     requests
-    semver
     spsdk
     tqdm
-    urllib3
     tlv8
     typing-extensions
+    pyserial
+    protobuf
+    click-aliases
+    semver
+    nethsm
     importlib-metadata
   ];
 
   nativeBuildInputs = [
     flit-core
+    installShellFiles
     pythonRelaxDepsHook
   ];
 
-  # FIXME: does pythonRelaxDepsHook not work for pypaBuildHook + flit-core?
-  pypaBuildFlags = [ "--skip-dependency-check" ];
+  pythonRelaxDeps = true;
 
-  pythonRelaxDeps = [
-    "click"
-    "cryptography"
-    "protobuf"
-    "python-dateutil"
-    "spsdk"
-    "typing_extensions"
-  ];
+  # pythonRelaxDepsHook runs in postBuild so cannot be used
+  pypaBuildFlags = [ "--skip-dependency-check" ];
 
   # libnitrokey is not propagated to users of the pynitrokey Python package.
   # It is only usable from the wrapped bin/nitropy
@@ -70,13 +89,19 @@ buildPythonApplication rec {
 
   pythonImportsCheck = [ "pynitrokey" ];
 
-  passthru.updateScript = nix-update-script { };
+  postInstall = ''
+    installShellCompletion --cmd ${mainProgram} \
+      --bash <(_NITROPY_COMPLETE=bash_source $out/bin/${mainProgram}) \
+      --zsh <(_NITROPY_COMPLETE=zsh_source $out/bin/${mainProgram}) \
+      --fish <(_NITROPY_COMPLETE=fish_source $out/bin/${mainProgram})
+  '';
 
   meta = with lib; {
     description = "Python client for Nitrokey devices";
     homepage = "https://github.com/Nitrokey/pynitrokey";
+    changelog = "https://github.com/Nitrokey/pynitrokey/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ frogamic ];
-    mainProgram = "nitropy";
+    inherit mainProgram;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
index 8a8fa4496c38..097ef5023974 100644
--- a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
+++ b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
@@ -2,6 +2,7 @@
 , mkDerivation
 , fetchurl
 , cmake
+, flatbuffers
 , gettext
 , pkg-config
 , libdigidocpp
@@ -16,12 +17,12 @@
 
 mkDerivation rec {
   pname = "qdigidoc";
-  version = "4.2.12";
+  version = "4.4.0";
 
   src = fetchurl {
     url =
       "https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4-${version}.tar.gz";
-    hash = "sha256-6bso1qvhVhbBfrcTq4S+aHtHli7X2A926N4r45ztq4E=";
+    hash = "sha256-5zo0yoY0wufm9DWRIccxJ5g4DXn75nT4fd2h+5QP4oQ=";
   };
 
   tsl = fetchurl {
@@ -37,6 +38,7 @@ mkDerivation rec {
   '';
 
   buildInputs = [
+    flatbuffers
     libdigidocpp
     opensc
     openldap
diff --git a/nixpkgs/pkgs/tools/security/srm/default.nix b/nixpkgs/pkgs/tools/security/srm/default.nix
index ba776b8af3e3..7cde2be4fbc5 100644
--- a/nixpkgs/pkgs/tools/security/srm/default.nix
+++ b/nixpkgs/pkgs/tools/security/srm/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchsvn, autoreconfHook }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "srm";
-  version = "1.2.15";
+  version = "1.2.15-unstable-2017-12-18";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/project/srm/${version}/srm-${version}.tar.gz";
-    sha256 = "10sjarhprs6s4zandndg720528rcnd4xk8dl48pjj7li1q9c30vm";
+  src = fetchsvn {
+    url = "svn://svn.code.sf.net/p/srm/srm/trunk/";
+    rev = "268";
+    sha256 = "sha256-bY8p6IS5zeByoe/uTmvBAaBN4Wu7J19dVSpbtqx4OeQ=";
   };
 
+  patches = [ ./fix-output-in-verbose-mode.patch ];
+  nativeBuildInputs = [ autoreconfHook ];
+
   meta = with lib; {
     description = "Delete files securely";
     longDescription = ''
@@ -22,5 +26,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/nixpkgs/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch b/nixpkgs/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch
new file mode 100644
index 000000000000..966d7ba4612e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch
@@ -0,0 +1,57 @@
+diff --git a/src/sunlink.c b/src/sunlink.c
+index 7050713..ffcb8d3 100644
+--- a/src/sunlink.c
++++ b/src/sunlink.c
+@@ -468,6 +468,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 5, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 6, 0xFF) < 0) return -1;
+       if(overwrite_random(srm, 7, 1) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_DOE)
+     {
+@@ -475,6 +477,8 @@ static int overwrite_selector(struct srm_target *srm)
+ 	error("US DoE mode");
+       if(overwrite_random(srm, 1, 2) < 0) return -1;
+       if(overwrite_bytes(srm, 3, 'D', 'o', 'E') < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_OPENBSD)
+     {
+@@ -483,12 +487,16 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 1, 0xFF) < 0) return -1;
+       if(overwrite_byte(srm, 2, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 3, 0xFF) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_SIMPLE)
+     {
+       if((srm->options&SRM_OPT_V) > 1)
+ 	error("Simple mode");
+       if(overwrite_byte(srm, 1, 0x00) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_RCMP)
+     {
+@@ -497,6 +505,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 1, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 2, 0xFF) < 0) return -1;
+       if(overwrite_string(srm, 3, "RCMP") < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else
+     {
+@@ -535,6 +545,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_random(srm, 32, 4) < 0) return -1;
+       /* if you want to backup your partition or shrink your vmware image having the file zero-ed gives best compression results. */
+       if(overwrite_byte(srm, 36, 0x00) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+ #if 0
+   if((srm->options & SRM_OPT_V) > 1)
diff --git a/nixpkgs/pkgs/tools/security/sudo/default.nix b/nixpkgs/pkgs/tools/security/sudo/default.nix
index e286f7e7aee3..40056ec72eb8 100644
--- a/nixpkgs/pkgs/tools/security/sudo/default.nix
+++ b/nixpkgs/pkgs/tools/security/sudo/default.nix
@@ -71,9 +71,8 @@ stdenv.mkDerivation rec {
 
   passthru.tests = { inherit (nixosTests) sudo; };
 
-  meta = {
+  meta = with lib; {
     description = "A command to run commands as root";
-
     longDescription =
       ''
         Sudo (su "do") allows a system administrator to delegate
@@ -81,13 +80,10 @@ stdenv.mkDerivation rec {
         to run some (or all) commands as root or another user while
         providing an audit trail of the commands and their arguments.
       '';
-
     homepage = "https://www.sudo.ws/";
-
-    license = "https://www.sudo.ws/sudo/license.html";
-
-    maintainers = with lib.maintainers; [ delroth ];
-
-    platforms = lib.platforms.linux;
+    # From https://www.sudo.ws/about/license/
+    license = with licenses; [ sudo bsd2 bsd3 zlib ];
+    maintainers = with maintainers; [ delroth ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/openseachest/default.nix b/nixpkgs/pkgs/tools/system/openseachest/default.nix
index 1bdcf796f750..ab17c23bc61e 100644
--- a/nixpkgs/pkgs/tools/system/openseachest/default.nix
+++ b/nixpkgs/pkgs/tools/system/openseachest/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openseachest";
-  version = "23.03.1";
+  version = "23.12";
 
   src = fetchFromGitHub {
     owner = "Seagate";
     repo = "openSeaChest";
     rev = "v${version}";
-    sha256 = "sha256-jDCCozHeOazB3cM/9TlwHq1pu7yTiD818jykHeQ+RBo=";
+    sha256 = "sha256-2snxruIC/93+yI7g/9cCXcms8FaoXnoyWq9py8GTwrs=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/tools/text/kdiff3/default.nix b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
index 8904d1bf690e..fc6c21551fe8 100644
--- a/nixpkgs/pkgs/tools/text/kdiff3/default.nix
+++ b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
@@ -17,7 +17,7 @@ mkDerivation rec {
   version = "1.10.6";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
+    url = "mirror://kde/stable/kdiff3/kdiff3-${version}.tar.xz";
     hash = "sha256-EzOu+dZjbGs0ZqF/0sXZbpGdTrUh6isjUoJUETau+zE=";
   };
 
diff --git a/nixpkgs/pkgs/tools/text/languagetool/default.nix b/nixpkgs/pkgs/tools/text/languagetool/default.nix
index 65fcb5b71e7b..ed4543140e86 100644
--- a/nixpkgs/pkgs/tools/text/languagetool/default.nix
+++ b/nixpkgs/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "6.2";
+  version = "6.3";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "sha256-I0Blp3o+NVL0b/86UTztufwKVkgO9KNXtBuUrUnbWco=";
+    sha256 = "sha256-S6iBg7nEKCLrFzUnCseTaxFl6/YeRic2tJnBPLuXmWw=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/nixpkgs/pkgs/tools/text/tuc/default.nix b/nixpkgs/pkgs/tools/text/tuc/default.nix
index 3598a317633f..f51d81dc7a17 100644
--- a/nixpkgs/pkgs/tools/text/tuc/default.nix
+++ b/nixpkgs/pkgs/tools/text/tuc/default.nix
@@ -1,16 +1,16 @@
 { lib, fetchFromGitHub, rustPlatform }:
 rustPlatform.buildRustPackage rec {
   pname = "tuc";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "riquito";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zEWQ1wGpEowVPdlezC/LZhoPGS546nuqREfavo3fbTs=";
+    sha256 = "sha256-83tS0sYqQqGQVXFBQ/mIDxL9QKqPjAM48vTXA8NKdtE=";
   };
 
-  cargoHash = "sha256-YRw1HxVy1/SOWfareR6rh6M78xFm+Im//klhXGGt95g=";
+  cargoHash = "sha256-ka6h60ettSsho7QnWmpWrEPEyHIIyTVSW2r1Hk132CY=";
 
   meta = with lib; {
     description = "When cut doesn't cut it";
diff --git a/nixpkgs/pkgs/tools/video/go2rtc/default.nix b/nixpkgs/pkgs/tools/video/go2rtc/default.nix
index c6f8b66d1bcd..92b3f9ba2ac2 100644
--- a/nixpkgs/pkgs/tools/video/go2rtc/default.nix
+++ b/nixpkgs/pkgs/tools/video/go2rtc/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "go2rtc";
-  version = "1.8.2";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "AlexxIT";
     repo = "go2rtc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3cWhASwOgSovApNT/MUbhHhmp/o4k3ckgfcSFwJJqI8=";
+    hash = "sha256-knC8GWu8543QIvk2OKotTHB88qgSQpOI+58oHusgVKc=";
   };
 
-  vendorHash = "sha256-SV4sMDgUv6Ci0aC7wsam7ftqMSpFwsMGkC9qLpR+O68=";
+  vendorHash = "sha256-+n0atALq5e2iEbEeJ1kefnKka7gTE0iFRSRnUCz4bh8=";
 
   buildFlagArrays = [
     "-trimpath"
diff --git a/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
index 6b8ccb889580..e655c34c7e82 100644
--- a/nixpkgs/pkgs/top-level/aliases.nix
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -905,6 +905,7 @@ mapAliases ({
   taro = taproot-assets; # Added 2023-07-04
   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
   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
diff --git a/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
index d3bac7576d21..e30b97c73934 100644
--- a/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/nixpkgs/pkgs/top-level/all-packages.nix
@@ -226,6 +226,12 @@ with pkgs;
 
   chkservice = callPackage ../tools/admin/chkservice { };
 
+  # addDriverRunpath is the preferred package name, as this enables
+  # many more scenarios than just opengl now.
+  addDriverRunpath = callPackage ../build-support/add-driver-runpath { };
+
+  # addOpenGLRunpath should be added to aliases.nix after the 24.05 branch-off.
+  # Post 24.11 branch-off, this should throw an error in aliases.nix.
   addOpenGLRunpath = callPackage ../build-support/add-opengl-runpath { };
 
   quickemu = callPackage ../development/quickemu { };
@@ -1764,6 +1770,10 @@ with pkgs;
 
   davinci-resolve = callPackage ../applications/video/davinci-resolve { };
 
+  davinci-resolve-studio = callPackage ../applications/video/davinci-resolve { studioVariant = true; };
+
+  dehinter = with python3Packages; toPythonApplication dehinter;
+
   dolbybcsoftwaredecode = callPackage ../applications/audio/dolbybcsoftwaredecode { };
 
   donkey = callPackage ../tools/security/donkey { };
@@ -1804,6 +1814,10 @@ with pkgs;
 
   ethq = callPackage ../os-specific/linux/ethq { };
 
+  font-v = with python3Packages; toPythonApplication font-v;
+
+  fontbakery = with python3Packages; toPythonApplication fontbakery;
+
   weidu = callPackage ../tools/games/weidu { };
 
   weylus = callPackage ../applications/graphics/weylus  {
@@ -2022,6 +2036,8 @@ with pkgs;
 
   sgrep = callPackage ../tools/text/sgrep { };
 
+  shaperglot = with python3Packages; toPythonApplication shaperglot;
+
   shell-genie = callPackage  ../applications/misc/shell-genie { };
 
   sloth = callPackage ../tools/misc/sloth { };
@@ -2092,6 +2108,8 @@ with pkgs;
 
   ttchat = callPackage ../tools/misc/ttchat { };
 
+  ufolint = with python3Packages; toPythonApplication ufolint;
+
   ukmm = callPackage ../tools/games/ukmm { };
 
   unflac = callPackage ../tools/audio/unflac { };
@@ -2114,6 +2132,8 @@ with pkgs;
 
   vopono = callPackage ../tools/networking/vopono { };
 
+  vprof = with python3Packages; toPythonApplication vprof;
+
   vrc-get = callPackage ../tools/misc/vrc-get {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -2669,10 +2689,7 @@ with pkgs;
 
   emulationstation = callPackage ../applications/emulators/emulationstation { };
 
-  fceux = callPackage ../applications/emulators/fceux {
-    lua = lua5_1;
-    inherit (libsForQt5) wrapQtAppsHook;
-  };
+  fceux = libsForQt5.callPackage ../applications/emulators/fceux { lua = lua5_1; };
 
   firebird-emu = libsForQt5.callPackage ../applications/emulators/firebird-emu { };
 
@@ -3020,7 +3037,12 @@ with pkgs;
 
   blackbox-terminal = callPackage ../applications/terminal-emulators/blackbox-terminal { };
 
-  contour = libsForQt5.callPackage ../applications/terminal-emulators/contour { fmt = fmt_8; };
+  contour = qt6.callPackage ../applications/terminal-emulators/contour {
+    inherit (darwin.apple_sdk_11_0.libs) utmp;
+    inherit (darwin) sigtool;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+    fmt = fmt_9;
+  };
 
   cool-retro-term = libsForQt5.callPackage ../applications/terminal-emulators/cool-retro-term { };
 
@@ -3888,6 +3910,8 @@ with pkgs;
 
   gopacked = callPackage ../applications/misc/gopacked { };
 
+  goperf = callPackage ../development/tools/goperf { };
+
   gotktrix = callPackage ../applications/networking/instant-messengers/gotktrix { };
 
   graphite-cli = nodePackages.graphite-cli;
@@ -4778,8 +4802,6 @@ with pkgs;
 
   slurp = callPackage ../tools/wayland/slurp { };
 
-  sov = callPackage ../tools/wayland/sov { };
-
   swaykbdd = callPackage ../tools/wayland/swaykbdd { };
 
   swayr = callPackage ../tools/wayland/swayr { };
@@ -5689,7 +5711,7 @@ with pkgs;
   hyprpaper = callPackage ../applications/window-managers/hyprwm/hyprpaper { };
 
   hyprpicker = callPackage ../applications/window-managers/hyprwm/hyprpicker {
-    wlroots = wlroots_0_15;
+    wlroots = wlroots_0_16;
   };
 
   hyprshade = python311Packages.callPackage ../applications/window-managers/hyprwm/hyprshade { };
@@ -6857,8 +6879,9 @@ with pkgs;
   inherit (callPackage ../applications/networking/remote/citrix-workspace { })
     citrix_workspace_23_02_0
     citrix_workspace_23_07_0
+    citrix_workspace_23_09_0
   ;
-  citrix_workspace = citrix_workspace_23_07_0;
+  citrix_workspace = citrix_workspace_23_09_0;
 
   clima = callPackage ../tools/text/clima { };
 
@@ -6979,7 +7002,7 @@ with pkgs;
   keymapper = callPackage ../tools/inputmethods/keymapper { };
 
   twitch-tui = callPackage ../applications/networking/instant-messengers/twitch-tui {
-    inherit (darwin.apple_sdk_11_0.frameworks) Security CoreServices;
+    inherit (darwin.apple_sdk_11_0.frameworks) Security CoreServices SystemConfiguration;
   };
 
   gebaar-libinput = callPackage ../tools/inputmethods/gebaar-libinput { stdenv = gcc10StdenvCompat; };
@@ -13505,6 +13528,10 @@ with pkgs;
 
   sshuttle = callPackage ../tools/security/sshuttle { };
 
+  inherit (callPackages ../tools/misc/sshx { })
+    sshx
+    sshx-server;
+
   ssldump = callPackage ../tools/networking/ssldump { };
 
   sslsplit = callPackage ../tools/networking/sslsplit { };
@@ -13780,9 +13807,6 @@ with pkgs;
 
   telegraf = callPackage ../servers/monitoring/telegraf { };
 
-  teleport_11 = callPackage ../servers/teleport/11 {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
-  };
   teleport_12 = callPackage ../servers/teleport/12 {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
   };
@@ -17954,6 +17978,7 @@ with pkgs;
 
   rakudo = callPackage ../development/interpreters/rakudo { };
   moarvm = callPackage ../development/interpreters/rakudo/moarvm.nix {
+    inherit (darwin) cctools-port;
     inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
   };
   nqp = callPackage  ../development/interpreters/rakudo/nqp.nix { };
@@ -18292,8 +18317,6 @@ with pkgs;
 
   karma-runner = callPackage ../development/tools/karma-runner { };
 
-  phpunit = callPackage ../development/tools/misc/phpunit { };
-
   teller = callPackage ../development/tools/teller { };
 
   yakut = python3Packages.callPackage ../development/tools/misc/yakut { };
@@ -19161,7 +19184,9 @@ with pkgs;
 
   fprettify = callPackage ../development/tools/fprettify { };
 
-  framac = callPackage ../development/tools/analysis/frama-c { };
+  framac = callPackage ../development/tools/analysis/frama-c {
+    why3 = pkgs.why3.override { version = "1.6.0"; };
+  };
 
   frame = callPackage ../development/libraries/frame { };
 
@@ -19689,10 +19714,6 @@ with pkgs;
 
   openai = with python3Packages; toPythonApplication openai;
 
-  openai-full = with python3Packages; toPythonApplication (openai.override {
-   withOptionalDependencies = true;
-  });
-
   openai-whisper = with python3.pkgs; toPythonApplication openai-whisper;
 
   openai-whisper-cpp = darwin.apple_sdk_11_0.callPackage ../tools/audio/openai-whisper-cpp {
@@ -20916,7 +20937,8 @@ with pkgs;
   ctranslate2 = callPackage ../development/libraries/ctranslate2 rec {
     stdenv = if withCUDA then gcc11Stdenv else pkgs.stdenv;
     withCUDA = pkgs.config.cudaSupport;
-    withCuDNN = pkgs.config.cudaSupport;
+    withCuDNN = withCUDA && (cudaPackages ? cudnn);
+    cudaPackages = pkgs.cudaPackages;
   };
 
   ubus = callPackage ../development/libraries/ubus { };
@@ -22063,7 +22085,7 @@ with pkgs;
 
   hwloc = callPackage ../development/libraries/hwloc { };
 
-  hydra_unstable = callPackage ../development/tools/misc/hydra/unstable.nix { nix = nixVersions.nix_2_17; };
+  hydra_unstable = callPackage ../development/tools/misc/hydra/unstable.nix { nix = nixVersions.nix_2_18; };
 
   hydra-cli = callPackage ../development/tools/misc/hydra-cli { };
 
@@ -23613,6 +23635,8 @@ with pkgs;
 
   libuldaq = callPackage ../development/libraries/libuldaq { };
 
+  libunicode = callPackage ../development/libraries/libunicode { fmt = fmt_8; };
+
   libunwind =
     if stdenv.isDarwin then darwin.libunwind
     else if stdenv.hostPlatform.system == "riscv32-linux" then llvmPackages_14.libunwind
@@ -25308,6 +25332,8 @@ with pkgs;
 
   tepl = callPackage ../development/libraries/tepl { };
 
+  termbench-pro = callPackage ../development/libraries/termbench-pro { fmt = fmt_8; };
+
   telepathy-glib = callPackage ../development/libraries/telepathy/glib { };
 
   telepathy-farstream = callPackage ../development/libraries/telepathy/farstream { };
@@ -29159,9 +29185,7 @@ with pkgs;
 
   comfortaa = callPackage ../data/fonts/comfortaa { };
 
-  colloid-kde = callPackage ../data/themes/colloid-kde {
-    inherit (libsForQt5) kdeclarative plasma-framework plasma-workspace;
-  };
+  colloid-kde = libsForQt5.callPackage ../data/themes/colloid-kde { };
 
   comic-mono = callPackage ../data/fonts/comic-mono { };
 
@@ -29234,8 +29258,6 @@ with pkgs;
 
   documize-community = callPackage ../servers/documize-community { };
 
-  doge = callPackage ../misc/doge { };
-
   doulos-sil = callPackage ../data/fonts/doulos-sil { };
 
   cabin = callPackage ../data/fonts/cabin { };
@@ -29379,9 +29401,7 @@ with pkgs;
 
   graphite-gtk-theme = callPackage ../data/themes/graphite-gtk-theme { };
 
-  graphite-kde-theme = callPackage ../data/themes/graphite-kde-theme {
-    inherit (libsForQt5) kdeclarative plasma-framework plasma-workspace;
-  };
+  graphite-kde-theme = libsForQt5.callPackage ../data/themes/graphite-kde-theme { };
 
   greybird = callPackage ../data/themes/greybird { };
 
@@ -29518,9 +29538,7 @@ with pkgs;
 
   layan-gtk-theme = callPackage ../data/themes/layan-gtk-theme { };
 
-  layan-kde = callPackage ../data/themes/layan-kde {
-    inherit (libsForQt5) kdeclarative plasma-framework plasma-workspace;
-  };
+  layan-kde = libsForQt5.callPackage ../data/themes/layan-kde { };
 
   lao = callPackage ../data/fonts/lao { };
 
@@ -29724,9 +29742,7 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Foundation SystemConfiguration;
   };
 
-  nordic = callPackage ../data/themes/nordic {
-    inherit (libsForQt5) breeze-icons plasma-framework plasma-workspace;
-  };
+  nordic = libsForQt5.callPackage ../data/themes/nordic { };
 
   nordzy-cursor-theme = callPackage ../data/icons/nordzy-cursor-theme { };
 
@@ -29885,9 +29901,7 @@ with pkgs;
 
   qogir-icon-theme = callPackage ../data/icons/qogir-icon-theme { };
 
-  qogir-kde = callPackage ../data/themes/qogir-kde {
-    inherit (libsForQt5) kdeclarative plasma-framework plasma-workspace;
-  };
+  qogir-kde = libsForQt5.callPackage ../data/themes/qogir-kde { };
 
   qogir-theme = callPackage ../data/themes/qogir { };
 
@@ -30177,9 +30191,7 @@ with pkgs;
 
   unscii = callPackage ../data/fonts/unscii { };
 
-  utterly-nord-plasma = callPackage ../data/themes/utterly-nord-plasma {
-    inherit (libsForQt5) breeze-icons kdeclarative kirigami2 plasma-framework plasma-workspace;
-  };
+  utterly-nord-plasma = libsForQt5.callPackage ../data/themes/utterly-nord-plasma { };
 
   utterly-round-plasma-style = callPackage ../data/themes/utterly-round-plasma-style { };
 
@@ -30199,6 +30211,8 @@ with pkgs;
 
   victor-mono = callPackage ../data/fonts/victor-mono { };
 
+  vimix-cursor-theme = callPackage ../data/icons/vimix-cursor-theme { };
+
   vimix-gtk-themes = callPackage ../data/themes/vimix {
     inherit (gnome) gnome-shell;
   };
@@ -30223,9 +30237,7 @@ with pkgs;
 
   whitesur-icon-theme = callPackage ../data/icons/whitesur-icon-theme { };
 
-  whitesur-kde = callPackage ../data/themes/whitesur-kde {
-    inherit (libsForQt5) kdeclarative plasma-framework plasma-workspace;
-  };
+  whitesur-kde = libsForQt5.callPackage ../data/themes/whitesur-kde { };
 
   wireless-regdb = callPackage ../data/misc/wireless-regdb { };
 
@@ -31012,8 +31024,6 @@ with pkgs;
 
   cosmic-settings = callPackage ../applications/window-managers/cosmic/settings { };
 
-  cosmic-edit = callPackage ../applications/editors/cosmic-edit { };
-
   coursera-dl = callPackage ../applications/misc/coursera-dl { };
 
   coyim = callPackage ../applications/networking/instant-messengers/coyim { };
@@ -31640,7 +31650,9 @@ with pkgs;
 
   gaucheBootstrap = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche/boot.nix { };
 
-  gauche = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche { };
+  gauche = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreServices;
+  };
 
   gazelle-origin = python3Packages.callPackage ../tools/misc/gazelle-origin { };
 
@@ -33489,8 +33501,6 @@ with pkgs;
 
   handlr = callPackage ../tools/misc/handlr { };
 
-  handlr-regex = callPackage ../tools/misc/handlr-regex { };
-
   jftui = callPackage ../applications/video/jftui { };
 
   lime = callPackage ../development/libraries/lime { };
@@ -34384,8 +34394,6 @@ with pkgs;
 
   nomacs = libsForQt5.callPackage ../applications/graphics/nomacs { };
 
-  normcap = callPackage ../applications/graphics/normcap { };
-
   notepad-next = libsForQt5.callPackage ../applications/editors/notepad-next { };
 
   notepadqq = libsForQt5.callPackage ../applications/editors/notepadqq { };
@@ -34539,8 +34547,6 @@ with pkgs;
 
   vgmtools = callPackage ../tools/audio/vgmtools { };
 
-  vieb = callPackage ../applications/networking/browsers/vieb { };
-
   vital = callPackage ../applications/audio/vital { };
 
   vivaldi = callPackage ../applications/networking/browsers/vivaldi { };
@@ -35278,9 +35284,7 @@ with pkgs;
 
   simple-scan = gnome.simple-scan;
 
-  sioyek = callPackage ../applications/misc/sioyek {
-    inherit (libsForQt5) qmake qt3d qtbase wrapQtAppsHook;
-  };
+  sioyek = libsForQt5.callPackage ../applications/misc/sioyek { };
 
   siproxd = callPackage ../applications/networking/siproxd { };
 
@@ -36351,9 +36355,7 @@ with pkgs;
 
   vwm = callPackage ../applications/window-managers/vwm { };
 
-  vym = callPackage ../applications/misc/vym {
-    inherit (libsForQt5) qmake qtscript qtsvg qtbase wrapQtAppsHook;
-  };
+  vym = libsForQt5.callPackage ../applications/misc/vym { };
 
   wad = callPackage ../tools/security/wad { };
 
@@ -41714,7 +41716,7 @@ with pkgs;
 
   xrq = callPackage ../applications/misc/xrq { };
 
-  pynitrokey = callPackage ../tools/security/pynitrokey { };
+  pynitrokey = python3Packages.callPackage ../tools/security/pynitrokey { };
 
   nitrokey-app = libsForQt5.callPackage ../tools/security/nitrokey-app { };
 
@@ -42135,4 +42137,6 @@ with pkgs;
   mdhtml = callPackage ../tools/text/mdhtml { };
 
   insulator2 = callPackage ../applications/misc/insulator2 {};
+
+  animdl = python3Packages.callPackage ../applications/video/animdl { };
 }
diff --git a/nixpkgs/pkgs/top-level/hare-third-party.nix b/nixpkgs/pkgs/top-level/hare-third-party.nix
index 524df05659f4..084e749c676c 100644
--- a/nixpkgs/pkgs/top-level/hare-third-party.nix
+++ b/nixpkgs/pkgs/top-level/hare-third-party.nix
@@ -4,4 +4,6 @@ lib.makeScope newScope (self:
 let
   inherit (self) callPackage;
 in
-{ })
+{
+  hare-json = callPackage ../development/hare-packages/hare-json { };
+})
diff --git a/nixpkgs/pkgs/top-level/python-aliases.nix b/nixpkgs/pkgs/top-level/python-aliases.nix
index ccac3710dcd9..39ba30a93b7d 100644
--- a/nixpkgs/pkgs/top-level/python-aliases.nix
+++ b/nixpkgs/pkgs/top-level/python-aliases.nix
@@ -467,11 +467,13 @@ mapAliases ({
   zc_buildout_nix = throw "zc_buildout_nix was pinned to a version no longer compatible with other modules";
   zope_broken = throw "zope_broken has been removed because it is obsolete and not needed in zodb>=3.10"; # added 2023-07-26
   zope_component = zope-component; # added 2023-07-28
+  zope_configuration = zope-configuration; # added 2023-11-12
   zope_contenttype = zope-contenttype; # added 2023-10-11
   zope_deprecation = zope-deprecation; # added 2023-10-07
   zope_dottedname = zope-dottedname; # added 2023-11-12
   zope_i18nmessageid = zope-i18nmessageid; # added 2023-07-29
   zope_lifecycleevent = zope-lifecycleevent; # added 2023-10-11
   zope_proxy = zope-proxy; # added 2023-10-07
+  zope_testing = zope-testing; # added 2023-11-12
   zxing_cpp = zxing-cpp; # added 2023-11-05
 })
diff --git a/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
index 4f319267cecf..ebf97327f53f 100644
--- a/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -516,6 +516,8 @@ self: super: with self; {
 
   amqtt = callPackage ../development/python-modules/amqtt { };
 
+  anchor-kr = callPackage ../development/python-modules/anchor-kr { };
+
   ancp-bids = callPackage ../development/python-modules/ancp-bids { };
 
   android-backup = callPackage ../development/python-modules/android-backup { };
@@ -538,6 +540,8 @@ self: super: with self; {
 
   aniso8601 = callPackage ../development/python-modules/aniso8601 { };
 
+  anitopy = callPackage ../development/python-modules/anitopy { };
+
   annexremote = callPackage ../development/python-modules/annexremote { };
 
   annotated-types = callPackage ../development/python-modules/annotated-types { };
@@ -999,6 +1003,8 @@ self: super: with self; {
 
   axis = callPackage ../development/python-modules/axis { };
 
+  axisregistry = callPackage ../development/python-modules/axisregistry { };
+
   azure-appconfiguration = callPackage ../development/python-modules/azure-appconfiguration { };
 
   azure-applicationinsights = callPackage ../development/python-modules/azure-applicationinsights { };
@@ -1251,6 +1257,8 @@ self: super: with self; {
 
   babelfish = callPackage ../development/python-modules/babelfish { };
 
+  babelfont = callPackage ../development/python-modules/babelfont { };
+
   babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
 
   bambi = callPackage ../development/python-modules/bambi { };
@@ -1420,6 +1428,8 @@ self: super: with self; {
 
   betterproto = callPackage ../development/python-modules/betterproto { };
 
+  beziers = callPackage ../development/python-modules/beziers { };
+
   bibtexparser = callPackage ../development/python-modules/bibtexparser { };
 
   bidict = callPackage ../development/python-modules/bidict { };
@@ -2210,6 +2220,8 @@ self: super: with self; {
 
   collections-extended = callPackage ../development/python-modules/collections-extended { };
 
+  collidoscope = callPackage ../development/python-modules/collidoscope { };
+
   colorama = callPackage ../development/python-modules/colorama { };
 
   colorcet = callPackage ../development/python-modules/colorcet { };
@@ -2244,6 +2256,8 @@ self: super: with self; {
 
   comm = callPackage ../development/python-modules/comm { };
 
+  commandlines = callPackage ../development/python-modules/commandlines { };
+
   commandparse = callPackage ../development/python-modules/commandparse { };
 
   commentjson = callPackage ../development/python-modules/commentjson { };
@@ -2726,6 +2740,8 @@ self: super: with self; {
 
   defusedxml = callPackage ../development/python-modules/defusedxml { };
 
+  dehinter = callPackage ../development/python-modules/dehinter { };
+
   deid = callPackage ../development/python-modules/deid { };
 
   delegator-py = callPackage ../development/python-modules/delegator-py { };
@@ -4165,6 +4181,10 @@ self: super: with self; {
 
   fontawesomefree = callPackage ../development/python-modules/fontawesomefree { };
 
+  fontbakery = callPackage ../development/python-modules/fontbakery { };
+
+  fontfeatures = callPackage ../development/python-modules/fontfeatures { };
+
   fontforge = toPythonModule (pkgs.fontforge.override {
     withPython = true;
     inherit python;
@@ -4180,6 +4200,8 @@ self: super: with self; {
 
   fontmake = callPackage ../development/python-modules/fontmake { };
 
+  font-v = callPackage ../development/python-modules/font-v { };
+
   skia-pathops = callPackage ../development/python-modules/skia-pathops {
     inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL;
   };
@@ -4196,8 +4218,12 @@ self: super: with self; {
 
   openstep-plist = callPackage ../development/python-modules/openstep-plist { };
 
+  glyphsets = callPackage ../development/python-modules/glyphsets { };
+
   glyphslib = callPackage ../development/python-modules/glyphslib { };
 
+  glyphtools = callPackage ../development/python-modules/glyphtools { };
+
   foobot-async = callPackage ../development/python-modules/foobot-async { };
 
   foolscap = callPackage ../development/python-modules/foolscap { };
@@ -4463,6 +4489,8 @@ self: super: with self; {
 
   gflags = callPackage ../development/python-modules/gflags { };
 
+  gflanguages = callPackage ../development/python-modules/gflanguages { };
+
   ghapi = callPackage ../development/python-modules/ghapi { };
 
   ghdiff = callPackage ../development/python-modules/ghdiff { };
@@ -5122,6 +5150,8 @@ self: super: with self; {
 
   hstspreload = callPackage ../development/python-modules/hstspreload { };
 
+  html2image = callPackage ../development/python-modules/html2image { };
+
   html2text = callPackage ../development/python-modules/html2text { };
 
   html5lib = callPackage ../development/python-modules/html5lib { };
@@ -6046,6 +6076,8 @@ self: super: with self; {
 
   kubernetes = callPackage ../development/python-modules/kubernetes { };
 
+  kurbopy = callPackage ../development/python-modules/kurbopy { };
+
   l18n = callPackage ../development/python-modules/l18n { };
 
   labelbox = callPackage ../development/python-modules/labelbox { };
@@ -7210,6 +7242,10 @@ self: super: with self; {
 
   mutf8 = callPackage ../development/python-modules/mutf8 { };
 
+  mujoco = callPackage ../development/python-modules/mujoco {
+    inherit (pkgs) mujoco;
+  };
+
   mujson = callPackage ../development/python-modules/mujson { };
 
   mwcli = callPackage ../development/python-modules/mwcli { };
@@ -8108,6 +8144,8 @@ self: super: with self; {
 
   netdisco = callPackage ../development/python-modules/netdisco { };
 
+  nethsm = callPackage ../development/python-modules/nethsm { };
+
   netifaces = callPackage ../development/python-modules/netifaces { };
 
   netmiko = callPackage ../development/python-modules/netmiko { };
@@ -8617,6 +8655,8 @@ self: super: with self; {
 
   opentsne = callPackage ../development/python-modules/opentsne { };
 
+  opentypespec = callPackage ../development/python-modules/opentypespec { };
+
   openvino = callPackage ../development/python-modules/openvino {
     openvino-native = pkgs.openvino.override {
       inherit python;
@@ -8713,6 +8753,8 @@ self: super: with self; {
 
   ossfs = callPackage ../development/python-modules/ossfs { };
 
+  ots-python = callPackage ../development/python-modules/ots-python { };
+
   outcome = callPackage ../development/python-modules/outcome { };
 
   ovh = callPackage ../development/python-modules/ovh { };
@@ -11750,6 +11792,8 @@ self: super: with self; {
 
   pytimeparse2 = callPackage ../development/python-modules/pytimeparse2 { };
 
+  pytikz-allefeld = callPackage ../development/python-modules/pytikz-allefeld { };
+
   pytm = callPackage ../development/python-modules/pytm { };
 
   pytmx = callPackage ../development/python-modules/pytmx { };
@@ -12527,6 +12571,8 @@ self: super: with self; {
 
   rstcheck-core = callPackage ../development/python-modules/rstcheck-core { };
 
+  rstr = callPackage ../development/python-modules/rstr { };
+
   rtmidi-python = callPackage ../development/python-modules/rtmidi-python {
     inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices;
   };
@@ -12885,6 +12931,8 @@ self: super: with self; {
 
   shapely = callPackage ../development/python-modules/shapely { };
 
+  shaperglot = callPackage ../development/python-modules/shaperglot { };
+
   sharedmem = callPackage ../development/python-modules/sharedmem { };
 
   sharkiq = callPackage ../development/python-modules/sharkiq { };
@@ -13471,6 +13519,8 @@ self: super: with self; {
 
   squarify = callPackage ../development/python-modules/squarify { };
 
+  sre-yield = callPackage ../development/python-modules/sre-yield { };
+
   srp = callPackage ../development/python-modules/srp { };
 
   srpenergy = callPackage ../development/python-modules/srpenergy { };
@@ -13591,6 +13641,8 @@ self: super: with self; {
 
   strictyaml = callPackage ../development/python-modules/strictyaml { };
 
+  stringbrewer = callPackage ../development/python-modules/stringbrewer { };
+
   stringcase = callPackage ../development/python-modules/stringcase { };
 
   stringly = callPackage ../development/python-modules/stringly { };
@@ -15281,6 +15333,8 @@ self: super: with self; {
 
   ufoLib2 = callPackage ../development/python-modules/ufoLib2 { };
 
+  ufolint = callPackage ../development/python-modules/ufolint { };
+
   ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
 
   ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
@@ -15529,6 +15583,8 @@ self: super: with self; {
 
   vg = callPackage ../development/python-modules/vg { };
 
+  vharfbuzz = callPackage ../development/python-modules/vharfbuzz { };
+
   videocr = callPackage ../development/python-modules/videocr { };
 
   vidstab = callPackage ../development/python-modules/vidstab { };
@@ -15585,6 +15641,8 @@ self: super: with self; {
 
   vpk = callPackage ../development/python-modules/vpk { };
 
+  vprof = callPackage ../development/python-modules/vprof { };
+
   vqgan-jax = callPackage ../development/python-modules/vqgan-jax { };
 
   vsts = callPackage ../development/python-modules/vsts { };
@@ -16055,8 +16113,14 @@ self: super: with self; {
 
   yolink-api = callPackage ../development/python-modules/yolink-api { };
 
+  yosys = toPythonModule (pkgs.yosys.override {
+    python3 = python;
+  });
+
   youless-api = callPackage ../development/python-modules/youless-api { };
 
+  youseedee = callPackage ../development/python-modules/youseedee { };
+
   youtube-dl = callPackage ../tools/misc/youtube-dl { };
 
   youtube-dl-light = callPackage ../tools/misc/youtube-dl {
@@ -16187,7 +16251,7 @@ self: super: with self; {
 
   zope-component = callPackage ../development/python-modules/zope-component { };
 
-  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
+  zope-configuration = callPackage ../development/python-modules/zope-configuration { };
 
   zope-contenttype = callPackage ../development/python-modules/zope-contenttype { };
 
@@ -16223,7 +16287,7 @@ self: super: with self; {
 
   zope-testbrowser = callPackage ../development/python-modules/zope-testbrowser { };
 
-  zope_testing = callPackage ../development/python-modules/zope_testing { };
+  zope-testing = callPackage ../development/python-modules/zope-testing { };
 
   zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
 
diff --git a/nixpkgs/pkgs/top-level/qt5-packages.nix b/nixpkgs/pkgs/top-level/qt5-packages.nix
index b1fb263e0bb8..2a068d5afd71 100644
--- a/nixpkgs/pkgs/top-level/qt5-packages.nix
+++ b/nixpkgs/pkgs/top-level/qt5-packages.nix
@@ -80,6 +80,8 @@ in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdP
 
   ### LIBRARIES
 
+  accounts-qml-module = callPackage ../development/libraries/accounts-qml-module { };
+
   accounts-qt = callPackage ../development/libraries/accounts-qt { };
 
   alkimia = callPackage ../development/libraries/alkimia { };
@@ -246,6 +248,8 @@ in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdP
 
   qxlsx = callPackage ../development/libraries/qxlsx { };
 
+  qzxing = callPackage ../development/libraries/qzxing { };
+
   soqt = callPackage ../development/libraries/soqt { };
 
   telepathy = callPackage ../development/libraries/telepathy/qt { };
diff --git a/nixpkgs/pkgs/top-level/qt6-packages.nix b/nixpkgs/pkgs/top-level/qt6-packages.nix
index 1cd1b731c469..1b6e1ce4c1c7 100644
--- a/nixpkgs/pkgs/top-level/qt6-packages.nix
+++ b/nixpkgs/pkgs/top-level/qt6-packages.nix
@@ -50,6 +50,8 @@ makeScopeWithSplicing' {
 
   qxlsx = callPackage ../development/libraries/qxlsx { };
 
+  qzxing = callPackage ../development/libraries/qzxing { };
+
   poppler = callPackage ../development/libraries/poppler {
     lcms = pkgs.lcms2;
     qt6Support = true;
diff --git a/nixpkgs/pkgs/top-level/ruby-packages.nix b/nixpkgs/pkgs/top-level/ruby-packages.nix
index 58b673e50dbc..54e70b1936de 100644
--- a/nixpkgs/pkgs/top-level/ruby-packages.nix
+++ b/nixpkgs/pkgs/top-level/ruby-packages.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04byz5614vjb7mzzn8l4ff121m7d7jnr0wa8fl47i3ax8a4hrmrb";
+      sha256 = "05kl5kjvd5218nq9j6yfs3mw3bm21hdjixj6x3f5nzpmbg7inz4y";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kf2zd0m9p8im4f8176qywgacbi33ri517v52qr2qd8gk731knx2";
+      sha256 = "0lbxllvna81clk9957dd3346aw53gp8kgw23qccca96szhhmcy5p";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
@@ -27,21 +27,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0abw1z8a1rpdkd3mwjsm0x207hvy0kqrp7d23rldvwk9ff5p9g5c";
+      sha256 = "07kfdadci4i9fpkvmxcpjr192ah5hi91rax47h9yabp29wpgzv73";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   actionpack = {
-    dependencies = ["actionview" "activesupport" "nokogiri" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    dependencies = ["actionview" "activesupport" "nokogiri" "racc" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hdcq6d55vs5cdj1rgr13vn10mfwdkphsahiiz4i2j9f3wz8rp7g";
+      sha256 = "0qqs6hl42dy7c1hmnpxkzdk6qk22fgyjpr2ibi4yd9rlf58vm8pa";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q6c3jpr8av62bgb1pc8f7xh11kwd41dysi0aychx260glw80llp";
+      sha256 = "0d4f693b9jjwa0r39bhpci5i734cq102ibmig5pzxcsqadcl4bds";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6k5d7agz4svnvycdharcffkd5zwrwrl8cmyqn9lrral3lhkiy2";
+      sha256 = "1jxk32mapfhla3a5wnixcfk38ndw2r4lqfsv13hmckn91wvc8h7m";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02sawsi5r7pwvg0kmx9i2l9n69nqs406wsxlypbh8cpj8h0aawlk";
+      sha256 = "188kaggslza03lgrgdz9m1vvcbmrj91nrmvnl5fl7c4vz8kpp1np";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01jrk2i6vp8jcll65d03mqmp1ibxa0ip7bdg5157fkm5syblzsqw";
+      sha256 = "1gvf1acnkisars8wci88cz8fns27r2ssbqk2lsp9r2a7rlhqgmrl";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport" "timeout"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lpcbgqbrb3yfk3i66mnxa5i36r0ig9dwzksjbm15i30rndr27p5";
+      sha256 = "0d1bz6qq3982dbbdid4zn37rzrszvhxvb42vh4jfkr2fnzg0awvy";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   activestorage = {
     dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g4ic06i3lkinziq6amhczdw0swq54cglb35by2lmfm8g5wkn0cb";
+      sha256 = "1knrpj89n0r7jynxasqv4mi650l5710rjnh4masfv170pnlzkc22";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   activesupport = {
     dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
@@ -115,10 +115,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xpwx7hw7mgmjk3w3g8bkz5jfapixhgn3ihly0xkpyvgp1shp8h1";
+      sha256 = "1l6hmf99zgckpn812qfxfz60rbh0zixv1hxnxhjlg8942pvixn2v";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -218,20 +218,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c";
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.2.0";
   };
   benchmark = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "017jh2lx3z5hqjvnqclc5bfr5q0d3zk0nqjfz73909ybr4h20kmi";
+      sha256 = "0wghmhwjzv4r9mdcny4xfz2h2cm7ci24md79rvy2x65r4i99k9sc";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.3.0";
   };
   bigdecimal = {
     groups = ["default"];
@@ -373,10 +373,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mwcdg1i4126jf2qcsp4mhd1vqzqd8ck08wpyassz1sg0a8yxw4j";
+      sha256 = "1r2w719d5zfzl3wnc5npnjv4194b7gdh4vib09vifdm8yab14br3";
       type = "gem";
     };
-    version = "1.13.0";
+    version = "1.14.3";
   };
   cocoapods-acknowledgements = {
     dependencies = ["cocoapods" "redcarpet" "xcodeproj"];
@@ -436,10 +436,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g944vch2mllh8lijbfgl0c2kn9gi5vsg9y9v67x0qca5b1bx4id";
+      sha256 = "04qyzcwkwbm7l4kjp6m8g2pvsryfvsllwpqf0mxfnzwbdid40zwn";
       type = "gem";
     };
-    version = "1.13.0";
+    version = "1.14.3";
   };
   cocoapods-coverage = {
     dependencies = ["cocoapods-testing" "slather"];
@@ -498,10 +498,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jgipkiah3z6qb9ax6qac3b2m1idavd5adc319k5rjsfddpfgszh";
+      sha256 = "1ldnwwsx44i2xsdmsmyz9xrar19lfy5s5xslvral1p3674dvwvmv";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "2.1";
   };
   cocoapods-expert-difficulty = {
     groups = ["default"];
@@ -807,10 +807,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1";
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.3.4";
   };
   dentaku = {
     dependencies = ["concurrent-ruby"];
@@ -859,10 +859,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "021a7f9lmvz5d3g4zdzm99xal9w3z6wzv2wyrp3jr929nnlf7hdd";
+      sha256 = "1a5k4wj0ic2z1zrxyvhj1r1pv51qy0nslgbjf3rxkd720s00v29b";
       type = "gem";
     };
-    version = "7.6.0";
+    version = "7.7.0";
   };
   dnsruby = {
     dependencies = ["simpleidn"];
@@ -897,15 +897,14 @@
     version = "1.4.0";
   };
   domain_name = {
-    dependencies = ["unf"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+      sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
       type = "gem";
     };
-    version = "0.5.20190701";
+    version = "0.6.20231109";
   };
   dotenv = {
     groups = ["default"];
@@ -923,10 +922,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h9c2qiam82y3caapa2x157j1lkk9954hrjg3p22hxcsk8fli3vb";
+      sha256 = "03ylflxbp9jrs1hx3d4wvx05yb9hdq4a0r706zz6qc6kvqfazr79";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   e2mmap = {
     groups = ["default"];
@@ -1017,10 +1016,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "104vrqqy6bszbhpvabgz9ra7dm6lnb5jwzwqm2fks0ka44spknyl";
+      sha256 = "138gi8b95nqv8m83dynpsszz11a6c5si1pym6y0b6bfb01r33pyi";
       type = "gem";
     };
-    version = "0.104.0";
+    version = "0.105.0";
   };
   execjs = {
     groups = ["default"];
@@ -1038,10 +1037,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vn7jwss2v6jhnxvjsiwbs3irjwhbx9zxn4l6fhd4rkcfyxzdnw5";
+      sha256 = "19w1lzipnxs6vy3y0pw1mf956f768ppzgfrnlpwgrpnjjv9xqf7d";
       type = "gem";
     };
-    version = "2.7.11";
+    version = "2.7.12";
   };
   faraday-net_http = {
     groups = ["default"];
@@ -1090,10 +1089,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s2zib38yr3fn4ggpis9sjar12q3ypgy607ndjyhhnjwslxcfjdy";
+      sha256 = "0x504023g56y32r81l6i4pqbhn46szzy6s5bcdlc7kb5iv1iigar";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.1.2";
   };
   fog-core = {
     dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -1521,10 +1520,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17p6arsklbzh2hvwwr8i4cfrpa7vhk8q88fhickhwmn7m80lxdw7";
+      sha256 = "0appka5sbafafn4f8d285skxw3qkhbap28vn9ms0pf7pbp7s2449";
       type = "gem";
     };
-    version = "1.8.1";
+    version = "1.9.1";
   };
   jaro_winkler = {
     groups = ["default"];
@@ -2011,20 +2010,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+      sha256 = "0wi7g6c8q0v1kahwp38mv8d526p1n2ddsr79ajx84idvih0c601i";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "2.7.0";
   };
   json_pure = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kn736pb52j8b9xxq6l8wqp2chs74aa14vfnp0rijjn086m8b4f3";
+      sha256 = "0ilnxmppz9dcwp61dbciv6nk4qsggc6l20gsxdb1flffik6q90z9";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "2.7.0";
   };
   jsonpath = {
     dependencies = ["multi_json"];
@@ -2116,10 +2115,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0aarly8kl587d100n81cphks5vp2rnkm8dnf69p0dr7k78dasas3";
+      sha256 = "1s5v614c1kg5z4hqrmza5fr7qfpqvqirc51624wwsq9vismdisnv";
       type = "gem";
     };
-    version = "4.1.1";
+    version = "4.1.2";
   };
   link-header-parser = {
     groups = ["default"];
@@ -2169,10 +2168,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3";
+      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
       type = "gem";
     };
-    version = "2.21.3";
+    version = "2.22.0";
   };
   mab = {
     groups = ["default"];
@@ -2303,10 +2302,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq";
+      sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.5";
   };
   minima = {
     dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"];
@@ -2375,10 +2374,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pkxnp7p44kvs460bbbgjarr7xy1j8kjjmhwkg1kypj9wgmwb6qa";
+      sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "0.2.0";
   };
   mysql2 = {
     groups = ["default"];
@@ -2436,10 +2435,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "129h6qs08iyl976zzs96pqbigd82rz89jn3fd71xi0s82q7sl0h0";
+      sha256 = "0541lfqaz46h8s3fks11vsd1iqzmgjjw3c0jp9agg92zblwj0axs";
       type = "gem";
     };
-    version = "0.4.0";
+    version = "0.4.7";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -2458,10 +2457,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91";
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.2";
   };
   net-scp = {
     dependencies = ["net-ssh"];
@@ -2510,10 +2509,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f";
+      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
       type = "gem";
     };
-    version = "2.5.9";
+    version = "2.7.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -2521,10 +2520,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9w2z0953mnjrsji74cshqqp08q7m1r6zhadw1w0g34xzjh3a74";
+      sha256 = "004ip9x9281fxhpipwi8di1sb1dnabscq9dy1p3cxgdwbniqqi12";
       type = "gem";
     };
-    version = "1.15.4";
+    version = "1.15.5";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -2607,10 +2606,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rqjqv5gk89xdyva8i6lak5hsd97mcrsk4l6bdg94ig98ac55as5";
+      sha256 = "04gq05mgy3v8gac0dk8ldr59865vbjhkzna51w8wh900512lakyq";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.1.2";
   };
   pango = {
     dependencies = ["cairo-gobject" "gobject-introspection"];
@@ -2649,10 +2648,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07jn3rndwfrqlziknhrqlvn523xb5kirnpbcmb4h4hw5npf67nii";
+      sha256 = "10jiv4c28bdvp4r98s042ilzks8wx36qw5a4byragwa1fzwy87va";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.2.0";
   };
   pastel = {
     dependencies = ["tty-color"];
@@ -2711,10 +2710,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "184c3fb62qafc4wpar63w1ig5g7qh22a632slzrpq37zjjwpszqd";
+      sha256 = "04wi7n51w42v9s958gfmxwkg5iikq25whacyflpi307517ymlaya";
       type = "gem";
     };
-    version = "1.5.5";
+    version = "1.5.6";
   };
   polyglot = {
     groups = ["default"];
@@ -2732,10 +2731,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y7p5712grf8sd4kmk9i62qs9mak2fd8685i78qv95wdz3g2csaa";
+      sha256 = "1hzd04pzq97rjb1a148gm0wgfb2nr89axbd16d2h6kp666fg4i00";
       type = "gem";
     };
-    version = "4.0.2";
+    version = "4.0.3";
   };
   prettier_print = {
     groups = ["default"];
@@ -2747,6 +2746,16 @@
     };
     version = "1.2.1";
   };
+  prism = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "172qxf1zyrhxzwbn4c7gz12zdyb1jkdqrqvb2c7863lmxp53rrxs";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
   pry = {
     dependencies = ["coderay" "method_source"];
     groups = ["default"];
@@ -2786,10 +2795,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1msambb54r3d1sg6smyj4k2pj9h9lz8jq4jamip7ivcyv32a85vz";
+      sha256 = "0wjzrkssjfjpynij5dpycyflhqbjvi1gc2j73xgq3b196s1d3c24";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "5.1.1.1";
   };
   public_suffix = {
     groups = ["default"];
@@ -2828,10 +2837,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.3";
   };
   rack = {
     groups = ["default"];
@@ -2893,10 +2902,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bzzryklzna9lsmf34sj52x1wvb81wxwaiwa95hblan11wng43jk";
+      sha256 = "1sryvf34ggxx088djc5c358m0h95i9qjhbgwl0zysmi3y0sw79g0";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "minitest" "nokogiri"];
@@ -2926,10 +2935,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iyjy761sfk238by4br38j5a24bwvfhsr3wjm5yqf4gjw1srr7rx";
+      sha256 = "0n0qb1qnzicbmkj4j5fb27c6hhm5i0qss0vir3kaynh6zz24sfgh";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.1.2";
   };
   rainbow = {
     groups = ["default"];
@@ -2946,10 +2955,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.1.0";
   };
   rb-fsevent = {
     groups = ["default"];
@@ -3019,10 +3028,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05r2cxscapr9saqjw8dlp89as7jvc2mlz1h5kssrmkbz105qmfcm";
+      sha256 = "1pnkgnk2vli1y8bbc25qbgv6z2al44dlgcm2mx3ssm34j7xz7gqh";
       type = "gem";
     };
-    version = "6.5.0";
+    version = "6.6.0";
   };
   re2 = {
     dependencies = ["mini_portile2"];
@@ -3030,10 +3039,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13xfrx1wwq7n2qsw449fq8h611n05v400i9dz9k6pdia019hp8q3";
+      sha256 = "0bbh1lddqffsck99ivynjyf9n39s9as6cn9dn17xsx9vid5ysf2b";
       type = "gem";
     };
-    version = "2.1.3";
+    version = "2.4.3";
   };
   red-colors = {
     dependencies = ["matrix"];
@@ -3062,10 +3071,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00qqqzgh7f0f2j6rkbm5v7976mg8ik4sapk2vnb3rq98m8xc1wfw";
+      sha256 = "1n7k4sgx5vzsigp8c15flz4fclqy4j2a33vim7b2c2w5jyjhwxrv";
       type = "gem";
     };
-    version = "5.0.7";
+    version = "5.0.8";
   };
   redis-client = {
     dependencies = ["connection_pool"];
@@ -3073,10 +3082,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n3nl3znncrnv2gi4byqhc79jvv50b0vkf7ci7w6a90qn9fvwxxm";
+      sha256 = "013p2968vqrr282yvxp3pyy5vn0nrgdppzqywbwbfjq2kkwx2fx9";
       type = "gem";
     };
-    version = "0.17.0";
+    version = "0.18.0";
   };
   redis-rack = {
     dependencies = ["rack" "redis-store"];
@@ -3105,10 +3114,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3";
+      sha256 = "1d9a5s3qrjdy50ll2s32gg3qmf10ryp3v2nr5k718kvfadp50ray";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.8.2";
   };
   reline = {
     dependencies = ["io-console"];
@@ -3116,10 +3125,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0187pj9k7d8kdvzjk6r6mf7z7wy18saxxhn7x7pqc840w6h4s0ja";
+      sha256 = "1hi6zfj6zqzxcbamhjm9w9cswv62f76l8gsdfcnmhpw35cyxphh8";
       type = "gem";
     };
-    version = "0.3.9";
+    version = "0.4.1";
   };
   rest-client = {
     dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
@@ -3239,15 +3248,15 @@
     version = "3.12.1";
   };
   rubocop = {
-    dependencies = ["base64" "json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wgnf17sq22f4f79r44hxbd1w0ivvl89mbjshpzqzd4zk199y8wq";
+      sha256 = "06qnp5zs233j4f59yyqrg8al6hr9n4a7vcdg3p31v0np8bz9srwg";
       type = "gem";
     };
-    version = "1.56.4";
+    version = "1.57.2";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -3255,10 +3264,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni";
+      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.30.0";
   };
   rubocop-performance = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -3304,15 +3313,15 @@
     version = "0.8.0";
   };
   ruby-lsp = {
-    dependencies = ["language_server-protocol" "sorbet-runtime" "yarp"];
+    dependencies = ["language_server-protocol" "prism" "sorbet-runtime"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0drw0zbymw9bb2jln5arqk8vw1w0h68bk8h87ppws72695z5r6vb";
+      sha256 = "13snp4q09vv3g7nskaza9xm50shxrdc2xxdyz6gp4vgzbvp4ihc0";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.13.0";
   };
   ruby-lxc = {
     groups = ["default"];
@@ -3360,10 +3369,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19pzpx406rr9s3qk527rn9y3b76sjq5pi7y0xzqiy50q3k0hhg7g";
+      sha256 = "16vkhdb9ss8z4alg46n675n4z1115g8akyg44nzkp8vpxksgrr1v";
       type = "gem";
     };
-    version = "2.1.4";
+    version = "2.2.0";
   };
   ruby2_keywords = {
     groups = ["default"];
@@ -3498,10 +3507,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n6hiim82lfydzv71lgzmkyacsbm3q5nw7ixavprci5wrl9zwls7";
+      sha256 = "0p5i06vygm601822vydxniad2rhxg6xkl97r9f6pgk6pnz7spq38";
       type = "gem";
     };
-    version = "0.19.1";
+    version = "0.20.1";
   };
   sequel = {
     dependencies = ["bigdecimal"];
@@ -3509,10 +3518,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xxdnal3qh53kvp72ykf6jbcv7m69bjg61h59awp3xbzmdqli7q5";
+      sha256 = "0zj66n0m1la1anxjjdb8a35frzabym112rf9ssyxq42mq05ln4m2";
       type = "gem";
     };
-    version = "5.73.0";
+    version = "5.74.0";
   };
   sequel_pg = {
     dependencies = ["pg" "sequel"];
@@ -3594,10 +3603,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zw9iqvg6a0cri1v1pwymsxw5cjic4vcmi0ziss123d3g175fi3w";
+      sha256 = "19jqdnqc9vxgag3hkmh7zawsjmm5s9hg4gjqz89pc5fmljxp1w97";
       type = "gem";
     };
-    version = "2.7.5";
+    version = "2.8.0";
   };
   slop = {
     groups = ["default"];
@@ -3645,10 +3654,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12jxz8xwy1mr4yfrdfs2zhf3pigli8bk0pdc5lnf82vdk8vadpmy";
+      sha256 = "18280l1wgdmr9xhr4mzxr4ycskwbgjzd91vmdzx0dlp6xp2dydnb";
       type = "gem";
     };
-    version = "0.5.11064";
+    version = "0.5.11144";
   };
   sqlite3 = {
     dependencies = ["mini_portile2"];
@@ -3656,20 +3665,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15415lmz69jbzl6nch4q5l2jxv054676nk6y0vgy0g3iklmjrxvc";
+      sha256 = "08irz5llz31im8pmkk5k0kw433jyyji1qa98xkdmpphncdjr38am";
       type = "gem";
     };
-    version = "1.6.6";
+    version = "1.6.9";
   };
   stringio = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ix96dxbjqlpymdigb4diwrifr0bq7qhsrng95fkkp18av326nqk";
+      sha256 = "063psvsn1aq6digpznxfranhcpmi0sdv2jhra5g0459sw0x2dxn1";
       type = "gem";
     };
-    version = "3.0.8";
+    version = "3.1.0";
   };
   syntax_tree = {
     dependencies = ["prettier_print"];
@@ -3739,10 +3748,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
+      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.3.0";
   };
   thrift = {
     groups = ["default"];
@@ -3769,10 +3778,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d9cvm0f4zdpwa795v3zv4973y5zk59j7s1x3yn90jjrhcz1yvfd";
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
       type = "gem";
     };
-    version = "0.4.0";
+    version = "0.4.1";
   };
   tiny_tds = {
     groups = ["default"];
@@ -3832,10 +3841,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
+      sha256 = "0z7gamf6s83wy0yqms3bi4srirn3fc0lc7n65lqanidxcj1xn5qw";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.4.1";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -3875,10 +3884,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
+      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
       type = "gem";
     };
-    version = "0.0.8.2";
+    version = "0.0.9.1";
   };
   unicode-display_width = {
     groups = ["default"];
@@ -3947,10 +3956,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mbpija1z2ia0bgqm950z564pk8x8zisjnlxpqhysffczz7hv46z";
+      sha256 = "109v9vgkry317v5vc3b5dwgxpp1if3q9m26mrpl6052m020q05qx";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "5.1.1";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo" "rexml"];
@@ -3983,16 +3992,6 @@
     };
     version = "0.9.34";
   };
-  yarp = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nqmiw4477afgk2n9ily1gvk78hvg7zj24cdah10m8m8va21r9ir";
-      type = "gem";
-    };
-    version = "0.12.0";
-  };
   zeitwerk = {
     groups = ["default"];
     platforms = [];