about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2024-05-14 00:13:38 +0000
committerGitHub <noreply@github.com>2024-05-14 00:13:38 +0000
commit105028cf9ef90cb9f1a58ca30ccd4c534fb72b27 (patch)
tree678523bc7afc9251fc1bc0006eb3d05e8bb68123 /pkgs
parent1c387916b705d0e66e8a02a3958cd8551717218d (diff)
parentf778a3d90720e989fdf21b3d3cfe870cc91f397a (diff)
Merge master into haskell-updates
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/go-musicfox/default.nix6
-rw-r--r--pkgs/applications/audio/squeezelite/default.nix6
-rw-r--r--pkgs/applications/blockchains/bitcoin-knots/default.nix9
-rw-r--r--pkgs/applications/editors/kakoune/default.nix28
-rw-r--r--pkgs/applications/editors/vim/plugins/deprecated.json14
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix666
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix306
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix12
-rw-r--r--pkgs/applications/graphics/cq-editor/default.nix63
-rw-r--r--pkgs/applications/graphics/symbolic-preview/default.nix6
-rw-r--r--pkgs/applications/misc/audio/sox/default.nix2
-rw-r--r--pkgs/applications/misc/blender/darwin.patch67
-rw-r--r--pkgs/applications/misc/blender/default.nix62
-rw-r--r--pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch44
-rw-r--r--pkgs/applications/misc/electrum/ltc.nix20
-rw-r--r--pkgs/applications/misc/gxkb/default.nix18
-rw-r--r--pkgs/applications/misc/kratos/default.nix30
-rw-r--r--pkgs/applications/misc/onagre/Cargo.lock5128
-rw-r--r--pkgs/applications/misc/onagre/default.nix41
-rw-r--r--pkgs/applications/misc/tui-journal/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix77
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.py5
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix2
-rw-r--r--pkgs/applications/networking/cluster/glooctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/krane/Gemfile.lock10
-rw-r--r--pkgs/applications/networking/cluster/krane/gemset.nix16
-rw-r--r--pkgs/applications/networking/cluster/kubevpn/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/nova/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/cinny/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix17
-rw-r--r--pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/twitch-tui/default.nix6
-rw-r--r--pkgs/applications/networking/pyload-ng/default.nix8
-rw-r--r--pkgs/applications/networking/syncplay/default.nix12
-rw-r--r--pkgs/applications/office/gnucash/0005-disable-test-lots.patch11
-rw-r--r--pkgs/applications/office/gnucash/default.nix3
-rw-r--r--pkgs/applications/office/planify/default.nix4
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix1
-rw-r--r--pkgs/applications/radio/chirp/default.nix6
-rw-r--r--pkgs/applications/radio/cloudlog/default.nix4
-rw-r--r--pkgs/applications/science/math/eigenmath/default.nix6
-rw-r--r--pkgs/applications/version-management/git-cola/default.nix4
-rw-r--r--pkgs/applications/video/davinci-resolve/default.nix26
-rw-r--r--pkgs/applications/video/kodi/addons/visualization-projectm/default.nix4
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix6
-rw-r--r--pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix4
-rw-r--r--pkgs/applications/virtualization/podman/default.nix21
-rw-r--r--pkgs/applications/virtualization/podman/hardcode-paths.patch41
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/default.nix2
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-project.nix8
-rw-r--r--pkgs/by-name/ad/adafruit-nrfutil/package.nix6
-rw-r--r--pkgs/by-name/ad/adwsteamgtk/package.nix4
-rw-r--r--pkgs/by-name/al/alacarte/package.nix70
-rw-r--r--pkgs/by-name/au/audio-sharing/package.nix6
-rw-r--r--pkgs/by-name/be/bevelbar/package.nix (renamed from pkgs/tools/X11/bevelbar/default.nix)28
-rw-r--r--pkgs/by-name/bu/buckle/package.nix13
-rw-r--r--pkgs/by-name/ca/cargo-raze/package.nix55
-rw-r--r--pkgs/by-name/ca/cargo-raze/rustc-serialize-fix.patch29
-rw-r--r--pkgs/by-name/ca/catppuccin-sddm-corners/package.nix6
-rw-r--r--pkgs/by-name/ch/chezmoi/package.nix6
-rw-r--r--pkgs/by-name/co/cosmic-edit/Cargo.lock1353
-rw-r--r--pkgs/by-name/co/cosmic-edit/package.nix17
-rw-r--r--pkgs/by-name/co/cosmic-store/Cargo.lock373
-rw-r--r--pkgs/by-name/co/cosmic-store/package.nix12
-rw-r--r--pkgs/by-name/di/dim/package.nix14
-rw-r--r--pkgs/by-name/du/dualsensectl/package.nix (renamed from pkgs/tools/games/dualsensectl/default.nix)37
-rw-r--r--pkgs/by-name/e1/e1s/package.nix26
-rw-r--r--pkgs/by-name/fr/freefilesync/package.nix12
-rw-r--r--pkgs/by-name/gl/glance/package.nix4
-rw-r--r--pkgs/by-name/gl/glasskube/package.nix6
-rw-r--r--pkgs/by-name/gm/gmetronome/package.nix4
-rw-r--r--pkgs/by-name/go/got/package.nix8
-rw-r--r--pkgs/by-name/ht/httpie-desktop/package.nix23
-rw-r--r--pkgs/by-name/hy/hyprland-activewindow/package.nix6
-rw-r--r--pkgs/by-name/ka/katriawm/package.nix35
-rw-r--r--pkgs/by-name/ke/keto/package.nix45
-rw-r--r--pkgs/by-name/ko/kor/package.nix6
-rw-r--r--pkgs/by-name/le/lefthook/package.nix4
-rw-r--r--pkgs/by-name/li/libui-ng/package.nix6
-rw-r--r--pkgs/by-name/ll/llama-cpp/package.nix4
-rw-r--r--pkgs/by-name/lx/lxgw-wenkai-tc/package.nix30
-rw-r--r--pkgs/by-name/ma/mako/package.nix (renamed from pkgs/applications/misc/mako/default.nix)21
-rw-r--r--pkgs/by-name/ma/materialx/package.nix76
-rw-r--r--pkgs/by-name/ma/maxfetch/package.nix39
-rw-r--r--pkgs/by-name/me/megapixels/package.nix4
-rw-r--r--pkgs/by-name/ne/nezha-agent/package.nix4
-rw-r--r--pkgs/by-name/nr/nrfconnect/package.nix5
-rw-r--r--pkgs/by-name/on/onagre/package.nix58
-rw-r--r--pkgs/by-name/op/openpgl/package.nix6
-rw-r--r--pkgs/by-name/pr/protonplus/package.nix4
-rw-r--r--pkgs/by-name/re/renode-dts2repl/package.nix6
-rw-r--r--pkgs/by-name/re/renode-unstable/package.nix4
-rw-r--r--pkgs/by-name/re/renpy/package.nix (renamed from pkgs/development/interpreters/renpy/default.nix)101
-rw-r--r--pkgs/by-name/re/renpy/shutup-erofs-errors.patch (renamed from pkgs/development/interpreters/renpy/shutup-erofs-errors.patch)0
-rw-r--r--pkgs/by-name/re/retrospy/package.nix27
-rw-r--r--pkgs/by-name/rh/rHttp/package.nix27
-rw-r--r--pkgs/by-name/sa/sarasa-gothic/package.nix4
-rw-r--r--pkgs/by-name/sm/smartgithg/package.nix4
-rw-r--r--pkgs/by-name/sp/spicetify-cli/package.nix4
-rw-r--r--pkgs/by-name/ss/sse2neon/package.nix41
-rw-r--r--pkgs/by-name/sw/switch-to-configuration-ng/.gitignore1
-rw-r--r--pkgs/by-name/sw/switch-to-configuration-ng/Cargo.lock527
-rw-r--r--pkgs/by-name/sw/switch-to-configuration-ng/Cargo.toml19
-rw-r--r--pkgs/by-name/sw/switch-to-configuration-ng/build.rs30
-rw-r--r--pkgs/by-name/sw/switch-to-configuration-ng/package.nix36
-rw-r--r--pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs2077
-rw-r--r--pkgs/by-name/tr/treefmt/package.nix (renamed from pkgs/development/tools/treefmt/default.nix)0
-rw-r--r--pkgs/by-name/tr/treefmt2/package.nix33
-rw-r--r--pkgs/by-name/ux/uxplay/package.nix (renamed from pkgs/servers/uxplay/default.nix)29
-rw-r--r--pkgs/by-name/wi/wireguard-vanity-keygen/package.nix6
-rw-r--r--pkgs/by-name/wt/wttrbar/package.nix6
-rw-r--r--pkgs/by-name/xd/xdg-terminal-exec-mkhl/package.nix27
-rw-r--r--pkgs/by-name/yd/ydotool/package.nix (renamed from pkgs/tools/wayland/ydotool/default.nix)38
-rw-r--r--pkgs/data/themes/colloid-gtk-theme/default.nix4
-rw-r--r--pkgs/data/themes/dracula-theme/default.nix6
-rw-r--r--pkgs/development/compilers/erg/default.nix6
-rw-r--r--pkgs/development/compilers/ocaml/5.2.nix7
-rw-r--r--pkgs/development/libraries/cjson/default.nix4
-rw-r--r--pkgs/development/libraries/glib/default.nix5
-rw-r--r--pkgs/development/libraries/libeatmydata/default.nix11
-rw-r--r--pkgs/development/libraries/openimagedenoise/default.nix28
-rw-r--r--pkgs/development/libraries/openvdb/default.nix2
-rw-r--r--pkgs/development/libraries/pinocchio/default.nix33
-rw-r--r--pkgs/development/libraries/science/biology/bicpl/default.nix40
-rw-r--r--pkgs/development/libraries/science/math/openspecfun/default.nix4
-rw-r--r--pkgs/development/libraries/webrtc-audio-processing/0.3.nix2
-rw-r--r--pkgs/development/lua-modules/overrides.nix8
-rw-r--r--pkgs/development/lua-modules/toml.patch37
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.16.nix12
-rw-r--r--pkgs/development/ocaml-modules/odoc-parser/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/odoc/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/pecu/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/unstrctrd/default.nix8
-rw-r--r--pkgs/development/octave-modules/ga/default.nix4
-rw-r--r--pkgs/development/python-modules/aiogram/default.nix4
-rw-r--r--pkgs/development/python-modules/aiounifi/default.nix4
-rw-r--r--pkgs/development/python-modules/androidtvremote2/default.nix35
-rw-r--r--pkgs/development/python-modules/apprise/default.nix8
-rw-r--r--pkgs/development/python-modules/augmax/default.nix20
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/bc-detect-secrets/default.nix4
-rw-r--r--pkgs/development/python-modules/blackjax/default.nix8
-rw-r--r--pkgs/development/python-modules/cadquery/default.nix100
-rw-r--r--pkgs/development/python-modules/coffea/default.nix2
-rw-r--r--pkgs/development/python-modules/cryptacular/default.nix27
-rw-r--r--pkgs/development/python-modules/dask-awkward/default.nix2
-rw-r--r--pkgs/development/python-modules/dask-expr/default.nix2
-rw-r--r--pkgs/development/python-modules/dask-glm/default.nix2
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix42
-rw-r--r--pkgs/development/python-modules/devito/default.nix24
-rw-r--r--pkgs/development/python-modules/dirigera/default.nix4
-rw-r--r--pkgs/development/python-modules/distributed/default.nix8
-rw-r--r--pkgs/development/python-modules/dj-rest-auth/default.nix67
-rw-r--r--pkgs/development/python-modules/dogpile-cache/default.nix4
-rw-r--r--pkgs/development/python-modules/drf-spectacular/default.nix74
-rw-r--r--pkgs/development/python-modules/equinox/default.nix17
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix4
-rw-r--r--pkgs/development/python-modules/flax/default.nix8
-rw-r--r--pkgs/development/python-modules/fontbakery/default.nix4
-rw-r--r--pkgs/development/python-modules/gguf/default.nix33
-rw-r--r--pkgs/development/python-modules/globre/default.nix29
-rw-r--r--pkgs/development/python-modules/griffe/default.nix4
-rw-r--r--pkgs/development/python-modules/hikari/default.nix4
-rw-r--r--pkgs/development/python-modules/jax/default.nix12
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix60
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix40
-rw-r--r--pkgs/development/python-modules/jaxopt/default.nix20
-rw-r--r--pkgs/development/python-modules/keras/default.nix2
-rw-r--r--pkgs/development/python-modules/langchain/default.nix6
-rw-r--r--pkgs/development/python-modules/nanobind/default.nix6
-rw-r--r--pkgs/development/python-modules/objax/default.nix10
-rw-r--r--pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch14
-rw-r--r--pkgs/development/python-modules/openusd/default.nix5
-rw-r--r--pkgs/development/python-modules/opower/default.nix4
-rw-r--r--pkgs/development/python-modules/optree/default.nix60
-rw-r--r--pkgs/development/python-modules/osc-sdk-python/default.nix19
-rw-r--r--pkgs/development/python-modules/pathlib/default.nix27
-rw-r--r--pkgs/development/python-modules/pipdeptree/default.nix6
-rw-r--r--pkgs/development/python-modules/plantuml-markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/proxy-py/default.nix4
-rw-r--r--pkgs/development/python-modules/pxml/default.nix37
-rw-r--r--pkgs/development/python-modules/py-synologydsm-api/default.nix4
-rw-r--r--pkgs/development/python-modules/pyannote-pipeline/default.nix48
-rw-r--r--pkgs/development/python-modules/pycrdt-websocket/default.nix4
-rw-r--r--pkgs/development/python-modules/pyelftools/default.nix12
-rw-r--r--pkgs/development/python-modules/pyexploitdb/default.nix4
-rw-r--r--pkgs/development/python-modules/pygame-sdl2/default.nix55
-rw-r--r--pkgs/development/python-modules/pygsl/default.nix18
-rw-r--r--pkgs/development/python-modules/pykdtree/default.nix5
-rw-r--r--pkgs/development/python-modules/pymilter/default.nix20
-rw-r--r--pkgs/development/python-modules/pynws/default.nix42
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix6
-rw-r--r--pkgs/development/python-modules/pysigma-backend-insightidr/default.nix4
-rw-r--r--pkgs/development/python-modules/pytrydan/default.nix4
-rw-r--r--pkgs/development/python-modules/qtile/default.nix10
-rw-r--r--pkgs/development/python-modules/rarfile/default.nix56
-rw-r--r--pkgs/development/python-modules/scalene/default.nix4
-rw-r--r--pkgs/development/python-modules/slicedimage/default.nix5
-rw-r--r--pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlbag/default.nix7
-rw-r--r--pkgs/development/python-modules/sqlsoup/default.nix23
-rw-r--r--pkgs/development/python-modules/stem/default.nix9
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix8
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix15
-rw-r--r--pkgs/development/python-modules/unittest-xml-reporting/default.nix46
-rw-r--r--pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch24
-rw-r--r--pkgs/development/python-modules/uxsim/default.nix69
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix31
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix6
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/changie/default.nix6
-rw-r--r--pkgs/development/tools/devpi-server/default.nix8
-rw-r--r--pkgs/development/tools/fsautocomplete/default.nix8
-rw-r--r--pkgs/development/tools/fsautocomplete/deps.nix34
-rw-r--r--pkgs/development/tools/language-servers/fortls/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/vscode-langservers-extracted/default.nix6
-rw-r--r--pkgs/development/tools/misc/blackfire/default.nix12
-rw-r--r--pkgs/development/tools/misc/blackfire/php-probe.nix32
-rw-r--r--pkgs/development/tools/mysql-shell/default.nix10
-rw-r--r--pkgs/development/tools/rust/cargo-about/default.nix35
-rw-r--r--pkgs/development/tools/rust/cargo-bisect-rustc/default.nix66
-rw-r--r--pkgs/development/tools/rust/cargo-raze/default.nix48
-rw-r--r--pkgs/games/katago/default.nix6
-rw-r--r--pkgs/games/minecraft-servers/versions.json42
-rw-r--r--pkgs/kde/gear/kdeconnect-kde/default.nix20
-rw-r--r--pkgs/kde/gear/kdeconnect-kde/hardcode-sshfs-path.patch13
-rw-r--r--pkgs/kde/gear/kdeconnect-kde/remove-ssh-dss.patch13
-rw-r--r--pkgs/kde/generated/sources/frameworks.json6
-rw-r--r--pkgs/os-specific/darwin/rectangle/default.nix4
-rw-r--r--pkgs/os-specific/linux/firmware/linux-firmware/source.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json4
-rw-r--r--pkgs/os-specific/linux/mstflint_access/default.nix6
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix7
-rw-r--r--pkgs/servers/home-assistant/custom-components/smartir/default.nix24
-rw-r--r--pkgs/servers/home-assistant/custom-components/xiaomi_gateway3/default.nix20
-rw-r--r--pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix22
-rw-r--r--pkgs/servers/http/nginx/stable.nix4
-rw-r--r--pkgs/servers/jellyfin/default.nix13
-rw-r--r--pkgs/servers/jellyfin/disable-warnings.patch38
-rw-r--r--pkgs/servers/jellyfin/nuget-deps.nix316
-rw-r--r--pkgs/servers/jellyfin/web.nix57
-rw-r--r--pkgs/servers/knxd/default.nix4
-rw-r--r--pkgs/servers/nosql/mongodb/5.0.nix4
-rw-r--r--pkgs/servers/nosql/mongodb/6.0.nix4
-rw-r--r--pkgs/servers/search/weaviate/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix5
-rw-r--r--pkgs/servers/sql/rqlite/default.nix6
-rw-r--r--pkgs/shells/hishtory/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/zsh-fzf-tab/default.nix12
-rw-r--r--pkgs/test/cuda/default.nix1
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix6
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix2
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix64
-rw-r--r--pkgs/tools/admin/lego/default.nix6
-rw-r--r--pkgs/tools/audio/whisper-ctranslate2/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/esphome/default.nix7
-rw-r--r--pkgs/tools/misc/geekbench/6.nix8
-rw-r--r--pkgs/tools/misc/graylog/5.2.nix4
-rw-r--r--pkgs/tools/misc/mstflint/default.nix13
-rw-r--r--pkgs/tools/misc/sqlite3-to-mysql/default.nix4
-rw-r--r--pkgs/tools/misc/ttyplot/default.nix4
-rw-r--r--pkgs/tools/misc/undocker/default.nix33
-rw-r--r--pkgs/tools/misc/wakapi/default.nix6
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/default.nix10
-rw-r--r--pkgs/tools/security/cnquery/default.nix6
-rw-r--r--pkgs/tools/security/pcsclite/default.nix2
-rw-r--r--pkgs/tools/security/qdigidoc/default.nix15
-rw-r--r--pkgs/tools/security/semgrep/common.nix12
-rw-r--r--pkgs/tools/security/sherlock/default.nix13
-rw-r--r--pkgs/tools/security/web-eid-app/default.nix4
-rw-r--r--pkgs/tools/system/throttled/default.nix4
-rw-r--r--pkgs/tools/text/kdiff3/default.nix4
-rw-r--r--pkgs/tools/text/mdbook-open-on-gh/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-tex-env.nix18
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-tex-env.sh50
-rw-r--r--pkgs/tools/wayland/mpvpaper/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix32
-rw-r--r--pkgs/top-level/linux-kernels.nix12
-rw-r--r--pkgs/top-level/ocaml-packages.nix2
-rw-r--r--pkgs/top-level/python-aliases.nix6
-rw-r--r--pkgs/top-level/python-packages.nix25
290 files changed, 6686 insertions, 8741 deletions
diff --git a/pkgs/applications/audio/go-musicfox/default.nix b/pkgs/applications/audio/go-musicfox/default.nix
index 944b2aa1aef13..4a51ab0503141 100644
--- a/pkgs/applications/audio/go-musicfox/default.nix
+++ b/pkgs/applications/audio/go-musicfox/default.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "go-musicfox";
-  version = "4.3.3";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "go-musicfox";
     repo = "go-musicfox";
     rev = "v${version}";
-    hash = "sha256-J6R3T92cHFUkKwc+GKm612tVjglP2Tc/kDUmzUMhvio=";
+    hash = "sha256-11N3dykuEDKAryieNVaPfb3G7E/a4A7Znx9rBvFTHC4=";
   };
 
   deleteVendor = true;
 
-  vendorHash = "sha256-KSIdBEEvYaYcDIDmzfRO857I8FSN4Ajw6phAPQLYEqg=";
+  vendorHash = "sha256-ey78zeCSEuRgteG5ZRb4uO88E6lwEgqSxKfjJg3NGT4=";
 
   subPackages = [ "cmd/musicfox.go" ];
 
diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/applications/audio/squeezelite/default.nix
index deaec9e16d7cc..92f6932fb3751 100644
--- a/pkgs/applications/audio/squeezelite/default.nix
+++ b/pkgs/applications/audio/squeezelite/default.nix
@@ -45,13 +45,13 @@ stdenv.mkDerivation {
   pname = binName;
   # versions are specified in `squeezelite.h`
   # see https://github.com/ralph-irving/squeezelite/issues/29
-  version = "2.0.0.1486";
+  version = "2.0.0.1488";
 
   src = fetchFromGitHub {
     owner = "ralph-irving";
     repo = "squeezelite";
-    rev = "fd4a82e7d0e53124d9618320f3c115d90654509d";
-    hash = "sha256-nR2Px7VYjAktUsueEyBAV2392+/dX6JYIy7YSMh05c0=";
+    rev = "0e85ddfd79337cdc30b7d29922b1d790600bb6b4";
+    hash = "sha256-FGqo/c74JN000w/iRnvYUejqnYGDzHNZu9pEmR7yR3s=";
   };
 
   buildInputs = [ flac libmad libvorbis mpg123 ]
diff --git a/pkgs/applications/blockchains/bitcoin-knots/default.nix b/pkgs/applications/blockchains/bitcoin-knots/default.nix
index ace8329bb876b..181c14ecd7a93 100644
--- a/pkgs/applications/blockchains/bitcoin-knots/default.nix
+++ b/pkgs/applications/blockchains/bitcoin-knots/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = if withGui then "bitcoin-knots" else "bitcoind-knots";
-  version = "25.1.knots20231115";
+  version = "26.1.knots20240325";
 
   src = fetchurl {
-    url = "https://bitcoinknots.org/files/25.x/${version}/bitcoin-${version}.tar.gz";
-    sha256 = "b6251beee95cf6701c6ebc443b47fb0e99884880f2661397f964a8828add4002";
+    url = "https://bitcoinknots.org/files/26.x/${version}/bitcoin-${version}.tar.gz";
+    hash = "sha256-PqpePDna2gpCzF2K43N4h6cV5Y9w/e5ZcUvaNEaFaIk=";
   };
 
   nativeBuildInputs =
@@ -40,7 +40,8 @@ stdenv.mkDerivation rec {
     ++ lib.optionals withGui [ wrapQtAppsHook ];
 
   buildInputs = [ boost libevent miniupnpc zeromq zlib ]
-    ++ lib.optionals withWallet [ db48 sqlite ]
+    ++ lib.optionals withWallet [ sqlite ]
+    ++ lib.optionals (withWallet && !stdenv.isDarwin) [ db48 ]
     ++ lib.optionals withGui [ qrencode qtbase qttools ];
 
   configureFlags = [
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index fa0e485d71287..9a3522c5a5311 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -1,30 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "kakoune-unwrapped";
-  version = "2023.08.05";
+  version = "2024.05.09";
   src = fetchFromGitHub {
     repo = "kakoune";
     owner = "mawww";
-    rev = "v${version}";
-    sha256 = "sha256-RR3kw39vEjsg+6cIY6cK2i3ecGHlr1yzuBKaDtGlOGo=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Dfp33zk9ZUMrCZRfPNfoSX6rgQKItvOQx+CuRNQgtTA=";
   };
-  patches = [
-    # Use explicit target types for gather calls to bypass clang regression
-    #
-    # Since clang-16 there has been a regression in the P0522R0 support.
-    # (Bug report at https://github.com/llvm/llvm-project/issue/63281)
-    #
-    # Closes mawww/kakoune#4892
-    (fetchpatch {
-      url = "https://github.com/mawww/kakoune/commit/7577fa1b668ea81eb9b7b9af690a4161187129dd.patch";
-      hash = "sha256-M0jKaEDhkpvX+n7k8Jf2lWaRNy8bqZ1kRHR4eG4npss=";
-    })
-  ];
   makeFlags = [ "debug=no" "PREFIX=${placeholder "out"}" ];
 
-  preConfigure = ''
-    export version="v${version}"
+  postPatch = ''
+    echo "v${finalAttrs.version}" >.version
   '';
 
   enableParallelBuilding = true;
@@ -51,4 +39,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ vrthra ];
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/applications/editors/vim/plugins/deprecated.json b/pkgs/applications/editors/vim/plugins/deprecated.json
index c2c2ca8a56ffc..3fb71c316c45a 100644
--- a/pkgs/applications/editors/vim/plugins/deprecated.json
+++ b/pkgs/applications/editors/vim/plugins/deprecated.json
@@ -7,6 +7,14 @@
         "date": "2021-12-21",
         "new": "cmp-tmux"
     },
+    "fern-vim": {
+        "date": "2024-05-12",
+        "new": "vim-fern"
+    },
+    "gina-vim": {
+        "date": "2024-05-12",
+        "new": "vim-gina"
+    },
     "gist-vim": {
         "date": "2020-03-27",
         "new": "vim-gist"
@@ -47,8 +55,12 @@
         "date": "2021-09-03",
         "new": "sqlite-lua"
     },
+    "suda-vim": {
+        "date": "2024-05-12",
+        "new": "vim-suda"
+    },
     "vim-fsharp": {
-        "date": "2024-05-06",
+        "date": "2024-05-12",
         "new": "zarchive-vim-fsharp"
     },
     "vim-jade": {
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index 5bd533dd11fcc..1f59cc3e35411 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -65,12 +65,12 @@ final: prev:
 
   Coqtail = buildVimPlugin {
     pname = "Coqtail";
-    version = "2024-04-19";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "c74271e68dfc9e125e6ae197879eb50c7b34512d";
-      sha256 = "1x2yhdmmm5sbfpqbkrivwa05hx8vk5xa3468db3554clawkp2mnj";
+      rev = "60d5fef9e8f272ca9dd40d68dd692fb448a5f606";
+      sha256 = "0acwav5f9hrjcwg3lw2l8dhh9y5yqcd0af8wkimzryfa1k7vqxiq";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -173,24 +173,24 @@ final: prev:
 
   LazyVim = buildVimPlugin {
     pname = "LazyVim";
-    version = "2024-05-03";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "LazyVim";
       repo = "LazyVim";
-      rev = "530e94a9fa19577401e968a9673282c3d79f01e3";
-      sha256 = "1hjin3p1w6qypq8374mixd5jxz6zviddp3is0a4x9c5047s2ivi2";
+      rev = "a0afe8fef9dc76b469a78435cdd3f2c5ee01f282";
+      sha256 = "0xibikcqxw35dggh2hzqaxa4lcn07y4fn6inn91slcll0zihn0xx";
     };
     meta.homepage = "https://github.com/LazyVim/LazyVim/";
   };
 
   LeaderF = buildVimPlugin {
     pname = "LeaderF";
-    version = "2024-04-30";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "b73af2cbe778e560b723bc65eb385302257f44a4";
-      sha256 = "1y0bxr88v3kkay5vqz1k2m3c65aw0fnb50ip85x8ksjfxhvxjqll";
+      rev = "de37c621a099a72d21e1731d4932d5b62cdc37bd";
+      sha256 = "1bb6xz9hdgl8gzhmkshgc0s5cmy68k8vwqx898a0v7gd3jg8p755";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
@@ -305,12 +305,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPlugin {
     pname = "SchemaStore.nvim";
-    version = "2024-05-03";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "2ef728ff7e790431f1f71052bfd4c5568157e110";
-      sha256 = "1y25yp9n3x8w2psrmcbzbm4gghr368ly9amksw0z7g4jnkw1913p";
+      rev = "35a0998728380a17b8590447e8207391411c667a";
+      sha256 = "1rb3fnw5pdsg22f8nsvxf37b5hmkq5gl9qyv3xis1ydm2l4vi7k8";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -498,12 +498,12 @@ final: prev:
 
   actions-preview-nvim = buildVimPlugin {
     pname = "actions-preview.nvim";
-    version = "2024-05-03";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "aznhe21";
       repo = "actions-preview.nvim";
-      rev = "ceb6e06d1c8c30d8ddfe3afb03cd2c47b08b2798";
-      sha256 = "076z8cjkzkwy6qnjavsj8mvbq5f5kld2jdcq0x337hsfmzgj3s6h";
+      rev = "e8d41b608e24319548637685c7cfa66fadaff2b2";
+      sha256 = "1nvly9hhf02dfcqp0saf7inh502mdyivha2ksqyq0f07bp1qkzcd";
     };
     meta.homepage = "https://github.com/aznhe21/actions-preview.nvim/";
   };
@@ -522,12 +522,12 @@ final: prev:
 
   aerial-nvim = buildVimPlugin {
     pname = "aerial.nvim";
-    version = "2024-04-24";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "83a79f39b709c20be4c830d241379fa85ef21a7c";
-      sha256 = "0097knf20gkc622pdpkxhhjl6fim8h4130xhigv6xa52jsl4jdl2";
+      rev = "228fad11393322537d9662c0347f75549a3d6c0a";
+      sha256 = "1498ys4z2pzkk6x59ygnq18j53zypin2zxmlc4vvc74v640v3iml";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
@@ -583,12 +583,12 @@ final: prev:
 
   ale = buildVimPlugin {
     pname = "ale";
-    version = "2024-05-01";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "70eeae54fbd5c2e254604d543674f02d42c0ccdd";
-      sha256 = "0wyahv3gb56kaqw9mz9jklnc8h20zis1fc4662cyaks14fav9cjc";
+      rev = "c88bddfa83dbb96c2f57426794ed98a0e181ea7e";
+      sha256 = "06mbkp68wwl1pnpzl1plfv3g7089ljlkp3bw5rgj0xjq5yd4bkfi";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -691,24 +691,24 @@ final: prev:
 
   arrow-nvim = buildVimPlugin {
     pname = "arrow.nvim";
-    version = "2024-04-24";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "otavioschwanck";
       repo = "arrow.nvim";
-      rev = "a133010d392e5e12f28e3315d634c74912b3ec24";
-      sha256 = "1870j9681pc0zdjip5nk1cdmdac37kd9phvjmz1q4jvy9m4hy475";
+      rev = "33f3ce4c710c1717c491119016808c8d529d76a2";
+      sha256 = "0qagjxl3c8gp19q6ghj9cv5yv7naqm2d6p83bfrbkw92ba2i8nli";
     };
     meta.homepage = "https://github.com/otavioschwanck/arrow.nvim/";
   };
 
   astrotheme = buildVimPlugin {
     pname = "astrotheme";
-    version = "2024-04-10";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "AstroNvim";
       repo = "astrotheme";
-      rev = "8b316aa3ecd8c4206430379c0b1da0b4e7969ab9";
-      sha256 = "120fz8z6bmsp7dqjhg8dygbgv1q4bzwk0k8ji55xa2w6bc8ji3ii";
+      rev = "7e47b7900229365bc0dca2a2eee2acc62dfc9dc3";
+      sha256 = "14gjl0w921c3bgl4hcvv1px42j1z7i2bsqh91lps33r18sj3x833";
     };
     meta.homepage = "https://github.com/AstroNvim/astrotheme/";
   };
@@ -1375,12 +1375,12 @@ final: prev:
 
   chadtree = buildVimPlugin {
     pname = "chadtree";
-    version = "2024-04-26";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "dac7ee382afa77dec64df11eac8cb7be830a69a6";
-      sha256 = "1l34c38rc35wp6mhccbvxq5ddj39gc770rdnyhg9nxqzsql281js";
+      rev = "28ec469ed46c6366dbda7f3a4f57b204d7bf8e49";
+      sha256 = "1f9bmaj0lhiwzig0g36gbsy3mkq2lmcqx762h4z3kn1acci3dlk1";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -1531,12 +1531,12 @@ final: prev:
 
   cmake-tools-nvim = buildVimPlugin {
     pname = "cmake-tools.nvim";
-    version = "2024-05-05";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "Civitasv";
       repo = "cmake-tools.nvim";
-      rev = "1c309e42bf0fe1ee79caa4de7b3cc39a170de382";
-      sha256 = "1mnczi00llsr309zd3w45axlkffafms83f2dsdb8avmyfbjaf46w";
+      rev = "b221c5973ca520b0f079e16cd9919a8d944f7890";
+      sha256 = "0whqznv233hn8241h0nv5r30qcnlzf6ziqxpjcdsxp97s1vcg1pi";
     };
     meta.homepage = "https://github.com/Civitasv/cmake-tools.nvim/";
   };
@@ -1975,12 +1975,12 @@ final: prev:
 
   cmp-spell = buildVimPlugin {
     pname = "cmp-spell";
-    version = "2023-09-20";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "f3fora";
       repo = "cmp-spell";
-      rev = "32a0867efa59b43edbb2db67b0871cfad90c9b66";
-      sha256 = "1yr2cq1b6di4k93pjlshkkf4phhd3lzmkm0s679j35crzgwhxnbd";
+      rev = "694a4e50809d6d645c1ea29015dad0c293f019d6";
+      sha256 = "0qh86jbm1a843lc9p5z4gqarzpwq4vbb8cjlg7jn87ighx5cgzhr";
     };
     meta.homepage = "https://github.com/f3fora/cmp-spell/";
   };
@@ -2287,12 +2287,12 @@ final: prev:
 
   colorbuddy-nvim = buildVimPlugin {
     pname = "colorbuddy.nvim";
-    version = "2024-03-20";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "tjdevries";
       repo = "colorbuddy.nvim";
-      rev = "9e96ccd88f4510d0a54ce1d5c11119eac9fb217e";
-      sha256 = "1xakrmhsjr5xy82g9vfjmsz2wy93gchsqg7lndvjjm175hsqd27a";
+      rev = "8b968581e5c19d22a861d5f3fe5dbd83394fa681";
+      sha256 = "184hvgv6cb25hfgkh07yx0mddygcj0qk19slwpj6z5i3xvywxab1";
     };
     meta.homepage = "https://github.com/tjdevries/colorbuddy.nvim/";
   };
@@ -2503,12 +2503,12 @@ final: prev:
 
   conform-nvim = buildVimPlugin {
     pname = "conform.nvim";
-    version = "2024-04-28";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "conform.nvim";
-      rev = "12b3995537f52ba2810a9857e8ca256881febbda";
-      sha256 = "1czcfc475qrf8mg9x5m0iziw8ap242w04zjdcild5yf30an3xh1g";
+      rev = "dc950e5717f1da65b1fcd986b1bbff0d6bd0e2ee";
+      sha256 = "08x0nl7gxmadv9as0i7yqcjb5npq8fa258vz6b4n1qx85dj99skr";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/conform.nvim/";
@@ -2576,12 +2576,12 @@ final: prev:
 
   copilot-vim = buildVimPlugin {
     pname = "copilot.vim";
-    version = "2024-05-03";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "b603990a639bb4b8651d054ef8d5a8fe5db56e0c";
-      sha256 = "0zkfdjxcbxs9bw01prmf6zavc41jv3688f7g88flp5cria4j9dw6";
+      rev = "dfa657c80c915a6a3eb6d9010046a0576ad25a37";
+      sha256 = "0jf0hljpg5yl26qazz3xpg7hcdv3ywjw81s4g2b42wsrwsmafzsf";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
@@ -2660,12 +2660,12 @@ final: prev:
 
   crates-nvim = buildVimPlugin {
     pname = "crates.nvim";
-    version = "2024-04-24";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "f00e11e8282b94f2a2e938d32712c99f0e0bdeb4";
-      sha256 = "0prrq6fgw1nhmqb80gbfkgnqqk209l1vzszw6k20b13r303adpyk";
+      rev = "7d8541ec0e3b30ac2c43864d3ee13a632e1231ed";
+      sha256 = "1zyzv2bq01c6mfmjf05sjxya6vq9yjdsdyc8gqxvlcyjilzff602";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -2756,12 +2756,12 @@ final: prev:
 
   cyberdream-nvim = buildVimPlugin {
     pname = "cyberdream.nvim";
-    version = "2024-05-05";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "scottmckendry";
       repo = "cyberdream.nvim";
-      rev = "a9cb4b229127e1b06964e73b5d55fad300b560be";
-      sha256 = "1zmzng24211752fpircdlxbw3hflja7366hymyszwl7x061w04n0";
+      rev = "c3eff4c5df805bb9451129151509d5624295f416";
+      sha256 = "0c6ypwik0w9p9ch2089dn8gxisx22fb7gzdzivbnn2i239fwc12n";
     };
     meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/";
   };
@@ -2804,12 +2804,12 @@ final: prev:
 
   debugprint-nvim = buildVimPlugin {
     pname = "debugprint.nvim";
-    version = "2024-04-28";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "debugprint.nvim";
-      rev = "c7d04c3bf0a83e37434a4319040c2384a7f97acc";
-      sha256 = "1di8yxzag3siiqxvl5b11zgarpdwvd65apj5wlnwijp9nraxpgz9";
+      rev = "94d7d988c1d7dcb2f4c55d01d54bdb95c597639c";
+      sha256 = "0nvyb0d8c7klyng700wpard9jyhl0n3363v4czxqs3fisx4ppq9x";
     };
     meta.homepage = "https://github.com/andrewferrier/debugprint.nvim/";
   };
@@ -2912,12 +2912,12 @@ final: prev:
 
   denops-vim = buildVimPlugin {
     pname = "denops.vim";
-    version = "2024-05-05";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "vim-denops";
       repo = "denops.vim";
-      rev = "2a393849db9531d14106dcd437f9b7deb5012057";
-      sha256 = "08yzbr2y07aj4bl0z8zv925qdmfx4pvjwpqk7829rp62nng7dc18";
+      rev = "52bff98267685291fd083523d8446e8c233fe96d";
+      sha256 = "175xp085c0vycfr5pxwbz590y5lksia97xh6xd4nd06pq5ps91zv";
     };
     meta.homepage = "https://github.com/vim-denops/denops.vim/";
   };
@@ -3166,12 +3166,12 @@ final: prev:
 
   dhall-vim = buildVimPlugin {
     pname = "dhall-vim";
-    version = "2021-06-05";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "vmchale";
       repo = "dhall-vim";
-      rev = "68500ef46ff3706f46c99db3be7a0c8abcf6a3ae";
-      sha256 = "0lwna4kcq7davfvh3535n8wl9jxkjm7cg6jgpisd17kvagihh8qw";
+      rev = "c1790ded928a57abba9ebc8f46cf57a52733af04";
+      sha256 = "05jd65bxclgmb97hyg9akcz4zw7n81wh53a1dp7rxvannbxzd6db";
     };
     meta.homepage = "https://github.com/vmchale/dhall-vim/";
   };
@@ -3395,12 +3395,12 @@ final: prev:
 
   efmls-configs-nvim = buildVimPlugin {
     pname = "efmls-configs-nvim";
-    version = "2024-05-05";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "creativenull";
       repo = "efmls-configs-nvim";
-      rev = "51cb9191aa2776477e2e75180f9a466f0efaac43";
-      sha256 = "0yaxr9vjxj5ah7p98gzhdid8iwhjr64a76rlx0jjvmbzbz26vv8l";
+      rev = "f477186ecc12ac025a9948d17edc69242e1ee96b";
+      sha256 = "0mgljq23h4phk5r6dnkyijyv54j71h2cgvxjg4c8lgnqvas0cksl";
     };
     meta.homepage = "https://github.com/creativenull/efmls-configs-nvim/";
   };
@@ -3492,12 +3492,12 @@ final: prev:
 
   everforest = buildVimPlugin {
     pname = "everforest";
-    version = "2024-03-27";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "4d67edd8d4701b00cee37073d53053a650264541";
-      sha256 = "1jlr4wjbmzjgr823csai7ii3yq2gppl8kchhqngp76gpf4i81795";
+      rev = "c6b3315ed7e890128ff1e274969d4aca2eeb8185";
+      sha256 = "0sp8ykmc5006rshviyv955l3z85wanii822x5bdii9yrmlfmhgcj";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
@@ -3600,14 +3600,14 @@ final: prev:
 
   fern-vim = buildVimPlugin {
     pname = "fern.vim";
-    version = "2024-03-21";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "lambdalisue";
-      repo = "fern.vim";
-      rev = "928d355e4c06e08eb3c9062485a661f1d37b01d1";
-      sha256 = "1siyqx08cb36dh61gy7hgmv0csdjbxnyam07is52w1x2pik0167h";
+      repo = "vim-fern";
+      rev = "a675dff495a0a0fd15663ebbae585c19825a64c5";
+      sha256 = "1bxd4x5iac6c1ca5vxw2y1bxxlzjhn6gkxfnw91q68cj7lik5575";
     };
-    meta.homepage = "https://github.com/lambdalisue/fern.vim/";
+    meta.homepage = "https://github.com/lambdalisue/vim-fern/";
   };
 
   ferret = buildVimPlugin {
@@ -3660,12 +3660,12 @@ final: prev:
 
   firenvim = buildVimPlugin {
     pname = "firenvim";
-    version = "2024-04-28";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "glacambre";
       repo = "firenvim";
-      rev = "03ba12a5a92a02d171005775a8150998c4060a74";
-      sha256 = "0fa49443b21rzfvbyx4kri673y7nny8j3jgd591y71mfiaa7w5bw";
+      rev = "fc72687977e1c34259c42f0e408655cf2638760d";
+      sha256 = "18q5lby9hlhbd1z2bpnm9s2vrfz88g19rq78hx10d1vp3f576jla";
     };
     meta.homepage = "https://github.com/glacambre/firenvim/";
   };
@@ -3829,12 +3829,12 @@ final: prev:
 
   friendly-snippets = buildVimPlugin {
     pname = "friendly-snippets";
-    version = "2024-05-04";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "fa36367422da5a38560892e3db6d090a635d9d41";
-      sha256 = "13q4hby88b7s3qy5xxsk385hxdc89ypxd33ipanzbx4h1bkvxj3g";
+      rev = "3e9a3f5a0cfcef1741e352c37bda4e82e5eb846a";
+      sha256 = "03z76x6a444fxys8qnsjbafy3ij8hf3y15wn6gc22glxfqyfvjsn";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -3935,26 +3935,26 @@ final: prev:
     meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/";
   };
 
-  fzf-lua = buildVimPlugin {
+  fzf-lua = buildNeovimPlugin {
     pname = "fzf-lua";
-    version = "2024-04-01";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "5a44f0ace88de57743af661c9507ef5075aa6e2e";
-      sha256 = "1r9bi2a56gg827s9a0yk6skm85jl0x4ky1qk2ram4aaxpjfc2c6y";
+      rev = "9c953dfa7650191d892800333d187f3439e01afd";
+      sha256 = "1dzznjj2q2xsj9dvx0agsqi0c5y68d23mr9l6cpnz2rc2yfrisgi";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
 
   fzf-vim = buildVimPlugin {
     pname = "fzf.vim";
-    version = "2024-04-28";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "269c08641ed5a842a19c03ca14e3eac3ac7ea74b";
-      sha256 = "0fvqw0pkmynjhksy5hid2yzghjv25irkjvixz0dagggjwd635vx7";
+      rev = "99093bd103b847dd3ed149b0c9e7146c8ed46643";
+      sha256 = "08nsxc52zs9k98q9yxq8kzddzs78fg0v185wympq6k8ks15lk4qr";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -4024,21 +4024,21 @@ final: prev:
     version = "2022-03-30";
     src = fetchFromGitHub {
       owner = "lambdalisue";
-      repo = "gina.vim";
+      repo = "vim-gina";
       rev = "ff6c2ddeca98f886b57fb42283c12e167d6ab575";
       sha256 = "09jlnpix2dy6kggiz96mrm5l1f9x1gl5afpdmfrxgkighn2rwpzq";
     };
-    meta.homepage = "https://github.com/lambdalisue/gina.vim/";
+    meta.homepage = "https://github.com/lambdalisue/vim-gina/";
   };
 
   git-blame-nvim = buildVimPlugin {
     pname = "git-blame.nvim";
-    version = "2024-04-13";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "f-person";
       repo = "git-blame.nvim";
-      rev = "ad1d1365c9189d89797fe8d559677d5f55dc2830";
-      sha256 = "1saw496nx8pimq1sn0ws2k10cvwg4r5q5dizfclm1rpxfp13485j";
+      rev = "fb84fad97cd4b51caee3c865e8a33a0d413b77a8";
+      sha256 = "0yn410ld7xrclpd24smf088xaig9zhv01612yv2qjbz9w16q689d";
     };
     meta.homepage = "https://github.com/f-person/git-blame.nvim/";
   };
@@ -4117,12 +4117,12 @@ final: prev:
 
   gitsigns-nvim = buildNeovimPlugin {
     pname = "gitsigns.nvim";
-    version = "2024-05-04";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "bc933d24a669608968ff4791b14d2d9554813a65";
-      sha256 = "1c8vkgfpmagnczzjdnxg9md3wiw7irlv02v7v0yv2q0piii9s6av";
+      rev = "805610a9393fa231f2c2b49cb521bfa413fadb3d";
+      sha256 = "0cxcq40i84l1jblvvn913hiz9qik62g0iij097prxgz2jx66lvdz";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -4177,12 +4177,12 @@ final: prev:
 
   go-nvim = buildVimPlugin {
     pname = "go.nvim";
-    version = "2024-04-30";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "go.nvim";
-      rev = "d5e2b8cdd84afdb0c49c42a6e8972acc645e0283";
-      sha256 = "04nxy9493jzjsf5lnfw86hnfp7xg9yn42091fjj40v3pr787398x";
+      rev = "4348ba67c29338af648ed9a0455bebb44fdb3ef3";
+      sha256 = "0rmry1zlm3b9i4kkxjx42kvhfgpjva55g4z2hifdjczrqasgv4sb";
     };
     meta.homepage = "https://github.com/ray-x/go.nvim/";
   };
@@ -4345,36 +4345,36 @@ final: prev:
 
   gruvbox-material-nvim = buildVimPlugin {
     pname = "gruvbox-material.nvim";
-    version = "2024-05-05";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "f4z3r";
       repo = "gruvbox-material.nvim";
-      rev = "75a7ffdf3cc73177a2784ca2252d9f9f1adee974";
-      sha256 = "0rdsr1ajha40slzhz5i7cqcxhh0b0f6z174dss3yhdaqrhg0ci3b";
+      rev = "186bfd9fc87ada2e408158bc0f72799b46370add";
+      sha256 = "0a19dsjhx50fpl2apwwllpvc9bznigc4f41lhyb0ydldi6x0rg13";
     };
     meta.homepage = "https://github.com/f4z3r/gruvbox-material.nvim/";
   };
 
   gruvbox-nvim = buildVimPlugin {
     pname = "gruvbox.nvim";
-    version = "2024-05-03";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "dd0ab08b17d2ead7bdb4838b48e1d08034ead0f0";
-      sha256 = "04kdyrws4w9qhrk09kkh5wrk1cwi2jvnr1y790cyrjs0fch3f97g";
+      rev = "c442515506caa166118e157980f62a9ac24fa8c3";
+      sha256 = "07yp690ybjknlczbdglhrb9mdalf13s9pf190kv20a2yx8ipj1yq";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
 
   guard-collection = buildVimPlugin {
     pname = "guard-collection";
-    version = "2023-11-13";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "guard-collection";
-      rev = "13e00d19f418d68977c6bc803f0d23d09dce580d";
-      sha256 = "1zhq99hf722m5m842ghadj9akmb0y1sqkpmbhhk15jynnvv16ab6";
+      rev = "78df199510b9c8e2a1da0cdf71a01c4f6009a47d";
+      sha256 = "01y36ra8xrlr2s7lbxz5zw923rdhrnqwg0aa2hbpza7adwx8q0s0";
     };
     meta.homepage = "https://github.com/nvimdev/guard-collection/";
   };
@@ -4453,11 +4453,11 @@ final: prev:
 
   hare-vim = buildVimPlugin {
     pname = "hare.vim";
-    version = "2024-04-21";
+    version = "2024-05-12";
     src = fetchgit {
       url = "https://git.sr.ht/~sircmpwn/hare.vim";
-      rev = "960c7a342609f373414c1e7fe4be0dcc369716ff";
-      sha256 = "1dzpp050gl1a39vdmn57941qzxmyws0x1fqykq82babppn23hzpb";
+      rev = "188309129ac77590113f13d6f0da28c3f6f4d494";
+      sha256 = "0rz1hx3zljs3g5namlyzafvl12vi164vq3mqj02zd04hmm1rsr0b";
     };
     meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim";
   };
@@ -4500,12 +4500,12 @@ final: prev:
 
   haskell-tools-nvim = buildNeovimPlugin {
     pname = "haskell-tools.nvim";
-    version = "2024-05-05";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "fc2cd2960e44a473ee67c8385589537729ca3626";
-      sha256 = "0dk279lk4jm97mqsyycz9g7xbc790r1kl8ya4a4fnfpacjk4lysj";
+      rev = "f30928e90b68f4df82771ea4354cd913f005b829";
+      sha256 = "13h764dn7i9cy3cs5yvgh01yi3b2428wwsdq1mzdr88677ai5p3v";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -4560,12 +4560,12 @@ final: prev:
 
   heirline-nvim = buildVimPlugin {
     pname = "heirline.nvim";
-    version = "2024-02-14";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "heirline.nvim";
-      rev = "03cff30d7e7d3ba6fdc00925f015822f79cef908";
-      sha256 = "1bw4077h3cv01wnz0gv5qkdyxi8naszkgl11zi9mqb54asl69c41";
+      rev = "c52391dc4428d503f65e6bcb1533e6334f22a136";
+      sha256 = "0hplfmqy9gx21ifqyj23ydq7zsm9v0kfhhqb4s9bjb1djx9209j4";
     };
     meta.homepage = "https://github.com/rebelot/heirline.nvim/";
   };
@@ -4596,12 +4596,12 @@ final: prev:
 
   highlight-undo-nvim = buildVimPlugin {
     pname = "highlight-undo.nvim";
-    version = "2024-04-21";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "highlight-undo.nvim";
-      rev = "a0dbc6afa19b438ca5a6f54bc7f1a10399f21a15";
-      sha256 = "01731762ck8nj6ipfdrw30qnkim359gn6zplp41airwiyjji8dp7";
+      rev = "1ea1c79372d7d93c88fd97543880927b7635e3d2";
+      sha256 = "1lzml5yj3ak0rc4r2fmb1zpb9a01i5j6yk58m0qn960l2x5kav68";
     };
     meta.homepage = "https://github.com/tzachar/highlight-undo.nvim/";
   };
@@ -4631,12 +4631,12 @@ final: prev:
 
   hmts-nvim = buildVimPlugin {
     pname = "hmts.nvim";
-    version = "2024-03-14";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "calops";
       repo = "hmts.nvim";
-      rev = "473d74cf54da8f51aaa9993ec3e6bfae278eb47b";
-      sha256 = "14a6k53b002zvz336s6q5yznvyjfdn9y2qdnickhz2cwkrgr1hvf";
+      rev = "19a91816c123173a4551a6a04f2882338f20db1d";
+      sha256 = "1qw3b7zsp467bg8npingba5jsiiywyr0mgjhk8khvjnb1hjyld5w";
     };
     meta.homepage = "https://github.com/calops/hmts.nvim/";
   };
@@ -4787,12 +4787,12 @@ final: prev:
 
   image-nvim = buildNeovimPlugin {
     pname = "image.nvim";
-    version = "2024-04-30";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "3rd";
       repo = "image.nvim";
-      rev = "604692f493519128c58893c28273d4247bc71a4d";
-      sha256 = "12g5fwg1mzkqlmmr6kzg9vbqnr745n00a6j2za2si3g7wm277wji";
+      rev = "66af29f7244256eea82b2583ab65c2fab0567d0d";
+      sha256 = "17h7myyqcwqqn4wn6ci22maj2c7c4qbrjlqghxyf06k9icvwbjbb";
     };
     meta.homepage = "https://github.com/3rd/image.nvim/";
   };
@@ -4991,12 +4991,12 @@ final: prev:
 
   iron-nvim = buildVimPlugin {
     pname = "iron.nvim";
-    version = "2024-04-02";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "Vigemus";
       repo = "iron.nvim";
-      rev = "f6f199e3d353fc5761e2feda63b569a98897c66b";
-      sha256 = "1bwqval3lr12cqivfmmvxdi6da07000xbsn2ygiz4ym1a0a9jg5v";
+      rev = "7fc24223ed2a6292cd1d913761b08b6c18a30bd4";
+      sha256 = "0z08c8ygy9haaclnsrbdjvnpypfbfm7yvrwk9grvvfp7qsblzvhv";
     };
     meta.homepage = "https://github.com/Vigemus/iron.nvim/";
   };
@@ -5257,12 +5257,12 @@ final: prev:
 
   lazy-nvim = buildVimPlugin {
     pname = "lazy.nvim";
-    version = "2024-05-04";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lazy.nvim";
-      rev = "d3974346b6cef2116c8e7b08423256a834cb7cbc";
-      sha256 = "1k8nx3wgh87kv15qa023caqxbngajx1f2b44g8bvzxhs5jf1ldfh";
+      rev = "758bb5de98b805acc5eeed8cdc8ac7f0bc4b0b86";
+      sha256 = "0sc0590qgwpr9zxmks6k9bfh916zz8n4pv8j4idcxch9vv39inm4";
     };
     meta.homepage = "https://github.com/folke/lazy.nvim/";
   };
@@ -5317,24 +5317,24 @@ final: prev:
 
   leap-nvim = buildVimPlugin {
     pname = "leap.nvim";
-    version = "2024-05-04";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "leap.nvim";
-      rev = "f1f19fc268b406b00b50091f51f16d9634fbe449";
-      sha256 = "0s5bwc2j27l9yz5jp769sfk0h9ifvr4xzr43bvz7yk4hi136g1s6";
+      rev = "be68eec21e37415d15cffaabc959b8d3f9466665";
+      sha256 = "06h1lg2844p9m6618z71k9d4byajczvf02jc9cccw0inar33b8ac";
     };
     meta.homepage = "https://github.com/ggandor/leap.nvim/";
   };
 
   legendary-nvim = buildVimPlugin {
     pname = "legendary.nvim";
-    version = "2024-05-03";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "legendary.nvim";
-      rev = "b15d9b6751d106bc5d94ed4567da3a134bef51a4";
-      sha256 = "08br65j9glb9z0x59vq8fcfiw5c29gjkvbfq3nyqlkrjcv8rh63i";
+      rev = "33108b19edadee8c2758f6bc574cc8335fdf89fb";
+      sha256 = "1w9zchqpbf3nvdxdx7xv5wy4my8xknnxwgcf3hvlycvxsg001xxd";
     };
     meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
   };
@@ -5677,12 +5677,12 @@ final: prev:
 
   lsp-zero-nvim = buildVimPlugin {
     pname = "lsp-zero.nvim";
-    version = "2024-05-01";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "lsp-zero.nvim";
-      rev = "e00dcf8a6019a88139626c1668dccdc295abd324";
-      sha256 = "1q1qrnw9nlwgas7n7xxryaznprkjdfw94l974mhfzb1kzm1k2rz3";
+      rev = "f12d50716e8e59ea9f5cf484eac6968c33a95917";
+      sha256 = "07dsgbgqmdlv2lv498lwzb8vq7fl4hdlr4psym6ilssmqjc6xkx2";
     };
     meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/";
   };
@@ -5712,12 +5712,12 @@ final: prev:
 
   lsp_signature-nvim = buildVimPlugin {
     pname = "lsp_signature.nvim";
-    version = "2024-03-17";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "c6aeb2f1d2538bbdfdaab1664d9d4c3c75aa9db8";
-      sha256 = "11njh62m56az4mmvzsqh2pm852bv1c1zp1m92ma4q5xgq2jvpg1v";
+      rev = "aed5d1162b0f07bb3af34bedcc5f70a2b6466ed8";
+      sha256 = "11x1mv3bzg7d9k2s69766p7abrzbdnv4knj6yx06b6vngdk2x03z";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
@@ -5748,12 +5748,12 @@ final: prev:
 
   lspsaga-nvim = buildVimPlugin {
     pname = "lspsaga.nvim";
-    version = "2024-04-27";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "lspsaga.nvim";
-      rev = "052234296f13e2705d5d290c7bd5a36d3dd81fde";
-      sha256 = "136ywjiv4vg4lkqbgqjhavm2nv8xgskbz2a5gkqsbilz8wqkrr46";
+      rev = "9a06eaf5622f4ac102b9c45faeea3a39a33ec5ba";
+      sha256 = "07kyz8mh373ddqzbydcm9f7nbsfassk9699bwbm879hipwjqm0ld";
     };
     meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
   };
@@ -5905,36 +5905,36 @@ final: prev:
 
   mason-lspconfig-nvim = buildVimPlugin {
     pname = "mason-lspconfig.nvim";
-    version = "2024-05-05";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason-lspconfig.nvim";
-      rev = "05744f0f1967b5757bd05c08df4271ab8ec990aa";
-      sha256 = "17w39gkj30d54xjdjxmwq11827l7ymwm2p8fx2x7lmmwin85imyb";
+      rev = "9ae570e206360e47d30b4c35a4550c165f4ea7b7";
+      sha256 = "147dhkrqz8fiwpafayk0ww685ncijjzxxd21nf93lagra9rx2l75";
     };
     meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/";
   };
 
   mason-tool-installer-nvim = buildVimPlugin {
     pname = "mason-tool-installer.nvim";
-    version = "2024-04-11";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "WhoIsSethDaniel";
       repo = "mason-tool-installer.nvim";
-      rev = "b129892f783740e6cf741f2ea09fa5dd512aa584";
-      sha256 = "08152z7smaxv82v7ivp92n58lvr3ys7976795k0pxi8a99qj9kw7";
+      rev = "c1fbdcb0d8d1295314f1612c4a247253e70299d9";
+      sha256 = "1pxfnflbklpi7y71h7yq4ac20nimxc1fqh4kpxl8hifqnqgbllrs";
     };
     meta.homepage = "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/";
   };
 
   mason-nvim = buildVimPlugin {
     pname = "mason.nvim";
-    version = "2024-03-21";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason.nvim";
-      rev = "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10";
-      sha256 = "1aaf19a4iqh8ayh4fghgs7inyg01fd7pdk3qr2pgz12mbawm62d9";
+      rev = "1b3d60405d1d720b2c4927f19672e9479703b00f";
+      sha256 = "00vlxxzxslf5g6irbz12bscxxksc3mwr4gz4gwxy7wjsx6f9iqnn";
     };
     meta.homepage = "https://github.com/williamboman/mason.nvim/";
   };
@@ -6049,12 +6049,12 @@ final: prev:
 
   mini-nvim = buildVimPlugin {
     pname = "mini.nvim";
-    version = "2024-05-04";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "fb4df45edec418443e4801719f1cb98e89697724";
-      sha256 = "15v2lrbwbjjkkrv6w7dzjc4yls2kqcfdgvhibgk702nkv3yz1py8";
+      rev = "c333187fcc76d7e772dac32c2a440a949fe34be4";
+      sha256 = "1mdqavyq7aar03c1za5z4ca7zgpb2knyy8zz0xlcxjz67q093zcr";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
@@ -6121,12 +6121,12 @@ final: prev:
 
   modus-themes-nvim = buildVimPlugin {
     pname = "modus-themes.nvim";
-    version = "2024-05-06";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "miikanissi";
       repo = "modus-themes.nvim";
-      rev = "705ea8debb9d9afe4e631166fcc6121782dd0b32";
-      sha256 = "0hs2ylf1rj0655kpwr4blh399r8k7lg0r2a4nbnymy1pbkx1gh1i";
+      rev = "85180b063e2ba89517d6a407529560733c8447fe";
+      sha256 = "193wja69vdsnqfzg4asbrv73qrwrvy481in28qkllwpamzw128d5";
     };
     meta.homepage = "https://github.com/miikanissi/modus-themes.nvim/";
   };
@@ -6145,12 +6145,12 @@ final: prev:
 
   molten-nvim = buildVimPlugin {
     pname = "molten-nvim";
-    version = "2024-05-01";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "benlubas";
       repo = "molten-nvim";
-      rev = "df5ccef3b6fda3582f7746e45327ee031f668826";
-      sha256 = "18sqq0jblwykp2cxy1nhwbz0sk0qk2yhwkprnpv37213lkyni66g";
+      rev = "ab9351baff839c2ea4b0c1b5d1ad8d4968c7f1c1";
+      sha256 = "16764rcq4y520i6y002vk3gq2vlrr62mbw0wvpr0nnv7z6gqrbis";
     };
     meta.homepage = "https://github.com/benlubas/molten-nvim/";
   };
@@ -6481,12 +6481,12 @@ final: prev:
 
   neoconf-nvim = buildVimPlugin {
     pname = "neoconf.nvim";
-    version = "2024-05-03";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neoconf.nvim";
-      rev = "d4a48c2a6fdeec138605cee4eb6f8c6fafd0b3ed";
-      sha256 = "115y09nj71gjrxz20f46pb464ipxds742nx2cvp8z1cslk0gq6qg";
+      rev = "bdd6c7dac2038d6495890dd84f451cf9f7425c50";
+      sha256 = "194yzgar18idsxrcwqnbs7bp8jib9ypr7kjv3kvz9lm4n49bgvcl";
     };
     meta.homepage = "https://github.com/folke/neoconf.nvim/";
   };
@@ -6553,12 +6553,12 @@ final: prev:
 
   neogit = buildVimPlugin {
     pname = "neogit";
-    version = "2024-05-05";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "NeogitOrg";
       repo = "neogit";
-      rev = "f4f7a1017da57f31c182c46fb2535099718fa178";
-      sha256 = "04hhg23xzfkbiq6b3wvz0sl84236s2d51lvnm41463f9wiqjnm3a";
+      rev = "a32f99a83d636ea7cd62cda6e24d76d14e5579ba";
+      sha256 = "13skbi6q45rgxngy0gqgzjq18i6n9y98wd9nk4rp5v8x786f3s0c";
     };
     meta.homepage = "https://github.com/NeogitOrg/neogit/";
   };
@@ -6625,12 +6625,12 @@ final: prev:
 
   neorg = buildVimPlugin {
     pname = "neorg";
-    version = "2024-05-01";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "03fb74927f358320f66cdd1337265c8e7f049fa3";
-      sha256 = "1qs0a4zq9983fm7hqjkpv08v1jwskih3nifg4q300qwc6rz5n8dg";
+      rev = "9b51b67aa92a77ca3e62f07cc0dc9de2e420166f";
+      sha256 = "07lld8g64aznk1hl2iajdp2fbk0bv8f3r5vavhxmqb1ifmwwqkzs";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -6709,12 +6709,12 @@ final: prev:
 
   neotest-bash = buildVimPlugin {
     pname = "neotest-bash";
-    version = "2024-04-15";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "rcasia";
       repo = "neotest-bash";
-      rev = "a3480f53300842922ecb79693e64bf51d4f22337";
-      sha256 = "1dbjv5zyw5nqqwgqagq0q2255byzgc9ckrzsbm2dc7svqp04hki9";
+      rev = "57eab5b80a5296dc3fc5b22112b3ed78da3a5732";
+      sha256 = "0sax4fbqykf2rbvhgmnhkz37ma7ck20dnpc78gns2hilg9ng5hrf";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/rcasia/neotest-bash/";
@@ -6783,12 +6783,12 @@ final: prev:
 
   neotest-go = buildVimPlugin {
     pname = "neotest-go";
-    version = "2024-02-24";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "neotest-go";
-      rev = "6a2f996d89fe4631942e035b1c114544ee045043";
-      sha256 = "1jnsgkmsm2jmjd5zhkf3dhrbc04ysz3n0n28frsbvh839n3cdm7f";
+      rev = "27c80deab9cf5cb30b20ee407b3a6c7285518128";
+      sha256 = "11d8x7kqb4bxjwc4wdhxv5672i6svyj3k52p44711vlbcfal44j5";
     };
     meta.homepage = "https://github.com/nvim-neotest/neotest-go/";
   };
@@ -6820,24 +6820,24 @@ final: prev:
 
   neotest-haskell = buildVimPlugin {
     pname = "neotest-haskell";
-    version = "2024-05-03";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "7641b927cfea4697d070a2b7c626a6eef5aaab56";
-      sha256 = "0d59v5lqymgp71fcknqff2s5i7kl6r5c83ljimgbaqwpwff1a4y9";
+      rev = "1998a37753e5e364d7d2f8e7889ef8348234266c";
+      sha256 = "12kzw16b56262d7iffv286ipyhqmwwgk1klcjrgpsz640s7qyyqz";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
 
   neotest-java = buildVimPlugin {
     pname = "neotest-java";
-    version = "2024-05-02";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "rcasia";
       repo = "neotest-java";
-      rev = "2991ac582116bf01e4ff2e612c5e33c1b4e58fb0";
-      sha256 = "0ym735mb22gigpqm6pby1zlrylxabd56rjvyqg8xqv9ccnrb67f7";
+      rev = "d0058e2f389cdcd7b0682aea76300a2fc1b9f0b7";
+      sha256 = "05q5flyls4pgk8rzvjdqw0igw45wz23ny61kyjh0ag2b3zky1y34";
     };
     meta.homepage = "https://github.com/rcasia/neotest-java/";
   };
@@ -7204,12 +7204,12 @@ final: prev:
 
   nlsp-settings-nvim = buildVimPlugin {
     pname = "nlsp-settings.nvim";
-    version = "2024-05-06";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "nlsp-settings.nvim";
-      rev = "076025a0ec2e209c6241e50928e4976477d229d4";
-      sha256 = "1m3kv9516jzzh7v5k0m3h8cvk74cslhs8mzamrhxfj8k04pq97md";
+      rev = "0a8bcbbbcbed43ff86f1c3a19260a7918cc1bf2e";
+      sha256 = "0nnbqf4idhgffm125nfblgwlp3wkjdw4krz63cayrs8v13bvix8w";
     };
     meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/";
   };
@@ -7240,12 +7240,12 @@ final: prev:
 
   no-neck-pain-nvim = buildVimPlugin {
     pname = "no-neck-pain.nvim";
-    version = "2024-03-29";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "shortcuts";
       repo = "no-neck-pain.nvim";
-      rev = "34625be12649666b7ccb08761087cc97bb788552";
-      sha256 = "0g3vbsvxaf5ywaifffkhp0q0kmbw83xbmi7h7q1afdf10gi1xj24";
+      rev = "0b3299675e0100cceebfbee06a519bc688ec9df3";
+      sha256 = "1gr528pkwd70d97rdly0adv1smgnwskyzrng13i8qdz2nyhix20z";
     };
     meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/";
   };
@@ -7264,12 +7264,12 @@ final: prev:
 
   noice-nvim = buildVimPlugin {
     pname = "noice.nvim";
-    version = "2024-05-03";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "noice.nvim";
-      rev = "f4decbc7a80229ccc9f86026b74bdcf0c39e38a7";
-      sha256 = "01yhrmqqrw5779q1lbx6vwpyqvwhh9mai5x17vby0qr1l1gns7wd";
+      rev = "09102ca2e9a3e9302119fdaf7a059a034e4a626d";
+      sha256 = "1gzdwgizbl60fqiiiwrzfqbbds182qqlr3gyyzvgxbxijs3ajsk1";
     };
     meta.homepage = "https://github.com/folke/noice.nvim/";
   };
@@ -7336,12 +7336,12 @@ final: prev:
 
   nui-nvim = buildNeovimPlugin {
     pname = "nui.nvim";
-    version = "2024-05-04";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "274fa89a9b4bed746647c2917091902f882509ec";
-      sha256 = "1ii7hs97jci5lwa91x12j1sqdqyrbwybkqr9m7r4r9rzwnrzyz9m";
+      rev = "a3597dc88b53489d3fddbddbbd13787355253bb0";
+      sha256 = "1sg0b1vq6cggxw9vif7slp2362rw5xz2a0snhhmzz1frd2ckr72v";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
@@ -7432,12 +7432,12 @@ final: prev:
 
   nvim-bacon = buildVimPlugin {
     pname = "nvim-bacon";
-    version = "2024-04-10";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "Canop";
       repo = "nvim-bacon";
-      rev = "94f684baacf22c65e5ef889cfa943cfc90ee1cf4";
-      sha256 = "0b4xpmk6cv6k9h2vqk9773hszwy90d7y3fpjz1yqg9nxfvbdjp2b";
+      rev = "ad7b522ae85b7aab4981bcd34e9b513ce5849eda";
+      sha256 = "1baki6dfiahilkcgfdspbfj2mv3pf06nj7yamvranzpj04jadlx3";
     };
     meta.homepage = "https://github.com/Canop/nvim-bacon/";
   };
@@ -7456,12 +7456,12 @@ final: prev:
 
   nvim-bqf = buildVimPlugin {
     pname = "nvim-bqf";
-    version = "2024-03-29";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "52703d7adc3be3f7c09eea9a80c5b8caa615fb25";
-      sha256 = "030mqvi66rr05icqy2lix1v8sf3745a5v06288h6pq4vz4xj5a13";
+      rev = "7751b6ef9fbc3907478eaf23e866c4316a2ed1b4";
+      sha256 = "088s8n9xwkpcc5jyqa8hmrghbazzcqq44hxrlxp9zclqxpp29z16";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -7492,12 +7492,12 @@ final: prev:
 
   nvim-cmp = buildNeovimPlugin {
     pname = "nvim-cmp";
-    version = "2024-04-23";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "8f3c541407e691af6163e2447f3af1bd6e17f9a3";
-      sha256 = "00axjaxgnv6s7rk89sk2wnq5nsqhmv0dm9sn6l1l3cg1vwqqjgxg";
+      rev = "24122371810089d390847d8ba66325c1f1aa64c0";
+      sha256 = "0s4va3b06agy070fkqghx460q20jddvni14gbvjdvgkaf56xn8f3";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -7612,12 +7612,12 @@ final: prev:
 
   nvim-dap = buildVimPlugin {
     pname = "nvim-dap";
-    version = "2024-04-18";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "6ae8a14828b0f3bff1721a35a1dfd604b6a933bb";
-      sha256 = "0a75lxhzbwm66c1fa5b7zpsz3i7raljsbq4d3n5h8cfdv8hgcjch";
+      rev = "615a1b2046e1eaf7995e0ba8e8a65f344201349d";
+      sha256 = "1dmkacc78nkv9lp9h4jb79kisb72zxv3vk5nvq7157cn4zjc6x3c";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
@@ -7887,12 +7887,12 @@ final: prev:
 
   nvim-lint = buildVimPlugin {
     pname = "nvim-lint";
-    version = "2024-04-30";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "861a04313501563bb1b11f125ae9b7237a517b9b";
-      sha256 = "1na2gi7vccqjgjh4b2qjwcgn906aql4jsa81sfxbwrbb4rcjikk8";
+      rev = "83ee4952a968d89329e5a49b4648831d98124783";
+      sha256 = "1v6mwif781gib1knc3qrbxn2alijmabq6aizysjhmqwrvmpklkns";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -7923,12 +7923,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPlugin {
     pname = "nvim-lspconfig";
-    version = "2024-05-06";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "7383bacd57abd6d86e51765b80d7adf5707ab30d";
-      sha256 = "1qrpkxrnjp4ggj8ay533scgy0f6fcjdhivzfrkvs9vcdzdfnjr34";
+      rev = "94513a5b246cf32a8f87ca714af50911df63351c";
+      sha256 = "00rk7203h6w5sq1p4d3bba2q7xa20hp1nzw65qi7rkw9phjfxv58";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -8295,36 +8295,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPlugin {
     pname = "nvim-tree.lua";
-    version = "2024-05-04";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "64f61e4c913047a045ff90bd188dd3b54ee443cf";
-      sha256 = "1j7r1avcwj79lyny3wjs71yyjjprbh0dv026ab78qcw1x9p0b3md";
+      rev = "78c4c083ed5d47e7fab7627d78ce33d3bcfb88f0";
+      sha256 = "1jchdyck8031ldgaracq4zc00026jyvhfcpp8p48z0ka8ypvkp9d";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPlugin {
     pname = "nvim-treesitter";
-    version = "2024-05-06";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "fc7657a071ad7be0616d7c66a74991a3c1b1dbcd";
-      sha256 = "0xayng2x920s9kh9xgpd34q4x5q034653ncx61rf04lfcq3hl4qv";
+      rev = "0d2c80b4d00c8f793e17d2d1d24d4aa5aaa88bc2";
+      sha256 = "0xs16s5g6i9g78xciq0ija5ak7jfdbz7b7dfgg5gca284xgl2ccq";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPlugin {
     pname = "nvim-treesitter-context";
-    version = "2024-05-02";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-context";
-      rev = "2650e6431f7daba5d9c2c64134fa5eb2312eb3d7";
-      sha256 = "1qp53mwmrj4cpjrj44d93q2igzv6nkbragn4ag8g7j1982vwnxl0";
+      rev = "1e52a2c4223c1e7b0def9c76a1f3757d372196c3";
+      sha256 = "02gn7fqmyj8ly8799vjdw1kxklpr710arvlb9gipd9rjmq7vjw0f";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
   };
@@ -8367,12 +8367,12 @@ final: prev:
 
   nvim-treesitter-textobjects = buildVimPlugin {
     pname = "nvim-treesitter-textobjects";
-    version = "2024-04-15";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "23b820146956b3b681c19e10d3a8bc0cbd9a1d4c";
-      sha256 = "1jvx9nbz5sh09jnlcqm5qfyjvryibc3fpnfxim7adk5gb4160xws";
+      rev = "dfa4178c0cadb44f687603d72ad0908474c28dd9";
+      sha256 = "0y0sv6dhhghhxihmyvpwrvvbgi2m90m8vdmi3x09ap0yzfn2nmq2";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
@@ -8403,12 +8403,12 @@ final: prev:
 
   nvim-ts-context-commentstring = buildVimPlugin {
     pname = "nvim-ts-context-commentstring";
-    version = "2024-04-17";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "joosepalviste";
       repo = "nvim-ts-context-commentstring";
-      rev = "a6382f744f584bbf71d0a563af789af7190aabda";
-      sha256 = "12b12ndva3ck5y18mkmhzkbmaz65kjkqsjxvq5gfniz1br7n2y9j";
+      rev = "0bdccb9c67a42a5e2d99384dc9bfa29b1451528f";
+      sha256 = "0b4cx7k53w3cjfnp6nyvvpi1dnnpdp4j67sszsra61fk8pyqp4w2";
     };
     meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/";
   };
@@ -8439,12 +8439,12 @@ final: prev:
 
   nvim-web-devicons = buildVimPlugin {
     pname = "nvim-web-devicons";
-    version = "2024-05-04";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-web-devicons";
-      rev = "475fbcfcb6ee7c35aa33a6b6207ebd4032791d87";
-      sha256 = "1ara99md1vcbmqymqal206yyfisqiq7ghsrid274rm77zm1lf61q";
+      rev = "5b9067899ee6a2538891573500e8fd6ff008440f";
+      sha256 = "0d7gzk06f6z9wq496frbaavx90mcxvdhrswqd3pcayj2872i698d";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/";
   };
@@ -8523,12 +8523,12 @@ final: prev:
 
   obsidian-nvim = buildVimPlugin {
     pname = "obsidian.nvim";
-    version = "2024-05-02";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "epwalsh";
       repo = "obsidian.nvim";
-      rev = "db41b1f20459293436fab510bec58c82a73bd1f7";
-      sha256 = "1v5bybcaazkkmjgpwb2gc7klp42kj3lghp52ikciyb65ywy458d9";
+      rev = "2e1f03416583232899dc1b6e27673da5e705abef";
+      sha256 = "1c3zxz60g7jgm3cd9xhzp73qa218b1z6rfiaf9n4wcbzb88c8scl";
     };
     meta.homepage = "https://github.com/epwalsh/obsidian.nvim/";
   };
@@ -8571,12 +8571,12 @@ final: prev:
 
   oil-nvim = buildVimPlugin {
     pname = "oil.nvim";
-    version = "2024-05-01";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "oil.nvim";
-      rev = "bcfc0a2e01def5019aa14fac2fc6de20dedb6d3d";
-      sha256 = "0yq419k1zbklcb2qihwcxgsrp7sh1hb13s56lpp7xs8bq0b7mkg8";
+      rev = "010b44a79d497c697686e2727049d3dd215bbbd6";
+      sha256 = "01hkrb8ddy2ivmfycxbx1lx756vjgkza0izc86gr5aa2l6dgvh18";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/oil.nvim/";
@@ -8632,12 +8632,12 @@ final: prev:
 
   onedark-nvim = buildVimPlugin {
     pname = "onedark.nvim";
-    version = "2024-01-29";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "navarasu";
       repo = "onedark.nvim";
-      rev = "1230aaf2a427b2c5b73aba6e4a9a5881d3e69429";
-      sha256 = "1npc9x2r0aass9swxmhryia90ar7f4nx8j456jzlf66lzbr8xrnp";
+      rev = "8e4b79b0e6495ddf29552178eceba1e147e6cecf";
+      sha256 = "1xxa0q9val9hl5jby2zqn7wlh0vkibj3s8mbmj8vfba4afqlqi0q";
     };
     meta.homepage = "https://github.com/navarasu/onedark.nvim/";
   };
@@ -8692,12 +8692,12 @@ final: prev:
 
   onenord-nvim = buildVimPlugin {
     pname = "onenord.nvim";
-    version = "2024-03-08";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "rmehri01";
       repo = "onenord.nvim";
-      rev = "ce4aacbaa50b6b44a3e69eee6a3f380e96ccdbd0";
-      sha256 = "1i1n746bf0gfmq22ajj2p4f7819sql4f051gwjmcypd1hrn651lh";
+      rev = "f1e25fd839442d4b3c6bd36cfc7fa56edc629671";
+      sha256 = "0a24km5pd7r2zj0bwzi6wmnkf0lxr9gd82k6x4ybm5777z4bp66r";
     };
     meta.homepage = "https://github.com/rmehri01/onenord.nvim/";
   };
@@ -8752,12 +8752,12 @@ final: prev:
 
   orgmode = buildVimPlugin {
     pname = "orgmode";
-    version = "2024-05-01";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "d4cc3210f235a845de8d372d02482163d31ded93";
-      sha256 = "1wnfvyvkpgcdqchw8aqba5jczykc8cz99m7avm1y055iqph9wlvw";
+      rev = "cda615fa7c8607bfb7aaf7d2c9424dd5969f2625";
+      sha256 = "0wrayb63hd68kjjpkpmhjschw609cs4pb7lsjxnvhz3qifwiysja";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -8776,12 +8776,12 @@ final: prev:
 
   otter-nvim = buildVimPlugin {
     pname = "otter.nvim";
-    version = "2024-05-02";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "jmbuhr";
       repo = "otter.nvim";
-      rev = "f99c93c4516ef7fb5e6714dea7417793f946ab10";
-      sha256 = "1v34ka188gdhx1hy3ckq2kgmm8y1bdql84msxra5g8agd57ryvrb";
+      rev = "5cd161f28835fada50d99c89dc05041565a27bdb";
+      sha256 = "18vl93j93s9i22ybw3vl129kvhz8382yg8b1r1m0xnfyiklpkzg5";
     };
     meta.homepage = "https://github.com/jmbuhr/otter.nvim/";
   };
@@ -8800,12 +8800,12 @@ final: prev:
 
   overseer-nvim = buildVimPlugin {
     pname = "overseer.nvim";
-    version = "2024-04-24";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "overseer.nvim";
-      rev = "89942ad366c8a9bb93f82411de17dc7c644b4e3b";
-      sha256 = "1qs3l0ymcfc223yqk44vqwgvyr4brrd5pz1h7l9lk7p4hy34s9rc";
+      rev = "7ae60fcf9b1d9ad661e8936d50c6e3853b7c3cc0";
+      sha256 = "1wdrbz31n6f09ppvc129zadizabnaxy88gvcnwr9zn2xlbh1ndfi";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/overseer.nvim/";
@@ -8921,12 +8921,12 @@ final: prev:
 
   persisted-nvim = buildVimPlugin {
     pname = "persisted.nvim";
-    version = "2024-05-03";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "persisted.nvim";
-      rev = "9c5fc98a4cb64f66b6f33cae9d31ee8cd54d43ed";
-      sha256 = "0n4hf1k7z7w3dvll3al0mk752768x5shbick2324aqh6l77jjx0x";
+      rev = "1e9fd63e25bdbb5dbb6b8b10f817b2446977146c";
+      sha256 = "1y61izajz6p2b1vfa20f3j5rl1fjbfmbzny3ywkfai4dsnrks8yi";
     };
     meta.homepage = "https://github.com/olimorris/persisted.nvim/";
   };
@@ -9005,12 +9005,12 @@ final: prev:
 
   plantuml-syntax = buildVimPlugin {
     pname = "plantuml-syntax";
-    version = "2024-02-22";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "aklt";
       repo = "plantuml-syntax";
-      rev = "309c15c77794433f276fb09eb4e3b8f381003cfd";
-      sha256 = "0g7yprik607gy01lamql1kpk25sdl54ckfrc9p11rrimal7rms38";
+      rev = "44054d6d2cbcf01a064858faa3364cd30d38057d";
+      sha256 = "0kwk96y6cn7l7w151438sdjflfc6c6irysg00b1q4h1f4x3fcfvq";
     };
     meta.homepage = "https://github.com/aklt/plantuml-syntax/";
   };
@@ -9319,11 +9319,11 @@ final: prev:
 
   rainbow-delimiters-nvim = buildVimPlugin {
     pname = "rainbow-delimiters.nvim";
-    version = "2024-04-18";
+    version = "2024-05-11";
     src = fetchgit {
       url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
-      rev = "7ef0766b5cd2f5cdf4fcb08886f0a2ebf65981fa";
-      sha256 = "0pw3dk0rnaa2llvgkqar1j5wqrh3lah2ygvxaqiy7760pyanh38c";
+      rev = "dd1156723eb8483e4403eb8765bbdff456b6981d";
+      sha256 = "1cj3hylb73wqgllr5wnqjlzlwqr9s4f5yb4g4s2lra4g7a08grxj";
     };
     meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
   };
@@ -9582,12 +9582,12 @@ final: prev:
 
   rustaceanvim = buildNeovimPlugin {
     pname = "rustaceanvim";
-    version = "2024-05-04";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "rustaceanvim";
-      rev = "2eb8776df1aab03f514b38ddc39af57efbd8970b";
-      sha256 = "137k9skchcqplzrm07xkwxnrnnm3k5cam28a9yn2qaw4rmwf1zkp";
+      rev = "1c3d3a75bebcb16df2a093b147ba498185e4ab17";
+      sha256 = "1azz03ypygh1fk2gva9fyg294v8i3qig7yz4hncf05jm94wq137s";
     };
     meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
   };
@@ -9630,12 +9630,12 @@ final: prev:
 
   scnvim = buildVimPlugin {
     pname = "scnvim";
-    version = "2024-04-19";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "davidgranstrom";
       repo = "scnvim";
-      rev = "94e49fa6c596813247549cd594f5ab6246c79973";
-      sha256 = "1axbrakr3xpmvbdslh803xam72fg6ar428bgz04h0j2ygg75bqmy";
+      rev = "4777c0d661ea3776049b76d1328afc9879146420";
+      sha256 = "0y1qgfbza4v97ap0awpqh3f0zi94wwsc0jd391jvhjr18crankdl";
     };
     meta.homepage = "https://github.com/davidgranstrom/scnvim/";
   };
@@ -9823,12 +9823,12 @@ final: prev:
 
   smart-splits-nvim = buildVimPlugin {
     pname = "smart-splits.nvim";
-    version = "2024-05-03";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "smart-splits.nvim";
-      rev = "7c8118c6d568cbf71ce5c253f028d5d68eb3a044";
-      sha256 = "0clzgxw1b755kq9hbayhjl858jvpjivrcw94s8ciqar1wiq0bxdj";
+      rev = "159d4479a402d7f40cac1c097fa565fc2ba02cfb";
+      sha256 = "1hkx6c3krw0hsrz9jvja5c0cwk3vy3gm6z0imw1m4h3gddmijh8y";
     };
     meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
   };
@@ -10235,11 +10235,11 @@ final: prev:
     version = "2024-04-25";
     src = fetchFromGitHub {
       owner = "lambdalisue";
-      repo = "suda.vim";
+      repo = "vim-suda";
       rev = "b97fab52f9cdeabe2bbb5eb98d82356899f30829";
       sha256 = "12chb6hv6ynl54dzwb7qz6rf9vwjglxfnzcmmhc2q2wm0y264gbi";
     };
-    meta.homepage = "https://github.com/lambdalisue/suda.vim/";
+    meta.homepage = "https://github.com/lambdalisue/vim-suda/";
   };
 
   supertab = buildVimPlugin {
@@ -10524,13 +10524,13 @@ final: prev:
     pname = "telekasten.nvim";
     version = "2024-04-22";
     src = fetchFromGitHub {
-      owner = "renerocksai";
+      owner = "nvim-telekasten";
       repo = "telekasten.nvim";
       rev = "319276a7853ff996b7bb1ed4250d8047c84ad29d";
       sha256 = "05b8a9h8ni5pmj0x9r3pc8j4h77nbj2s6wmlx20w4h2vmwwp7k26";
       fetchSubmodules = true;
     };
-    meta.homepage = "https://github.com/renerocksai/telekasten.nvim/";
+    meta.homepage = "https://github.com/nvim-telekasten/telekasten.nvim/";
   };
 
   telescope-asynctasks-nvim = buildVimPlugin {
@@ -10680,12 +10680,12 @@ final: prev:
 
   telescope-manix = buildNeovimPlugin {
     pname = "telescope-manix";
-    version = "2024-05-05";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "telescope-manix";
-      rev = "f4c69bb9807367ee7b21a50d265c061ee58ea777";
-      sha256 = "193wv9lykjscc6cm2ycnygiw6d2kv02dpsqb944bhh7fkkgkc75i";
+      rev = "bfffb3a8cf1c0a4e615622c400fe13de973fe96b";
+      sha256 = "0ghrnb76ls1wnmjw525n9d203fc4y17azs8d6mcms4wf7kx7k4ag";
     };
     meta.homepage = "https://github.com/MrcJkb/telescope-manix/";
   };
@@ -10800,12 +10800,12 @@ final: prev:
 
   telescope-zf-native-nvim = buildVimPlugin {
     pname = "telescope-zf-native.nvim";
-    version = "2024-04-23";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "natecraddock";
       repo = "telescope-zf-native.nvim";
-      rev = "0b6ca4e354b706e2dce80f35ee6ff4cc75b9af08";
-      sha256 = "00hx112zkc65a8m5miw14f7k4z3gb310d667hnmvxda5ij2fss1s";
+      rev = "242ee15047e3400351982ef162301a898ec5cdda";
+      sha256 = "1kdjqi046nr052q9m50814k2df0nnmylgk8lcragc2z8sdnj5f73";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/natecraddock/telescope-zf-native.nvim/";
@@ -11174,12 +11174,12 @@ final: prev:
 
   triptych-nvim = buildVimPlugin {
     pname = "triptych.nvim";
-    version = "2024-04-21";
+    version = "2024-05-06";
     src = fetchFromGitHub {
       owner = "simonmclean";
       repo = "triptych.nvim";
-      rev = "a0e148aa979895fb4425b3653ee2ad15d64a4d90";
-      sha256 = "1gf2jdfpknap877ljpjbx37j4qg7lz91g9cd2p8l6894q322qw9z";
+      rev = "41dada0eb0f7c2b9d504df952be8535afab33115";
+      sha256 = "1h4hg5fxhvswcldh6lfn5sx8xbqn6kfzwk206c7xdqid1c4rcvw8";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/simonmclean/triptych.nvim/";
@@ -11355,12 +11355,12 @@ final: prev:
 
   unison = buildVimPlugin {
     pname = "unison";
-    version = "2024-05-03";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "unisonweb";
       repo = "unison";
-      rev = "9739cfedb2eee6697dffa6e9fa0c097eb400e23e";
-      sha256 = "1c5n3risndd7blm4slvwgzih9pvhi0nzsipamf2px3326qrx3sca";
+      rev = "daa7dc3c20bb837ef3aacbee0f0158c79ae14d96";
+      sha256 = "0baq40wn0nlni61jsxg141zm77qkrry1vmjphfr99gbr3iyc1fi0";
     };
     meta.homepage = "https://github.com/unisonweb/unison/";
   };
@@ -11463,12 +11463,12 @@ final: prev:
 
   vim-CtrlXA = buildVimPlugin {
     pname = "vim-CtrlXA";
-    version = "2024-04-07";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "Konfekt";
       repo = "vim-CtrlXA";
-      rev = "cb520cd3f9248b9ede236ff3da8ca3e0b68b6459";
-      sha256 = "1csbmjrdrlqsagz5b6hryrcglfdplwc7d26q4r20w37zx3f9qzw3";
+      rev = "d5c463d7a9b1249b3ecc03f796639fadf391c05f";
+      sha256 = "18jj5vqwz3xa3c9hyc1l0dcjnnxyb9a1wj4r5zg01ida5gsv3dkf";
     };
     meta.homepage = "https://github.com/Konfekt/vim-CtrlXA/";
   };
@@ -12531,12 +12531,12 @@ final: prev:
 
   vim-dadbod-ui = buildVimPlugin {
     pname = "vim-dadbod-ui";
-    version = "2024-05-01";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "5835df6497cc0e79cb149518d01f4f5c86dc546f";
-      sha256 = "13abp9ri5nbampwahw8dcmgzalqqq21lcb68zdpx520h3xkjkkxq";
+      rev = "b1675d1f56c12b0abac2ef74b94670fe27adcf93";
+      sha256 = "096rg4ydxyz6md2qla01wsgv9j00ysf6chxz9nyvp37w4av3illq";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -13925,12 +13925,12 @@ final: prev:
 
   vim-ledger = buildVimPlugin {
     pname = "vim-ledger";
-    version = "2024-05-02";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "ledger";
       repo = "vim-ledger";
-      rev = "58561ed511753c4ef0fd446010daa1c2b7979d42";
-      sha256 = "101hf1y607671yr488samydpn2hgp1hrj4qnxmicbsjyndg2c8dy";
+      rev = "7b97c8765bf920e92fd950a7a5bc37cb2b13a494";
+      sha256 = "0g66k9rrvdw0pkh7sqsdcms9viybqsibp1wpscync29ign7y12fa";
     };
     meta.homepage = "https://github.com/ledger/vim-ledger/";
   };
@@ -14009,12 +14009,12 @@ final: prev:
 
   vim-localvimrc = buildVimPlugin {
     pname = "vim-localvimrc";
-    version = "2024-03-18";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "841a0645272a485564b8739df91c81bcc03da899";
-      sha256 = "0v5yqw5qv3xjl6rhzj18mmdgj8wh12gqvql4yyz1fddf39nkdg69";
+      rev = "ee9df429b91d3e6ea33e173ef864b02c377036d0";
+      sha256 = "1f5ld9fm4fysgz9xixqkv3a87gvisc0w9q31alb6ypk3ib697c57";
     };
     meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
@@ -14165,12 +14165,12 @@ final: prev:
 
   vim-markbar = buildVimPlugin {
     pname = "vim-markbar";
-    version = "2024-04-01";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "Yilin-Yang";
       repo = "vim-markbar";
-      rev = "94ac768d97b447c6c2a57fac3e555d4348a2919d";
-      sha256 = "1287mslww730536xa5fl9czi70hs42zdfaq84jd0azjf7vw6q04i";
+      rev = "9f5a948d44652074bf2b90d3da6a400d8a369ba5";
+      sha256 = "1r341ick9zdkmk7s0b7v6jqc4bzi7p9grh6bg08b7q72yv90wqvl";
     };
     meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/";
   };
@@ -15426,12 +15426,12 @@ final: prev:
 
   vim-slime = buildVimPlugin {
     pname = "vim-slime";
-    version = "2024-05-01";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "947f96bdad01d0cf6e3886c2b0c910f4793b2f96";
-      sha256 = "028zax2lli0v0j2v65d2qmksny3a6m5wpxjsr8y16ryqsaipkk8h";
+      rev = "4a898d57f41bc35e99173c5a0a8720f1796459b5";
+      sha256 = "0pdxlrl7l4d0jvkm806dl8zq9gj7qncvyfncvffgvjvwgmkwdn31";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -15594,12 +15594,12 @@ final: prev:
 
   vim-spirv = buildVimPlugin {
     pname = "vim-spirv";
-    version = "2024-05-06";
+    version = "2024-05-12";
     src = fetchFromGitHub {
       owner = "kbenzie";
       repo = "vim-spirv";
-      rev = "8312705fb7038997464e32db83b6fc6ba6d70323";
-      sha256 = "13mzd4xkgg5hrv9wy8ynbys37plad8q1lwfvvnkigdnxac369hbq";
+      rev = "1f8ef77f2ae1990abcb99cee1a599280375e4349";
+      sha256 = "0mmkjpm82ibx8f22392mad4l8y6xssqbr2cf8cdrxbk22p3yzf86";
     };
     meta.homepage = "https://github.com/kbenzie/vim-spirv/";
   };
@@ -15798,12 +15798,12 @@ final: prev:
 
   vim-terraform = buildVimPlugin {
     pname = "vim-terraform";
-    version = "2024-02-13";
+    version = "2024-05-07";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "21f756b933cd11ac5990a6046fdc7c4e2a6c0aee";
-      sha256 = "1bp6nqsdn9h3ihy5y2na7n40nmjr1vqsjj845ks4kfrzfcsvmxms";
+      rev = "24de93afb05078bac6a2e966402cc1f672277708";
+      sha256 = "1d8r0qd3ncnh3rbax9vjd3rckjwikxydgy9zjklmgnhn51ynggzi";
     };
     meta.homepage = "https://github.com/hashivim/vim-terraform/";
   };
@@ -16555,12 +16555,12 @@ final: prev:
 
   vimspector = buildVimPlugin {
     pname = "vimspector";
-    version = "2024-02-17";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "def092693ea33eb2055fb2cfbcabb8e56ea77963";
-      sha256 = "0b4md13a4mdf2knmb0p3c83k3v04hl5y4z2sa2kci3shq41v694x";
+      rev = "c664d723ffe5d5179b906d8ef370b59e70b84f5a";
+      sha256 = "1953bdv2x0xs0cc6vjv3lsy9ipgv16la981wf83x64kxb1mkds0b";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -16568,12 +16568,12 @@ final: prev:
 
   vimtex = buildVimPlugin {
     pname = "vimtex";
-    version = "2024-05-05";
+    version = "2024-05-11";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "5732cd898cc7027e58191fe4be64da8dbc158995";
-      sha256 = "1m3i05p0vvryv74dwkxh40hapb8xg96bjq84p20q26q4lhnpczny";
+      rev = "8ca74380935beb4ed5d213bb55b2380cc1a83bd6";
+      sha256 = "1rmw0zqp1gwla5yml3i4smqpmqy8am0skgg786mrwkbs47harjfk";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -16664,12 +16664,12 @@ final: prev:
 
   vscode-nvim = buildVimPlugin {
     pname = "vscode.nvim";
-    version = "2024-04-26";
+    version = "2024-05-09";
     src = fetchFromGitHub {
       owner = "Mofiqul";
       repo = "vscode.nvim";
-      rev = "bf62428d842ed1fb9c33353be10af40bac51e825";
-      sha256 = "1g9zsrq6nxbs0gaxkmc6zam09z3rv6zrng25myd537vwdmnnd4r1";
+      rev = "1a2cb491a962acf3bbf53c6d0a61b4ec76012570";
+      sha256 = "1mjsy9g2hkrzhy6bhrphpiz3nr8wr4l7jxacbz224jm7x1i2zn1l";
     };
     meta.homepage = "https://github.com/Mofiqul/vscode.nvim/";
   };
@@ -16736,24 +16736,24 @@ final: prev:
 
   wiki-ft-vim = buildVimPlugin {
     pname = "wiki-ft.vim";
-    version = "2023-05-14";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "wiki-ft.vim";
-      rev = "d547e58dc7e6cf144e1d490a243b0788dd37104f";
-      sha256 = "1v6ra526m720njw1qbvmmw63mv58mjr0fkzq5gdiivrhk8kfg4zw";
+      rev = "10e3aa7ee58ae5351fc9ba0d692877a34cc99f08";
+      sha256 = "1cnqczi4pkfvd3q85qjmg6jd0kjn6l5lna2mlwfj15h528mkxjaw";
     };
     meta.homepage = "https://github.com/lervag/wiki-ft.vim/";
   };
 
   wiki-vim = buildVimPlugin {
     pname = "wiki.vim";
-    version = "2024-04-30";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "wiki.vim";
-      rev = "84e1e17198c738198d0effd8827437842a8b3a1b";
-      sha256 = "1l9ydins0h2qgq4zl98gnhj6jllllh4xxrn96jdrm4bf5g1x7g44";
+      rev = "afb7b9aa3b1058ae6f48e3bea7d5eae92bf00e99";
+      sha256 = "1qwcvbk0jf3x83q60bdp0j29xwkm49scwgrzfswpqf6xw1kyd7rk";
     };
     meta.homepage = "https://github.com/lervag/wiki.vim/";
   };
@@ -17085,12 +17085,12 @@ final: prev:
 
   catppuccin-nvim = buildVimPlugin {
     pname = "catppuccin-nvim";
-    version = "2024-05-04";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "6af91673ceccbd6e073b66c439e7fce239f72d24";
-      sha256 = "0g4smxrlvrvpb8zzigca4gybvc5s6czh4wc85jpjjx8js80ckjqj";
+      rev = "d97387aea8264f484bb5d5e74f2182a06c83e0d8";
+      sha256 = "1wybci6cjadjd5z0wkx2jmwb9ir72s4g4qrd9qsjl2qjfiaf26k9";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
@@ -17205,12 +17205,12 @@ final: prev:
 
   nvchad-ui = buildVimPlugin {
     pname = "nvchad-ui";
-    version = "2024-04-30";
+    version = "2024-05-08";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "ui";
-      rev = "9c16efc915346c7bde5288ad94f0ea40a7267d31";
-      sha256 = "0z9z23x2g72z2k7fdmgjz07r2lvn5jsmvb7md4jd98hjxjxid3zd";
+      rev = "4f507775f3935a39d994e7a1d3688e30f7fb8713";
+      sha256 = "0lrxhbcdmy2xpwwdxg9dyh954y7xxb8zc75b2lxf5z8lmpxi3ccp";
     };
     meta.homepage = "https://github.com/nvchad/ui/";
   };
@@ -17253,12 +17253,12 @@ final: prev:
 
   rose-pine = buildVimPlugin {
     pname = "rose-pine";
-    version = "2024-04-18";
+    version = "2024-05-10";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "17b466e79479758b332a3cac12544a3ad2be6241";
-      sha256 = "1fwwp7szzz2yp4z5hngqn8ll8765xv0nlhgcb75yj257kz7x5lq1";
+      rev = "b24b48d35b4f96bbc9a717d3220e959dbf89f6b1";
+      sha256 = "1bamxqqpq882klv5i7wdcm2pywwcjj3d85jvpw8w9wc15qkanqgm";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 4d74487e584dc..6e629842aa0a1 100644
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -27,12 +27,12 @@
   };
   angular = buildGrammar {
     language = "angular";
-    version = "0.0.0+rev=f12fc56";
+    version = "0.0.0+rev=10f21f3";
     src = fetchFromGitHub {
       owner = "dlvandenberg";
       repo = "tree-sitter-angular";
-      rev = "f12fc56469d778285fb35b5bdb943edcfe77c48a";
-      hash = "sha256-BR9siCgn3jPwlC1+HgJEo3N8I36nr0KGaOO2zWLv9T4=";
+      rev = "10f21f3f1b10584e62ecc113ab3cda1196d0ceb8";
+      hash = "sha256-hBvDFLIN4n0dbpH8FKe0sY8t4Jwa0GtrLt2GG04Qgn8=";
     };
     meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular";
   };
@@ -50,12 +50,12 @@
   };
   arduino = buildGrammar {
     language = "arduino";
-    version = "0.0.0+rev=8518c3f";
+    version = "0.0.0+rev=babb6d4";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-arduino";
-      rev = "8518c3fa6b8562af545a496d55c9abd78f53e732";
-      hash = "sha256-slPZSjN9SJQj4d5NDpxL1DbnnYia1Aroh7/bQJA2P0Q=";
+      rev = "babb6d4da69b359bbb80adbf1fe39c0da9175210";
+      hash = "sha256-nA/4SRlXfm8hMZw/GOQFAxzoPNAzVP0cCnHLc1ZawXU=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
   };
@@ -105,12 +105,12 @@
   };
   bash = buildGrammar {
     language = "bash";
-    version = "0.0.0+rev=f8fb327";
+    version = "0.0.0+rev=2fbd860";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-bash";
-      rev = "f8fb3274f72a30896075585b32b0c54cad65c086";
-      hash = "sha256-sj1qYb42k0hXXcNCKg1hINYD11wDcVpnoPhZNtlYT6k=";
+      rev = "2fbd860f802802ca76a6661ce025b3a3bca2d3ed";
+      hash = "sha256-rCuQbnQAOnQWKYreNH80nlL+0A1qbWbjMvtczcoWPrY=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-bash";
   };
@@ -182,23 +182,23 @@
   };
   c = buildGrammar {
     language = "c";
-    version = "0.0.0+rev=1aafaff";
+    version = "0.0.0+rev=82fb86a";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-c";
-      rev = "1aafaff4d26dac5a36dd3495be33e1c20161d761";
-      hash = "sha256-eix/BqsZzrJc+h1sHiG/IDtdyZvIsEdox71sPMNXs58=";
+      rev = "82fb86aa544843bd17a9f0f3dc16edf645a34349";
+      hash = "sha256-wiCgRSrJodNq7WVQTIDsQ6K/ZrgnSFdGG9kDegu6zGs=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
   };
   c_sharp = buildGrammar {
     language = "c_sharp";
-    version = "0.0.0+rev=e1384e2";
+    version = "0.0.0+rev=82fa8f0";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-c-sharp";
-      rev = "e1384e2f132936019b43aaaae154cd780fb497ce";
-      hash = "sha256-TxmJCKs7wqkceczHtOCVSzhlIZmpY86MuQo05Yy4J98=";
+      rev = "82fa8f05f41a33e9bc830f85d74a9548f0291738";
+      hash = "sha256-5GkU3/yVMCnNvNssad3vEIN8PlbLeQsRBlwgH2KUrBo=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp";
   };
@@ -259,12 +259,12 @@
   };
   comment = buildGrammar {
     language = "comment";
-    version = "0.0.0+rev=aefcc28";
+    version = "0.0.0+rev=5d8b29f";
     src = fetchFromGitHub {
       owner = "stsewd";
       repo = "tree-sitter-comment";
-      rev = "aefcc2813392eb6ffe509aa0fc8b4e9b57413ee1";
-      hash = "sha256-ihkBqdYVulTlysb9J8yg4c5XVktJw8jIwzhqybBw8Ug=";
+      rev = "5d8b29f6ef3bf64d59430dcfe76b31cc44b5abfd";
+      hash = "sha256-19jxH6YK3Rn0fOGSiWen5/eNKPKUSXVsIYB/QAPEA1I=";
     };
     meta.homepage = "https://github.com/stsewd/tree-sitter-comment";
   };
@@ -325,12 +325,12 @@
   };
   css = buildGrammar {
     language = "css";
-    version = "0.0.0+rev=2e868a7";
+    version = "0.0.0+rev=f6be52c";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-css";
-      rev = "2e868a75a518531656b493cba36ef60d8c61cc89";
-      hash = "sha256-KGhTAYeuEkEDbKyKAI359RXpcdFjVHxWNLPAjZ4l+68=";
+      rev = "f6be52c3d1cdb1c5e4dd7d8bce0a57497f55d6af";
+      hash = "sha256-V1KrNM5C03RcRYcRIPxxfyWlnQkbyAevTHuZINn3Bdc=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-css";
   };
@@ -348,12 +348,12 @@
   };
   cuda = buildGrammar {
     language = "cuda";
-    version = "0.0.0+rev=c794560";
+    version = "0.0.0+rev=e7878a9";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-cuda";
-      rev = "c794560823013fc4cc29944d862b7158d9585408";
-      hash = "sha256-YiLsKDLiiH8JUFdnaqYrEk7xy4IIAFUFVSjwhXEoD8U=";
+      rev = "e7878a9cf4157e9d6c8013ff5605c9f26d62894d";
+      hash = "sha256-1UCYWY6DvanLdFeS0ALHG3eJT/Rk/muZTkFm3YwF5II=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
   };
@@ -447,12 +447,12 @@
   };
   dockerfile = buildGrammar {
     language = "dockerfile";
-    version = "0.0.0+rev=439c3e7";
+    version = "0.0.0+rev=087daa2";
     src = fetchFromGitHub {
       owner = "camdencheek";
       repo = "tree-sitter-dockerfile";
-      rev = "439c3e7b8a9bfdbf1f7d7c2beaae4173dc484cbf";
-      hash = "sha256-sW3fCCAXNak4JszEPgspZFfOHtUlqnW3eRxzHNfzInk=";
+      rev = "087daa20438a6cc01fa5e6fe6906d77c869d19fe";
+      hash = "sha256-uDRDq6MYYV8nh6FDsQN3tdyZywEg8A224bfWrgFGvFs=";
     };
     meta.homepage = "https://github.com/camdencheek/tree-sitter-dockerfile";
   };
@@ -480,12 +480,12 @@
   };
   dtd = buildGrammar {
     language = "dtd";
-    version = "0.0.0+rev=5910ee2";
+    version = "0.0.0+rev=648183d";
     src = fetchFromGitHub {
       owner = "tree-sitter-grammars";
       repo = "tree-sitter-xml";
-      rev = "5910ee285378e07ff1e63a9f5d21898f62310aed";
-      hash = "sha256-X/DhTD/cNWoBxWvBBwPmGqAUtJjWkvo0PnbFK/lrTUg=";
+      rev = "648183d86f6f8ffb240ea11b4c6873f6f45d8b67";
+      hash = "sha256-O40z5VYmFeE8pkJ85Vu5DWV31YslIrwD80+4qnpoRNY=";
     };
     location = "dtd";
     meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
@@ -581,12 +581,12 @@
   };
   embedded_template = buildGrammar {
     language = "embedded_template";
-    version = "0.0.0+rev=6d791b8";
+    version = "0.0.0+rev=38d5004";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-embedded-template";
-      rev = "6d791b897ecda59baa0689a85a9906348a2a6414";
-      hash = "sha256-I4L3mxkAnmKs+BiNRDAs58QFD2r8jN1B2yv0dZdgkzQ=";
+      rev = "38d5004a797298dc42c85e7706c5ceac46a3f29f";
+      hash = "sha256-IPPCexaq42Em5A+kmrj5e/SFrXoKdWCTYAL/TWvbDJ0=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-embedded-template";
   };
@@ -812,12 +812,12 @@
   };
   gleam = buildGrammar {
     language = "gleam";
-    version = "0.0.0+rev=a0b11a1";
+    version = "0.0.0+rev=8432ffe";
     src = fetchFromGitHub {
       owner = "gleam-lang";
       repo = "tree-sitter-gleam";
-      rev = "a0b11a15935b95848176c747a8b5776752d90d7c";
-      hash = "sha256-h7IDqQpqPFC5WwR2fPxCKLvvdYCFqm5CPf6EJ36qsxQ=";
+      rev = "8432ffe32ccd360534837256747beb5b1c82fca1";
+      hash = "sha256-PO01z8vyzDT4ZGPxgZl9PPsp/gktT2TaCwutMy87i8E=";
     };
     meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
   };
@@ -834,12 +834,12 @@
   };
   glsl = buildGrammar {
     language = "glsl";
-    version = "0.0.0+rev=9f61177";
+    version = "0.0.0+rev=8c9fb41";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-glsl";
-      rev = "9f611774fb5b95993e31e03f137b4a689c63f827";
-      hash = "sha256-WLKfP4gE2bOU5ksDmbcTdf6Gud8BoFOv3wX6UyNgkvM=";
+      rev = "8c9fb41836dc202bbbcf0e2369f256055786dedb";
+      hash = "sha256-aUM0gisdoV3A9lWSjn21wXIBI8ZrKI/5IffAaf917e4=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
   };
@@ -867,12 +867,12 @@
   };
   go = buildGrammar {
     language = "go";
-    version = "0.0.0+rev=eb68645";
+    version = "0.0.0+rev=7ee8d92";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-go";
-      rev = "eb68645662a3f7bf7fdd4bcb9531585f54c8570e";
-      hash = "sha256-RZx8M3QGX/+kfjbEB0+f2jeDZhGF+XGXwtb5oltxHrI=";
+      rev = "7ee8d928db5202f6831a78f8112fd693bf69f98b";
+      hash = "sha256-ARfpfMSXy+DpvUMJvUgjgReoyvGbrVwYutZD91JA4qc=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-go";
   };
@@ -999,12 +999,12 @@
   };
   haskell = buildGrammar {
     language = "haskell";
-    version = "0.0.0+rev=af32d88";
+    version = "0.0.0+rev=a50070d";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-haskell";
-      rev = "af32d884088ce7b74541b5e51820baa7e305caae";
-      hash = "sha256-w4F1PtVjg7FWPRQQMSV8nU7GwCISiCgaIre+S63N+T0=";
+      rev = "a50070d5bb5bd5c1281740a6102ecf1f4b0c4f19";
+      hash = "sha256-huO0Ly9JYQbT64o/AjdZrE9vghQ5vT+/iQl50o4TJ0I=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-haskell";
   };
@@ -1066,12 +1066,12 @@
   };
   hlsl = buildGrammar {
     language = "hlsl";
-    version = "0.0.0+rev=de5d490";
+    version = "0.0.0+rev=feea0ff";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-hlsl";
-      rev = "de5d490e52aa7be2a877df7022f93dff05f03eb9";
-      hash = "sha256-5eHyyk6m8VNjenjM1xDBhZcROwzSm/O+9GtgyiXNHFc=";
+      rev = "feea0ff6eccda8be958c133985dca8977db3d887";
+      hash = "sha256-VIrNt9pjNtwVbQKZGPota5blxbPGGEhdiRYtPNU/XtA=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
   };
@@ -1165,12 +1165,12 @@
   };
   idl = buildGrammar {
     language = "idl";
-    version = "0.0.0+rev=d9a260e";
+    version = "0.0.0+rev=e885d7f";
     src = fetchFromGitHub {
       owner = "cathaysia";
       repo = "tree-sitter-idl";
-      rev = "d9a260eda455deaa36d2edf398963b0736ed0845";
-      hash = "sha256-4NQmZ8H5mmKQDaPlKkAgDKfARjM+m6G9Wb7PcQk+NS0=";
+      rev = "e885d7fd66c2549b7a28172400d645d27656f5cb";
+      hash = "sha256-japZBj8H+NTTw/Ne7prSjhZD6idcLjPCKEB3OjSSoxc=";
     };
     meta.homepage = "https://github.com/cathaysia/tree-sitter-idl";
   };
@@ -1231,12 +1231,12 @@
   };
   javascript = buildGrammar {
     language = "javascript";
-    version = "0.0.0+rev=c002746";
+    version = "0.0.0+rev=e88537c";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-javascript";
-      rev = "c0027460e8f9629afeeb27f7949ecf961c82d707";
-      hash = "sha256-/h8h+Rxabs+uBs/c9K1nc/K7viygBhuH3DJbqeQSCpI=";
+      rev = "e88537c2703546f3f0887dd3f16898e1749cdba5";
+      hash = "sha256-/poR9qMfjWKJW6aw0s6VjNh7fkf/HvUJNZIeZ1YEwVM=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
   };
@@ -1253,23 +1253,23 @@
   };
   jsdoc = buildGrammar {
     language = "jsdoc";
-    version = "0.0.0+rev=6a6cf9e";
+    version = "0.0.0+rev=49fde20";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-jsdoc";
-      rev = "6a6cf9e7341af32d8e2b2e24a37fbfebefc3dc55";
-      hash = "sha256-fKscFhgZ/BQnYnE5EwurFZgiE//O0WagRIHVtDyes/Y=";
+      rev = "49fde205b59a1d9792efc21ee0b6d50bbd35ff14";
+      hash = "sha256-Mfau8071UiotdSS+/W9kQWhKF7BCRI8WtRxss/U0GQw=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-jsdoc";
   };
   json = buildGrammar {
     language = "json";
-    version = "0.0.0+rev=80e623c";
+    version = "0.0.0+rev=94f5c52";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-json";
-      rev = "80e623c2165887f9829357acfa9c0a0bab34a3cd";
-      hash = "sha256-waejAbS7MjrE7w03MPqvBRpEpqTcKc6RgKCVSYaDV1Y=";
+      rev = "94f5c527b2965465956c2000ed6134dd24daf2a7";
+      hash = "sha256-16/ZRjRolUC/iN7ASrNnXNSkfohBlSqyyYAz4nka6pM=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-json";
   };
@@ -1352,12 +1352,12 @@
   };
   kotlin = buildGrammar {
     language = "kotlin";
-    version = "0.0.0+rev=eca05ed";
+    version = "0.0.0+rev=c9cb850";
     src = fetchFromGitHub {
       owner = "fwcd";
       repo = "tree-sitter-kotlin";
-      rev = "eca05edbab1918d7d36a0d30d086ba7b6b1e8803";
-      hash = "sha256-cmtUGmytAgiqBi31CNxEX+vE3YXmH1hphsIHvGRd7SY=";
+      rev = "c9cb8504b81684375e7beb8907517dbd6947a1be";
+      hash = "sha256-fuEKCtCzaWOp0gKrsPMOW9oGOXnM2Qb652Nhn1lc1eA=";
     };
     meta.homepage = "https://github.com/fwcd/tree-sitter-kotlin";
   };
@@ -1385,12 +1385,12 @@
   };
   lalrpop = buildGrammar {
     language = "lalrpop";
-    version = "0.0.0+rev=123d8b4";
+    version = "0.0.0+rev=854a40e";
     src = fetchFromGitHub {
       owner = "traxys";
       repo = "tree-sitter-lalrpop";
-      rev = "123d8b472e949b59f348c32e245107a34a3d8945";
-      hash = "sha256-+06eppRj7TynVYOMs30/7kUM69RqdmryIoBuiZJ7DvY=";
+      rev = "854a40e99f7c70258e522bdb8ab584ede6196e2e";
+      hash = "sha256-rVWmYF26DbPHoNRBv9FKEeacSbgw93PHy/wrQDGzlWk=";
     };
     meta.homepage = "https://github.com/traxys/tree-sitter-lalrpop";
   };
@@ -1608,12 +1608,12 @@
   };
   mlir = buildGrammar {
     language = "mlir";
-    version = "0.0.0+rev=ed52870";
+    version = "0.0.0+rev=a708e9b";
     src = fetchFromGitHub {
       owner = "artagnon";
       repo = "tree-sitter-mlir";
-      rev = "ed528701a1ee52d4735c3439da262c898e506fc3";
-      hash = "sha256-VDwKpSRRlZDjrJH7NqKUZm596M/glWhAimkmH0POue4=";
+      rev = "a708e9b3f3d7f2fc85ac3fd1d4317c51b101eab0";
+      hash = "sha256-ITimvcYGqPUrqg3Z9EyfhEznzME2TKBOJpr0Fbc3OoE=";
     };
     generate = true;
     meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
@@ -1777,12 +1777,12 @@
   };
   odin = buildGrammar {
     language = "odin";
-    version = "0.0.0+rev=b5f668e";
+    version = "0.0.0+rev=f25b8c5";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-odin";
-      rev = "b5f668ef8918aab13812ce73acd89fe191fb8c5e";
-      hash = "sha256-D/+ls8a5efAy3sBaH1eGEifEwBRmz+6bYIMGNji949Q=";
+      rev = "f25b8c5201c1480dc0c8c4155a059a79a5a40719";
+      hash = "sha256-720CY0OKlq1P+9g0VHQ6l0lTBjGy/tYiolL8e2ahd8o=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-odin";
   };
@@ -1832,47 +1832,47 @@
   };
   perl = buildGrammar {
     language = "perl";
-    version = "0.0.0+rev=96a17c4";
+    version = "0.0.0+rev=d4ebabd";
     src = fetchFromGitHub {
       owner = "tree-sitter-perl";
       repo = "tree-sitter-perl";
-      rev = "96a17c4c2dd345dc61f330d040684538d634bbc2";
-      hash = "sha256-I/76AfSPU5WOwch8inBWojIraJGVffnGvOpQepq6qYU=";
+      rev = "d4ebabd45bcb053fcc7f6688b5c8ed80c7ae7a32";
+      hash = "sha256-0WnI0L6Tuy3FD4XxCZR1HcQyo5uv0VXhK8eqopCAS+A=";
     };
     meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
   };
   php = buildGrammar {
     language = "php";
-    version = "0.0.0+rev=58054be";
+    version = "0.0.0+rev=d5aea05";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "58054be104db0809ea6f119514a4d904f95e5b5c";
-      hash = "sha256-oMn+0p+b01gSgGm5nrXO5FX9Je6y8bBNwP72x2e0hZU=";
+      rev = "d5aea05a70c5d021fa746516391f156d35658875";
+      hash = "sha256-Wk8JBHqAPIHDGQ6+cw/ATFdeFGZZZ3XgkPCuAOFUROs=";
     };
     location = "php";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
   };
   php_only = buildGrammar {
     language = "php_only";
-    version = "0.0.0+rev=58054be";
+    version = "0.0.0+rev=d5aea05";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "58054be104db0809ea6f119514a4d904f95e5b5c";
-      hash = "sha256-oMn+0p+b01gSgGm5nrXO5FX9Je6y8bBNwP72x2e0hZU=";
+      rev = "d5aea05a70c5d021fa746516391f156d35658875";
+      hash = "sha256-Wk8JBHqAPIHDGQ6+cw/ATFdeFGZZZ3XgkPCuAOFUROs=";
     };
     location = "php_only";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
   };
   phpdoc = buildGrammar {
     language = "phpdoc";
-    version = "0.0.0+rev=f285e33";
+    version = "0.0.0+rev=1d0e255";
     src = fetchFromGitHub {
       owner = "claytonrcarter";
       repo = "tree-sitter-phpdoc";
-      rev = "f285e338d328a03920a9bfd8dda78585c7ddcca3";
-      hash = "sha256-kvAZ1+tbw6bAtLhPeNGi1rmnyNhBSL/nynQADX+4tMw=";
+      rev = "1d0e255b37477d0ca46f1c9e9268c8fa76c0b3fc";
+      hash = "sha256-EWj/Av8+Ri7KiC9LzH73ytufjkp3MxBPwfm6mF3IGD8=";
     };
     meta.homepage = "https://github.com/claytonrcarter/tree-sitter-phpdoc";
   };
@@ -2066,12 +2066,12 @@
   };
   ql = buildGrammar {
     language = "ql";
-    version = "0.0.0+rev=fa5c382";
+    version = "0.0.0+rev=42becd6";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ql";
-      rev = "fa5c3821dd2161f5c8528a8cbdb258daa6dc4de6";
-      hash = "sha256-5Fc9u7sTWG/RRcg/B5uiF8wjsbHCNt+fcOtCPgf4gyo=";
+      rev = "42becd6f8f7bae82c818fa3abb1b6ff34b552310";
+      hash = "sha256-OFqBI9u5Ik6AoG88v7qTVnol5H9O/n1vaZhoxQ7Sj70=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ql";
   };
@@ -2088,23 +2088,23 @@
   };
   qmljs = buildGrammar {
     language = "qmljs";
-    version = "0.0.0+rev=239f262";
+    version = "0.0.0+rev=2c57cac";
     src = fetchFromGitHub {
       owner = "yuja";
       repo = "tree-sitter-qmljs";
-      rev = "239f2627b4c7859fd9adc53609cb40fa0a5431ce";
-      hash = "sha256-xlQ/C8rrjOMUZpciOJ+gjmS4zlRJYnhWtkoBKxssXCA=";
+      rev = "2c57cac27e207425f8df15327884434cb12365a3";
+      hash = "sha256-LFOujMN9HMtDqjq2ZOP0oxydQHFS0wvL6ORBqruGXeM=";
     };
     meta.homepage = "https://github.com/yuja/tree-sitter-qmljs";
   };
   query = buildGrammar {
     language = "query";
-    version = "0.0.0+rev=608c011";
+    version = "0.0.0+rev=d25e8d1";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "tree-sitter-query";
-      rev = "608c01187fb9f525a1e4cf585bb63d73dea280b7";
-      hash = "sha256-kOlWlABRCv0eZcTNOkRhJxA4t0IUUvk1pi1s8UiWons=";
+      rev = "d25e8d183f319497b8b22a2a1585975b020da722";
+      hash = "sha256-c4ttg5UXtRlUdtljQwczoBSR/oX+rnj5gUqR8EIYMKQ=";
     };
     meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
   };
@@ -2176,12 +2176,12 @@
   };
   regex = buildGrammar {
     language = "regex";
-    version = "0.0.0+rev=ba22e4e";
+    version = "0.0.0+rev=47007f1";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-regex";
-      rev = "ba22e4e0cb42b2ef066948d0ea030ac509cef733";
-      hash = "sha256-mb8y3lsbN5zEpVCeBQxGXSRqC3FKsvNg1Rb1XTSh3Qo=";
+      rev = "47007f195752d8e57bda80b0b6cdb2d173a9f7d7";
+      hash = "sha256-X1CEk4nLxXY1a3PHG+4uSDKAXmsJIhd0nVYieTaHOkk=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-regex";
   };
@@ -2242,12 +2242,12 @@
   };
   ron = buildGrammar {
     language = "ron";
-    version = "0.0.0+rev=f0ddc95";
+    version = "0.0.0+rev=7893855";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-ron";
-      rev = "f0ddc95a4b7bb21a7308642255a80f5496e69c5b";
-      hash = "sha256-Wi81LYFfQXjZzj2OuxB64sNDEim/eZKViMeQ0h/w88k=";
+      rev = "78938553b93075e638035f624973083451b29055";
+      hash = "sha256-Sp0g6AWKHNjyUmL5k3RIU+5KtfICfg3o/DH77XRRyI0=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-ron";
   };
@@ -2264,23 +2264,23 @@
   };
   ruby = buildGrammar {
     language = "ruby";
-    version = "0.0.0+rev=9d86f37";
+    version = "0.0.0+rev=788a63c";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ruby";
-      rev = "9d86f3761bb30e8dcc81e754b81d3ce91848477e";
-      hash = "sha256-Ibfu+5NWCkw7jriy1tiMLplpXNZfZf8WP30lDU1//GM=";
+      rev = "788a63ca1b7619288980aaafd37d890ee2469421";
+      hash = "sha256-FvLSj0lTNNabneXrDH7/HQq4mcTLvBwhkPW/Pf48JWc=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby";
   };
   rust = buildGrammar {
     language = "rust";
-    version = "0.0.0+rev=0435214";
+    version = "0.0.0+rev=9c84af0";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-rust";
-      rev = "04352146022062c101b8ddd853adf17eadd8cf56";
-      hash = "sha256-4CTh6fKSV8TuMHLAfEKWsAeCqeCM2uo6hVmF5KWhyPY=";
+      rev = "9c84af007b0f144954adb26b3f336495cbb320a7";
+      hash = "sha256-mwnikq3s7Ien68DYT3p9oVGy7xjBgtiJMHAwMj5HXHI=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
   };
@@ -2353,12 +2353,12 @@
   };
   smali = buildGrammar {
     language = "smali";
-    version = "0.0.0+rev=3f65178";
+    version = "0.0.0+rev=fdfa6a1";
     src = fetchFromGitHub {
       owner = "tree-sitter-grammars";
       repo = "tree-sitter-smali";
-      rev = "3f6517855898ef23023e5d64a8b175d4ee8d646e";
-      hash = "sha256-K1cRK4D0BE9FNq1tpa0L3Crc+8woXIwhRPg86+73snk=";
+      rev = "fdfa6a1febc43c7467aa7e937b87b607956f2346";
+      hash = "sha256-S0U6Xuntz16DrpYwSqMQu8Cu7UuD/JufHUxIHv826yw=";
     };
     meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-smali";
   };
@@ -2386,12 +2386,12 @@
   };
   solidity = buildGrammar {
     language = "solidity";
-    version = "0.0.0+rev=fa5c61c";
+    version = "0.0.0+rev=b5a23ea";
     src = fetchFromGitHub {
       owner = "JoranHonig";
       repo = "tree-sitter-solidity";
-      rev = "fa5c61c7c5a2d9e8e99439e2cec90225f4acb86b";
-      hash = "sha256-evB+BQPPANC0JV7i74KYbGyFxE3N5OSOOF+ujA93y2E=";
+      rev = "b5a23ead0f69d38b5c9a630f52f5c129132c16ed";
+      hash = "sha256-xOW5C/Bcx2xg/6MPYulQkolWGwyQ+htRKvTnkFnqzOE=";
     };
     meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
   };
@@ -2421,12 +2421,12 @@
   };
   sourcepawn = buildGrammar {
     language = "sourcepawn";
-    version = "0.0.0+rev=3ca89fd";
+    version = "0.0.0+rev=6a67772";
     src = fetchFromGitHub {
       owner = "nilshelmig";
       repo = "tree-sitter-sourcepawn";
-      rev = "3ca89fdf998340a7973e276b39516d8902950f86";
-      hash = "sha256-AF7PiM0Tt6wqGdNsfMGSkgWXgZRDZGdKc7DQpUHuGUA=";
+      rev = "6a67772eed866cd6d247cc478a28c6a9272fc0ef";
+      hash = "sha256-sroMixo0FvPpC01F/hx5VV3h9ugdLhVbGeVnIlabyk0=";
     };
     meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
   };
@@ -2454,12 +2454,12 @@
   };
   squirrel = buildGrammar {
     language = "squirrel";
-    version = "0.0.0+rev=f93fd28";
+    version = "0.0.0+rev=0a50d31";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-squirrel";
-      rev = "f93fd2864dd05cc39b0490145fd86a1a93bfa3a3";
-      hash = "sha256-06cmaCyBkdwSmIHSEE0xr9V4M6pp+ApIZNopbnW3pok=";
+      rev = "0a50d31098e83c668d34d1160a0f6c7d23b571cc";
+      hash = "sha256-cLMAeDfZiHInA9+Td8FedRVSNv1vFE/bpCftRqV72d0=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-squirrel";
   };
@@ -2542,12 +2542,12 @@
   };
   swift = buildGrammar {
     language = "swift";
-    version = "0.0.0+rev=5f5d7a2";
+    version = "0.0.0+rev=c9c669b";
     src = fetchFromGitHub {
       owner = "alex-pinkus";
       repo = "tree-sitter-swift";
-      rev = "5f5d7a2a04f2d367a010ed908cc956e7b05fde4f";
-      hash = "sha256-8BTyk99cc4kWpx1tvfMLyrKeZUQRRN0oMGw4Vz54Gtc=";
+      rev = "c9c669b4513479e07a0ff44cf14f72351959ac21";
+      hash = "sha256-OyT7jkGTuNG7eQrQvZRI49ipu+MMXTOz/1O7r42MaOk=";
     };
     generate = true;
     meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@@ -2587,23 +2587,23 @@
   };
   tablegen = buildGrammar {
     language = "tablegen";
-    version = "0.0.0+rev=6b7eb09";
+    version = "0.0.0+rev=b117088";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-tablegen";
-      rev = "6b7eb096621443627cc5e29c8c34ff1fde482cf3";
-      hash = "sha256-kdOqHAyKAI4IgI2/GbEx13DWLB8JklURd3ndaicxUno=";
+      rev = "b1170880c61355aaf38fc06f4af7d3c55abdabc4";
+      hash = "sha256-uJCn2RdTnOf/guBUhfodgQ8pMshNh+xUJZunoLwNgrM=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-tablegen";
   };
   tact = buildGrammar {
     language = "tact";
-    version = "0.0.0+rev=f65460e";
+    version = "0.0.0+rev=034df21";
     src = fetchFromGitHub {
       owner = "tact-lang";
       repo = "tree-sitter-tact";
-      rev = "f65460eb0746037bc15913e2737afcf87745b66b";
-      hash = "sha256-qoyiJzM1GMvHMpI3unnW9SysHMEw28mb64Xt1pO/hTI=";
+      rev = "034df2162ed7b654efd999942e266be713c7cde0";
+      hash = "sha256-2+MVrDPuhrM0HE9uRG5LpmyXYy73Pv3MY20UXwBXalM=";
     };
     meta.homepage = "https://github.com/tact-lang/tree-sitter-tact";
   };
@@ -2632,12 +2632,12 @@
   };
   templ = buildGrammar {
     language = "templ";
-    version = "0.0.0+rev=c06e7bf";
+    version = "0.0.0+rev=d631f60";
     src = fetchFromGitHub {
       owner = "vrischmann";
       repo = "tree-sitter-templ";
-      rev = "c06e7bf0edfa211f6a7665a3c7fa25c1198850b2";
-      hash = "sha256-E2Dkq4o9RDzPHnIq9TgjXAtJS5u6l/zV6KAcq+NSD6Y=";
+      rev = "d631f60287c0904770bc41aa865e249594b52422";
+      hash = "sha256-rANNbNlybga+IGNfclMGX0On48sQ3WTWvw3bnhxKsZk=";
     };
     meta.homepage = "https://github.com/vrischmann/tree-sitter-templ";
   };
@@ -2688,12 +2688,12 @@
   };
   tlaplus = buildGrammar {
     language = "tlaplus";
-    version = "0.0.0+rev=763f9a4";
+    version = "0.0.0+rev=08d9156";
     src = fetchFromGitHub {
       owner = "tlaplus-community";
       repo = "tree-sitter-tlaplus";
-      rev = "763f9a4edcb1747595842164614aa143eec084dd";
-      hash = "sha256-xkJbiDsheVhcSoMRLLvF4GPOBPRsGxWClyF8khTd0CI=";
+      rev = "08d915655d360bb0b7592d38a533dcc17dcb8dfb";
+      hash = "sha256-zE48mJUoCiyF4YDQyZtxMIqUq+99BWT4XGxeTzcWLYY=";
     };
     meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
   };
@@ -2744,12 +2744,12 @@
   };
   tsx = buildGrammar {
     language = "tsx";
-    version = "0.0.0+rev=b00b8eb";
+    version = "0.0.0+rev=7b4275d";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-typescript";
-      rev = "b00b8eb44f0b9f02556da0b1a4e2f71faed7e61b";
-      hash = "sha256-uGuwE1eTVEkuosMfTeY2akHB+bJ5npWEwUv+23nhY9M=";
+      rev = "7b4275d077ae196fc0ce42ab3ad091574e3ec519";
+      hash = "sha256-oRvAU+g2wOZrUexWAsDTY+g9iSXVs5FvGlGIAdcfIfA=";
     };
     location = "tsx";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@@ -2778,12 +2778,12 @@
   };
   typescript = buildGrammar {
     language = "typescript";
-    version = "0.0.0+rev=b00b8eb";
+    version = "0.0.0+rev=7b4275d";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-typescript";
-      rev = "b00b8eb44f0b9f02556da0b1a4e2f71faed7e61b";
-      hash = "sha256-uGuwE1eTVEkuosMfTeY2akHB+bJ5npWEwUv+23nhY9M=";
+      rev = "7b4275d077ae196fc0ce42ab3ad091574e3ec519";
+      hash = "sha256-oRvAU+g2wOZrUexWAsDTY+g9iSXVs5FvGlGIAdcfIfA=";
     };
     location = "typescript";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@@ -2801,12 +2801,12 @@
   };
   typst = buildGrammar {
     language = "typst";
-    version = "0.0.0+rev=4610172";
+    version = "0.0.0+rev=3924cb9";
     src = fetchFromGitHub {
       owner = "uben0";
       repo = "tree-sitter-typst";
-      rev = "4610172f312e8ce5184e6882be5ad1a1cd800fbe";
-      hash = "sha256-vIDVnm89mcbEDV8u6x2HO6CgkNaGEVMRRlrT3dLIFcQ=";
+      rev = "3924cb9ed9e0e62ce7df9c4fe0faa4c234795999";
+      hash = "sha256-W8mNIASM85btE3XychvagVJofIb+CkNT4XeIhdQt8FU=";
     };
     meta.homepage = "https://github.com/uben0/tree-sitter-typst";
   };
@@ -2857,12 +2857,12 @@
   };
   uxntal = buildGrammar {
     language = "uxntal";
-    version = "0.0.0+rev=4c5ecd6";
+    version = "0.0.0+rev=ad9b638";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-uxntal";
-      rev = "4c5ecd6326ebd61f6f9a22a370cbd100e0d601da";
-      hash = "sha256-vgeTsRJ3mlR02jXuucmXpszVOmusZwuV0xj/7sSs+WQ=";
+      rev = "ad9b638b914095320de85d59c49ab271603af048";
+      hash = "sha256-hR0EaYv1++MJ0pdBl3ZtyEljitnp5hgFWQa9F6b1KE4=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-uxntal";
   };
@@ -3012,24 +3012,24 @@
   };
   xml = buildGrammar {
     language = "xml";
-    version = "0.0.0+rev=5910ee2";
+    version = "0.0.0+rev=648183d";
     src = fetchFromGitHub {
       owner = "tree-sitter-grammars";
       repo = "tree-sitter-xml";
-      rev = "5910ee285378e07ff1e63a9f5d21898f62310aed";
-      hash = "sha256-X/DhTD/cNWoBxWvBBwPmGqAUtJjWkvo0PnbFK/lrTUg=";
+      rev = "648183d86f6f8ffb240ea11b4c6873f6f45d8b67";
+      hash = "sha256-O40z5VYmFeE8pkJ85Vu5DWV31YslIrwD80+4qnpoRNY=";
     };
     location = "xml";
     meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
   };
   yaml = buildGrammar {
     language = "yaml";
-    version = "0.0.0+rev=08ab1fb";
+    version = "0.0.0+rev=7b03fee";
     src = fetchFromGitHub {
       owner = "tree-sitter-grammars";
       repo = "tree-sitter-yaml";
-      rev = "08ab1fbc18beac06b2938495a2c6ab17b5a6abc5";
-      hash = "sha256-Xwx6UEfdOP3lakMvQB5CQjtrhSfkJ19eaT1YyUhRpss=";
+      rev = "7b03feefd36b5f155465ca736c6304aca983b267";
+      hash = "sha256-hjZQv8kMpjJ29Rl6CEBwb090rFNWP1HPkSECbmTr0zQ=";
     };
     meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-yaml";
   };
@@ -3046,12 +3046,12 @@
   };
   yuck = buildGrammar {
     language = "yuck";
-    version = "0.0.0+rev=a513732";
+    version = "0.0.0+rev=e877f6a";
     src = fetchFromGitHub {
       owner = "Philipp-M";
       repo = "tree-sitter-yuck";
-      rev = "a513732feb813426b51d1ead8397a9c285c411be";
-      hash = "sha256-XfenP9bXkskCfiq2sE8qLog0NmSecP50Ur+8HDtU4pQ=";
+      rev = "e877f6ade4b77d5ef8787075141053631ba12318";
+      hash = "sha256-l8c1/7q8S78jGyl+VAVVgs8wq58PrrjycyJfWXsCgAI=";
     };
     meta.homepage = "https://github.com/Philipp-M/tree-sitter-yuck";
   };
diff --git a/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix b/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix
index 67a96652b6ed6..35bc6cdcef238 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix
@@ -21,8 +21,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "python";
     publisher = "ms-python";
-    version = "2023.1.10091012";
-    hash = "sha256-JosFv6ngJmw1XRILwTZMVxlGIdWFLFQjj4olfnVwAIM=";
+    version = "2024.5.11021008";
+    hash = "sha256-UnI0leRKqCtFLBdGS/UvLuCcxQhibyY0ChmzQ9uytoY=";
   };
 
   buildInputs = [ icu ];
@@ -37,11 +37,11 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   postPatch =
     ''
       # remove bundled python deps and use libs from nixpkgs
-      rm -r pythonFiles/lib
-      mkdir -p pythonFiles/lib/python/
-      ln -s ${python3.pkgs.debugpy}/lib/*/site-packages/debugpy pythonFiles/lib/python/
+      rm -r python_files/lib
+      mkdir -p python_files/lib/python/
+      ln -s ${python3.pkgs.debugpy}/lib/*/site-packages/debugpy python_files/lib/python/
       buildPythonPath "$propagatedBuildInputs"
-      for i in pythonFiles/*.py; do
+      for i in python_files/*.py; do
         patchPythonScript "$i"
       done
     ''
diff --git a/pkgs/applications/graphics/cq-editor/default.nix b/pkgs/applications/graphics/cq-editor/default.nix
deleted file mode 100644
index 13a8ef1a02bd5..0000000000000
--- a/pkgs/applications/graphics/cq-editor/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ lib
-, mkDerivationWith
-, python3Packages
-, fetchFromGitHub
-, wrapQtAppsHook
-}:
-
-mkDerivationWith python3Packages.buildPythonApplication rec {
-  pname = "cq-editor";
-  version = "0.1.1";
-
-  src = fetchFromGitHub {
-    owner = "CadQuery";
-    repo = "CQ-editor";
-    rev = version;
-    sha256 = "1970izjaa60r5cg9i35rzz9lk5c5d8q1vw1rh2skvfbf63z1hnzv";
-  };
-
-  patches = [
-    ./spyder4.patch
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    cadquery
-    logbook
-    pyqt5
-    pyparsing
-    pyqtgraph
-    spyder
-    path
-    qtconsole
-    requests
-  ];
-
-  nativeBuildInputs = [ wrapQtAppsHook ];
-  preFixup = ''
-    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
-  '';
-
-  nativeCheckInputs = with python3Packages; [
-    pytest
-    pytest-xvfb
-    pytest-mock
-    pytest-cov
-    pytest-repeat
-    pytest-qt
-  ];
-
-  checkPhase = ''
-    pytest --no-xvfb
-  '';
-
-  # requires X server
-  doCheck = false;
-
-  meta = with lib; {
-    description = "CadQuery GUI editor based on PyQT";
-    homepage = "https://github.com/CadQuery/CQ-editor";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ costrouc marcus7070 ];
-  };
-
-}
diff --git a/pkgs/applications/graphics/symbolic-preview/default.nix b/pkgs/applications/graphics/symbolic-preview/default.nix
index 6f3103ecb8a67..5d8ef439f0130 100644
--- a/pkgs/applications/graphics/symbolic-preview/default.nix
+++ b/pkgs/applications/graphics/symbolic-preview/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "symbolic-preview";
-  version = "0.0.3";
+  version = "0.0.9";
 
   src = fetchurl {
-    url = "https://gitlab.gnome.org/World/design/symbolic-preview/uploads/df71a2eee9ea0c90b3d146e7286fec42/symbolic-preview-${version}.tar.xz";
-    sha256 = "08g2sbdb1x5z26mi68nmciq6xwv0chvxw6anj1qdfh7npsg0dm4c";
+    url = "https://gitlab.gnome.org/World/design/symbolic-preview/uploads/e2fed158fc0d267f2051302bcf14848b/symbolic-preview-${version}.tar.xz";
+    hash = "sha256-kx+70LCQzzWAw2Xd3fKGq941540IM3Y1+r4Em4MNWbw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index bb751ae01c9d7..44e1f0992ad73 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -31,7 +31,7 @@
 , enableAMR ? false
 , amrnb
 , amrwb
-, enableLibpulseaudio ? stdenv.isLinux
+, enableLibpulseaudio ? stdenv.isLinux && lib.meta.availableOn stdenv.hostPlatform libpulseaudio
 , libpulseaudio
 }:
 
diff --git a/pkgs/applications/misc/blender/darwin.patch b/pkgs/applications/misc/blender/darwin.patch
index c86aa24446027..192516758c941 100644
--- a/pkgs/applications/misc/blender/darwin.patch
+++ b/pkgs/applications/misc/blender/darwin.patch
@@ -1,27 +1,25 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1894,7 +1894,7 @@ if(WITH_COMPILER_SHORT_FILE_MACRO)
-   ADD_CHECK_CXX_COMPILER_FLAG(CXX_PREFIX_MAP_FLAGS CXX_MACRO_PREFIX_MAP -fmacro-prefix-map=foo=bar)
+--- a/CMakeLists.txt	2024-03-01 08:08:05
++++ b/CMakeLists.txt	2024-04-24 15:45:30
+@@ -2134,7 +2134,7 @@
+   )
    if(C_MACRO_PREFIX_MAP AND CXX_MACRO_PREFIX_MAP)
      if(APPLE)
 -      if(XCODE AND ${XCODE_VERSION} VERSION_LESS 12.0)
 +      if(FALSE)
        # Developers may have say LLVM Clang-10.0.1 toolchain (which supports the flag)
        # with Xcode-11 (the Clang of which doesn't support the flag).
-         message(WARNING
-diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
---- a/build_files/cmake/platform/platform_apple.cmake
-+++ b/build_files/cmake/platform/platform_apple.cmake
-@@ -60,7 +60,6 @@ else()
-   message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+         message(
+--- a/build_files/cmake/platform/platform_apple.cmake	2024-02-22 15:31:36
++++ b/build_files/cmake/platform/platform_apple.cmake	2024-04-24 16:06:13
+@@ -55,7 +55,6 @@
+   endif()
  endif()
- if(NOT EXISTS "${LIBDIR}/")
+ if(NOT EXISTS "${LIBDIR}/.git")
 -  message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
  endif()
- 
- # Prefer lib directory paths
-@@ -98,10 +97,6 @@ if(WITH_CODEC_SNDFILE)
+ if(FIRST_RUN)
+   message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+@@ -115,10 +114,6 @@
    find_library(_sndfile_VORBIS_LIBRARY NAMES vorbis HINTS ${LIBDIR}/ffmpeg/lib)
    find_library(_sndfile_VORBISENC_LIBRARY NAMES vorbisenc HINTS ${LIBDIR}/ffmpeg/lib)
    list(APPEND LIBSNDFILE_LIBRARIES
@@ -32,44 +30,26 @@ diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake
    )
  
    print_found_status("SndFile libraries" "${LIBSNDFILE_LIBRARIES}")
-@@ -118,7 +113,7 @@ if(WITH_PYTHON)
-     # Normally cached but not since we include them with blender.
-     set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}")
-     set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}")
--    set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}.a)
-+    set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}.dylib)
-     set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
-   else()
-     # Module must be compiled against Python framework.
-@@ -147,7 +142,7 @@ endif()
- 
- # FreeType compiled with Brotli compression for woff2.
- find_package(Freetype REQUIRED)
--list(APPEND FREETYPE_LIBRARIES
-+message(TRACE APPEND FREETYPE_LIBRARIES
-   ${LIBDIR}/brotli/lib/libbrotlicommon-static.a
-   ${LIBDIR}/brotli/lib/libbrotlidec-static.a)
- 
-@@ -159,9 +154,7 @@ if(WITH_CODEC_FFMPEG)
+@@ -162,9 +157,7 @@
    set(FFMPEG_ROOT_DIR ${LIBDIR}/ffmpeg)
    set(FFMPEG_FIND_COMPONENTS
      avcodec avdevice avformat avutil
 -    mp3lame ogg opus swresample swscale
 -    theora theoradec theoraenc vorbis vorbisenc
--    vorbisfile vpx x264 xvidcore)
-+    swresample swscale)
+-    vorbisfile vpx x264)
++   swresample swscale)
    if(EXISTS ${LIBDIR}/ffmpeg/lib/libaom.a)
      list(APPEND FFMPEG_FIND_COMPONENTS aom)
    endif()
-@@ -273,7 +266,6 @@ if(WITH_BOOST)
- endif()
+@@ -275,7 +268,6 @@
+ add_bundled_libraries(boost/lib)
  
  if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
 -  string(APPEND PLATFORM_LINKFLAGS " -liconv") # boost_locale and ffmpeg needs it !
  endif()
  
  if(WITH_PUGIXML)
-@@ -402,7 +394,7 @@ endif()
+@@ -350,7 +342,7 @@
  
  # CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags.
  if(WITH_OPENMP)
@@ -78,3 +58,12 @@ diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake
      # Use OpenMP from our precompiled libraries.
      message(STATUS "Using ${LIBDIR}/openmp for OpenMP")
      set(OPENMP_CUSTOM ON)
+@@ -427,7 +419,7 @@
+   " -Wl,-unexported_symbols_list,'${PLATFORM_SYMBOLS_MAP}'"
+ )
+ 
+-if(${XCODE_VERSION} VERSION_GREATER_EQUAL 15.0)
++if(FALSE)
+   if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
+     # Silence "no platform load command found in <static library>, assuming: macOS".
+     string(APPEND PLATFORM_LINKFLAGS " -Wl,-ld_classic")
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 8cc7d4dd01f61..e54cae9e56a24 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -8,12 +8,14 @@
   addOpenGLRunpath,
   alembic,
   boost,
+  brotli,
   callPackage,
   cmake,
   colladaSupport ? true,
   config,
   cudaPackages,
   cudaSupport ? config.cudaSupport,
+  darwin,
   dbus,
   embree,
   fetchurl,
@@ -51,6 +53,7 @@
   libxkbcommon,
   llvmPackages,
   makeWrapper,
+  materialx,
   mesa,
   ocl-icd,
   openal,
@@ -71,6 +74,7 @@
   rocmPackages, # comes with a significantly larger closure size
   runCommand,
   spaceNavSupport ? stdenv.isLinux,
+  sse2neon,
   stdenv,
   tbb,
   wayland,
@@ -114,15 +118,14 @@ stdenv.mkDerivation (finalAttrs: {
         ''
           : > build_files/cmake/platform/platform_apple_xcode.cmake
           substituteInPlace source/creator/CMakeLists.txt \
-            --replace '${"$"}{LIBDIR}/python' \
-                      '${python3}'
-          substituteInPlace build_files/cmake/platform/platform_apple.cmake \
-            --replace '${"$"}{LIBDIR}/python' \
+            --replace-fail '${"$"}{LIBDIR}/python' \
                       '${python3}' \
-            --replace '${"$"}{LIBDIR}/opencollada' \
-                      '${opencollada}' \
-            --replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \
-                      '${python3Packages.numpy}/${python3.sitePackages}/numpy'
+            --replace-fail '${"$"}{LIBDIR}/materialx/' '${materialx}/'
+          substituteInPlace build_files/cmake/platform/platform_apple.cmake \
+            --replace-fail '${"$"}{LIBDIR}/brotli/lib/libbrotlicommon-static.a' \
+                      '${lib.getLib brotli}/lib/libbrotlicommon.dylib' \
+            --replace-fail '${"$"}{LIBDIR}/brotli/lib/libbrotlidec-static.a' \
+                      '${lib.getLib brotli}/lib/libbrotlidec.dylib'
         ''
       else
         ''
@@ -150,6 +153,7 @@ stdenv.mkDerivation (finalAttrs: {
       "-DWITH_FFTW3=ON"
       "-DWITH_IMAGE_OPENJPEG=ON"
       "-DWITH_INSTALL_PORTABLE=OFF"
+      "-DMaterialX_DIR=${materialx}/lib/cmake/MaterialX"
       "-DWITH_MOD_OCEANSIM=ON"
       "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}"
       "-DWITH_OPENCOLORIO=ON"
@@ -164,7 +168,7 @@ stdenv.mkDerivation (finalAttrs: {
 
       # Blender supplies its own FindAlembic.cmake (incompatible with the Alembic-supplied config file)
       "-DALEMBIC_INCLUDE_DIR=${lib.getDev alembic}/include"
-      "-DALEMBIC_LIBRARY=${lib.getLib alembic}/lib/libAlembic.so"
+      "-DALEMBIC_LIBRARY=${lib.getLib alembic}/lib/libAlembic${stdenv.hostPlatform.extensions.sharedLibrary}"
     ]
     ++ lib.optionals waylandSupport [
       "-DWITH_GHOST_WAYLAND=ON"
@@ -172,11 +176,12 @@ stdenv.mkDerivation (finalAttrs: {
       "-DWITH_GHOST_WAYLAND_DYNLOAD=OFF"
       "-DWITH_GHOST_WAYLAND_LIBDECOR=ON"
     ]
-    ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "-DWITH_CYCLES_EMBREE=OFF" ]
+    ++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [ "-DWITH_CYCLES_EMBREE=OFF" ]
     ++ lib.optionals stdenv.isDarwin [
       "-DLIBDIR=/does-not-exist"
-      "-DWITH_CYCLES_OSL=OFF" # requires LLVM
-      "-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin
+      "-DWITH_CYCLES_OSL=OFF" # causes segfault on aarch64-darwin
+      "-DSSE2NEON_INCLUDE_DIR=${sse2neon}/lib"
+      "-DWITH_USD=OFF" # currently fails on darwin
     ]
     ++ lib.optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS=" # Clang doesn't support "-export-dynamic"
     ++ lib.optional jackaudioSupport "-DWITH_JACK=ON"
@@ -219,21 +224,22 @@ stdenv.mkDerivation (finalAttrs: {
       libsndfile
       libtiff
       libwebp
+      materialx
       opencolorio
       openexr
       openimageio
       openjpeg
       openpgl
       (opensubdiv.override { inherit cudaSupport; })
+      openvdb
       potrace
       pugixml
-      pyPkgsOpenusd
       python3
       tbb
       zlib
       zstd
     ]
-    ++ lib.optionals (!stdenv.isAarch64) [
+    ++ lib.optionals (!stdenv.isAarch64 && stdenv.isLinux) [
       embree
       (openimagedenoise.override { inherit cudaSupport; })
     ]
@@ -248,8 +254,8 @@ stdenv.mkDerivation (finalAttrs: {
           libXrender
           libXxf86vm
           openal
-          openvdb # OpenVDB currently doesn't build on darwin
           openxr-loader
+          pyPkgsOpenusd
         ]
       else
         [
@@ -259,7 +265,11 @@ stdenv.mkDerivation (finalAttrs: {
           OpenAL
           OpenGL
           SDL
+          brotli
+          embree
           llvmPackages.openmp
+          (openimagedenoise.override { inherit cudaSupport; })
+          sse2neon
         ]
     )
     ++ lib.optionals cudaSupport [ cudaPackages.cuda_cudart ]
@@ -280,11 +290,12 @@ stdenv.mkDerivation (finalAttrs: {
       ps = python3Packages;
     in
     [
+      materialx
       ps.numpy
       ps.requests
       ps.zstandard
-      pyPkgsOpenusd
-    ];
+    ]
+    ++ lib.optionals (!stdenv.isDarwin) [ pyPkgsOpenusd ];
 
   blenderExecutable =
     placeholder "out"
@@ -295,8 +306,10 @@ stdenv.mkDerivation (finalAttrs: {
       mkdir $out/Applications
       mv $out/Blender.app $out/Applications
     ''
-    + ''
+    + lib.optionalString stdenv.isLinux ''
       mv $out/share/blender/${lib.versions.majorMinor finalAttrs.version}/python{,-ext}
+    ''
+    + ''
       buildPythonPath "$pythonPath"
       wrapProgram $blenderExecutable \
         --prefix PATH : $program_PATH \
@@ -311,6 +324,9 @@ stdenv.mkDerivation (finalAttrs: {
       isELF "$program" || continue
       addOpenGLRunpath "$program"
     done
+  ''
+  + lib.optionalString stdenv.isDarwin ''
+    makeWrapper $out/Applications/Blender.app/Contents/MacOS/Blender $out/bin/blender
   '';
 
   passthru = {
@@ -327,15 +343,13 @@ stdenv.mkDerivation (finalAttrs: {
     tests = {
       render = runCommand "${finalAttrs.pname}-test" { } ''
         set -euo pipefail
-
         export LIBGL_DRIVERS_PATH=${mesa.drivers}/lib/dri
         export __EGL_VENDOR_LIBRARY_FILENAMES=${mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json
-
         cat <<'PYTHON' > scene-config.py
         import bpy
         bpy.context.scene.eevee.taa_render_samples = 32
         bpy.context.scene.cycles.samples = 32
-        if ${if stdenv.isAarch64 then "True" else "False"}:
+        if ${if (stdenv.isAarch64 && stdenv.isLinux) then "True" else "False"}:
             bpy.context.scene.cycles.use_denoising = False
         bpy.context.scene.render.resolution_x = 100
         bpy.context.scene.render.resolution_y = 100
@@ -347,7 +361,7 @@ stdenv.mkDerivation (finalAttrs: {
         for engine in BLENDER_EEVEE CYCLES; do
           echo "Rendering with $engine..."
           # Beware that argument order matters
-          ${finalAttrs.finalPackage}/bin/blender \
+          ${lib.getExe finalAttrs.finalPackage} \
             --background \
             -noaudio \
             --factory-startup \
@@ -372,8 +386,10 @@ stdenv.mkDerivation (finalAttrs: {
       "aarch64-linux"
       "x86_64-darwin"
       "x86_64-linux"
+      "aarch64-darwin"
     ];
-    broken = stdenv.isDarwin;
+    # the current apple sdk is too old (currently 11_0) and fails to build "metal" on x86_64-darwin
+    broken = stdenv.hostPlatform.system == "x86_64-darwin";
     maintainers = with lib.maintainers; [
       goibhniu
       veprbl
diff --git a/pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch b/pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch
new file mode 100644
index 0000000000000..8c7af75a5406d
--- /dev/null
+++ b/pkgs/applications/misc/electrum/ltc-aiorpcX-version-bump.patch
@@ -0,0 +1,44 @@
+diff --git a/contrib/deterministic-build/requirements.txt b/contrib/deterministic-build/requirements.txt
+index 7441e3389..2a4718f96 100644
+--- a/contrib/deterministic-build/requirements.txt
++++ b/contrib/deterministic-build/requirements.txt
+@@ -74,9 +74,8 @@ aiohttp==3.8.1 \
+ aiohttp-socks==0.7.1 \
+     --hash=sha256:2215cac4891ef3fa14b7d600ed343ed0f0a670c23b10e4142aa862b3db20341a \
+     --hash=sha256:94bcff5ef73611c6c6231c2ffc1be4af1599abec90dbd2fdbbd63233ec2fb0ff
+-aiorpcX==0.22.1 \
+-    --hash=sha256:6026f7bed3432e206589c94dcf599be8cd85b5736b118c7275845c1bd922a553 \
+-    --hash=sha256:e74f9fbed3fd21598e71fe05066618fc2c06feec504fe29490ddda05fdbdde62
++aiorpcX==0.23.1 \
++    --hash=sha256:5b23002f1a4d5d3085e31555a07519c5ef8d4c40071eb499556ffda8114860a2
+ aiosignal==1.2.0 \
+     --hash=sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a \
+     --hash=sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2
+diff --git a/contrib/requirements/requirements.txt b/contrib/requirements/requirements.txt
+index 04b0a77f3..2330ea921 100644
+--- a/contrib/requirements/requirements.txt
++++ b/contrib/requirements/requirements.txt
+@@ -1,7 +1,7 @@
+ qrcode
+ protobuf>=3.12
+ qdarkstyle>=2.7
+-aiorpcx>=0.22.0,<0.23
++aiorpcx>=0.22.0,<0.24
+ aiohttp>=3.3.0,<4.0.0
+ aiohttp_socks>=0.3
+ certifi
+diff --git a/run_electrum b/run_electrum
+index a1b30f29e..cb22f8724 100755
+--- a/run_electrum
++++ b/run_electrum
+@@ -67,8 +67,8 @@ def check_imports():
+         import aiorpcx
+     except ImportError as e:
+         sys.exit(f"Error: {str(e)}. Try 'sudo python3 -m pip install <module-name>'")
+-    if not ((0, 22, 0) <= aiorpcx._version < (0, 23)):
+-        raise RuntimeError(f'aiorpcX version {aiorpcx._version} does not match required: 0.22.0<=ver<0.23')
++    if not ((0, 22, 0) <= aiorpcx._version < (0, 24)):
++        raise RuntimeError(f'aiorpcX version {aiorpcx._version} does not match required: 0.22.0<=ver<0.24')
+     # the following imports are for pyinstaller
+     from google.protobuf import descriptor
+     from google.protobuf import message
diff --git a/pkgs/applications/misc/electrum/ltc.nix b/pkgs/applications/misc/electrum/ltc.nix
index a85252027e960..ef52f6211fdaa 100644
--- a/pkgs/applications/misc/electrum/ltc.nix
+++ b/pkgs/applications/misc/electrum/ltc.nix
@@ -82,6 +82,26 @@ python3.pkgs.buildPythonApplication {
     qdarkstyle
   ];
 
+  patches = [
+    # electrum-ltc attempts to pin to aiorpcX < 0.23, but nixpkgs
+    # has moved to newer versions.
+    #
+    # electrum-ltc hasn't been updated in some time, so we replicate
+    # the patch from electrum (BTC) and alter it to be usable with
+    # electrum-ltc.
+    #
+    # Similar to the BTC patch, we need to overwrite the symlink
+    # at electrum_ltc/electrum-ltc with the patched run_electrum
+    # in postPatch.
+    ./ltc-aiorpcX-version-bump.patch
+  ];
+
+  postPatch = ''
+    # copy the patched `/run_electrum` over `/electrum/electrum`
+    # so the aiorpcx compatibility patch is used
+    cp run_electrum electrum_ltc/electrum-ltc
+  '';
+
   preBuild = ''
     sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py
     substituteInPlace ./electrum_ltc/ecc_fast.py \
diff --git a/pkgs/applications/misc/gxkb/default.nix b/pkgs/applications/misc/gxkb/default.nix
index 201cbdb0a11ad..f64982ed717f7 100644
--- a/pkgs/applications/misc/gxkb/default.nix
+++ b/pkgs/applications/misc/gxkb/default.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3, libwnck, libxklavier
+{ lib, stdenv, fetchFromGitHub, fetchurl, git, autoreconfHook, pkg-config, gtk3, libwnck, libxklavier
 , appindicatorSupport ? true, libayatana-appindicator
 }:
 
 stdenv.mkDerivation rec {
   pname = "gxkb";
-  version = "0.9.3";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "zen-tools";
     repo = "gxkb";
     rev = "v${version}";
-    sha256 = "sha256-9r1eZl7PgIt2ZpK+QQHaa460imIHT3Lh5mpzcFglyWc=";
+    sha256 = "sha256-oBIBIkj4p6HlF0PRQtI/K5dhLs7pbPxN7Cgr/YZaI1s=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
@@ -19,6 +19,18 @@ stdenv.mkDerivation rec {
   configureFlags = lib.optional appindicatorSupport "--enable-appindicator=yes";
   outputs = [ "out" "man" ];
 
+  # This patch restore data which was wiped by upstream without any technical reasons
+  # https://github.com/omgbebebe/gxkb/commit/727ec8b595a91dbb540e6087750f43b85d0dfbc0
+  # NOTE: the `patch` hook cannot be used here due to lack of support for git binary patches
+  p1 = fetchurl {
+       url = "https://github.com/omgbebebe/gxkb/commit/727ec8b595a91dbb540e6087750f43b85d0dfbc0.patch";
+       hash = "sha256-x7x3MHHrOnPivvlzOFqgFAA5BDB2LOXMlalPYbwM/1Q=";
+  };
+
+  postPatch = ''
+    ${git}/bin/git apply ${p1}
+  '';
+
   meta = with lib; {
     description = "X11 keyboard indicator and switcher";
     homepage = "https://zen-tools.github.io/gxkb/";
diff --git a/pkgs/applications/misc/kratos/default.nix b/pkgs/applications/misc/kratos/default.nix
index d5d12eb44676d..6bf06be9be7e8 100644
--- a/pkgs/applications/misc/kratos/default.nix
+++ b/pkgs/applications/misc/kratos/default.nix
@@ -1,8 +1,15 @@
-{ fetchFromGitHub, buildGoModule, lib, stdenv }:
-
-buildGoModule rec {
+{
+  fetchFromGitHub,
+  buildGoModule,
+  lib,
+  stdenv
+}:
+let
   pname = "kratos";
   version = "1.1.0";
+in
+buildGoModule {
+  inherit pname version;
 
   src = fetchFromGitHub {
     owner = "ory";
@@ -17,6 +24,11 @@ buildGoModule rec {
 
   tags = [ "sqlite" ];
 
+  # Pass versioning information via ldflags
+  ldflags = [
+    "-X github.com/ory/kratos/driver/config.Version=${version}"
+  ];
+
   doCheck = false;
 
   preBuild = ''
@@ -30,14 +42,14 @@ buildGoModule rec {
     patchShebangs "''${files[@]}"
 
     # patchShebangs doesn't work for this Makefile, do it manually
-    substituteInPlace Makefile --replace '/bin/bash' '${stdenv.shell}'
+    substituteInPlace Makefile --replace-fail '/usr/bin/env bash' '${stdenv.shell}'
   '';
 
-  meta = with lib; {
-    maintainers = with maintainers; [ mrmebelman ];
-    homepage = "https://www.ory.sh/kratos/";
-    license = licenses.asl20;
-    description = "An API-first Identity and User Management system that is built according to cloud architecture best practices";
+  meta = {
     mainProgram = "kratos";
+    description = "An API-first Identity and User Management system that is built according to cloud architecture best practices";
+    homepage = "https://www.ory.sh/kratos/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ mrmebelman ];
   };
 }
diff --git a/pkgs/applications/misc/onagre/Cargo.lock b/pkgs/applications/misc/onagre/Cargo.lock
deleted file mode 100644
index b576dbc9022ac..0000000000000
--- a/pkgs/applications/misc/onagre/Cargo.lock
+++ /dev/null
@@ -1,5128 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "ab_glyph"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24606928a235e73cdef55a0c909719cadd72fce573e5713d58cb2952d8f5794c"
-dependencies = [
- "ab_glyph_rasterizer",
- "owned_ttf_parser",
-]
-
-[[package]]
-name = "ab_glyph_rasterizer"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e"
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-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.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom 0.2.6",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
-
-[[package]]
-name = "approx"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "approx"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "arrayref"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-
-[[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.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
-
-[[package]]
-name = "ash"
-version = "0.34.0+1.2.203"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0f780da53d0063880d45554306489f09dd8d1bda47688b4a57bc579119356df"
-dependencies = [
- "libloading",
-]
-
-[[package]]
-name = "async-broadcast"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bbd92a9bd0e9c1298118ecf8a2f825e86b12c3ec9e411573e34aaf3a0c03cdd"
-dependencies = [
- "easy-parallel",
- "event-listener",
- "futures-core",
- "parking_lot",
-]
-
-[[package]]
-name = "async-channel"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "futures-core",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "once_cell",
- "slab",
-]
-
-[[package]]
-name = "async-io"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
-dependencies = [
- "concurrent-queue",
- "futures-lite",
- "libc",
- "log",
- "once_cell",
- "parking",
- "polling",
- "slab",
- "socket2",
- "waker-fn",
- "winapi",
-]
-
-[[package]]
-name = "async-lock"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6"
-dependencies = [
- "event-listener",
-]
-
-[[package]]
-name = "async-oneshot"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ec7c75bcbcb0139e9177f30692fd617405ca4e0c27802e128d53171f7042e2c"
-dependencies = [
- "futures-micro",
-]
-
-[[package]]
-name = "async-pidfd"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12177058299bb8e3507695941b6d0d7dc0e4e6515b8bc1bf4609d9e32ef51799"
-dependencies = [
- "async-io",
- "libc",
-]
-
-[[package]]
-name = "async-recursion"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "async-task"
-version = "4.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
-
-[[package]]
-name = "async-trait"
-version = "0.1.53"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "base64"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-
-[[package]]
-name = "bit-set"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
-dependencies = [
- "bit-vec",
-]
-
-[[package]]
-name = "bit-vec"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[package]]
-name = "block-buffer"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
-dependencies = [
- "block-padding",
- "byte-tools",
- "byteorder",
- "generic-array",
-]
-
-[[package]]
-name = "block-padding"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-dependencies = [
- "byte-tools",
-]
-
-[[package]]
-name = "bstr"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
-dependencies = [
- "lazy_static",
- "memchr",
- "regex-automata",
- "serde",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
-
-[[package]]
-name = "byte-tools"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-
-[[package]]
-name = "bytemuck"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc"
-dependencies = [
- "bytemuck_derive",
-]
-
-[[package]]
-name = "bytemuck_derive"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bytes"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
-
-[[package]]
-name = "bytes"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
-
-[[package]]
-name = "cache-padded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
-
-[[package]]
-name = "calloop"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2eec61efe56aa1e813f5126959296933cf0700030e4314786c48779a66ab82"
-dependencies = [
- "log",
- "nix 0.22.3",
-]
-
-[[package]]
-name = "cast"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
-dependencies = [
- "rustc_version 0.4.0",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.73"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
-
-[[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"
-
-[[package]]
-name = "cfg_aliases"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
-
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "bitflags",
- "textwrap",
- "unicode-width",
-]
-
-[[package]]
-name = "clipboard-win"
-version = "4.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f3e1238132dc01f081e1cbb9dace14e5ef4c3a51ee244bd982275fb514605db"
-dependencies = [
- "error-code",
- "str-buf",
- "winapi",
-]
-
-[[package]]
-name = "clipboard_macos"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "145a7f9e9b89453bc0a5e32d166456405d389cea5b578f57f1274b1397588a95"
-dependencies = [
- "objc",
- "objc-foundation",
- "objc_id",
-]
-
-[[package]]
-name = "clipboard_wayland"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f6364a9f7a66f2ac1a1a098aa1c7f6b686f2496c6ac5e5c0d773445df912747"
-dependencies = [
- "smithay-clipboard",
-]
-
-[[package]]
-name = "clipboard_x11"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64240d63f1883d87e5637bfcaf9d77e5c8bd24e30fd440ea2dff5c48c0bf0b7a"
-dependencies = [
- "thiserror",
- "x11rb",
-]
-
-[[package]]
-name = "cmake"
-version = "0.1.48"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "cocoa"
-version = "0.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832"
-dependencies = [
- "bitflags",
- "block",
- "cocoa-foundation",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
-dependencies = [
- "bitflags",
- "block",
- "core-foundation 0.9.3",
- "core-graphics-types",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "codespan-reporting"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
-]
-
-[[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
-name = "concurrent-queue"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
-dependencies = [
- "cache-padded",
-]
-
-[[package]]
-name = "const_format"
-version = "0.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0936ffe6d0c8d6a51b3b0a73b2acbe925d786f346cf45bfddc8341d79fb7dc8a"
-dependencies = [
- "const_format_proc_macros",
-]
-
-[[package]]
-name = "const_format_proc_macros"
-version = "0.2.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "copyless"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536"
-
-[[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 0.8.3",
- "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.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-
-[[package]]
-name = "core-graphics"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923"
-dependencies = [
- "bitflags",
- "core-foundation 0.7.0",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
-dependencies = [
- "bitflags",
- "core-foundation 0.9.3",
- "core-graphics-types",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics-types"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
-dependencies = [
- "bitflags",
- "core-foundation 0.9.3",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-text"
-version = "19.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
-dependencies = [
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "foreign-types",
- "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 = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "criterion"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1604dafd25fba2fe2d5895a9da139f8dc9b319a5fe5354ca137cbbce4e178d10"
-dependencies = [
- "atty",
- "cast",
- "clap",
- "criterion-plot",
- "csv",
- "itertools",
- "lazy_static",
- "num-traits",
- "oorandom",
- "plotters",
- "rayon",
- "regex",
- "serde",
- "serde_cbor",
- "serde_derive",
- "serde_json",
- "tinytemplate",
- "walkdir",
-]
-
-[[package]]
-name = "criterion-plot"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57"
-dependencies = [
- "cast",
- "itertools",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
-dependencies = [
- "cfg-if 1.0.0",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
-dependencies = [
- "cfg-if 1.0.0",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
-dependencies = [
- "autocfg",
- "cfg-if 1.0.0",
- "crossbeam-utils",
- "lazy_static",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
-dependencies = [
- "cfg-if 1.0.0",
- "lazy_static",
-]
-
-[[package]]
-name = "csv"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
-dependencies = [
- "bstr",
- "csv-core",
- "itoa 0.4.8",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "csv-core"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ctor"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
-dependencies = [
- "quote",
- "syn",
-]
-
-[[package]]
-name = "cty"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
-
-[[package]]
-name = "d3d12"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2daefd788d1e96e0a9d66dee4b828b883509bc3ea9ce30665f04c3246372690c"
-dependencies = [
- "bitflags",
- "libloading",
- "winapi",
-]
-
-[[package]]
-name = "darling"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
-dependencies = [
- "darling_core",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "data-url"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193"
-dependencies = [
- "matches",
-]
-
-[[package]]
-name = "deflate"
-version = "0.7.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
-dependencies = [
- "adler32",
- "byteorder",
-]
-
-[[package]]
-name = "deflate"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
-dependencies = [
- "adler32",
- "byteorder",
-]
-
-[[package]]
-name = "deflate"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f"
-dependencies = [
- "adler32",
-]
-
-[[package]]
-name = "derivative"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "diff"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
-
-[[package]]
-name = "digest"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "dirs"
-version = "3.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-next"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
-dependencies = [
- "cfg-if 1.0.0",
- "dirs-sys-next",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[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"
-checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
-
-[[package]]
-name = "dlib"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
-dependencies = [
- "libloading",
-]
-
-[[package]]
-name = "dlv-list"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
-
-[[package]]
-name = "downcast-rs"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
-
-[[package]]
-name = "dwrote"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
-dependencies = [
- "lazy_static",
- "libc",
- "winapi",
- "wio",
-]
-
-[[package]]
-name = "easy-parallel"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946"
-
-[[package]]
-name = "either"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "enumflags2"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
-dependencies = [
- "enumflags2_derive",
- "serde",
-]
-
-[[package]]
-name = "enumflags2_derive"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "error-code"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
-
-[[package]]
-name = "euclid"
-version = "0.22.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "event-listener"
-version = "2.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
-
-[[package]]
-name = "expat-sys"
-version = "2.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa"
-dependencies = [
- "cmake",
- "pkg-config",
-]
-
-[[package]]
-name = "fake-simd"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
-[[package]]
-name = "fastrand"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "find-crate"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2"
-dependencies = [
- "toml",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af"
-dependencies = [
- "cfg-if 1.0.0",
- "crc32fast",
- "libc",
- "miniz_oxide 0.5.1",
-]
-
-[[package]]
-name = "float-cmp"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
-
-[[package]]
-name = "float-ord"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
-
-[[package]]
-name = "flume"
-version = "0.10.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "843c03199d0c0ca54bc1ea90ac0d507274c28abcc4f691ae8b4eaa375087c76a"
-dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project 1.0.10",
- "spin 0.9.3",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "font-kit"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c9a156ec38864999bc9c4156e5f3b50224d4a5578028a64e5a3875caa9ee28"
-dependencies = [
- "bitflags",
- "byteorder",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "core-text",
- "dirs-next",
- "dwrote",
- "float-ord",
- "freetype",
- "lazy_static",
- "libc",
- "log",
- "pathfinder_geometry",
- "pathfinder_simd",
- "servo-fontconfig",
- "walkdir",
- "winapi",
-]
-
-[[package]]
-name = "fontdb"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d66551cc28351f0bc6a73da86459ee7765caaad03ce284f2dc36472dbf539cd"
-dependencies = [
- "log",
- "memmap2",
- "ttf-parser 0.12.3",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "fork"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57b4f1a740392e495821244cc1658d86496ac6e67a47da67e243ed401b937717"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "form_urlencoded"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
-dependencies = [
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "freedesktop-desktop-entry"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45157175a725e81f3f594382430b6b78af5f8f72db9bd51b94f0785f80fc6d29"
-dependencies = [
- "dirs 3.0.2",
- "gettext-rs",
- "memchr",
- "thiserror",
- "xdg",
-]
-
-[[package]]
-name = "freedesktop-icons"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420b2cb0cf0ab0d5f34c068830f3b5c17b378ab3c2acaf7ca4bfde671d70be51"
-dependencies = [
- "dirs 4.0.0",
- "once_cell",
- "rust-ini",
- "thiserror",
-]
-
-[[package]]
-name = "freetype"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6"
-dependencies = [
- "freetype-sys",
- "libc",
-]
-
-[[package]]
-name = "freetype-sys"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
-dependencies = [
- "cmake",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "fs2"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "fuchsia-cprng"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
-[[package]]
-name = "futures"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
- "num_cpus",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
-
-[[package]]
-name = "futures-lite"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
-dependencies = [
- "fastrand",
- "futures-core",
- "futures-io",
- "memchr",
- "parking",
- "pin-project-lite",
- "waker-fn",
-]
-
-[[package]]
-name = "futures-macro"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "futures-micro"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b460264b3593d68b16a7bc35f7bc226ddfebdf9a1c8db1ed95d5cc6b7168c826"
-dependencies = [
- "pin-project-lite",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
-
-[[package]]
-name = "futures-task"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
-
-[[package]]
-name = "futures-util"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "futures_codec"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b"
-dependencies = [
- "bytes 0.5.6",
- "futures",
- "memchr",
- "pin-project 0.4.29",
-]
-
-[[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "gen-z"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e87038e64f38cb7fcd57f54c8d6654ad65712babbf70f38d1834d3150ad2415"
-dependencies = [
- "futures",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
-dependencies = [
- "typenum",
-]
-
-[[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 1.0.0",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "libc",
- "wasi 0.10.2+wasi-snapshot-preview1",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "gettext-rs"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
-dependencies = [
- "gettext-sys",
- "locale_config",
-]
-
-[[package]]
-name = "gettext-sys"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
-dependencies = [
- "cc",
- "temp-dir",
-]
-
-[[package]]
-name = "gif"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3a7187e78088aead22ceedeee99779455b23fc231fe13ec443f99bb71694e5b"
-dependencies = [
- "color_quant",
- "weezl",
-]
-
-[[package]]
-name = "glam"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579160312273c954cc51bd440f059dde741029ac8daf8c84fece76cb77f62c15"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "glow"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919"
-dependencies = [
- "js-sys",
- "slotmap",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "glyph_brush"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a69c65dd1f1fbb6209aa00f78636e436ad0a55b7d8e5de886d00720dcad9c6e2"
-dependencies = [
- "glyph_brush_draw_cache",
- "glyph_brush_layout",
- "log",
- "ordered-float",
- "rustc-hash",
- "twox-hash",
-]
-
-[[package]]
-name = "glyph_brush_draw_cache"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6010675390f6889e09a21e2c8b575b3ee25667ea8237a8d59423f73cb8c28610"
-dependencies = [
- "ab_glyph",
- "crossbeam-channel",
- "crossbeam-deque",
- "linked-hash-map",
- "rayon",
- "rustc-hash",
-]
-
-[[package]]
-name = "glyph_brush_layout"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38"
-dependencies = [
- "ab_glyph",
- "approx 0.5.1",
- "xi-unicode",
-]
-
-[[package]]
-name = "gpu-alloc"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc59e5f710e310e76e6707f86c561dd646f69a8876da9131703b2f717de818d"
-dependencies = [
- "bitflags",
- "gpu-alloc-types",
-]
-
-[[package]]
-name = "gpu-alloc-types"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "gpu-descriptor"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a538f217be4d405ff4719a283ca68323cc2384003eca5baaa87501e821c81dda"
-dependencies = [
- "bitflags",
- "gpu-descriptor-types",
- "hashbrown 0.11.2",
-]
-
-[[package]]
-name = "gpu-descriptor-types"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "guillotiere"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
-dependencies = [
- "euclid",
- "svg_fmt",
-]
-
-[[package]]
-name = "h2"
-version = "0.3.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
-dependencies = [
- "bytes 1.1.0",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "half"
-version = "1.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
-
-[[package]]
-name = "hashbrown"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hex"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-
-[[package]]
-name = "hexf-parse"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
-
-[[package]]
-name = "http"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb"
-dependencies = [
- "bytes 1.1.0",
- "fnv",
- "itoa 1.0.1",
-]
-
-[[package]]
-name = "http-body"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6"
-dependencies = [
- "bytes 1.1.0",
- "http",
- "pin-project-lite",
-]
-
-[[package]]
-name = "httparse"
-version = "1.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
-
-[[package]]
-name = "httpdate"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
-
-[[package]]
-name = "human-sort"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "140a09c9305e6d5e557e2ed7cbc68e05765a7d4213975b87cb04920689cc6219"
-
-[[package]]
-name = "human_format"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86cce260d758a9aa3d7c4b99d55c815a540f8a37514ba6046ab6be402a157cb0"
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "hyper"
-version = "0.14.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2"
-dependencies = [
- "bytes 1.1.0",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "httparse",
- "httpdate",
- "itoa 1.0.1",
- "pin-project-lite",
- "socket2",
- "tokio",
- "tower-service",
- "tracing",
- "want",
-]
-
-[[package]]
-name = "hyper-rustls"
-version = "0.23.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac"
-dependencies = [
- "http",
- "hyper",
- "rustls",
- "tokio",
- "tokio-rustls",
-]
-
-[[package]]
-name = "iced"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6025abe6b1056c9b5adad79c484c5fd8b7012e5230f3b0439a1294ade7ded7bf"
-dependencies = [
- "iced_core",
- "iced_futures",
- "iced_graphics",
- "iced_native",
- "iced_wgpu",
- "iced_winit",
- "thiserror",
-]
-
-[[package]]
-name = "iced_core"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccf9133ceb345ec640047d5597fb8aa88e9cf74ce2d0277a9a62e2d6ed4a8148"
-dependencies = [
- "bitflags",
- "palette 0.6.0",
- "wasm-timer",
-]
-
-[[package]]
-name = "iced_futures"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a93ebc9bcad1745b0852f961c17f3311d8ad797dca5ec5d76c2f7b48922030d"
-dependencies = [
- "futures",
- "log",
- "tokio",
- "wasm-bindgen-futures",
- "wasm-timer",
-]
-
-[[package]]
-name = "iced_graphics"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5f5e700f76069666fe7eb920f715a46471a6b8063d8c237b17ff2c1d2f31ce5"
-dependencies = [
- "bytemuck",
- "font-kit",
- "glam",
- "iced_native",
- "iced_style",
- "raw-window-handle 0.4.3",
- "thiserror",
-]
-
-[[package]]
-name = "iced_native"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7bde7e7c754a0579bb1565394c2167014a8e29824195aecb598cbdf69dba4c5"
-dependencies = [
- "iced_core",
- "iced_futures",
- "iced_style",
- "num-traits",
- "twox-hash",
- "unicode-segmentation",
-]
-
-[[package]]
-name = "iced_style"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a90028c94ab62c13cd3b6fb1499a593a51510d4729c5b4e8e60705b2b28c6bc2"
-dependencies = [
- "iced_core",
-]
-
-[[package]]
-name = "iced_wgpu"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eef85bef80e9a6ce3bd5e1c783661f4911424e922bfa30b2e600a33a1e5d5716"
-dependencies = [
- "bitflags",
- "bytemuck",
- "futures",
- "glyph_brush",
- "guillotiere",
- "iced_graphics",
- "iced_native",
- "image",
- "kamadak-exif",
- "log",
- "raw-window-handle 0.4.3",
- "resvg",
- "tiny-skia",
- "usvg",
- "wgpu",
- "wgpu_glyph",
-]
-
-[[package]]
-name = "iced_winit"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72011b895e439e2ebad8f545720e3e97c7368ecfc47a23cbfeaa9508a98af90c"
-dependencies = [
- "iced_futures",
- "iced_graphics",
- "iced_native",
- "log",
- "thiserror",
- "web-sys",
- "winapi",
- "window_clipboard",
- "winit",
-]
-
-[[package]]
-name = "ico"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804"
-dependencies = [
- "byteorder",
- "png 0.11.0",
-]
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "idna"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[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",
- "jpeg-decoder",
- "num-iter",
- "num-rational 0.3.2",
- "num-traits",
- "png 0.16.8",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee"
-dependencies = [
- "autocfg",
- "hashbrown 0.11.2",
-]
-
-[[package]]
-name = "inflate"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4"
-dependencies = [
- "adler32",
-]
-
-[[package]]
-name = "inplace_it"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90953f308a79fe6d62a4643e51f848fbfddcd05975a38e69fdf4ab86a7baf7ca"
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"
-
-[[package]]
-name = "itertools"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-[[package]]
-name = "itoa"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
-
-[[package]]
-name = "jni-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
-
-[[package]]
-name = "jpeg-decoder"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
-dependencies = [
- "rayon",
-]
-
-[[package]]
-name = "js-sys"
-version = "0.3.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "kamadak-exif"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70494964492bf8e491eb3951c5d70c9627eb7100ede6cc56d748b9a3f302cfb6"
-dependencies = [
- "mutate_once",
-]
-
-[[package]]
-name = "khronos-egl"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
-dependencies = [
- "libc",
- "libloading",
-]
-
-[[package]]
-name = "kurbo"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb348d766edbac91ba1eb83020d96f4f8867924d194393083c15a51f185e6a82"
-dependencies = [
- "arrayvec 0.5.2",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.125"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
-
-[[package]]
-name = "libloading"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
-dependencies = [
- "cfg-if 1.0.0",
- "winapi",
-]
-
-[[package]]
-name = "linked-hash-map"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
-
-[[package]]
-name = "locale_config"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
-dependencies = [
- "lazy_static",
- "objc",
- "objc-foundation",
- "regex",
- "winapi",
-]
-
-[[package]]
-name = "lock_api"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
-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 1.0.0",
-]
-
-[[package]]
-name = "malloc_buf"
-version = "0.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "maplit"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
-
-[[package]]
-name = "matchers"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
-dependencies = [
- "regex-automata",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memmap2"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b6c2ebff6180198788f5db08d7ce3bc1d0b617176678831a7510825973e357"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "metal"
-version = "0.23.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0514f491f4cc03632ab399ee01e2c1c1b12d3e1cf2d667c1ff5f87d6dcd2084"
-dependencies = [
- "bitflags",
- "block",
- "core-graphics-types",
- "foreign-types",
- "log",
- "objc",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
-dependencies = [
- "adler32",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799"
-dependencies = [
- "libc",
- "log",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys",
-]
-
-[[package]]
-name = "mutate_once"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
-
-[[package]]
-name = "naga"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3012f2dbcc79e8e0b5825a4836a7106a75dd9b2fe42c528163be0f572538c705"
-dependencies = [
- "bit-set",
- "bitflags",
- "codespan-reporting",
- "hexf-parse",
- "indexmap",
- "log",
- "num-traits",
- "rustc-hash",
- "spirv",
- "thiserror",
-]
-
-[[package]]
-name = "nanorand"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
-dependencies = [
- "getrandom 0.2.6",
-]
-
-[[package]]
-name = "ndk"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d868f654c72e75f8687572699cdabe755f03effbb62542768e995d5b8d699d"
-dependencies = [
- "bitflags",
- "jni-sys",
- "ndk-sys",
- "num_enum",
- "thiserror",
-]
-
-[[package]]
-name = "ndk-context"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
-
-[[package]]
-name = "ndk-glue"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c71bee8ea72d685477e28bd004cfe1bf99c754d688cd78cad139eae4089484d4"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "ndk",
- "ndk-context",
- "ndk-macro",
- "ndk-sys",
-]
-
-[[package]]
-name = "ndk-macro"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
-dependencies = [
- "darling",
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "ndk-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
-
-[[package]]
-name = "new_mime_guess"
-version = "4.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2d684d1b59e0dc07b37e2203ef576987473288f530082512aff850585c61b1f"
-dependencies = [
- "mime",
- "unicase",
-]
-
-[[package]]
-name = "nix"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
-dependencies = [
- "bitflags",
- "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",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "nix"
-version = "0.23.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
-dependencies = [
- "bitflags",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[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"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
-dependencies = [
- "num-bigint",
- "num-complex",
- "num-integer",
- "num-iter",
- "num-rational 0.1.42",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
-dependencies = [
- "num-integer",
- "num-traits",
- "rand 0.4.6",
- "rustc-serialize",
-]
-
-[[package]]
-name = "num-complex"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
-dependencies = [
- "num-traits",
- "rustc-serialize",
-]
-
-[[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.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-dependencies = [
- "num-bigint",
- "num-integer",
- "num-traits",
- "rustc-serialize",
-]
-
-[[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-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
-dependencies = [
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "numtoa"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6aa2c4e539b869820a2b82e1aef6ff40aa85e65decdd5185e83fb4b1249cd00f"
-
-[[package]]
-name = "objc"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
-dependencies = [
- "malloc_buf",
- "objc_exception",
-]
-
-[[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_exception"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "objc_id"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-dependencies = [
- "objc",
-]
-
-[[package]]
-name = "onagre"
-version = "1.0.0-alpha.0"
-dependencies = [
- "anyhow",
- "criterion",
- "dirs 4.0.0",
- "env_logger",
- "font-kit",
- "freedesktop-icons",
- "iced",
- "iced_native",
- "iced_style",
- "ico",
- "log",
- "once_cell",
- "palette 0.5.0",
- "pest",
- "pest_derive",
- "pop-launcher-toolkit",
- "pretty_assertions",
- "regex",
- "ron 0.6.6",
- "serde",
- "serde_ini",
- "serde_json",
- "serde_with",
- "shell-words",
- "sled",
- "speculoos",
- "structopt",
- "thiserror",
- "tokio",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
-
-[[package]]
-name = "oorandom"
-version = "11.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
-
-[[package]]
-name = "opaque-debug"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
-
-[[package]]
-name = "ordered-float"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96bcbab4bfea7a59c2c0fe47211a1ac4e3e96bea6eb446d704f310bc5c732ae2"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "ordered-multimap"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
-dependencies = [
- "dlv-list",
- "hashbrown 0.12.1",
-]
-
-[[package]]
-name = "ordered-stream"
-version = "0.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44630c059eacfd6e08bdaa51b1db2ce33119caa4ddc1235e923109aa5f25ccb1"
-dependencies = [
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "owned_ttf_parser"
-version = "0.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb1e509cfe7a12db2a90bfa057dfcdbc55a347f5da677c506b53dd099cfec9d"
-dependencies = [
- "ttf-parser 0.15.0",
-]
-
-[[package]]
-name = "palette"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a05c0334468e62a4dfbda34b29110aa7d70d58c7fdb2c9857b5874dd9827cc59"
-dependencies = [
- "approx 0.3.2",
- "num-traits",
- "palette_derive 0.5.0",
- "phf 0.8.0",
- "phf_codegen",
- "serde",
-]
-
-[[package]]
-name = "palette"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9735f7e1e51a3f740bacd5dc2724b61a7806f23597a8736e679f38ee3435d18"
-dependencies = [
- "approx 0.5.1",
- "num-traits",
- "palette_derive 0.6.0",
- "phf 0.9.0",
-]
-
-[[package]]
-name = "palette_derive"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b4b5f600e60dd3a147fb57b4547033d382d1979eb087af310e91cb45a63b1f4"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "palette_derive"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7799c3053ea8a6d8a1193c7ba42f534e7863cf52e378a7f90406f4a645d33bad"
-dependencies = [
- "find-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "parking"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
-
-[[package]]
-name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
-dependencies = [
- "cfg-if 1.0.0",
- "instant",
- "libc",
- "redox_syscall",
- "smallvec",
- "winapi",
-]
-
-[[package]]
-name = "pathfinder_geometry"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3"
-dependencies = [
- "log",
- "pathfinder_simd",
-]
-
-[[package]]
-name = "pathfinder_simd"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39fe46acc5503595e5949c17b818714d26fdf9b4920eacf3b2947f0199f4a6ff"
-dependencies = [
- "rustc_version 0.3.3",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-
-[[package]]
-name = "pest"
-version = "2.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
-dependencies = [
- "ucd-trie",
-]
-
-[[package]]
-name = "pest_derive"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
-dependencies = [
- "pest",
- "pest_generator",
-]
-
-[[package]]
-name = "pest_generator"
-version = "2.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
-dependencies = [
- "pest",
- "pest_meta",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "pest_meta"
-version = "2.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
-dependencies = [
- "maplit",
- "pest",
- "sha-1",
-]
-
-[[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.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ac8b67553a7ca9457ce0e526948cad581819238f4a9d1ea74545851fa24f37"
-dependencies = [
- "phf_macros",
- "phf_shared 0.9.0",
- "proc-macro-hack",
-]
-
-[[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",
-]
-
-[[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",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d43f3220d96e0080cc9ea234978ccd80d904eafb17be31bb0f76daaea6493082"
-dependencies = [
- "phf_shared 0.9.0",
- "rand 0.8.5",
-]
-
-[[package]]
-name = "phf_macros"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b706f5936eb50ed880ae3009395b43ed19db5bff2ebd459c95e7bf013a89ab86"
-dependencies = [
- "phf_generator 0.9.1",
- "phf_shared 0.9.0",
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[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.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a68318426de33640f02be62b4ae8eb1261be2efbc337b60c54d845bf4484e0d9"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "pico-args"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468"
-
-[[package]]
-name = "pin-project"
-version = "0.4.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909"
-dependencies = [
- "pin-project-internal 0.4.29",
-]
-
-[[package]]
-name = "pin-project"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e"
-dependencies = [
- "pin-project-internal 1.0.10",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "0.4.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
-
-[[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.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
-
-[[package]]
-name = "plotters"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a"
-dependencies = [
- "num-traits",
- "plotters-backend",
- "plotters-svg",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "plotters-backend"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c"
-
-[[package]]
-name = "plotters-svg"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9"
-dependencies = [
- "plotters-backend",
-]
-
-[[package]]
-name = "png"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925"
-dependencies = [
- "bitflags",
- "deflate 0.7.20",
- "inflate",
- "num-iter",
-]
-
-[[package]]
-name = "png"
-version = "0.16.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
-dependencies = [
- "bitflags",
- "crc32fast",
- "deflate 0.8.6",
- "miniz_oxide 0.3.7",
-]
-
-[[package]]
-name = "png"
-version = "0.17.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba"
-dependencies = [
- "bitflags",
- "crc32fast",
- "deflate 1.0.0",
- "miniz_oxide 0.5.1",
-]
-
-[[package]]
-name = "polling"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "log",
- "wepoll-ffi",
- "winapi",
-]
-
-[[package]]
-name = "pop-launcher"
-version = "1.2.1"
-source = "git+https://github.com/pop-os/launcher/#47852e53cb6f637003ed6bdb178fe76cb90dff24"
-dependencies = [
- "const_format",
- "dirs 4.0.0",
- "futures",
- "serde",
- "serde_json",
- "serde_with",
- "tokio",
- "tokio-stream",
-]
-
-[[package]]
-name = "pop-launcher-plugins"
-version = "1.2.1"
-source = "git+https://github.com/pop-os/launcher/#47852e53cb6f637003ed6bdb178fe76cb90dff24"
-dependencies = [
- "anyhow",
- "async-pidfd",
- "bytes 1.1.0",
- "dirs 4.0.0",
- "flume",
- "fork",
- "freedesktop-desktop-entry",
- "futures",
- "human-sort",
- "human_format",
- "new_mime_guess",
- "pop-launcher",
- "recently-used-xbel",
- "regex",
- "reqwest",
- "ron 0.7.0",
- "serde",
- "serde_json",
- "slab",
- "strsim",
- "sysfs-class",
- "tokio",
- "tracing",
- "url",
- "urlencoding",
- "ward",
- "zbus",
- "zvariant",
-]
-
-[[package]]
-name = "pop-launcher-service"
-version = "1.2.1"
-source = "git+https://github.com/pop-os/launcher/#47852e53cb6f637003ed6bdb178fe76cb90dff24"
-dependencies = [
- "anyhow",
- "async-oneshot",
- "async-trait",
- "flume",
- "futures",
- "futures_codec",
- "gen-z",
- "num_cpus",
- "pop-launcher",
- "regex",
- "ron 0.7.0",
- "serde",
- "serde_json",
- "serde_with",
- "slab",
- "strsim",
- "tokio",
- "tokio-stream",
- "toml",
- "tracing",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "pop-launcher-toolkit"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/launcher/#47852e53cb6f637003ed6bdb178fe76cb90dff24"
-dependencies = [
- "pop-launcher",
- "pop-launcher-plugins",
- "pop-launcher-service",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-
-[[package]]
-name = "pretty_assertions"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89f989ac94207d048d92db058e4f6ec7342b0971fc58d1271ca148b799b3563"
-dependencies = [
- "ansi_term",
- "ctor",
- "diff",
- "output_vt100",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
-dependencies = [
- "thiserror",
- "toml",
-]
-
-[[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",
- "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-macro-hack"
-version = "0.5.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "profiling"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9145ac0af1d93c638c98c40cf7d25665f427b2a44ad0a99b1dccf3e2f25bb987"
-
-[[package]]
-name = "quote"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
-dependencies = [
- "proc-macro2",
-]
-
-[[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"
-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_core 0.6.3",
-]
-
-[[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"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.6.3",
-]
-
-[[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"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-dependencies = [
- "getrandom 0.2.6",
-]
-
-[[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 = "range-alloc"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6"
-
-[[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 = "rayon"
-version = "1.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221"
-dependencies = [
- "autocfg",
- "crossbeam-deque",
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "rctree"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ae028b272a6e99d9f8260ceefa3caa09300a8d6c8d2b2001316474bc52122e9"
-
-[[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 = "recently-used-xbel"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd9533c371523034735c8c68da31004561dd011df9d45d0e5886c141858a7d17"
-dependencies = [
- "dirs 4.0.0",
- "serde",
- "serde-xml-rs",
- "thiserror",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
-dependencies = [
- "getrandom 0.2.6",
- "redox_syscall",
- "thiserror",
-]
-
-[[package]]
-name = "regex"
-version = "1.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-dependencies = [
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "renderdoc-sys"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157"
-
-[[package]]
-name = "reqwest"
-version = "0.11.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb"
-dependencies = [
- "base64",
- "bytes 1.1.0",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-rustls",
- "ipnet",
- "js-sys",
- "lazy_static",
- "log",
- "mime",
- "percent-encoding",
- "pin-project-lite",
- "rustls",
- "rustls-pemfile",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
- "tokio-rustls",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "webpki-roots",
- "winreg",
-]
-
-[[package]]
-name = "result"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194d8e591e405d1eecf28819740abed6d719d1a2db87fc0bcdedee9a26d55560"
-
-[[package]]
-name = "resvg"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608c6e8aa6fb2c13bc06e4184d7c7b2cc1b7c138f88a539da8be55c3c033d7f4"
-dependencies = [
- "jpeg-decoder",
- "log",
- "pico-args",
- "png 0.17.5",
- "rgb",
- "svgfilters",
- "tiny-skia",
- "usvg",
-]
-
-[[package]]
-name = "rgb"
-version = "0.8.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e74fdc210d8f24a7dbfedc13b04ba5764f5232754ccebfdf5fff1bad791ccbc6"
-dependencies = [
- "bytemuck",
-]
-
-[[package]]
-name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "ron"
-version = "0.6.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86018df177b1beef6c7c8ef949969c4f7cb9a9344181b92486b23c79995bdaa4"
-dependencies = [
- "base64",
- "bitflags",
- "serde",
-]
-
-[[package]]
-name = "ron"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b861ecaade43ac97886a512b360d01d66be9f41f3c61088b42cedf92e03d678"
-dependencies = [
- "base64",
- "bitflags",
- "serde",
-]
-
-[[package]]
-name = "roxmltree"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b"
-dependencies = [
- "xmlparser",
-]
-
-[[package]]
-name = "rust-ini"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
-dependencies = [
- "cfg-if 1.0.0",
- "ordered-multimap",
-]
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustc-serialize"
-version = "0.3.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-
-[[package]]
-name = "rustc_version"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
-dependencies = [
- "semver 0.11.0",
-]
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver 1.0.9",
-]
-
-[[package]]
-name = "rustls"
-version = "0.20.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921"
-dependencies = [
- "log",
- "ring",
- "sct",
- "webpki",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360"
-dependencies = [
- "base64",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
-
-[[package]]
-name = "rustybuzz"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44561062e583c4873162861261f16fd1d85fe927c4904d71329a4fe43dc355ef"
-dependencies = [
- "bitflags",
- "bytemuck",
- "smallvec",
- "ttf-parser 0.12.3",
- "unicode-bidi-mirroring",
- "unicode-ccc",
- "unicode-general-category",
- "unicode-script",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
-
-[[package]]
-name = "safe_arch"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05"
-dependencies = [
- "bytemuck",
-]
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "scoped-tls"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-
-[[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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "semver"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd"
-
-[[package]]
-name = "semver-parser"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
-dependencies = [
- "pest",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.137"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde-xml-rs"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65162e9059be2f6a3421ebbb4fef3e74b7d9e7c60c50a0e292c6239f19f1edfa"
-dependencies = [
- "log",
- "serde",
- "thiserror",
- "xml-rs",
-]
-
-[[package]]
-name = "serde_cbor"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
-dependencies = [
- "half",
- "serde",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.137"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_ini"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb236687e2bb073a7521c021949be944641e671b8505a94069ca37b656c81139"
-dependencies = [
- "result",
- "serde",
- "void",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.81"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
-dependencies = [
- "itoa 1.0.1",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_repr"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa 1.0.1",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_with"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b827f2113224f3f19a665136f006709194bdfdcb1fdc1e4b2b5cbac8e0cced54"
-dependencies = [
- "rustversion",
- "serde",
- "serde_with_macros",
-]
-
-[[package]]
-name = "serde_with_macros"
-version = "1.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
-dependencies = [
- "darling",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "servo-fontconfig"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c"
-dependencies = [
- "libc",
- "servo-fontconfig-sys",
-]
-
-[[package]]
-name = "servo-fontconfig-sys"
-version = "5.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388"
-dependencies = [
- "expat-sys",
- "freetype-sys",
- "pkg-config",
-]
-
-[[package]]
-name = "sha-1"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
-dependencies = [
- "block-buffer",
- "digest",
- "fake-simd",
- "opaque-debug",
-]
-
-[[package]]
-name = "sha1"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
-dependencies = [
- "sha1_smol",
-]
-
-[[package]]
-name = "sha1_smol"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
-
-[[package]]
-name = "sharded-slab"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "shell-words"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "simplecss"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "siphasher"
-version = "0.3.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
-
-[[package]]
-name = "slab"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
-
-[[package]]
-name = "sled"
-version = "0.34.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935"
-dependencies = [
- "crc32fast",
- "crossbeam-epoch",
- "crossbeam-utils",
- "fs2",
- "fxhash",
- "libc",
- "log",
- "parking_lot",
-]
-
-[[package]]
-name = "slotmap"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
-
-[[package]]
-name = "smithay-client-toolkit"
-version = "0.15.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a28f16a97fa0e8ce563b2774d1e732dd5d4025d2772c5dba0a41a0f90a29da3"
-dependencies = [
- "bitflags",
- "calloop",
- "dlib",
- "lazy_static",
- "log",
- "memmap2",
- "nix 0.22.3",
- "pkg-config",
- "wayland-client",
- "wayland-cursor",
- "wayland-protocols",
-]
-
-[[package]]
-name = "smithay-clipboard"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "610b551bd25378bfd2b8e7a0fcbd83d427e8f2f6a40c47ae0f70688e9949dd55"
-dependencies = [
- "smithay-client-toolkit",
- "wayland-client",
-]
-
-[[package]]
-name = "socket2"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "speculoos"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bcff6a72e2ddfb09ce0064568857e70d3cf6f4342244ebb1f84fa6f89b16c26"
-dependencies = [
- "num",
-]
-
-[[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.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c530c2b0d0bf8b69304b39fe2001993e267461948b890cd037d8ad4293fa1a0d"
-dependencies = [
- "lock_api",
-]
-
-[[package]]
-name = "spirv"
-version = "0.2.0+1.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
-dependencies = [
- "bitflags",
- "num-traits",
-]
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
-name = "str-buf"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d44a3643b4ff9caf57abcee9c2c621d6c03d9135e0d8b589bd9afb5992cb176a"
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "structopt"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
-dependencies = [
- "clap",
- "lazy_static",
- "structopt-derive",
-]
-
-[[package]]
-name = "structopt-derive"
-version = "0.4.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
-dependencies = [
- "heck",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "svg_fmt"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
-
-[[package]]
-name = "svgfilters"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "639abcebc15fdc2df179f37d6f5463d660c1c79cd552c12343a4600827a04bce"
-dependencies = [
- "float-cmp",
- "rgb",
-]
-
-[[package]]
-name = "svgtypes"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dabb3eb59a457c56d5282ab4545609e2cc382b41f6af239bb8d59a7267ef94b3"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "sysfs-class"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e1bbcf869732c45a77898f7f61ed6d411dfc37613517e444842f58d428856d1"
-dependencies = [
- "numtoa",
-]
-
-[[package]]
-name = "temp-dir"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
-
-[[package]]
-name = "tempdir"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
-dependencies = [
- "rand 0.4.6",
- "remove_dir_all",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "tiny-skia"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bcfd4339bdd4545eabed74b208f2f1555f2e6540fb58135c01f46c0940aa138"
-dependencies = [
- "arrayref",
- "arrayvec 0.5.2",
- "bytemuck",
- "cfg-if 1.0.0",
- "png 0.17.5",
- "safe_arch",
-]
-
-[[package]]
-name = "tinytemplate"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
-dependencies = [
- "serde",
- "serde_json",
-]
-
-[[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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-
-[[package]]
-name = "tokio"
-version = "1.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395"
-dependencies = [
- "bytes 1.1.0",
- "libc",
- "memchr",
- "mio",
- "num_cpus",
- "once_cell",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2",
- "tokio-macros",
- "winapi",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tokio-rustls"
-version = "0.23.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
-dependencies = [
- "rustls",
- "tokio",
- "webpki",
-]
-
-[[package]]
-name = "tokio-stream"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3"
-dependencies = [
- "futures-core",
- "pin-project-lite",
- "tokio",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764"
-dependencies = [
- "bytes 1.1.0",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "tower-service"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
-
-[[package]]
-name = "tracing"
-version = "0.1.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09"
-dependencies = [
- "cfg-if 1.0.0",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f"
-dependencies = [
- "lazy_static",
- "valuable",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596"
-dependencies = [
- "lazy_static",
- "matchers",
- "regex",
- "sharded-slab",
- "thread_local",
- "tracing",
- "tracing-core",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
-
-[[package]]
-name = "ttf-parser"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae2f58a822f08abdaf668897e96a5656fe72f5a9ce66422423e8849384872e6"
-
-[[package]]
-name = "ttf-parser"
-version = "0.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c74c96594835e10fa545e2a51e8709f30b173a092bfd6036ef2cec53376244f3"
-
-[[package]]
-name = "twox-hash"
-version = "1.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
-dependencies = [
- "cfg-if 1.0.0",
- "rand 0.8.5",
- "static_assertions",
-]
-
-[[package]]
-name = "typenum"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-
-[[package]]
-name = "ucd-trie"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
-
-[[package]]
-name = "uds_windows"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "486992108df0fe0160680af1941fe856c521be931d5a5ecccefe0de86dc47e4a"
-dependencies = [
- "tempdir",
- "winapi",
-]
-
-[[package]]
-name = "unicase"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
-
-[[package]]
-name = "unicode-bidi-mirroring"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694"
-
-[[package]]
-name = "unicode-ccc"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
-
-[[package]]
-name = "unicode-general-category"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07547e3ee45e28326cc23faac56d44f58f16ab23e413db526debce3b0bfd2742"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-script"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58dd944fd05f2f0b5c674917aea8a4df6af84f2d8de3fe8d988b95d28fb8fb09"
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
-
-[[package]]
-name = "unicode-vo"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "url"
-version = "2.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
-dependencies = [
- "form_urlencoded",
- "idna",
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "urlencoding"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68b90931029ab9b034b300b797048cf23723400aa757e8a2bfb9d748102f9821"
-
-[[package]]
-name = "usvg"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4058e0bd091a56f905e6963e40776ce6880b271275f0b493bff951433e303071"
-dependencies = [
- "base64",
- "data-url",
- "flate2",
- "float-cmp",
- "fontdb",
- "kurbo",
- "log",
- "pico-args",
- "rctree",
- "roxmltree",
- "rustybuzz",
- "simplecss",
- "siphasher",
- "svgtypes",
- "ttf-parser 0.12.3",
- "unicode-bidi",
- "unicode-script",
- "unicode-vo",
- "xmlwriter",
-]
-
-[[package]]
-name = "valuable"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "void"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-
-[[package]]
-name = "waker-fn"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
-
-[[package]]
-name = "walkdir"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
-dependencies = [
- "same-file",
- "winapi",
- "winapi-util",
-]
-
-[[package]]
-name = "want"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
-dependencies = [
- "log",
- "try-lock",
-]
-
-[[package]]
-name = "ward"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cbcd609d606e1307a1530061482ed2ee3fc9963128990238cefb2013127b61e"
-
-[[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.2+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad"
-dependencies = [
- "cfg-if 1.0.0",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4"
-dependencies = [
- "bumpalo",
- "lazy_static",
- "log",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744"
-
-[[package]]
-name = "wasm-timer"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
-dependencies = [
- "futures",
- "js-sys",
- "parking_lot",
- "pin-utils",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
-]
-
-[[package]]
-name = "wayland-client"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91223460e73257f697d9e23d401279123d36039a3f7a449e983f123292d4458f"
-dependencies = [
- "bitflags",
- "downcast-rs",
- "libc",
- "nix 0.22.3",
- "scoped-tls",
- "wayland-commons",
- "wayland-scanner",
- "wayland-sys",
-]
-
-[[package]]
-name = "wayland-commons"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94f6e5e340d7c13490eca867898c4cec5af56c27a5ffe5c80c6fc4708e22d33e"
-dependencies = [
- "nix 0.22.3",
- "once_cell",
- "smallvec",
- "wayland-sys",
-]
-
-[[package]]
-name = "wayland-cursor"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c52758f13d5e7861fc83d942d3d99bf270c83269575e52ac29e5b73cb956a6bd"
-dependencies = [
- "nix 0.22.3",
- "wayland-client",
- "xcursor",
-]
-
-[[package]]
-name = "wayland-protocols"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60147ae23303402e41fe034f74fb2c35ad0780ee88a1c40ac09a3be1e7465741"
-dependencies = [
- "bitflags",
- "wayland-client",
- "wayland-commons",
- "wayland-scanner",
-]
-
-[[package]]
-name = "wayland-scanner"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39a1ed3143f7a143187156a2ab52742e89dac33245ba505c17224df48939f9e0"
-dependencies = [
- "proc-macro2",
- "quote",
- "xml-rs",
-]
-
-[[package]]
-name = "wayland-sys"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9341df79a8975679188e37dab3889bfa57c44ac2cb6da166f519a81cbe452d4"
-dependencies = [
- "dlib",
- "lazy_static",
- "pkg-config",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webpki"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "webpki-roots"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf"
-dependencies = [
- "webpki",
-]
-
-[[package]]
-name = "weezl"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c97e489d8f836838d497091de568cf16b117486d529ec5579233521065bd5e4"
-
-[[package]]
-name = "wepoll-ffi"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "wgpu"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97cd781ff044d6d697b632a2e212032c2e957d1afaa21dbf58069cbb8f78567"
-dependencies = [
- "arrayvec 0.7.2",
- "js-sys",
- "log",
- "naga",
- "parking_lot",
- "raw-window-handle 0.4.3",
- "smallvec",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "wgpu-core",
- "wgpu-hal",
- "wgpu-types",
-]
-
-[[package]]
-name = "wgpu-core"
-version = "0.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4688c000eb841ca55f7b35db659b78d6e1cd77d7caf8fb929f4e181f754047d"
-dependencies = [
- "arrayvec 0.7.2",
- "bitflags",
- "cfg_aliases",
- "codespan-reporting",
- "copyless",
- "fxhash",
- "log",
- "naga",
- "parking_lot",
- "profiling",
- "raw-window-handle 0.4.3",
- "smallvec",
- "thiserror",
- "wgpu-hal",
- "wgpu-types",
-]
-
-[[package]]
-name = "wgpu-hal"
-version = "0.12.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d684ea6a34974a2fc19f1dfd183d11a62e22d75c4f187a574bb1224df8e056c2"
-dependencies = [
- "arrayvec 0.7.2",
- "ash",
- "bit-set",
- "bitflags",
- "block",
- "core-graphics-types",
- "d3d12",
- "foreign-types",
- "fxhash",
- "glow",
- "gpu-alloc",
- "gpu-descriptor",
- "inplace_it",
- "js-sys",
- "khronos-egl",
- "libloading",
- "log",
- "metal",
- "naga",
- "objc",
- "parking_lot",
- "profiling",
- "range-alloc",
- "raw-window-handle 0.4.3",
- "renderdoc-sys",
- "thiserror",
- "wasm-bindgen",
- "web-sys",
- "wgpu-types",
- "winapi",
-]
-
-[[package]]
-name = "wgpu-types"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "549533d9e1cdd4b4cda7718d33ff500fc4c34b5467b71d76b547ae0324f3b2a2"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "wgpu_glyph"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8134edb15ae465caf308125646c9e98bdef7398cdefc69227ac77a5eb795e7fe"
-dependencies = [
- "bytemuck",
- "glyph_brush",
- "log",
- "wgpu",
-]
-
-[[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-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "window_clipboard"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "086ed826cc4468377b6b995300d5f7f852a2fe1eb02e6cd1ccd4a574deb9d310"
-dependencies = [
- "clipboard-win",
- "clipboard_macos",
- "clipboard_wayland",
- "clipboard_x11",
- "raw-window-handle 0.3.4",
- "thiserror",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
-dependencies = [
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
-
-[[package]]
-name = "winit"
-version = "0.26.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b43cc931d58b99461188607efd7acb2a093e65fc621f54cad78517a6063e73a"
-dependencies = [
- "bitflags",
- "cocoa",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "core-video-sys",
- "dispatch",
- "instant",
- "lazy_static",
- "libc",
- "log",
- "mio",
- "ndk",
- "ndk-glue",
- "ndk-sys",
- "objc",
- "parking_lot",
- "percent-encoding",
- "raw-window-handle 0.4.3",
- "smithay-client-toolkit",
- "wasm-bindgen",
- "wayland-client",
- "wayland-protocols",
- "web-sys",
- "winapi",
- "x11-dl",
-]
-
-[[package]]
-name = "winreg"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "wio"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "x11-dl"
-version = "2.19.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea26926b4ce81a6f5d9d0f3a0bc401e5a37c6ae14a1bfaa8ff6099ca80038c59"
-dependencies = [
- "lazy_static",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "x11rb"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ffb080b3f2f616242a4eb8e7d325035312127901025b0052bc3154a282d0f19"
-dependencies = [
- "gethostname",
- "nix 0.20.0",
- "winapi",
- "winapi-wsapoll",
-]
-
-[[package]]
-name = "xcursor"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "xdg"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4583db5cbd4c4c0303df2d15af80f0539db703fa1c68802d4cbbd2dd0f88f6"
-dependencies = [
- "dirs 4.0.0",
-]
-
-[[package]]
-name = "xi-unicode"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
-
-[[package]]
-name = "xml-rs"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
-
-[[package]]
-name = "xmlparser"
-version = "0.13.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8"
-
-[[package]]
-name = "xmlwriter"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
-
-[[package]]
-name = "zbus"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53819092b9db813b2c6168b097b4b13ad284d81c9f2b0165a0a1b190e505a1f3"
-dependencies = [
- "async-broadcast",
- "async-channel",
- "async-executor",
- "async-io",
- "async-lock",
- "async-recursion",
- "async-task",
- "async-trait",
- "byteorder",
- "derivative",
- "enumflags2",
- "event-listener",
- "futures-core",
- "futures-sink",
- "futures-util",
- "hex",
- "lazy_static",
- "nix 0.23.1",
- "once_cell",
- "ordered-stream",
- "rand 0.8.5",
- "serde",
- "serde_repr",
- "sha1",
- "static_assertions",
- "uds_windows",
- "winapi",
- "zbus_macros",
- "zbus_names",
- "zvariant",
-]
-
-[[package]]
-name = "zbus_macros"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7174ebe6722c280d6d132d694bb5664ce50a788cb70eeb518e7fc1ca095a114"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "regex",
- "syn",
-]
-
-[[package]]
-name = "zbus_names"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45dfcdcf87b71dad505d30cc27b1b7b88a64b6d1c435648f48f9dbc1fdc4b7e1"
-dependencies = [
- "serde",
- "static_assertions",
- "zvariant",
-]
-
-[[package]]
-name = "zvariant"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e18ba99d71e03af262953f476071607da0c44e225236cf9b5b9f7f11f1d0b6b0"
-dependencies = [
- "byteorder",
- "enumflags2",
- "libc",
- "serde",
- "static_assertions",
- "zvariant_derive",
-]
-
-[[package]]
-name = "zvariant_derive"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9042892ebdca35261951a83d17bcbfd4d3d528cb3bde828498a9b306b50d05c0"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
diff --git a/pkgs/applications/misc/onagre/default.nix b/pkgs/applications/misc/onagre/default.nix
deleted file mode 100644
index b6375e6b5955e..0000000000000
--- a/pkgs/applications/misc/onagre/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib
-, fetchFromGitHub
-, rustPlatform
-, cmake
-, pkgconf
-, freetype
-, expat
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "onagre";
-  version = "1.0.0-alpha.0";
-
-  src = fetchFromGitHub {
-    owner = "oknozor";
-    repo = pname;
-    rev = version;
-    hash = "sha256-hP+slfCWgsTgR2ZUjAmqx9f7+DBu3MpSLvaiZhqNK1Q=";
-  };
-
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "pop-launcher-1.2.1" = "sha256-LeKaJIvooD2aUlY113P0mzxOcj63sGkrA0SIccNqCLY=";
-    };
-  };
-
-  cargoSha256 = "sha256-IOhAGrAiT2mnScNP7k7XK9CETUr6BjGdQVdEUvTYQT4=";
-
-  nativeBuildInputs = [ cmake pkgconf ];
-  buildInputs = [ freetype expat ];
-
-  meta = with lib; {
-    description = "A general purpose application launcher for X and wayland inspired by rofi/wofi and alfred";
-    homepage = "https://github.com/oknozor/onagre";
-    license = licenses.mit;
-    maintainers = [ maintainers.jfvillablanca ];
-    platforms = platforms.linux;
-    mainProgram = "onagre";
-  };
-}
diff --git a/pkgs/applications/misc/tui-journal/default.nix b/pkgs/applications/misc/tui-journal/default.nix
index 555af71d37257..102b9ad354df5 100644
--- a/pkgs/applications/misc/tui-journal/default.nix
+++ b/pkgs/applications/misc/tui-journal/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tui-journal";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = "AmmarAbouZor";
     repo = "tui-journal";
     rev = "v${version}";
-    hash = "sha256-G8p1eaHebUH2lFNyC2njUzZacE6rayApCb7PBFcpKLk=";
+    hash = "sha256-SgpIR7gLfmX6mCtuqRonqzX07Eblp9Mq80y71b05FZY=";
   };
 
-  cargoHash = "sha256-iM5PsgCUxBbjeWGEIohZwMiCIdXqj/bhFoL0GtVKKq4=";
+  cargoHash = "sha256-SetNhIengAiLRMHoYBRxHR1LgzYywRC7L6hmRF9COik=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 9da0f725ed560..afd25b972d785 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -5,6 +5,7 @@
 , libva, pipewire, wayland
 , gcc, nspr, nss, runCommand
 , lib, libkrb5
+, widevine-cdm
 , electron-source # for warnObsoleteVersionConditional
 
 # package customization
@@ -74,78 +75,6 @@ let
     ungoogled-chromium = pkgsBuildBuild.callPackage ./ungoogled.nix {};
   };
 
-  pkgSuffix = if channel == "dev" then "unstable" else
-    (if channel == "ungoogled-chromium" then "stable" else channel);
-  pkgName = "google-chrome-${pkgSuffix}";
-  chromeSrc =
-    let
-      # Use the latest stable Chrome version if necessary:
-      version = if chromium.upstream-info.hash_deb_amd64 != null
-        then chromium.upstream-info.version
-        else (import ./upstream-info.nix).stable.version;
-      hash = if chromium.upstream-info.hash_deb_amd64 != null
-        then chromium.upstream-info.hash_deb_amd64
-        else (import ./upstream-info.nix).stable.hash_deb_amd64;
-    in fetchurl {
-      urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
-        "https://dl.google.com/linux/chrome/deb/pool/main/g"
-        "http://95.31.35.30/chrome/pool/main/g"
-        "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
-        "http://repo.fdzh.org/chrome/deb/pool/main/g"
-      ];
-      inherit hash;
-  };
-
-  mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
-  widevineCdm = stdenv.mkDerivation {
-    name = "chrome-widevine-cdm";
-
-    src = chromeSrc;
-
-    unpackCmd = let
-      widevineCdmPath =
-        if (channel == "stable" || channel == "ungoogled-chromium") then
-          "./opt/google/chrome/WidevineCdm"
-        else if channel == "beta" then
-          "./opt/google/chrome-beta/WidevineCdm"
-        else if channel == "dev" then
-          "./opt/google/chrome-unstable/WidevineCdm"
-        else
-          throw "Unknown chromium channel.";
-    in ''
-      # Extract just WidevineCdm from upstream's .deb file
-      ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}"
-
-      # Move things around so that we don't have to reference a particular
-      # chrome-* directory later.
-      mv "${widevineCdmPath}" ./
-
-      # unpackCmd wants a single output directory; let it take WidevineCdm/
-      rm -rf opt
-    '';
-
-    doCheck = true;
-    checkPhase = ''
-      ! find -iname '*.so' -exec ldd {} + | grep 'not found'
-    '';
-
-    PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
-
-    patchPhase = ''
-      patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so
-    '';
-
-    installPhase = ''
-      mkdir -p $out/WidevineCdm
-      cp -a * $out/WidevineCdm/
-    '';
-
-    meta = {
-      platforms = [ "x86_64-linux" ];
-      license = lib.licenses.unfree;
-    };
-  };
-
   suffix = lib.optionalString (channel != "stable" && channel != "ungoogled-chromium") ("-" + channel);
 
   sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
@@ -159,7 +88,7 @@ let
         mkdir -p $out
         cp -a ${browser}/* $out/
         chmod u+w $out/libexec/chromium
-        cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/
+        cp -a ${widevine-cdm}/share/google/chrome/WidevineCdm $out/libexec/chromium/
       ''
     else browser;
 
@@ -244,7 +173,7 @@ in stdenv.mkDerivation {
   passthru = {
     inherit (chromium) upstream-info browser;
     mkDerivation = chromium.mkChromiumDerivation;
-    inherit chromeSrc sandboxExecutableName;
+    inherit sandboxExecutableName;
   };
 }
 # the following is a complicated and long-winded variant of
diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py
index 29a46cd688c6f..d92a9dae8a8ce 100755
--- a/pkgs/applications/networking/browsers/chromium/update.py
+++ b/pkgs/applications/networking/browsers/chromium/update.py
@@ -20,7 +20,6 @@ from os.path import abspath, dirname
 from urllib.request import urlopen
 
 RELEASES_URL = 'https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/all/versions/all/releases'
-DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
 
 PIN_PATH = dirname(abspath(__file__)) + '/upstream-info.nix'
 UNGOOGLED_FLAGS_PATH = dirname(abspath(__file__)) + '/ungoogled-flags.toml'
@@ -259,10 +258,6 @@ with urlopen(RELEASES_URL) as resp:
                     version
                 )
                 src_hash_cache[version] = channel["hash"]
-
-            channel['hash_deb_amd64'] = nix_prefetch_url(
-                f'{DEB_URL}/google-chrome-{google_chrome_suffix}/' +
-                f'google-chrome-{google_chrome_suffix}_{version}-1_amd64.deb')
         except subprocess.CalledProcessError:
             # This release isn't actually available yet.  Continue to
             # the next one.
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 9e91cd5725df0..d3f4d9c14ca0f 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -16,7 +16,6 @@
       };
     };
     hash = "sha256-nSI+tkJxOedMtYgtiqW37v0ZjgxxU5o/0sH9bPAchBg=";
-    hash_deb_amd64 = "sha256-RvQdpDmWRcsASh1b8M0Zg+AvZprE5qhi14shfo0WlfE=";
     version = "124.0.6367.201";
   };
   ungoogled-chromium = {
@@ -33,7 +32,6 @@
       };
     };
     hash = "sha256-nSI+tkJxOedMtYgtiqW37v0ZjgxxU5o/0sH9bPAchBg=";
-    hash_deb_amd64 = "sha256-RvQdpDmWRcsASh1b8M0Zg+AvZprE5qhi14shfo0WlfE=";
     version = "124.0.6367.201";
   };
 }
diff --git a/pkgs/applications/networking/cluster/glooctl/default.nix b/pkgs/applications/networking/cluster/glooctl/default.nix
index 67a7f12f2d8a1..4a62d357736b6 100644
--- a/pkgs/applications/networking/cluster/glooctl/default.nix
+++ b/pkgs/applications/networking/cluster/glooctl/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "glooctl";
-  version = "1.16.10";
+  version = "1.16.11";
 
   src = fetchFromGitHub {
     owner = "solo-io";
     repo = "gloo";
     rev = "v${version}";
-    hash = "sha256-GC0/HGPO/sbkyf2bLY0A+pQrPYqMv6BP0zNUHENpQjg=";
+    hash = "sha256-3GTSIZRELj8Pdm02SUKSCk6/Q7Hkuggvq+XjJAH9qU0=";
   };
 
   vendorHash = "sha256-UyzqKpF2WBj25Bm4MtkF6yjl87A61vGsteBNCjJV178=";
diff --git a/pkgs/applications/networking/cluster/krane/Gemfile.lock b/pkgs/applications/networking/cluster/krane/Gemfile.lock
index f458355768a0c..ef009399785a4 100644
--- a/pkgs/applications/networking/cluster/krane/Gemfile.lock
+++ b/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -14,7 +14,7 @@ GEM
     addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     base64 (0.2.0)
-    bigdecimal (3.1.7)
+    bigdecimal (3.1.8)
     colorize (0.8.1)
     concurrent-ruby (1.2.3)
     connection_pool (2.4.1)
@@ -48,13 +48,13 @@ GEM
     http-cookie (1.0.5)
       domain_name (~> 0.5)
     http-form_data (2.3.0)
-    i18n (1.14.4)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
     jsonpath (1.1.5)
       multi_json
     jwt (2.8.1)
       base64
-    krane (3.5.2)
+    krane (3.5.3)
       activesupport (>= 5.0)
       colorize (~> 0.8)
       concurrent-ruby (~> 1.1)
@@ -75,7 +75,7 @@ GEM
       rake (~> 13.0)
     mime-types (3.5.2)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2024.0305)
+    mime-types-data (3.2024.0507)
     minitest (5.22.3)
     multi_json (1.15.0)
     mutex_m (0.2.0)
@@ -109,4 +109,4 @@ DEPENDENCIES
   krane
 
 BUNDLED WITH
-   2.5.7
+   2.5.9
diff --git a/pkgs/applications/networking/cluster/krane/gemset.nix b/pkgs/applications/networking/cluster/krane/gemset.nix
index 3fc00e049ce4b..5b296b320c4ef 100644
--- a/pkgs/applications/networking/cluster/krane/gemset.nix
+++ b/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7";
+      sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
       type = "gem";
     };
-    version = "3.1.7";
+    version = "3.1.8";
   };
   colorize = {
     groups = ["default"];
@@ -214,10 +214,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
       type = "gem";
     };
-    version = "1.14.4";
+    version = "1.14.5";
   };
   jsonpath = {
     dependencies = ["multi_json"];
@@ -247,10 +247,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s2xc5igk3yg3jpl3abakvrsf4xl6hljhgyddjsrp2g05sksa9x6";
+      sha256 = "11jj5fpfsb1sfwgc356xv1vxl8yq65wbbshmawpagk555y0pzbpb";
       type = "gem";
     };
-    version = "3.5.2";
+    version = "3.5.3";
   };
   kubeclient = {
     dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@@ -290,10 +290,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455";
+      sha256 = "0kybw1a6f7d1ipyawnpi5cwiy05rkz9qwglgfvhmd1z0l2gcigmm";
       type = "gem";
     };
-    version = "3.2024.0305";
+    version = "3.2024.0507";
   };
   minitest = {
     groups = ["default"];
diff --git a/pkgs/applications/networking/cluster/kubevpn/default.nix b/pkgs/applications/networking/cluster/kubevpn/default.nix
index a338867a14a07..c8f755bf3d9cb 100644
--- a/pkgs/applications/networking/cluster/kubevpn/default.nix
+++ b/pkgs/applications/networking/cluster/kubevpn/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubevpn";
-  version = "2.2.7";
+  version = "2.2.8";
 
   src = fetchFromGitHub {
     owner  = "KubeNetworks";
     repo   = "kubevpn";
     rev    = "v${version}";
-    hash = "sha256-6HZc4PxgTLROn1nQLreC/GP43/MXiqtiSAGsMfXC5vw=";
+    hash = "sha256-/5x1ovvO4Pfnux3GpfeOUy9PIrHPmZzYvOCH09EjxKE=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/nova/default.nix b/pkgs/applications/networking/cluster/nova/default.nix
index 050674907082f..1e8ab2402d9b9 100644
--- a/pkgs/applications/networking/cluster/nova/default.nix
+++ b/pkgs/applications/networking/cluster/nova/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nova";
-  version = "3.8.0";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "FairwindsOps";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-3bSxMb/JFIy3b6N/94cXfGlUbPIm046O9m2KPan8YIs=";
+    hash = "sha256-9ccWH0bh67LCwzKmyaE32j+qeKfNauclSMjpRwdblH8=";
   };
 
-  vendorHash = "sha256-c30B8Wjvwp4NnB1P8h4/raGiGAX/cbTZ/KQqh/qeNhA=";
+  vendorHash = "sha256-Vt2yUYm2i1NHzW7GxDRqBpaFS4dLfODNEMPO+CTwrLY=";
 
   ldflags = [ "-X main.version=${version}" "-s" "-w" ];
 
diff --git a/pkgs/applications/networking/instant-messengers/cinny/default.nix b/pkgs/applications/networking/instant-messengers/cinny/default.nix
index db3b48e4a2a37..87e3d17314014 100644
--- a/pkgs/applications/networking/instant-messengers/cinny/default.nix
+++ b/pkgs/applications/networking/instant-messengers/cinny/default.nix
@@ -29,6 +29,11 @@ buildNpmPackage rec {
 
   npmDepsHash = "sha256-4R+To2LhcnEM9x1noo6MhCckyBKgPWiAi7zgDqAmaN0=";
 
+  # Fix error: no member named 'aligned_alloc' in the global namespace
+  env.NIX_CFLAGS_COMPILE = lib.optionalString (
+    stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinSdkVersion "11.0"
+  ) "-D_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION=1";
+
   nativeBuildInputs = [
     jq
     python3
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 364843e7bfa82..57185f5e42e55 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -1,6 +1,13 @@
-{ hostPlatform, callPackage }: {
-  signal-desktop = if hostPlatform.system == "aarch64-linux"
-    then callPackage ./signal-desktop-aarch64.nix { }
-    else callPackage ./signal-desktop.nix { };
-  signal-desktop-beta = callPackage ./signal-desktop-beta.nix{ };
+{ hostPlatform, callPackage }:
+{
+  signal-desktop =
+    if hostPlatform.system == "aarch64-linux" then
+      callPackage ./signal-desktop-aarch64.nix { }
+    else
+      callPackage ./signal-desktop.nix { };
+  signal-desktop-beta = (callPackage ./signal-desktop-beta.nix { }).overrideAttrs (old: {
+    meta = old.meta // {
+      platforms = [ "x86_64-linux" ];
+    };
+  });
 }
diff --git a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index 08bf8397c9386..d2c6e57ed8fb5 100644
--- a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20240506";
+  version = "20240509-1";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    hash = "sha256-rPM5Qz1n9bTOF//sqpT+LvEjBSCT2BjyQBIxjV6CkGU=";
+    hash = "sha256-GUh/OTeJNBg3TDij/8jIEXfw9ox1wvq6tRq61JbMiZg=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
index 39589402b5334..4092491d047de 100644
--- a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
+++ b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "twitch-tui";
-  version = "2.6.7";
+  version = "2.6.8";
 
   src = fetchFromGitHub {
     owner = "Xithrius";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-sokOdM4Z2U/B23XEGONNHr2g9iuNz+Hm+on+7xMYD0E=";
+    hash = "sha256-tak9CPqDVGTfQAjNLhPPvYgP4lUV5g1vPziWbRtqOA0=";
   };
 
-  cargoHash = "sha256-ngivv/2NDmY8c6eInzfdS4GjZQHWU3iJEFI3S+tf34M=";
+  cargoHash = "sha256-SNSFUhm2zFew/oYCoRQXTGEhwmvgM8GX5afPRoltmV0=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/networking/pyload-ng/default.nix b/pkgs/applications/networking/pyload-ng/default.nix
index 09304784d3122..61c62fb95e949 100644
--- a/pkgs/applications/networking/pyload-ng/default.nix
+++ b/pkgs/applications/networking/pyload-ng/default.nix
@@ -1,13 +1,15 @@
 { lib, fetchPypi, nixosTests, python3 }:
 
 python3.pkgs.buildPythonApplication rec {
-  version = "0.5.0b3.dev80";
+  version = "0.5.0b3.dev85";
   pname = "pyload-ng";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-1vIkEctoj6udowYxFwY42f/zL9Elw2Nl6ZaL2x30k/M=";
+    inherit version;
+    # The uploaded tarball uses an underscore in recent releases
+    pname = "pyload_ng";
+    hash = "sha256-KLpfh53JKqe0kZLcQ1C4fXFFYeO5pPhia9fRxWsbIHY=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index 36b6b5c143393..4321868a0d6d3 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , buildPythonApplication
-, fetchpatch
 , pem
 , pyside6
 , twisted
@@ -14,7 +13,7 @@
 
 buildPythonApplication rec {
   pname = "syncplay";
-  version = "1.7.0";
+  version = "1.7.2";
 
   format = "other";
 
@@ -22,15 +21,10 @@ buildPythonApplication rec {
     owner = "Syncplay";
     repo = "syncplay";
     rev = "v${version}";
-    sha256 = "sha256-Te81yOv3D6M6aMfC5XrM6/I6BlMdlY1yRk1RRJa9Mxg=";
+    sha256 = "sha256-PERPE6141LXmb8fmW17Vu54Unpf9vEK+ahm6q1byRTU=";
   };
 
   patches = [
-    (fetchpatch {
-      name = "fix-typeerror.patch";
-      url = "https://github.com/Syncplay/syncplay/commit/b62b038cdf58c54205987dfc52ebf228505ad03b.patch";
-      hash = "sha256-pSP33Qn1I+nJBW8T1E1tSJKRh5OnZMRsbU+jr5z4u7c=";
-    })
     ./trusted_certificates.patch
   ];
 
@@ -52,6 +46,6 @@ buildPythonApplication rec {
     description = "Free software that synchronises media players";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ Enzime ];
+    maintainers = with maintainers; [ assistant Enzime ];
   };
 }
diff --git a/pkgs/applications/office/gnucash/0005-disable-test-lots.patch b/pkgs/applications/office/gnucash/0005-disable-test-lots.patch
new file mode 100644
index 0000000000000..c7418b7b88b9b
--- /dev/null
+++ b/pkgs/applications/office/gnucash/0005-disable-test-lots.patch
@@ -0,0 +1,11 @@
+--- a/libgnucash/engine/test/CMakeLists.txt	2024-02-23 09:05:19.000000000 +0900
++++ b/libgnucash/engine/test/CMakeLists.txt	2024-05-08 22:08:04.572060359 +0900
+@@ -57,7 +57,6 @@
+ 
+ add_engine_test(test-account-object test-account-object.cpp)
+ add_engine_test(test-group-vs-book test-group-vs-book.cpp)
+-add_engine_test(test-lots test-lots.cpp)
+ add_engine_test(test-querynew test-querynew.c)
+ add_engine_test(test-query test-query.cpp)
+ add_engine_test(test-split-vs-account test-split-vs-account.cpp)
+
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 6c8c0ee32f4ff..8d86d771d0aa8 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -76,6 +76,9 @@ stdenv.mkDerivation rec {
     ./0003-remove-valgrind.patch
     # this patch makes gnucash exec the Finance::Quote wrapper directly
     ./0004-exec-fq-wrapper.patch
+    # this patch disables a flaky test
+    # see https://bugs.gnucash.org/show_bug.cgi?id=799289
+    ./0005-disable-test-lots.patch
     # Fix importing QIF by backporting a fix. remove on next release
     # https://bugs.gnucash.org/show_bug.cgi?id=799262
     (fetchpatch {
diff --git a/pkgs/applications/office/planify/default.nix b/pkgs/applications/office/planify/default.nix
index 86117b22e8036..8d4c079753caa 100644
--- a/pkgs/applications/office/planify/default.nix
+++ b/pkgs/applications/office/planify/default.nix
@@ -10,6 +10,7 @@
 , evolution-data-server
 , glib
 , glib-networking
+, gst_all_1
 , gtk4
 , gtksourceview5
 , gxml
@@ -49,6 +50,9 @@ stdenv.mkDerivation rec {
     evolution-data-server
     glib
     glib-networking
+    # Needed for GtkMediaStream creation with success.ogg, see #311295.
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
     gtk4
     gtksourceview5
     gxml
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index 78b559b8ff3fe..99c58ba5360d1 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
       nativeBuildInputs = [ curl coreutils ];
 
+      impureEnvVars = lib.fetchers.proxyImpureEnvVars;
       SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
     } ''
     timestamp10=$(date '+%s')
diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix
index d73dcc01a54e6..9854fa8076efe 100644
--- a/pkgs/applications/radio/chirp/default.nix
+++ b/pkgs/applications/radio/chirp/default.nix
@@ -10,13 +10,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "chirp";
-  version = "0.4.0-unstable-2024-05-03";
+  version = "0.4.0-unstable-2024-05-10";
 
   src = fetchFromGitHub {
     owner = "kk7ds";
     repo = "chirp";
-    rev = "e95140ff433b805ca16df04cba501b7332a9ec95";
-    hash = "sha256-UU3Ve6Yb7UK2nOLTfJasrlMX4iu1cpLBLScvhRhTUJ0=";
+    rev = "d5dc5c8e053dbcf87c8b0ccf03109c0870c22bfb";
+    hash = "sha256-Tqq1dTjtzHTgaHUAio5B8V4Bo+P8EPa3s/kG181TrCc=";
   };
   buildInputs = [
     glib
diff --git a/pkgs/applications/radio/cloudlog/default.nix b/pkgs/applications/radio/cloudlog/default.nix
index 4f3f21926f231..b9d17927776d1 100644
--- a/pkgs/applications/radio/cloudlog/default.nix
+++ b/pkgs/applications/radio/cloudlog/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "cloudlog";
-  version = "2.6.10";
+  version = "2.6.11";
 
   src = fetchFromGitHub {
     owner = "magicbug";
     repo = "Cloudlog";
     rev = version;
-    hash = "sha256-VPiv/Df4dasiYUBA6UHrxBczmGAqzhQkPrknzSYJxAE=";
+    hash = "sha256-9JGhMCypoKOh1Gy1DdK7nrma+L4sJsYN/iuNhBPmHPA=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/math/eigenmath/default.nix b/pkgs/applications/science/math/eigenmath/default.nix
index becf26c61af7a..2f51a00a9b150 100644
--- a/pkgs/applications/science/math/eigenmath/default.nix
+++ b/pkgs/applications/science/math/eigenmath/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eigenmath";
-  version = "0-unstable-2024-05-03";
+  version = "0-unstable-2024-05-12";
 
   src = fetchFromGitHub {
     owner = "georgeweigt";
     repo = pname;
-    rev = "69ebfbaa7f328ddc9d97b7c404369818a5febe4a";
-    hash = "sha256-lHxVyUXIY9+YIStA6202Bhy/b0xaxJbW/VPI7FbNJk0=";
+    rev = "978b3bd582a90c8e82079f2e4e4a3a5038cbbe08";
+    hash = "sha256-DoGX8nUcWcioTq8ymB+HLsCnt9V6HTKSX4Zs2CQz78Q=";
   };
 
   checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
diff --git a/pkgs/applications/version-management/git-cola/default.nix b/pkgs/applications/version-management/git-cola/default.nix
index 0f5fd0cb7aa2e..38c094ad0e20c 100644
--- a/pkgs/applications/version-management/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-cola/default.nix
@@ -10,14 +10,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "git-cola";
-  version = "4.7.0";
+  version = "4.7.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "git-cola";
     repo = "git-cola";
     rev = "v${version}";
-    hash = "sha256-BiSs3vWJacCtGthHi/nFJm4Hqt0uO6XXZi/Zqvjb928=";
+    hash = "sha256-93aayGGMgkSghTpx8M5Cfbxf2szAwrSzuoWK6GCTqZ8=";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [
diff --git a/pkgs/applications/video/davinci-resolve/default.nix b/pkgs/applications/video/davinci-resolve/default.nix
index bb631909872cf..bca8bc1e48ed2 100644
--- a/pkgs/applications/video/davinci-resolve/default.nix
+++ b/pkgs/applications/video/davinci-resolve/default.nix
@@ -25,6 +25,9 @@
 , jq
 
 , studioVariant ? false
+
+, common-updater-scripts
+, writeShellApplication
 }:
 
 let
@@ -251,7 +254,28 @@ buildFHSEnv {
     ''
   }";
 
-  passthru = { inherit davinci; };
+  passthru = {
+    inherit davinci;
+    updateScript = lib.getExe (writeShellApplication {
+      name = "update-davinci-resolve";
+      runtimeInputs = [ curl jq common-updater-scripts ];
+      text = ''
+        set -o errexit
+        drv=pkgs/applications/video/davinci-resolve/default.nix
+        currentVersion=${lib.escapeShellArg davinci.version}
+        downloadsJSON="$(curl --fail --silent https://www.blackmagicdesign.com/api/support/us/downloads.json)"
+
+        latestLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve \K\d+\.\d+\.\d+' | sort | tail -n 1)"
+        update-source-version davinci-resolve "$latestLinuxVersion" --source-key=davinci.src
+
+        # Since the standard and studio both use the same version we need to reset it before updating studio
+        sed -i -e "s/""$latestLinuxVersion""/""$currentVersion""/" "$drv"
+
+        latestStudioLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve Studio \K\d+\.\d+\.\d+' | sort | tail -n 1)"
+        update-source-version davinci-resolve-studio "$latestStudioLinuxVersion" --source-key=davinci.src
+      '';
+    });
+  };
 
   meta = with lib; {
     description = "Professional video editing, color, effects and audio post-processing";
diff --git a/pkgs/applications/video/kodi/addons/visualization-projectm/default.nix b/pkgs/applications/video/kodi/addons/visualization-projectm/default.nix
index 8eaecd87fc47c..38ab9d308762f 100644
--- a/pkgs/applications/video/kodi/addons/visualization-projectm/default.nix
+++ b/pkgs/applications/video/kodi/addons/visualization-projectm/default.nix
@@ -3,13 +3,13 @@
 buildKodiBinaryAddon rec {
   pname = "visualization-projectm";
   namespace = "visualization.projectm";
-  version = "20.2.0";
+  version = "21.0.1";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = namespace;
     rev = "${version}-${rel}";
-    hash = "sha256-Kcl1ep+RJlofFmxkrGT3T+XXdwiCofq1hggwU0PAd0E=";
+    hash = "sha256-wjSQmOtQb4KjY3iH3Xh7AdQwE6ked+cpW6/gdNYS+NA=";
   };
 
   extraBuildInputs = [ pkg-config libGL projectm ];
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 8fc656981a3ad..bba0377185963 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -8,6 +8,7 @@
 , cmark
 , docbook_xsl
 , expat
+, fetchpatch2
 , file
 , flac
 , fmt
@@ -94,6 +95,11 @@ stdenv.mkDerivation rec {
   ++ optionals stdenv.isLinux [ qtwayland ]
   ++ optionals stdenv.isDarwin [ libiconv ];
 
+  patches = [ (fetchpatch2 {
+    url = "https://gitlab.com/mbunkus/mkvtoolnix/-/commit/7e1bea9527616ab6ab38425e7290579f05dd9bb1.patch";
+    hash = "sha256-9UZrfwrzfKwF8XDzqYnuaDgZws7l1YAb5O1O1+nxo0g=";
+  }) ];
+
   # autoupdate is not needed but it silences a ton of pointless warnings
   postPatch = ''
     patchShebangs . > /dev/null
diff --git a/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix b/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
index ea379e6ffc51f..aa284a68b2897 100644
--- a/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "advanced-scene-switcher";
-  version = "1.25.5";
+  version = "1.26.0";
 
   src = fetchFromGitHub {
     owner = "WarmUpTill";
     repo = "SceneSwitcher";
     rev = version;
-    hash = "sha256-ROR+R1Zak8XkhFk1+Pyi0lB+JZI4SVtKGin4vem7NEE=";
+    hash = "sha256-ba+QQWekDp/9V+kNcNowXXJrfU4DCttz0tSoC7Ko1bE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 0a8bbcc1853cc..1d5cb70e58861 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -19,11 +19,10 @@
 , symlinkJoin
 , substituteAll
 , extraPackages ? [ ]
-, runc
 , crun
-, gvisor
-, youki
+, runc
 , conmon
+, extraRuntimes ? lib.optionals stdenv.isLinux [ runc ]  # e.g.: runc, gvisor, youki
 , slirp4netns
 , fuse-overlayfs
 , util-linux
@@ -59,28 +58,30 @@ let
       netavark
       slirp4netns
       passt
-    ];
+      conmon
+      crun
+    ] ++ extraRuntimes;
   };
 in
 buildGoModule rec {
   pname = "podman";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    hash = "sha256-8Swqwyzu/WI9mG21bLF81Kk4kS2Ltg0GV9G3EcG/FnU=";
+    hash = "sha256-PA7mKHPzPDFdwKXAHvHnDvHF+mTmm59jkoeUeiCP6vE=";
   };
 
   patches = [
-    # we intentionally don't build and install the helper so we shouldn't display messages to users about it
-    ./rm-podman-mac-helper-msg.patch
-  ] ++ lib.optionals stdenv.isLinux [
     (substituteAll {
       src = ./hardcode-paths.patch;
-      inherit crun runc gvisor youki conmon;
+      bin_path = helpersBin;
     })
+
+    # we intentionally don't build and install the helper so we shouldn't display messages to users about it
+    ./rm-podman-mac-helper-msg.patch
   ];
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/podman/hardcode-paths.patch b/pkgs/applications/virtualization/podman/hardcode-paths.patch
index 05394f62877a1..445a615c811bb 100644
--- a/pkgs/applications/virtualization/podman/hardcode-paths.patch
+++ b/pkgs/applications/virtualization/podman/hardcode-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/vendor/github.com/containers/common/pkg/config/default.go b/vendor/github.com/containers/common/pkg/config/default.go
-index 19c4bb6bf..2743de4b2 100644
+index 3a6d804ad..5628e2bf6 100644
 --- a/vendor/github.com/containers/common/pkg/config/default.go
 +++ b/vendor/github.com/containers/common/pkg/config/default.go
-@@ -364,75 +364,34 @@ func defaultEngineConfig() (*EngineConfig, error) {
+@@ -366,75 +366,34 @@ func defaultEngineConfig() (*EngineConfig, error) {
  	c.Retry = 3
  	c.OCIRuntimes = map[string][]string{
  		"crun": {
@@ -13,7 +13,7 @@ index 19c4bb6bf..2743de4b2 100644
 -			"/sbin/crun",
 -			"/bin/crun",
 -			"/run/current-system/sw/bin/crun",
-+			"@crun@/bin/crun",
++			"@bin_path@/bin/crun",
  		},
  		"crun-vm": {
 -			"/usr/bin/crun-vm",
@@ -22,7 +22,7 @@ index 19c4bb6bf..2743de4b2 100644
 -			"/sbin/crun-vm",
 -			"/bin/crun-vm",
 -			"/run/current-system/sw/bin/crun-vm",
-+			// TODO: "@crun-vm@/bin/crun-vm",
++			"@bin_path@/bin/crun-vm",
  		},
  		"crun-wasm": {
 -			"/usr/bin/crun-wasm",
@@ -32,7 +32,7 @@ index 19c4bb6bf..2743de4b2 100644
 -			"/sbin/crun-wasm",
 -			"/bin/crun-wasm",
 -			"/run/current-system/sw/bin/crun-wasm",
-+			// TODO: "@crun-wasm@/bin/crun-wasm",
++			"@bin_path@/bin/crun-wasm",
  		},
  		"runc": {
 -			"/usr/bin/runc",
@@ -43,11 +43,11 @@ index 19c4bb6bf..2743de4b2 100644
 -			"/bin/runc",
 -			"/usr/lib/cri-o-runc/sbin/runc",
 -			"/run/current-system/sw/bin/runc",
-+			"@runc@/bin/runc",
++			"@bin_path@/bin/runc",
  		},
  		"runj": {
 -			"/usr/local/bin/runj",
-+			// TODO: "@runj@/bin/runj",
++			"@bin_path@/bin/runj",
  		},
  		"kata": {
 -			"/usr/bin/kata-runtime",
@@ -58,7 +58,7 @@ index 19c4bb6bf..2743de4b2 100644
 -			"/bin/kata-runtime",
 -			"/usr/bin/kata-qemu",
 -			"/usr/bin/kata-fc",
-+			// TODO: "@kata@/bin/kata",
++			"@bin_path@/bin/kata-runtime",
  		},
  		"runsc": {
 -			"/usr/bin/runsc",
@@ -68,27 +68,27 @@ index 19c4bb6bf..2743de4b2 100644
 -			"/bin/runsc",
 -			"/sbin/runsc",
 -			"/run/current-system/sw/bin/runsc",
-+			"@gvisor@/bin/runsc",
++			"@bin_path@/bin/runsc",
  		},
  		"youki": {
 -			"/usr/local/bin/youki",
 -			"/usr/bin/youki",
 -			"/bin/youki",
 -			"/run/current-system/sw/bin/youki",
-+			"@youki@/bin/youki",
++			"@bin_path@/bin/youki",
  		},
  		"krun": {
 -			"/usr/bin/krun",
 -			"/usr/local/bin/krun",
-+			// TODO: "@krun@/bin/krun",
++			"@bin_path@/bin/krun",
  		},
  		"ocijail": {
 -			"/usr/local/bin/ocijail",
-+			// TODO: "@ocijail@/bin/ocijail",
++			"@bin_path@/bin/ocijail",
  		},
  	}
  	c.PlatformToOCIRuntime = map[string]string{
-@@ -443,16 +402,9 @@ func defaultEngineConfig() (*EngineConfig, error) {
+@@ -445,26 +404,12 @@ func defaultEngineConfig() (*EngineConfig, error) {
  	// Needs to be called after populating c.OCIRuntimes.
  	c.OCIRuntime = c.findRuntime()
  
@@ -103,7 +103,18 @@ index 19c4bb6bf..2743de4b2 100644
 -		"/usr/local/bin/conmon",
 -		"/usr/local/sbin/conmon",
 -		"/run/current-system/sw/bin/conmon",
-+		"@conmon@/bin/conmon",
++		"@bin_path@/bin/conmon",
  	})
  	c.ConmonRsPath.Set([]string{
- 		"/usr/libexec/podman/conmonrs",
+-		"/usr/libexec/podman/conmonrs",
+-		"/usr/local/libexec/podman/conmonrs",
+-		"/usr/local/lib/podman/conmonrs",
+-		"/usr/bin/conmonrs",
+-		"/usr/sbin/conmonrs",
+-		"/usr/local/bin/conmonrs",
+-		"/usr/local/sbin/conmonrs",
+-		"/run/current-system/sw/bin/conmonrs",
++		"@bin_path@/bin/conmonrs",
+ 	})
+ 	c.PullPolicy = DefaultPullPolicy
+ 	c.RuntimeSupportsJSON.Set([]string{
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
index 88fe9c31f0456..3a2920785fcd9 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   nativeBuildInputs = [
+    hwdata
     jq
     makeWrapper
     meson
@@ -114,7 +115,6 @@ stdenv.mkDerivation (finalAttrs: {
     pciutils
     tomlplusplus
     # for subproject wlroots-hyprland
-    hwdata
     seatd
     libliftoff
     libdisplay-info
diff --git a/pkgs/build-support/php/builders/v1/build-composer-project.nix b/pkgs/build-support/php/builders/v1/build-composer-project.nix
index a292335932547..7e24812d2e768 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-project.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-project.nix
@@ -1,5 +1,6 @@
 {
   callPackage,
+  nix-update-script,
   stdenvNoCC,
   lib,
   php,
@@ -89,6 +90,13 @@ let
           composerStrictValidation = previousAttrs.composerStrictValidation or true;
         });
 
+      # Projects providing a lockfile from upstream can be automatically updated.
+      passthru = previousAttrs.passthru or { } // {
+        updateScript =
+          previousAttrs.passthru.updateScript
+            or (if finalAttrs.composerRepository.composerLock == null then nix-update-script { } else null);
+      };
+
       env = {
         COMPOSER_CACHE_DIR = "/dev/null";
         COMPOSER_DISABLE_NETWORK = "1";
diff --git a/pkgs/by-name/ad/adafruit-nrfutil/package.nix b/pkgs/by-name/ad/adafruit-nrfutil/package.nix
index dbf90df660266..6b300331f6226 100644
--- a/pkgs/by-name/ad/adafruit-nrfutil/package.nix
+++ b/pkgs/by-name/ad/adafruit-nrfutil/package.nix
@@ -19,11 +19,17 @@ python3Packages.buildPythonApplication rec {
   patches = [
     # Pull a patch which fixes the tests, but is not yet released in a new version:
     # https://github.com/adafruit/Adafruit_nRF52_nrfutil/pull/38
+    # https://github.com/adafruit/Adafruit_nRF52_nrfutil/pull/42
     (fetchpatch {
       name = "fix-tests.patch";
       url = "https://github.com/adafruit/Adafruit_nRF52_nrfutil/commit/e5fbcc8ee5958041db38c04139ba686bf7d1b845.patch";
       sha256 = "sha256-0tbJldGtYcDdUzA3wZRv0lenXVn6dqV016U9nMpQ6/w=";
     })
+    (fetchpatch {
+      name = "fix-test-test_get_vk_pem.patch";
+      url = "https://github.com/adafruit/Adafruit_nRF52_nrfutil/commit/f42cee3c2d7c8d0911f27ba24d6a140083cb85cf.patch";
+      sha256 = "sha256-7WoRqPKc8O5EYK7Fj1WrMJREwhueiVpkEizIfVnEPBU=";
+    })
   ];
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/by-name/ad/adwsteamgtk/package.nix b/pkgs/by-name/ad/adwsteamgtk/package.nix
index 419541b28ed79..393962961569c 100644
--- a/pkgs/by-name/ad/adwsteamgtk/package.nix
+++ b/pkgs/by-name/ad/adwsteamgtk/package.nix
@@ -12,7 +12,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "adwsteamgtk";
-  version = "0.6.10";
+  version = "0.6.11";
   # built with meson, not a python format
   format = "other";
 
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
     owner = "Foldex";
     repo = "AdwSteamGtk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sh4FLXG78i20Bt8pCCbhO6Sx815stjAZRLCD+X5Zk40=";
+    hash = "sha256-f7+2gTpG5Ntgq+U2AkQihzSTrO+oMsLWxgxe4dVyz8A=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/al/alacarte/package.nix b/pkgs/by-name/al/alacarte/package.nix
new file mode 100644
index 0000000000000..003558c0e86d1
--- /dev/null
+++ b/pkgs/by-name/al/alacarte/package.nix
@@ -0,0 +1,70 @@
+{
+  lib,
+  fetchFromGitLab,
+  python3,
+  autoconf,
+  automake,
+  gettext,
+  pkg-config,
+  libxslt,
+  gobject-introspection,
+  wrapGAppsHook3,
+  gnome-menus,
+  glib,
+  gtk3,
+  docbook_xsl,
+  nix-update-script,
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "alacarte";
+  version = "3.52.0";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "alacarte";
+    rev = version;
+    hash = "sha256-SkolSk6RireH3aKkRTUCib/nflqD02PR9uVtXePRHQY=";
+  };
+
+  format = "other";
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    gettext
+    pkg-config
+    python3
+    libxslt
+    gobject-introspection
+    wrapGAppsHook3
+  ];
+
+  buildInputs = [
+    gnome-menus
+    glib
+    gtk3
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [ pygobject3 ];
+
+  configureScript = "./autogen.sh";
+
+  # Builder couldn't fetch the docbook.xsl from the internet directly,
+  # so we substitute it with the docbook.xsl in already in nixpkgs
+  preConfigure = ''
+    substituteInPlace man/Makefile.am \
+      --replace-fail "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://gitlab.gnome.org/GNOME/alacarte";
+    description = "A menu editor for GNOME using the freedesktop.org menu specification";
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.linux;
+    mainProgram = "alacarte";
+    maintainers = with lib.maintainers; [ pluiedev ];
+  };
+}
diff --git a/pkgs/by-name/au/audio-sharing/package.nix b/pkgs/by-name/au/audio-sharing/package.nix
index d773720efd400..d1a4ec2b01343 100644
--- a/pkgs/by-name/au/audio-sharing/package.nix
+++ b/pkgs/by-name/au/audio-sharing/package.nix
@@ -21,20 +21,20 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "audio-sharing";
-  version = "0.2.2";
+  version = "0.2.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "AudioSharing";
     rev = finalAttrs.version;
-    hash = "sha256-ejNktgN9tfi4TzWDQJnESGcBkpvLVH34sukTFCBfo3U=";
+    hash = "sha256-yUMiy5DaCPfCmBIGCXpqtvSSmQl5wo6vsLdW7Tt/Wfo=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-c19DxHF4HFN0qTqC2CNzwko79uVeLeyrrXAvuyxeiOQ=";
+    hash = "sha256-FfjSttXf6WF2w59CP6L/+BIuuXp2yKPTku7FMvdIHg0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/X11/bevelbar/default.nix b/pkgs/by-name/be/bevelbar/package.nix
index 7eab7a65e80aa..60dfb62567bf4 100644
--- a/pkgs/tools/X11/bevelbar/default.nix
+++ b/pkgs/by-name/be/bevelbar/package.nix
@@ -1,24 +1,24 @@
-{ lib,
+{
+  lib,
   stdenv,
   fetchurl,
   pkg-config,
   libX11,
   libXft,
   libXrandr,
+  gitUpdater,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bevelbar";
-  version = "22.06";
+  version = "23.08";
 
   src = fetchurl {
     url = "https://www.uninformativ.de/git/bevelbar/archives/bevelbar-v${finalAttrs.version}.tar.gz";
-    hash = "sha256-8ceFwQFHhJ1qEXJtzoDXU0XRgudaAfsoWq7LYgGEqsM=";
+    hash = "sha256-4wMSPi9tu+z1AW2uvPefxkeT/5DYo2oJybhNnpe82QU=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
     libX11
@@ -28,11 +28,19 @@ stdenv.mkDerivation (finalAttrs: {
 
   makeFlags = [ "prefix=$(out)" ];
 
-  meta = with lib; {
+  passthru.updateScript = gitUpdater {
+    url = "https://www.uninformativ.de/git/bevelbar.git/";
+    rev-prefix = "v";
+  };
+
+  meta = {
     homepage = "https://www.uninformativ.de/git/bevelbar/file/README.html";
     description = "X11 status bar with beveled borders";
-    license = licenses.mit;
-    maintainers = with maintainers; [ AndersonTorres neeasade ];
-    platforms = platforms.linux;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      neeasade
+    ];
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/by-name/bu/buckle/package.nix b/pkgs/by-name/bu/buckle/package.nix
index bc34858d52914..85c23496baf35 100644
--- a/pkgs/by-name/bu/buckle/package.nix
+++ b/pkgs/by-name/bu/buckle/package.nix
@@ -1,4 +1,10 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  darwin,
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "buckle";
@@ -12,6 +18,11 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-eWhcDzw+6I5N0dse5avwhcQ/y6YZ6b3QKyBwWBrA/xo=";
   };
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
   checkFlags = [
     # Both tests access the network.
     "--skip=test_buck2_latest"
diff --git a/pkgs/by-name/ca/cargo-raze/package.nix b/pkgs/by-name/ca/cargo-raze/package.nix
new file mode 100644
index 0000000000000..a0b4fd0ace7b0
--- /dev/null
+++ b/pkgs/by-name/ca/cargo-raze/package.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  pkg-config,
+  curl,
+  libgit2,
+  openssl,
+  darwin,
+}:
+let
+  version = "0.16.1";
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "cargo-raze";
+    rev = "v${version}";
+    hash = "sha256-dn1MrF+FYBG+vD5AfXCwmzskmKK/TXArnMWW2BAfFFQ=";
+  };
+in
+rustPlatform.buildRustPackage {
+  pname = "cargo-raze";
+  inherit src version;
+
+  sourceRoot = "${src.name}/impl";
+
+  # Make it build on Rust >1.76. Since upstream is unmaintained,
+  # there's no counting on them to fix this any time soon...
+  # See #310673 and #310125 for similar fixes
+  cargoPatches = [ ./rustc-serialize-fix.patch ];
+
+  cargoHash = "sha256-V8FkkWcXrYcDmhbdJztpbd4gBVbtbPY0NHS4pb/z8HM=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    libgit2
+    openssl
+    curl
+  ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    # Darwin issue: Os { code: 24, kind: Uncategorized, message: "Too many open files" }
+    # https://github.com/google/cargo-raze/issues/544
+    ulimit -n 1024
+  '';
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "Generate Bazel BUILD files from Cargo dependencies";
+    homepage = "https://github.com/google/cargo-raze";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ elasticdog ];
+  };
+}
diff --git a/pkgs/by-name/ca/cargo-raze/rustc-serialize-fix.patch b/pkgs/by-name/ca/cargo-raze/rustc-serialize-fix.patch
new file mode 100644
index 0000000000000..4c34cbeecb948
--- /dev/null
+++ b/pkgs/by-name/ca/cargo-raze/rustc-serialize-fix.patch
@@ -0,0 +1,29 @@
+diff --git a/impl/Cargo.lock b/impl/Cargo.lock
+index 0c963206..7db3432f 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1957,9 +1957,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "rustc-serialize"
+-version = "0.3.24"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
++checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401"
+ 
+ [[package]]
+ name = "ryu"
+diff --git a/impl/Cargo.toml b/impl/Cargo.toml
+index 9dd6dd99..a559febf 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -38,7 +38,7 @@ itertools = "0.10.0"
+ log = "0.4.13"
+ pathdiff = "0.2.0"
+ regex = "1.5.5"
+-rustc-serialize = "0.3.24"
++rustc-serialize = "0.3.25"
+ semver = { version = "1", features = ["serde"] }
+ serde = "1.0.120"
+ serde_derive = "1.0.120"
diff --git a/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix b/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix
index 952399f7bf868..6e4673cdc9d80 100644
--- a/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix
+++ b/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation {
   pname = "catppuccin-sddm-corners";
-  version = "unstable-2023-05-30";
+  version = "0-unstable-2024-05-07";
 
   src = fetchFromGitHub {
     owner = "khaneliman";
     repo = "catppuccin-sddm-corners";
-    rev = "ffaad5c8964b52ccd92a80dfd3a7931c8b68c446";
-    hash = "sha256-CaCMrXlwt7JfSycB8WH3XCWUu+i7bPSfFv3duo7ZlZo=";
+    rev = "aca5af5ce0c9dff56e947938697dec40ea101e3e";
+    hash = "sha256-xtcNcjNQSG7SwlNw/EkAU93wFaku+cE1/r6c8c4FrBg=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/by-name/ch/chezmoi/package.nix b/pkgs/by-name/ch/chezmoi/package.nix
index b808e09206437..afb575230e4c0 100644
--- a/pkgs/by-name/ch/chezmoi/package.nix
+++ b/pkgs/by-name/ch/chezmoi/package.nix
@@ -8,16 +8,16 @@
 let
   argset = {
     pname = "chezmoi";
-    version = "2.48.0";
+    version = "2.48.1";
 
     src = fetchFromGitHub {
       owner = "twpayne";
       repo = "chezmoi";
       rev = "v${argset.version}";
-      hash = "sha256-TclY4O5mA14cI7+qvGwt5jSHftxhGaa3ICVn8qdrKqs=";
+      hash = "sha256-v24gS80s7dTDlOO9ouf+Am7KyZPTBWzjG+HyBfFZynw=";
     };
 
-    vendorHash = "sha256-qoXfneNEAsvUgaEFHPF1bf/S8feFX+8HtwQy7nzy8Bo=";
+    vendorHash = "sha256-8KcseMkYww+Ccaw+ovwXhakO9ira2TRI4uQ5TbCZcSE=";
 
     nativeBuildInputs = [
       installShellFiles
diff --git a/pkgs/by-name/co/cosmic-edit/Cargo.lock b/pkgs/by-name/co/cosmic-edit/Cargo.lock
index 5e0658ab3e8ae..8700f917aef7a 100644
--- a/pkgs/by-name/co/cosmic-edit/Cargo.lock
+++ b/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 0.20.0",
+ "owned_ttf_parser",
 ]
 
 [[package]]
@@ -84,7 +84,7 @@ dependencies = [
  "accesskit_unix",
  "accesskit_windows",
  "raw-window-handle 0.6.0",
- "winit 0.29.10",
+ "winit",
 ]
 
 [[package]]
@@ -103,18 +103,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.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "getrandom",
  "once_cell",
  "version_check",
@@ -149,19 +143,6 @@ 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.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -175,10 +156,10 @@ dependencies = [
  "jni-sys",
  "libc",
  "log",
- "ndk 0.8.0",
+ "ndk",
  "ndk-context",
- "ndk-sys 0.5.0+25.2.9519653",
- "num_enum 0.7.2",
+ "ndk-sys",
+ "num_enum",
  "thiserror",
 ]
 
@@ -259,9 +240,9 @@ checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e"
 
 [[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "apply"
@@ -280,9 +261,9 @@ dependencies = [
 
 [[package]]
 name = "arc-swap"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
 
 [[package]]
 name = "arrayref"
@@ -336,6 +317,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "ashpd"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01992ad7774250d5b7fe214e2676cb99bf92564436d8135ab44fe815e71769a9"
+dependencies = [
+ "enumflags2",
+ "futures-channel",
+ "futures-util",
+ "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"
@@ -352,7 +350,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.1.0",
+ "event-listener 5.2.0",
  "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
@@ -368,7 +366,7 @@ dependencies = [
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "slab",
 ]
 
@@ -392,7 +390,7 @@ checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
  "async-lock 2.8.0",
  "autocfg",
- "cfg-if 1.0.0",
+ "cfg-if",
  "concurrent-queue",
  "futures-lite 1.13.0",
  "log",
@@ -406,15 +404,15 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.1"
+version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
  "async-lock 3.3.0",
- "cfg-if 1.0.0",
+ "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "parking",
  "polling 3.5.0",
  "rustix 0.38.31",
@@ -453,7 +451,7 @@ dependencies = [
  "async-lock 2.8.0",
  "async-signal",
  "blocking",
- "cfg-if 1.0.0",
+ "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
  "rustix 0.38.31",
@@ -462,13 +460,13 @@ dependencies = [
 
 [[package]]
 name = "async-recursion"
-version = "1.0.5"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -477,10 +475,10 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.3.1",
+ "async-io 2.3.2",
  "async-lock 2.8.0",
  "atomic-waker",
- "cfg-if 1.0.0",
+ "cfg-if",
  "futures-core",
  "futures-io",
  "rustix 0.38.31",
@@ -497,13 +495,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -596,9 +594,9 @@ checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
- "miniz_oxide 0.7.2",
+ "miniz_oxide",
  "object",
  "rustc-demangle",
 ]
@@ -709,7 +707,7 @@ dependencies = [
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "piper",
  "tracing",
 ]
@@ -727,9 +725,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.15.3"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytecount"
@@ -739,22 +737,22 @@ checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.3"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -781,16 +779,6 @@ 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.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
@@ -809,18 +797,19 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
- "calloop 0.12.4",
+ "calloop",
  "rustix 0.38.31",
  "wayland-backend",
- "wayland-client 0.31.2",
+ "wayland-client",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.88"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
+ "jobserver",
  "libc",
 ]
 
@@ -842,12 +831,6 @@ 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"
@@ -866,9 +849,9 @@ checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
 
 [[package]]
 name = "chrono"
-version = "0.4.34"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -876,14 +859,14 @@ dependencies = [
  "num-traits",
  "pure-rust-locales",
  "wasm-bindgen",
- "windows-targets 0.52.3",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "clipboard-win"
-version = "5.2.0"
+version = "5.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
+checksum = "d517d4b86184dbb111d3556a10f1c8a04da7428d2987bf1081602bf11c3aa9ee"
 dependencies = [
  "error-code",
 ]
@@ -891,8 +874,7 @@ dependencies = [
 [[package]]
 name = "clipboard_macos"
 version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "145a7f9e9b89453bc0a5e32d166456405d389cea5b578f57f1274b1397588a95"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
  "objc",
  "objc-foundation",
@@ -902,17 +884,16 @@ dependencies = [
 [[package]]
 name = "clipboard_wayland"
 version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
+ "mime 0.1.0",
  "smithay-clipboard",
 ]
 
 [[package]]
 name = "clipboard_x11"
 version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
  "thiserror",
  "x11rb",
@@ -920,22 +901,6 @@ dependencies = [
 
 [[package]]
 name = "cocoa"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "cocoa-foundation",
- "core-foundation 0.9.4",
- "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"
@@ -943,9 +908,9 @@ dependencies = [
  "bitflags 1.3.2",
  "block",
  "cocoa-foundation",
- "core-foundation 0.9.4",
- "core-graphics 0.23.1",
- "foreign-types 0.5.0",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types",
  "libc",
  "objc",
 ]
@@ -958,7 +923,7 @@ checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
 dependencies = [
  "bitflags 1.3.2",
  "block",
- "core-foundation 0.9.4",
+ "core-foundation",
  "core-graphics-types",
  "libc",
  "objc",
@@ -1038,9 +1003,9 @@ dependencies = [
 
 [[package]]
 name = "const-random"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
+checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
 dependencies = [
  "const-random-macro",
 ]
@@ -1058,71 +1023,30 @@ 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.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
- "core-foundation-sys 0.8.6",
+ "core-foundation-sys",
  "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.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[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 0.9.4",
- "core-graphics-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.4",
+ "core-foundation",
  "core-graphics-types",
- "foreign-types 0.5.0",
+ "foreign-types",
  "libc",
 ]
 
@@ -1133,27 +1057,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation 0.9.4",
- "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",
+ "core-foundation",
  "libc",
- "objc",
 ]
 
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
@@ -1170,7 +1081,7 @@ dependencies = [
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -1196,11 +1107,11 @@ dependencies = [
  "notify",
  "open",
  "patch",
+ "regex",
  "rust-embed",
  "serde",
  "smol_str",
  "syntect",
- "systemicons",
  "tokio",
  "two-face",
  "vergen",
@@ -1209,28 +1120,32 @@ dependencies = [
 [[package]]
 name = "cosmic-files"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-files.git#8ab15027a521713850384fa87666bb9974f2666b"
+source = "git+https://github.com/pop-os/cosmic-files.git#2bc93cc3cc1906c7884dd941ab211b6bc8eca8fd"
 dependencies = [
  "chrono",
  "dirs",
- "env_logger 0.11.2",
+ "env_logger 0.11.3",
  "fork",
  "i18n-embed",
  "i18n-embed-fl",
- "image 0.24.9",
+ "image",
  "lexical-sort",
+ "libc",
  "libcosmic",
  "log",
  "mime_guess",
  "notify",
  "once_cell",
+ "open",
  "paste",
  "rust-embed",
  "serde",
+ "shlex",
  "smol_str",
- "systemicons",
  "tokio",
  "trash",
+ "vergen",
+ "xdg-mime",
 ]
 
 [[package]]
@@ -1240,13 +1155,13 @@ source = "git+https://github.com/pop-os/cosmic-syntax-theme.git#b1e1eb0234568911
 dependencies = [
  "handlebars",
  "serde",
- "toml 0.8.10",
+ "toml 0.8.12",
 ]
 
 [[package]]
 name = "cosmic-text"
 version = "0.11.2"
-source = "git+https://github.com/pop-os/cosmic-text.git#2766961af621b9235616e186046f6d14a2f5fbc0"
+source = "git+https://github.com/pop-os/cosmic-text.git#ff5501d9a36e51c50d908413caf7632d8f7533b7"
 dependencies = [
  "bitflags 2.4.2",
  "cosmic_undo_2",
@@ -1261,7 +1176,7 @@ dependencies = [
  "swash",
  "syntect",
  "sys-locale",
- "ttf-parser 0.20.0",
+ "ttf-parser",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -1271,15 +1186,17 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "almost",
  "cosmic-config",
  "csscolorparser",
+ "dirs",
  "lazy_static",
  "palette",
  "ron",
  "serde",
+ "thiserror",
 ]
 
 [[package]]
@@ -1308,27 +1225,14 @@ version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "crossbeam"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-epoch",
- "crossbeam-queue",
- "crossbeam-utils",
+ "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.11"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -1353,15 +1257,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-queue"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-utils"
 version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1406,16 +1301,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
-name = "cty"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
-
-[[package]]
 name = "cursor-icon"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1427,42 +1316,18 @@ version = "0.19.0"
 source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "bitflags 2.4.2",
- "libloading 0.8.1",
+ "libloading 0.8.3",
  "winapi",
 ]
 
 [[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.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core 0.20.8",
- "darling_macro 0.20.8",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.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",
+ "darling_core",
+ "darling_macro",
 ]
 
 [[package]]
@@ -1475,19 +1340,8 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim 0.10.0",
- "syn 2.0.51",
-]
-
-[[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",
+ "strsim",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1496,9 +1350,9 @@ version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
- "darling_core 0.20.8",
+ "darling_core",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1507,7 +1361,7 @@ version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "hashbrown",
  "lock_api",
  "once_cell",
@@ -1521,16 +1375,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
 
 [[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.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1556,10 +1400,10 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d"
 dependencies = [
- "darling 0.20.8",
+ "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1587,7 +1431,7 @@ version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "dirs-sys-next",
 ]
 
@@ -1628,16 +1472,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
-]
-
-[[package]]
-name = "dlib"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76"
-dependencies = [
- "libloading 0.6.7",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1646,7 +1481,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
- "libloading 0.8.1",
+ "libloading 0.8.3",
 ]
 
 [[package]]
@@ -1715,7 +1550,7 @@ version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
 ]
 
 [[package]]
@@ -1745,7 +1580,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1773,9 +1608,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.11.2"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
  "anstream",
  "anstyle",
@@ -1855,9 +1690,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "5.1.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1880,7 +1715,7 @@ version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
 dependencies = [
- "event-listener 5.1.0",
+ "event-listener 5.2.0",
  "pin-project-lite",
 ]
 
@@ -1894,7 +1729,7 @@ dependencies = [
  "flume",
  "half",
  "lebe",
- "miniz_oxide 0.7.2",
+ "miniz_oxide",
  "rayon-core",
  "smallvec",
  "zune-inflate",
@@ -1936,7 +1771,7 @@ version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "redox_syscall 0.4.1",
  "windows-sys 0.52.0",
@@ -1958,7 +1793,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.7.2",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -2034,9 +1869,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "font-types"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+checksum = "5b7f6040d337bd44434ab21fc6509154edf2cece88b23758d9d64654c4e7730b"
 
 [[package]]
 name = "fontconfig-parser"
@@ -2055,19 +1890,10 @@ checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.9.4",
+ "memmap2",
  "slotmap",
  "tinyvec",
- "ttf-parser 0.20.0",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared 0.1.1",
+ "ttf-parser",
 ]
 
 [[package]]
@@ -2077,7 +1903,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
 dependencies = [
  "foreign-types-macros",
- "foreign-types-shared 0.3.1",
+ "foreign-types-shared",
 ]
 
 [[package]]
@@ -2088,17 +1914,11 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "foreign-types-shared"
-version = "0.1.1"
-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"
@@ -2219,9 +2039,9 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
  "fastrand 2.0.1",
  "futures-core",
@@ -2238,7 +2058,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2327,23 +2147,13 @@ version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "wasi",
 ]
 
 [[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"
@@ -2598,7 +2408,7 @@ dependencies = [
  "grep-matcher",
  "log",
  "memchr",
- "memmap2 0.9.4",
+ "memmap2",
 ]
 
 [[package]]
@@ -2641,7 +2451,7 @@ version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "crunchy",
 ]
 
@@ -2678,7 +2488,7 @@ dependencies = [
  "bitflags 2.4.2",
  "com",
  "libc",
- "libloading 0.8.1",
+ "libloading 0.8.3",
  "thiserror",
  "widestring",
  "winapi",
@@ -2692,9 +2502,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -2724,7 +2534,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.10",
+ "toml 0.8.12",
  "unic-langid",
 ]
 
@@ -2766,8 +2576,8 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "strsim 0.10.0",
- "syn 2.0.51",
+ "strsim",
+ "syn 2.0.53",
  "unic-langid",
 ]
 
@@ -2781,7 +2591,7 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2791,7 +2601,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
- "core-foundation-sys 0.8.6",
+ "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
@@ -2810,7 +2620,7 @@ dependencies = [
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2818,14 +2628,15 @@ dependencies = [
  "iced_renderer",
  "iced_widget",
  "iced_winit",
- "image 0.24.9",
+ "image",
  "thiserror",
+ "window_clipboard",
 ]
 
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2834,7 +2645,7 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "bitflags 1.3.2",
  "log",
@@ -2845,13 +2656,14 @@ dependencies = [
  "smol_str",
  "thiserror",
  "web-time",
+ "window_clipboard",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "futures",
  "iced_core",
@@ -2864,7 +2676,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2873,7 +2685,7 @@ dependencies = [
  "half",
  "iced_core",
  "iced_futures",
- "image 0.24.9",
+ "image",
  "kamadak-exif",
  "log",
  "lyon_path",
@@ -2888,7 +2700,7 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
@@ -2900,17 +2712,18 @@ dependencies = [
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "iced_core",
  "iced_futures",
  "thiserror",
+ "window_clipboard",
 ]
 
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2920,7 +2733,7 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "bytemuck",
  "cosmic-text",
@@ -2937,7 +2750,7 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2956,7 +2769,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2970,7 +2783,7 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
@@ -2981,7 +2794,7 @@ dependencies = [
  "web-sys",
  "winapi",
  "window_clipboard",
- "winit 0.29.10",
+ "winit",
 ]
 
 [[package]]
@@ -3039,25 +2852,6 @@ dependencies = [
 
 [[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.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
@@ -3067,11 +2861,11 @@ dependencies = [
  "color_quant",
  "exr",
  "gif 0.13.1",
- "jpeg-decoder 0.3.1",
+ "jpeg-decoder",
  "num-traits",
- "png 0.17.13",
+ "png",
  "qoi",
- "tiff 0.9.1",
+ "tiff",
 ]
 
 [[package]]
@@ -3082,9 +2876,9 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[package]]
 name = "indexmap"
-version = "2.2.3"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -3116,7 +2910,7 @@ version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
 ]
 
 [[package]]
@@ -3192,7 +2986,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
 dependencies = [
  "cesu8",
- "cfg-if 1.0.0",
+ "cfg-if",
  "combine",
  "jni-sys",
  "log",
@@ -3208,12 +3002,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
-name = "jpeg-decoder"
-version = "0.1.22"
+name = "jobserver"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
- "rayon",
+ "libc",
 ]
 
 [[package]]
@@ -3227,9 +3021,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -3250,7 +3044,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
 dependencies = [
  "libc",
- "libloading 0.8.1",
+ "libloading 0.8.3",
  "pkg-config",
 ]
 
@@ -3318,7 +3112,7 @@ checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
 dependencies = [
  "arrayvec 0.5.2",
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "ryu",
  "static_assertions",
 ]
@@ -3341,10 +3135,11 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
+source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6"
 dependencies = [
  "apply",
- "ashpd",
+ "ashpd 0.7.0",
+ "chrono",
  "cosmic-config",
  "cosmic-theme",
  "css-color",
@@ -3376,32 +3171,22 @@ dependencies = [
 
 [[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]]
-name = "libloading"
 version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "winapi",
 ]
 
 [[package]]
 name = "libloading"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
- "cfg-if 1.0.0",
- "windows-sys 0.48.0",
+ "cfg-if",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3490,9 +3275,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "lru"
@@ -3572,15 +3357,6 @@ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[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.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
@@ -3615,7 +3391,7 @@ dependencies = [
  "bitflags 2.4.2",
  "block",
  "core-graphics-types",
- "foreign-types 0.5.0",
+ "foreign-types",
  "log",
  "objc",
  "paste",
@@ -3623,6 +3399,14 @@ dependencies = [
 
 [[package]]
 name = "mime"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
+dependencies = [
+ "smithay-clipboard",
+]
+
+[[package]]
+name = "mime"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
@@ -3633,7 +3417,7 @@ version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
 dependencies = [
- "mime",
+ "mime 0.3.17",
  "unicase",
 ]
 
@@ -3645,25 +3429,6 @@ 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.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
@@ -3674,22 +3439,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.7.14"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
-dependencies = [
- "libc",
- "log",
- "miow",
- "ntapi",
- "winapi",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -3698,27 +3450,6 @@ 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.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3755,18 +3486,6 @@ 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.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
@@ -3774,8 +3493,8 @@ dependencies = [
  "bitflags 2.4.2",
  "jni-sys",
  "log",
- "ndk-sys 0.5.0+25.2.9519653",
- "num_enum 0.7.2",
+ "ndk-sys",
+ "num_enum",
  "raw-window-handle 0.6.0",
  "thiserror",
 ]
@@ -3787,39 +3506,6 @@ 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.5.0+25.2.9519653"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3830,36 +3516,12 @@ 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.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "memoffset 0.7.1",
 ]
@@ -3910,21 +3572,12 @@ dependencies = [
  "kqueue",
  "libc",
  "log",
- "mio 0.8.10",
+ "mio",
  "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"
@@ -3934,7 +3587,7 @@ dependencies = [
  "num-complex",
  "num-integer",
  "num-iter",
- "num-rational 0.4.1",
+ "num-rational",
  "num-traits",
 ]
 
@@ -3986,17 +3639,6 @@ 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"
@@ -4029,32 +3671,11 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
-dependencies = [
- "num_enum_derive 0.5.11",
-]
-
-[[package]]
-name = "num_enum"
 version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
 dependencies = [
- "num_enum_derive 0.7.2",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "num_enum_derive",
 ]
 
 [[package]]
@@ -4066,7 +3687,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -4194,9 +3815,9 @@ dependencies = [
 
 [[package]]
 name = "open"
-version = "5.0.2"
+version = "5.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eedff767bc49d336bff300224f73307ae36963c843e38dc9312a22171b012cbc"
+checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32"
 dependencies = [
  "is-wsl",
  "libc",
@@ -4259,16 +3880,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
-]
-
-[[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",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -4277,7 +3889,7 @@ version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7"
 dependencies = [
- "ttf-parser 0.20.0",
+ "ttf-parser",
 ]
 
 [[package]]
@@ -4301,7 +3913,7 @@ checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -4349,7 +3961,7 @@ version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "instant",
  "libc",
  "redox_syscall 0.2.16",
@@ -4363,7 +3975,7 @@ version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "redox_syscall 0.4.1",
  "smallvec",
@@ -4401,9 +4013,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.7"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546"
+checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8"
 dependencies = [
  "memchr",
  "thiserror",
@@ -4412,9 +4024,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.7"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809"
+checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026"
 dependencies = [
  "pest",
  "pest_generator",
@@ -4422,22 +4034,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.7"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e"
+checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.7"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a"
+checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293"
 dependencies = [
  "once_cell",
  "pest",
@@ -4474,7 +4086,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -4537,18 +4149,6 @@ dependencies = [
 
 [[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.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
@@ -4557,7 +4157,7 @@ dependencies = [
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide 0.7.2",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -4568,7 +4168,7 @@ checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "concurrent-queue",
  "libc",
  "log",
@@ -4582,7 +4182,7 @@ version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
  "rustix 0.38.31",
@@ -4610,15 +4210,6 @@ checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
 
 [[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"
@@ -4662,9 +4253,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -4752,25 +4343,6 @@ checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
 
 [[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"
@@ -4783,9 +4355,9 @@ checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
 
 [[package]]
 name = "rayon"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
 dependencies = [
  "either",
  "rayon-core",
@@ -4809,9 +4381,9 @@ checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 
 [[package]]
 name = "read-fonts"
-version = "0.15.6"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ea23eedb4d938031b6d4343222444608727a6aa68ec355e13588d9947ffe92"
+checksum = "81c524658d3b77930a391f559756d91dbe829ab6cf4687083f615d395df99722"
 dependencies = [
  "font-types",
 ]
@@ -4868,9 +4440,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4885,9 +4457,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "renderdoc-sys"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b"
+checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832"
 
 [[package]]
 name = "resvg"
@@ -4896,10 +4468,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4"
 dependencies = [
  "gif 0.12.0",
- "jpeg-decoder 0.3.1",
+ "jpeg-decoder",
  "log",
  "pico-args",
- "png 0.17.13",
+ "png",
  "rgb",
  "svgtypes",
  "tiny-skia",
@@ -4912,7 +4484,7 @@ version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f"
 dependencies = [
- "ashpd",
+ "ashpd 0.6.8",
  "block",
  "dispatch",
  "glib-sys",
@@ -4977,7 +4549,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.51",
+ "syn 2.0.53",
  "walkdir",
 ]
 
@@ -4997,7 +4569,7 @@ version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "ordered-multimap",
 ]
 
@@ -5050,16 +4622,6 @@ dependencies = [
 ]
 
 [[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 = "rustversion"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5075,7 +4637,7 @@ dependencies = [
  "bytemuck",
  "libm",
  "smallvec",
- "ttf-parser 0.20.0",
+ "ttf-parser",
  "unicode-bidi-mirroring",
  "unicode-ccc",
  "unicode-properties",
@@ -5110,12 +4672,6 @@ 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"
@@ -5129,8 +4685,8 @@ checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550"
 dependencies = [
  "ab_glyph",
  "log",
- "memmap2 0.9.4",
- "smithay-client-toolkit 0.18.1",
+ "memmap2",
+ "smithay-client-toolkit",
  "tiny-skia",
 ]
 
@@ -5181,7 +4737,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5203,7 +4759,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5221,7 +4777,7 @@ version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "cpufeatures",
  "digest",
 ]
@@ -5232,12 +4788,18 @@ version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "cpufeatures",
  "digest",
 ]
 
 [[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
 name = "signal-hook-registry"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5293,56 +4855,36 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[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"
 version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
  "bitflags 2.4.2",
- "calloop 0.12.4",
+ "calloop",
  "calloop-wayland-source",
  "cursor-icon",
  "libc",
  "log",
- "memmap2 0.9.4",
+ "memmap2",
  "rustix 0.38.31",
  "thiserror",
  "wayland-backend",
- "wayland-client 0.31.2",
+ "wayland-client",
  "wayland-csd-frame",
- "wayland-cursor 0.31.1",
- "wayland-protocols 0.31.2",
+ "wayland-cursor",
+ "wayland-protocols",
  "wayland-protocols-wlr",
- "wayland-scanner 0.31.1",
+ "wayland-scanner",
  "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
+version = "0.8.0"
+source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-mime-types#cc0101c1f9ccc937a413bd3af3c0f6217f27e935"
 dependencies = [
  "libc",
- "smithay-client-toolkit 0.18.1",
+ "smithay-client-toolkit",
  "wayland-backend",
 ]
 
@@ -5383,14 +4925,14 @@ dependencies = [
  "as-raw-xcb-connection",
  "bytemuck",
  "cfg_aliases 0.2.0",
- "cocoa 0.25.0",
- "core-graphics 0.23.1",
+ "cocoa",
+ "core-graphics",
  "drm",
  "fastrand 2.0.1",
- "foreign-types 0.5.0",
+ "foreign-types",
  "js-sys",
  "log",
- "memmap2 0.9.4",
+ "memmap2",
  "objc",
  "raw-window-handle 0.6.0",
  "redox_syscall 0.4.1",
@@ -5398,8 +4940,8 @@ dependencies = [
  "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-sys 0.31.1",
+ "wayland-client",
+ "wayland-sys",
  "web-sys",
  "windows-sys 0.52.0",
  "x11rb",
@@ -5440,21 +4982,15 @@ 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"
 
 [[package]]
 name = "svg_fmt"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
+checksum = "f83ba502a3265efb76efb89b0a2f7782ad6f2675015d4ce37e4b547dda42b499"
 
 [[package]]
 name = "svgtypes"
@@ -5468,9 +5004,9 @@ dependencies = [
 
 [[package]]
 name = "swash"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
+checksum = "9af636fb90d39858650cae1088a37e2862dab4e874a0bb49d6dfb5b2dacf0e24"
 dependencies = [
  "read-fonts",
  "yazi",
@@ -5490,9 +5026,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.51"
+version = "2.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5532,33 +5068,18 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.2.0"
+version = "6.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "e8e9199467bcbc77c6a13cc6e32a6af21721ab8c96aa0261856c4fda5a4433f0"
 dependencies = [
  "cfg-expr",
  "heck",
  "pkg-config",
- "toml 0.8.10",
+ "toml 0.8.12",
  "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?rev=7781c70#7781c70241f7f572130c13106f2a869a9cf80885"
@@ -5581,7 +5102,7 @@ version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "fastrand 2.0.1",
  "rustix 0.38.31",
  "windows-sys 0.52.0",
@@ -5598,33 +5119,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
-]
-
-[[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",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5634,7 +5144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
- "jpeg-decoder 0.3.1",
+ "jpeg-decoder",
  "weezl",
 ]
 
@@ -5689,9 +5199,9 @@ dependencies = [
  "arrayref",
  "arrayvec 0.7.4",
  "bytemuck",
- "cfg-if 1.0.0",
+ "cfg-if",
  "log",
- "png 0.17.13",
+ "png",
  "tiny-skia-path",
 ]
 
@@ -5714,7 +5224,7 @@ checksum = "d4098d49269baa034a8d1eae9bd63e9fa532148d772121dace3bcd6a6c98eb6d"
 dependencies = [
  "as-raw-xcb-connection",
  "ctor",
- "libloading 0.8.1",
+ "libloading 0.8.3",
  "tracing",
 ]
 
@@ -5751,7 +5261,7 @@ dependencies = [
  "backtrace",
  "bytes",
  "libc",
- "mio 0.8.10",
+ "mio",
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
@@ -5771,14 +5281,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.6",
+ "toml_edit 0.22.8",
 ]
 
 [[package]]
@@ -5814,15 +5324,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.2",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -5844,7 +5354,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5874,12 +5384,6 @@ 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.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
@@ -6116,7 +5620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
 dependencies = [
  "anyhow",
- "cfg-if 1.0.0",
+ "cfg-if",
  "rustversion",
  "time",
 ]
@@ -6141,9 +5645,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -6157,36 +5661,36 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.41"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "js-sys",
  "wasm-bindgen",
  "web-sys",
@@ -6194,9 +5698,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -6204,22 +5708,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-timer"
@@ -6247,23 +5751,7 @@ dependencies = [
  "rustix 0.38.31",
  "scoped-tls",
  "smallvec",
- "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",
- "wayland-scanner 0.28.6",
- "wayland-sys 0.28.6",
+ "wayland-sys",
 ]
 
 [[package]]
@@ -6275,19 +5763,7 @@ dependencies = [
  "bitflags 2.4.2",
  "rustix 0.38.31",
  "wayland-backend",
- "wayland-scanner 0.31.1",
-]
-
-[[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",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -6303,48 +5779,25 @@ 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.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
  "rustix 0.38.31",
- "wayland-client 0.31.2",
+ "wayland-client",
  "xcursor",
 ]
 
 [[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",
- "wayland-scanner 0.28.6",
-]
-
-[[package]]
-name = "wayland-protocols"
 version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-scanner 0.31.1",
+ "wayland-client",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -6355,9 +5808,9 @@ checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-protocols 0.31.2",
- "wayland-scanner 0.31.1",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -6368,20 +5821,9 @@ checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-protocols 0.31.2",
- "wayland-scanner 0.31.1",
-]
-
-[[package]]
-name = "wayland-scanner"
-version = "0.28.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1"
-dependencies = [
- "proc-macro2",
- "quote",
- "xml-rs",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
 ]
 
 [[package]]
@@ -6397,22 +5839,11 @@ dependencies = [
 
 [[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.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
 dependencies = [
- "dlib 0.5.2",
+ "dlib",
  "log",
  "once_cell",
  "pkg-config",
@@ -6420,9 +5851,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -6450,7 +5881,7 @@ version = "0.19.0"
 source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "arrayvec 0.7.4",
- "cfg-if 1.0.0",
+ "cfg-if",
  "cfg_aliases 0.1.1",
  "js-sys",
  "log",
@@ -6516,7 +5947,7 @@ dependencies = [
  "js-sys",
  "khronos-egl",
  "libc",
- "libloading 0.8.1",
+ "libloading 0.8.3",
  "log",
  "metal",
  "naga",
@@ -6586,13 +6017,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 [[package]]
 name = "window_clipboard"
 version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
  "clipboard-win",
  "clipboard_macos",
  "clipboard_wayland",
  "clipboard_x11",
+ "mime 0.1.0",
  "raw-window-handle 0.6.0",
  "thiserror",
 ]
@@ -6624,7 +6055,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core",
- "windows-targets 0.52.3",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -6633,7 +6064,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.3",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -6682,7 +6113,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.3",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -6717,17 +6148,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.3",
- "windows_aarch64_msvc 0.52.3",
- "windows_i686_gnu 0.52.3",
- "windows_i686_msvc 0.52.3",
- "windows_x86_64_gnu 0.52.3",
- "windows_x86_64_gnullvm 0.52.3",
- "windows_x86_64_msvc 0.52.3",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -6744,9 +6175,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -6762,9 +6193,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -6780,9 +6211,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -6798,9 +6229,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -6816,9 +6247,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -6834,9 +6265,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -6852,41 +6283,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
-
-[[package]]
-name = "winit"
-version = "0.25.0"
+version = "0.52.4"
 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.4",
- "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",
-]
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winit"
@@ -6898,18 +6297,18 @@ dependencies = [
  "atomic-waker",
  "bitflags 2.4.2",
  "bytemuck",
- "calloop 0.12.4",
+ "calloop",
  "cfg_aliases 0.1.1",
- "core-foundation 0.9.4",
- "core-graphics 0.23.1",
+ "core-foundation",
+ "core-graphics",
  "cursor-icon",
  "icrate 0.0.4",
  "js-sys",
  "libc",
  "log",
- "memmap2 0.9.4",
- "ndk 0.8.0",
- "ndk-sys 0.5.0+25.2.9519653",
+ "memmap2",
+ "ndk",
+ "ndk-sys",
  "objc2 0.4.1",
  "once_cell",
  "orbclient",
@@ -6918,14 +6317,14 @@ dependencies = [
  "redox_syscall 0.3.5",
  "rustix 0.38.31",
  "sctk-adwaita",
- "smithay-client-toolkit 0.18.1",
+ "smithay-client-toolkit",
  "smol_str",
  "unicode-segmentation",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "wayland-backend",
- "wayland-client 0.31.2",
- "wayland-protocols 0.31.2",
+ "wayland-client",
+ "wayland-protocols",
  "wayland-protocols-plasma",
  "web-sys",
  "web-time",
@@ -6946,9 +6345,9 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.2"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -6973,7 +6372,7 @@ dependencies = [
  "as-raw-xcb-connection",
  "gethostname",
  "libc",
- "libloading 0.8.1",
+ "libloading 0.8.3",
  "once_cell",
  "rustix 0.38.31",
  "x11rb-protocol",
@@ -7015,7 +6414,7 @@ checksum = "87bf7b69bb50588d70a36e467be29d3df3e8c32580276d62eded9738c1a797aa"
 dependencies = [
  "dirs-next",
  "glob",
- "mime",
+ "mime 0.3.17",
  "nom 5.1.3",
  "unicase",
 ]
@@ -7027,7 +6426,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
 dependencies = [
  "bitflags 2.4.2",
- "dlib 0.5.2",
+ "dlib",
  "log",
  "once_cell",
  "xkeysym",
@@ -7096,7 +6495,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "hex",
- "nix 0.26.4",
+ "nix",
  "once_cell",
  "ordered-stream",
  "rand",
@@ -7130,9 +6529,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_names"
-version = "2.6.0"
+version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
+checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
 dependencies = [
  "serde",
  "static_assertions",
@@ -7162,7 +6561,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.53",
 ]
 
 [[package]]
diff --git a/pkgs/by-name/co/cosmic-edit/package.nix b/pkgs/by-name/co/cosmic-edit/package.nix
index 155b812b42d9f..8120fcc61e16c 100644
--- a/pkgs/by-name/co/cosmic-edit/package.nix
+++ b/pkgs/by-name/co/cosmic-edit/package.nix
@@ -21,13 +21,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-edit";
-  version = "unstable-2024-02-28";
+  version = "unstable-2024-03-30";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "536a66eff9c032afd76b60be6a9067a14ed38ab1";
-    hash = "sha256-UsZBxeamw8VuHtHrVtTwHhPPG+SMBrGY5taw+da/Ll0=";
+    rev = "cd1b32218078979aa9a944b3a32f9b96996764a1";
+    hash = "sha256-54DwcI/pwN6nRnHC6GeDYVJXNgS+xBQTnRrKV2YMGUA=";
   };
 
   cargoLock = {
@@ -35,14 +35,15 @@ rustPlatform.buildRustPackage rec {
     outputHashes = {
       "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-Zyi95zcBAohM1WBropLzJczSIfNNNBK2odB4AmW4h5I=";
-      "cosmic-files-0.1.0" = "sha256-64An0MPgnFgyVlWmtBGBs+IV2z+4vmEY2uRPetZM4/M=";
+      "clipboard_macos-0.1.0" = "sha256-PEH+aCpjDCEIj8s39nIeWxb7qu3u9IfriGqf0pYObMk=";
+      "cosmic-config-0.1.0" = "sha256-x/xWMR5w2oEbghTSa8iCi24DA2s99+tcnga8K6jS6HQ=";
+      "cosmic-files-0.1.0" = "sha256-4uwqRzkttmPQlqkX6xLjxyXRcqUhchCjAzZH9wmR+Tk=";
       "cosmic-syntax-theme-0.1.0" = "sha256-BNb9wrryD5FJImboD3TTdPRIfiBqPpItqwGdT1ZiNng=";
-      "cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug=";
+      "cosmic-text-0.11.2" = "sha256-gUIQFHPaFTmtUfgpVvsGTnw2UKIBx9gl0K67KPuynWs=";
       "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
       "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
+      "smithay-clipboard-0.8.0" = "sha256-OZOGbdzkgRIeDFrAENXE7g62eQTs60Je6lYVr0WudlE=";
       "softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
-      "systemicons-0.7.0" = "sha256-zzAI+6mnpQOh+3mX7/sJ+w4a7uX27RduQ99PNxLNF78=";
       "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
       "winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
     };
@@ -50,7 +51,7 @@ rustPlatform.buildRustPackage rec {
 
   # COSMIC applications now uses vergen for the About page
   # Update the COMMIT_DATE to match when the commit was made
-  env.VERGEN_GIT_COMMIT_DATE = "2024-02-28";
+  env.VERGEN_GIT_COMMIT_DATE = "2024-03-30";
   env.VERGEN_GIT_SHA = src.rev;
 
   postPatch = ''
diff --git a/pkgs/by-name/co/cosmic-store/Cargo.lock b/pkgs/by-name/co/cosmic-store/Cargo.lock
index 7d7e8ef1b9a33..a70925035b6d9 100644
--- a/pkgs/by-name/co/cosmic-store/Cargo.lock
+++ b/pkgs/by-name/co/cosmic-store/Cargo.lock
@@ -117,9 +117,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -149,7 +149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
 dependencies = [
  "android-properties",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cc",
  "cesu8",
  "jni",
@@ -321,7 +321,7 @@ dependencies = [
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "slab",
 ]
 
@@ -359,18 +359,18 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.1"
+version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
  "async-lock 3.3.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "parking",
  "polling 3.5.0",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -409,19 +409,19 @@ dependencies = [
  "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.0.5"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -430,13 +430,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.3.1",
+ "async-io 2.3.2",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -450,13 +450,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -482,7 +482,7 @@ name = "atomicwrites"
 version = "0.4.2"
 source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
 dependencies = [
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "tempfile",
  "windows-sys 0.48.0",
 ]
@@ -493,7 +493,7 @@ version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc7b2dbe9169059af0f821e811180fddc971fc210c776c133c7819ccd6e478db"
 dependencies = [
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "tempfile",
  "windows-sys 0.52.0",
 ]
@@ -554,9 +554,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "95d8e92cac0961e91dbd517496b00f7e9b92363dbe6d42c3198268323798860c"
 dependencies = [
  "addr2line",
  "cc",
@@ -617,7 +617,7 @@ dependencies = [
  "packagemerge",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -628,9 +628,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 dependencies = [
  "serde",
 ]
@@ -690,7 +690,7 @@ dependencies = [
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "piper",
  "tracing",
 ]
@@ -703,22 +703,22 @@ checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.3"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -749,10 +749,10 @@ version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "log",
  "polling 3.5.0",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "slab",
  "thiserror",
 ]
@@ -764,7 +764,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
  "calloop",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "wayland-backend",
  "wayland-client",
 ]
@@ -830,9 +830,9 @@ dependencies = [
 
 [[package]]
 name = "clipboard-win"
-version = "5.2.0"
+version = "5.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
+checksum = "d517d4b86184dbb111d3556a10f1c8a04da7428d2987bf1081602bf11c3aa9ee"
 dependencies = [
  "error-code",
 ]
@@ -840,8 +840,7 @@ dependencies = [
 [[package]]
 name = "clipboard_macos"
 version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "145a7f9e9b89453bc0a5e32d166456405d389cea5b578f57f1274b1397588a95"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
  "objc",
  "objc-foundation",
@@ -851,17 +850,16 @@ dependencies = [
 [[package]]
 name = "clipboard_wayland"
 version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
+ "mime 0.1.0",
  "smithay-clipboard",
 ]
 
 [[package]]
 name = "clipboard_x11"
 version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
  "thiserror",
  "x11rb",
@@ -1026,7 +1024,7 @@ dependencies = [
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "atomicwrites 0.4.2",
  "cosmic-config-derive",
@@ -1043,7 +1041,7 @@ dependencies = [
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -1085,9 +1083,9 @@ dependencies = [
 [[package]]
 name = "cosmic-text"
 version = "0.11.2"
-source = "git+https://github.com/pop-os/cosmic-text.git#a53a0b3a8c085143470a9d26ac2c2911cc479033"
+source = "git+https://github.com/pop-os/cosmic-text.git#b08676909f882f553ab574601b35b58276a52458"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "fontdb",
  "libm",
  "log",
@@ -1107,15 +1105,17 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "almost",
  "cosmic-config",
  "csscolorparser",
+ "dirs 5.0.1",
  "lazy_static",
  "palette",
  "ron",
  "serde",
+ "thiserror",
 ]
 
 [[package]]
@@ -1209,7 +1209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1223,7 +1223,7 @@ name = "d3d12"
 version = "0.19.0"
 source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libloading 0.8.3",
  "winapi",
 ]
@@ -1249,7 +1249,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1260,7 +1260,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1302,7 +1302,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1370,7 +1370,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1403,11 +1403,11 @@ version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "rustix 0.38.31",
+ "rustix 0.38.32",
 ]
 
 [[package]]
@@ -1417,7 +1417,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "rustix 0.38.31",
+ "rustix 0.38.32",
 ]
 
 [[package]]
@@ -1469,7 +1469,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1746,9 +1746,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "font-types"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+checksum = "5b7f6040d337bd44434ab21fc6509154edf2cece88b23758d9d64654c4e7730b"
 
 [[package]]
 name = "fontconfig-parser"
@@ -1800,7 +1800,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1836,9 +1836,9 @@ dependencies = [
 
 [[package]]
 name = "freedesktop-desktop-entry"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45157175a725e81f3f594382430b6b78af5f8f72db9bd51b94f0785f80fc6d29"
+checksum = "287f89b1a3d88dd04d2b65dfec39f3c381efbcded7b736456039c4ee49d54b17"
 dependencies = [
  "dirs 3.0.2",
  "gettext-rs",
@@ -1951,9 +1951,9 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
  "fastrand 2.0.1",
  "futures-core",
@@ -1970,7 +1970,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2165,7 +2165,7 @@ version = "0.18.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -2188,12 +2188,12 @@ version = "0.18.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro-crate 2.0.2",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2255,7 +2255,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "gpu-alloc-types",
 ]
 
@@ -2265,7 +2265,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
 ]
 
 [[package]]
@@ -2287,7 +2287,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "gpu-descriptor-types",
  "hashbrown",
 ]
@@ -2298,7 +2298,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
 ]
 
 [[package]]
@@ -2337,9 +2337,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb"
 dependencies = [
  "bytes",
  "fnv",
@@ -2380,7 +2380,7 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "com",
  "libc",
  "libloading 0.8.3",
@@ -2396,6 +2396,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "hermit-abi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2543,7 +2549,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.52",
+ "syn 2.0.53",
  "unic-langid",
 ]
 
@@ -2557,7 +2563,7 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2586,7 +2592,7 @@ dependencies = [
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2596,12 +2602,13 @@ dependencies = [
  "iced_winit",
  "image",
  "thiserror",
+ "window_clipboard",
 ]
 
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2610,7 +2617,7 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "bitflags 1.3.2",
  "log",
@@ -2621,13 +2628,14 @@ dependencies = [
  "smol_str",
  "thiserror",
  "web-time",
+ "window_clipboard",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "futures",
  "iced_core",
@@ -2640,7 +2648,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2664,7 +2672,7 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
@@ -2676,17 +2684,18 @@ dependencies = [
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "iced_core",
  "iced_futures",
  "thiserror",
+ "window_clipboard",
 ]
 
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2696,7 +2705,7 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "bytemuck",
  "cosmic-text",
@@ -2713,7 +2722,7 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2732,7 +2741,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2746,7 +2755,7 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
@@ -3062,10 +3071,11 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+source = "git+https://github.com/pop-os/libcosmic.git#1575aa267cc5cd69ac65cfbe09fc7c4212d18e3a"
 dependencies = [
  "apply",
  "ashpd 0.7.0",
+ "chrono",
  "cosmic-config",
  "cosmic-theme",
  "css-color",
@@ -3084,7 +3094,7 @@ dependencies = [
  "iced_widget",
  "iced_winit",
  "lazy_static",
- "mime",
+ "mime 0.3.17",
  "nix 0.27.1",
  "palette",
  "rfd",
@@ -3157,7 +3167,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -3168,7 +3178,7 @@ version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -3329,7 +3339,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "block",
  "core-graphics-types",
  "foreign-types 0.5.0",
@@ -3340,6 +3350,14 @@ dependencies = [
 
 [[package]]
 name = "mime"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
+dependencies = [
+ "smithay-clipboard",
+]
+
+[[package]]
+name = "mime"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
@@ -3385,7 +3403,7 @@ source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b802
 dependencies = [
  "arrayvec",
  "bit-set",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "codespan-reporting",
  "hexf-parse",
  "indexmap",
@@ -3422,7 +3440,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "jni-sys",
  "log",
  "ndk-sys",
@@ -3464,7 +3482,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "libc",
 ]
@@ -3485,7 +3503,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -3602,7 +3620,7 @@ dependencies = [
  "proc-macro-crate 2.0.2",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3703,7 +3721,7 @@ version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "foreign-types 0.3.2",
  "libc",
@@ -3720,7 +3738,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3793,11 +3811,11 @@ version = "0.17.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3848,7 +3866,7 @@ checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -3959,7 +3977,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -4044,7 +4062,7 @@ dependencies = [
  "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -4107,9 +4125,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -4229,9 +4247,9 @@ checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 
 [[package]]
 name = "read-fonts"
-version = "0.15.6"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ea23eedb4d938031b6d4343222444608727a6aa68ec355e13588d9947ffe92"
+checksum = "81c524658d3b77930a391f559756d91dbe829ab6cf4687083f615d395df99722"
 dependencies = [
  "font-types",
 ]
@@ -4311,9 +4329,9 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832"
 
 [[package]]
 name = "reqwest"
-version = "0.11.25"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0eea5a9eb898d3783f17c6407670e3592fd174cb81a10e51d4c37f49450b9946"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
 dependencies = [
  "base64",
  "bytes",
@@ -4328,7 +4346,7 @@ dependencies = [
  "ipnet",
  "js-sys",
  "log",
- "mime",
+ "mime 0.3.17",
  "native-tls",
  "once_cell",
  "percent-encoding",
@@ -4412,7 +4430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "serde",
  "serde_derive",
 ]
@@ -4443,7 +4461,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.52",
+ "syn 2.0.53",
  "walkdir",
 ]
 
@@ -4495,11 +4513,11 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.31"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys 0.4.13",
@@ -4527,7 +4545,7 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "bytemuck",
  "libm",
  "smallvec",
@@ -4642,7 +4660,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -4664,7 +4682,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -4690,9 +4708,9 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.32"
+version = "0.9.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
+checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
 dependencies = [
  "indexmap",
  "itoa",
@@ -4785,9 +4803,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -4795,14 +4813,14 @@ version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "calloop",
  "calloop-wayland-source",
  "cursor-icon",
  "libc",
  "log",
  "memmap2",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "thiserror",
  "wayland-backend",
  "wayland-client",
@@ -4816,9 +4834,8 @@ dependencies = [
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
+version = "0.8.0"
+source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-mime-types#cc0101c1f9ccc937a413bd3af3c0f6217f27e935"
 dependencies = [
  "libc",
  "smithay-client-toolkit",
@@ -4873,7 +4890,7 @@ dependencies = [
  "objc",
  "raw-window-handle 0.6.0",
  "redox_syscall 0.4.1",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
@@ -4899,7 +4916,7 @@ version = "0.3.0+sdk-1.3.268.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
 ]
 
 [[package]]
@@ -4935,7 +4952,7 @@ version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "rustversion",
@@ -4960,9 +4977,9 @@ dependencies = [
 
 [[package]]
 name = "swash"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
+checksum = "9af636fb90d39858650cae1088a37e2862dab4e874a0bb49d6dfb5b2dacf0e24"
 dependencies = [
  "read-fonts",
  "yazi",
@@ -4982,9 +4999,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.52"
+version = "2.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5008,20 +5025,20 @@ dependencies = [
 
 [[package]]
 name = "system-configuration"
-version = "0.6.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 1.3.2",
  "core-foundation",
  "system-configuration-sys",
 ]
 
 [[package]]
 name = "system-configuration-sys"
-version = "0.6.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -5029,12 +5046,12 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.2.0"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
  "cfg-expr",
- "heck",
+ "heck 0.5.0",
  "pkg-config",
  "toml 0.8.2",
  "version-compare",
@@ -5059,9 +5076,9 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "temp-dir"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
+checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
 
 [[package]]
 name = "tempfile"
@@ -5071,7 +5088,7 @@ checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "windows-sys 0.52.0",
 ]
 
@@ -5086,22 +5103,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5214,7 +5231,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5320,7 +5337,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -5466,9 +5483,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
 
 [[package]]
 name = "url"
@@ -5551,9 +5568,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -5613,7 +5630,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
  "wasm-bindgen-shared",
 ]
 
@@ -5647,7 +5664,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5681,7 +5698,7 @@ checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "scoped-tls",
  "smallvec",
  "wayland-sys",
@@ -5693,8 +5710,8 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "bitflags 2.4.2",
- "rustix 0.38.31",
+ "bitflags 2.5.0",
+ "rustix 0.38.32",
  "wayland-backend",
  "wayland-scanner",
 ]
@@ -5705,7 +5722,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cursor-icon",
  "wayland-backend",
 ]
@@ -5716,7 +5733,7 @@ version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "wayland-client",
  "xcursor",
 ]
@@ -5727,7 +5744,7 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-scanner",
@@ -5739,7 +5756,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -5752,7 +5769,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -5839,7 +5856,7 @@ source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b802
 dependencies = [
  "arrayvec",
  "bit-vec",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg_aliases 0.1.1",
  "codespan-reporting",
  "indexmap",
@@ -5866,7 +5883,7 @@ dependencies = [
  "arrayvec",
  "ash",
  "bit-set",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "block",
  "cfg_aliases 0.1.1",
  "core-graphics-types",
@@ -5905,7 +5922,7 @@ name = "wgpu-types"
 version = "0.19.0"
 source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "js-sys",
  "web-sys",
 ]
@@ -5950,13 +5967,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 [[package]]
 name = "window_clipboard"
 version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
+source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea"
 dependencies = [
  "clipboard-win",
  "clipboard_macos",
  "clipboard_wayland",
  "clipboard_x11",
+ "mime 0.1.0",
  "raw-window-handle 0.6.0",
  "thiserror",
 ]
@@ -6219,7 +6236,7 @@ dependencies = [
  "ahash",
  "android-activity",
  "atomic-waker",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "bytemuck",
  "calloop",
  "cfg_aliases 0.1.1",
@@ -6239,7 +6256,7 @@ dependencies = [
  "percent-encoding",
  "raw-window-handle 0.6.0",
  "redox_syscall 0.3.5",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "sctk-adwaita",
  "smithay-client-toolkit",
  "smol_str",
@@ -6299,7 +6316,7 @@ dependencies = [
  "libc",
  "libloading 0.8.3",
  "once_cell",
- "rustix 0.38.31",
+ "rustix 0.38.32",
  "x11rb-protocol",
 ]
 
@@ -6337,7 +6354,7 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "dlib",
  "log",
  "once_cell",
@@ -6473,7 +6490,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.53",
 ]
 
 [[package]]
diff --git a/pkgs/by-name/co/cosmic-store/package.nix b/pkgs/by-name/co/cosmic-store/package.nix
index 3fcb76c17808b..1a89a00a23014 100644
--- a/pkgs/by-name/co/cosmic-store/package.nix
+++ b/pkgs/by-name/co/cosmic-store/package.nix
@@ -5,12 +5,12 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-store";
-  version = "unstable-2024-03-13";
+  version = "unstable-2024-04-14";
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "df014ea82ae0465470f5d237bfe71d2c085d29a0";
-    hash = "sha256-1Sp6/qVONK+O5FLEcsu45eEBNaVbJLptt+ByXOZYwpo=";
+    rev = "b1bbeaa6e6bdc85c84d329ae01b69d72716411fc";
+    hash = "sha256-KHYcQnaRFoYzl/00mFkS6MJS7Th0T0fQhxYUErjzGCo=";
     fetchSubmodules = true;
   };
 
@@ -20,10 +20,12 @@ rustPlatform.buildRustPackage rec {
       "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
       "appstream-0.2.2" = "sha256-Qb/zzZJ2sM97nGVtp8amecTlwuaDrx1cacDcZOwhUm8=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-J6c2pRCpyfCFMmzwJ4RdEghSaFDshDtZL6DteAiaq1o=";
-      "cosmic-text-0.11.2" = "sha256-6mvGyMCFC/tSIiDgDX+zuDUi15S9dXI6Dc6pj36hIJM=";
+      "clipboard_macos-0.1.0" = "sha256-PEH+aCpjDCEIj8s39nIeWxb7qu3u9IfriGqf0pYObMk=";
+      "cosmic-config-0.1.0" = "sha256-Ps2QIzlwgW8ENB+uD6cOjCkjlZvmWspazsXNxDFCu7g=";
+      "cosmic-text-0.11.2" = "sha256-K9cZeClr1zz4LanJS0WPEpxAplQrXfCjFKrSn5n4rDA=";
       "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
       "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
+      "smithay-clipboard-0.8.0" = "sha256-OZOGbdzkgRIeDFrAENXE7g62eQTs60Je6lYVr0WudlE=";
       "softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
       "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
       "winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
diff --git a/pkgs/by-name/di/dim/package.nix b/pkgs/by-name/di/dim/package.nix
index bf8140b471a75..fba2c5e11f0c6 100644
--- a/pkgs/by-name/di/dim/package.nix
+++ b/pkgs/by-name/di/dim/package.nix
@@ -4,6 +4,7 @@
   rustPlatform,
   fetchFromGitHub,
   buildNpmPackage,
+  darwin,
   makeWrapper,
   ffmpeg_5,
   git,
@@ -66,9 +67,14 @@ rustPlatform.buildRustPackage rec {
     git
   ];
 
-  buildInputs = [
-    sqlite
-  ] ++ lib.optional libvaSupport libva;
+  buildInputs =
+    [ sqlite ]
+    ++ lib.optional stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.CoreServices
+      darwin.apple_sdk.frameworks.SystemConfiguration
+    ]
+    ++ lib.optional libvaSupport libva;
 
   buildFeatures = lib.optional libvaSupport "vaapi";
 
@@ -95,7 +101,7 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     wrapProgram $out/bin/dim \
-      --prefix PATH : ${lib.makeBinPath [ffmpeg_5]}
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg_5 ]}
   '';
 
   meta = {
diff --git a/pkgs/tools/games/dualsensectl/default.nix b/pkgs/by-name/du/dualsensectl/package.nix
index 12b3a8492f621..63eefab713dc6 100644
--- a/pkgs/tools/games/dualsensectl/default.nix
+++ b/pkgs/by-name/du/dualsensectl/package.nix
@@ -1,20 +1,23 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, pkg-config
-, dbus
-, hidapi
-, udev
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  pkg-config,
+  dbus,
+  hidapi,
+  udev,
+  testers,
+  nix-update-script,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "dualsensectl";
   version = "0.5";
 
   src = fetchFromGitHub {
     owner = "nowrep";
     repo = "dualsensectl";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-+OSp9M0A0J4nm7ViDXG63yrUZuZxR7gyckwSCdy3qm0=";
   };
 
@@ -22,9 +25,7 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile --replace "/usr/" "/"
   '';
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
     dbus
@@ -32,11 +33,15 @@ stdenv.mkDerivation rec {
     udev
   ];
 
-  makeFlags = [
-    "DESTDIR=$(out)"
-  ];
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  passthru = {
+    tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
+    updateScript = nix-update-script { };
+  };
 
   meta = with lib; {
+    changelog = "https://github.com/nowrep/dualsensectl/releases/tag/v${finalAttrs.version}";
     description = "Linux tool for controlling PS5 DualSense controller";
     homepage = "https://github.com/nowrep/dualsensectl";
     license = licenses.gpl2Only;
@@ -44,4 +49,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ azuwis ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/by-name/e1/e1s/package.nix b/pkgs/by-name/e1/e1s/package.nix
new file mode 100644
index 0000000000000..b13d5ff947e44
--- /dev/null
+++ b/pkgs/by-name/e1/e1s/package.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, buildGoModule, fetchFromGitHub }:
+let
+  pname = "e1s";
+  version = "1.0.34";
+in
+buildGoModule {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "keidarcy";
+    repo = "e1s";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-fxo7TQjFrp2BbXz7bwMC5AuacKpyi5UmAMEVBmR91ko=";
+  };
+
+  vendorHash = "sha256-pM6win2W6HqjIg9QBblDl3ptKEI6sANliXkpwlFnTb0=";
+
+  meta = with lib; {
+    description = "Easily Manage AWS ECS Resources in Terminal 🐱";
+    homepage = "https://github.com/keidarcy/e1s";
+    changelog = "https://github.com/derailed/e1s/releases/tag/v${version}";
+    license = licenses.mit;
+    mainProgram = "e1s";
+    maintainers = with maintainers; [ zelkourban ];
+  };
+}
diff --git a/pkgs/by-name/fr/freefilesync/package.nix b/pkgs/by-name/fr/freefilesync/package.nix
index 87674942c917d..c19efa63a4af9 100644
--- a/pkgs/by-name/fr/freefilesync/package.nix
+++ b/pkgs/by-name/fr/freefilesync/package.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "freefilesync";
-  version = "13.5";
+  version = "13.6";
 
   src = fetchurl {
     url = "https://freefilesync.org/download/FreeFileSync_${finalAttrs.version}_Source.zip";
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
       rm -f $out
       tryDownload "$url"
     '';
-    hash = "sha256-8At8QobAQR2mQnFjFSPTkEuxmP9M8gINP0qH28J3ynY=";
+    hash = "sha256-lJ4LiisUy8w6OPd44wJufH+ol1YwjOfFQfqzj3HWb2w=";
   };
 
   sourceRoot = ".";
@@ -56,14 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
       patch = "Disable_wxWidgets_uncaught_exception_handling.patch";
       hash = "sha256-Fem7eDDKSqPFU/t12Jco8OmYC8FM9JgB4/QVy/ouvbI=";
     })
-    # Disable update patch
-    (fetchDebianPatch {
-      pname = "freefilesync";
-      version = "13.3";
-      debianRevision = "1";
-      patch = "ffs_no_check_updates.patch";
-      hash = "sha256-lPyHpxhZz8BSnDI8QfAzKpKwVkp2jiF49RWjKNuZGII=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/gl/glance/package.nix b/pkgs/by-name/gl/glance/package.nix
index cd54b841d2881..1e36360311b03 100644
--- a/pkgs/by-name/gl/glance/package.nix
+++ b/pkgs/by-name/gl/glance/package.nix
@@ -6,13 +6,13 @@ nix-update-script
 
 buildGoModule rec {
   pname = "glance";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "glanceapp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-37nQEpJxioELNFJxacOUWOxGMFm80UtaYLDCxsoXRe8=";
+    hash = "sha256-vcK8AW+B/YK4Jor86SRvJ8XFWvzeAUX5mVbXwrgxGlA=";
   };
 
   vendorHash = "sha256-Okme73vLc3Pe9+rNlmG8Bj1msKaVb5PaIBsAAeTer6s=";
diff --git a/pkgs/by-name/gl/glasskube/package.nix b/pkgs/by-name/gl/glasskube/package.nix
index b3e6e34939f33..029f86e2300c8 100644
--- a/pkgs/by-name/gl/glasskube/package.nix
+++ b/pkgs/by-name/gl/glasskube/package.nix
@@ -7,12 +7,12 @@
 }:
 
 let
-  version = "0.2.0";
+  version = "0.2.1";
   gitSrc = fetchFromGitHub {
     owner = "glasskube";
     repo = "glasskube";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r14gYgrenUk3OFUEab4QlwmwUeEwqocJJ3Vje9wRdBA=";
+    hash = "sha256-yHktQZ/s3RYcRQd0U+0VTnLOMTyRmlny9RtAdfFT6J8=";
   };
   web-bundle = buildNpmPackage rec {
     inherit version;
@@ -40,7 +40,7 @@ in buildGoModule rec {
 
   src = gitSrc;
 
-  vendorHash = "sha256-sj9TEAWhExwaaKlMJ10U7m3/xbUNl0dVZwrCb2TTu4o=";
+  vendorHash = "sha256-ADa3nQZ/5K9m0aB5NwGQpjqhGwAne5pN2Z5RUb3eEcU=";
 
   CGO_ENABLED = 0;
 
diff --git a/pkgs/by-name/gm/gmetronome/package.nix b/pkgs/by-name/gm/gmetronome/package.nix
index adebcf9a6bc94..c3f1629a4c0f5 100644
--- a/pkgs/by-name/gm/gmetronome/package.nix
+++ b/pkgs/by-name/gm/gmetronome/package.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gmetronome";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "dqpb";
     repo = "gmetronome";
     rev = version;
-    hash = "sha256-ilFO1HwleWIQ51Bkzck1sm1Yu3ugqkvZrpxPOYzXydM=";
+    hash = "sha256-fjtdM2/LMZx0dFt78Ih4BG5+NZoocPknh5INA+2e5qk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/go/got/package.nix b/pkgs/by-name/go/got/package.nix
index 127ff219ed5ee..d6f5629e3cd6c 100644
--- a/pkgs/by-name/go/got/package.nix
+++ b/pkgs/by-name/go/got/package.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "got";
-  version = "0.98.2";
+  version = "0.99";
 
   src = fetchurl {
     url = "https://gameoftrees.org/releases/portable/got-portable-${finalAttrs.version}.tar.gz";
-    hash = "sha256-/11K2ZIu3xyAVbI5hlCXL9RjyAlZDb544uqxv3ihUMg=";
+    hash = "sha256-rqQINToCsuOtm00bdgeQAmmvl5htQJmMV/EKzfD6Hjg=";
   };
 
   nativeBuildInputs = [ pkg-config bison ]
@@ -30,8 +30,6 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ libressl libbsd libevent libuuid libmd zlib ncurses ]
     ++ lib.optionals stdenv.isDarwin [ libossp_uuid ];
 
-  configureFlags = [ "--enable-gotd" ];
-
   preConfigure = lib.optionalString stdenv.isDarwin ''
     # The configure script assumes dependencies on Darwin are installed via
     # Homebrew or MacPorts and hardcodes assumptions about the paths of
@@ -52,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://gameoftrees.org/releases/CHANGES";
-    description = "A version control system which prioritizes ease of use and simplicity over flexibility";
+    description = "Version control system which prioritizes ease of use and simplicity over flexibility";
     longDescription = ''
       Game of Trees (Got) is a version control system which prioritizes
       ease of use and simplicity over flexibility.
diff --git a/pkgs/by-name/ht/httpie-desktop/package.nix b/pkgs/by-name/ht/httpie-desktop/package.nix
new file mode 100644
index 0000000000000..e8f3dbb1c02d9
--- /dev/null
+++ b/pkgs/by-name/ht/httpie-desktop/package.nix
@@ -0,0 +1,23 @@
+{
+  appimageTools,
+  lib,
+  fetchurl,
+}:
+appimageTools.wrapType2 rec {
+  pname = "httpie-desktop";
+  version = "2024.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/httpie/desktop/releases/download/v${version}/HTTPie-${version}.AppImage";
+    sha256 = "sha256-OOP1l7J2BgO3nOPSipxfwfN/lOUsl80UzYMBosyBHrM=";
+  };
+
+  meta = with lib; {
+    description = "Cross-platform API testing client for humans. Painlessly test REST, GraphQL, and HTTP APIs.";
+    homepage = "https://github.com/httpie/desktop";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ luftmensch-luftmensch ];
+    mainProgram = "httpie-desktop";
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/hy/hyprland-activewindow/package.nix b/pkgs/by-name/hy/hyprland-activewindow/package.nix
index 1ff0396fb7c72..5bbdd467fd6eb 100644
--- a/pkgs/by-name/hy/hyprland-activewindow/package.nix
+++ b/pkgs/by-name/hy/hyprland-activewindow/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hyprland-activewindow";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "FieldOfClay";
     repo = "hyprland-activewindow";
     rev = "v${version}";
-    hash = "sha256-kF2dNb9hiC6RcL2XG8k18da5he94Jpv3v+HdfHbeW3E=";
+    hash = "sha256-kRxA2DLbbABPJFwv/L7yeNJ8eqNUbuV6U/PB5iJNoAw=";
   };
 
-  cargoHash = "sha256-YCzAfVLKDECGG/1fs3vyVB0oglxLFSE+2cnmLc7RoEo=";
+  cargoHash = "sha256-s3Ho0+OzuLuWqFvaBu9NLXoasByHSuun9eJGAAISOJc=";
 
   meta = with lib; {
     description = "A multi-monitor-aware Hyprland workspace widget helper";
diff --git a/pkgs/by-name/ka/katriawm/package.nix b/pkgs/by-name/ka/katriawm/package.nix
index 85116255e24f0..7e8817a9e87dd 100644
--- a/pkgs/by-name/ka/katriawm/package.nix
+++ b/pkgs/by-name/ka/katriawm/package.nix
@@ -1,10 +1,12 @@
-{ lib
-, stdenv
-, fetchzip
-, libX11
-, libXft
-, libXrandr
-, pkg-config
+{
+  lib,
+  stdenv,
+  fetchzip,
+  libX11,
+  libXft,
+  libXrandr,
+  pkg-config,
+  gitUpdater,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -16,9 +18,7 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-IWviLboZz421/Amz/QG4o8jYaG8Y/l5PvmvXfK5nzJE=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
     libX11
@@ -26,11 +26,17 @@ stdenv.mkDerivation (finalAttrs: {
     libXrandr
   ];
 
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
 
   strictDeps = true;
 
-  makeFlags = [ "-C" "src" ];
+  makeFlags = [
+    "-C"
+    "src"
+  ];
 
   installFlags = [ "prefix=$(out)" ];
 
@@ -39,6 +45,11 @@ stdenv.mkDerivation (finalAttrs: {
       --replace pkg-config "$PKG_CONFIG"
   '';
 
+  passthru.updateScript = gitUpdater {
+    url = "https://www.uninformativ.de/git/katriawm.git/";
+    rev-prefix = "v";
+  };
+
   meta = {
     homepage = "https://www.uninformativ.de/git/katriawm/file/README.html";
     description = "A non-reparenting, dynamic window manager with decorations";
diff --git a/pkgs/by-name/ke/keto/package.nix b/pkgs/by-name/ke/keto/package.nix
new file mode 100644
index 0000000000000..8f50762bfeb26
--- /dev/null
+++ b/pkgs/by-name/ke/keto/package.nix
@@ -0,0 +1,45 @@
+{
+  fetchFromGitHub,
+  buildGoModule,
+  lib,
+}:
+let
+  pname = "keto";
+  version = "0.13.0-alpha.0";
+  commit = "c75695837f170334b526359f28967aa33d61bce6";
+in
+buildGoModule {
+  inherit pname version commit;
+
+  src = fetchFromGitHub {
+    owner = "ory";
+    repo = "keto";
+    rev = "v${version}";
+    sha256 = "sha256-0yylaaXogN2HWXY8Tb7ScN4jdyeHecJ0gBYlVvcwaNE=";
+  };
+
+  vendorHash = "sha256-lgwV4Ysjmd9e850Rf5c0wSZtMW3U34/piwwG7dQEUV4=";
+
+  tags = [
+    "sqlite"
+    "json1"
+    "hsm"
+  ];
+
+  subPackages = [ "." ];
+
+  # Pass versioning information via ldflags
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/ory/keto/internal/driver/config.Version=${version}"
+    "-X github.com/ory/keto/internal/driver/config.Commit=${commit}"
+  ];
+
+  meta = {
+    description = "ORY Keto, the open source access control server";
+    homepage = "https://www.ory.sh/keto/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ mrmebelman ];
+  };
+}
diff --git a/pkgs/by-name/ko/kor/package.nix b/pkgs/by-name/ko/kor/package.nix
index 09abafc69d7cc..a04132f991306 100644
--- a/pkgs/by-name/ko/kor/package.nix
+++ b/pkgs/by-name/ko/kor/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kor";
-  version = "0.3.8";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "yonahd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4lXLmh8BP7h6k8Tt/oklvv7fmDvmdKQP0P7gaCM2TK0=";
+    hash = "sha256-OZSec1S583jVGqSET0y4WhKxWf9CyLKuhEwu39Zg9vE=";
   };
 
-  vendorHash = "sha256-ScV12Xb+tVluXC2Jat44atkKXZIzIcUdZ+lyD1Y3dIM=";
+  vendorHash = "sha256-4XcmaW4H+IgZZx3PuG0aimqSG1eUnRtcbebKXuencnQ=";
 
   preCheck = ''
     HOME=$(mktemp -d)
diff --git a/pkgs/by-name/le/lefthook/package.nix b/pkgs/by-name/le/lefthook/package.nix
index cba2661b00d98..65e7ffd529692 100644
--- a/pkgs/by-name/le/lefthook/package.nix
+++ b/pkgs/by-name/le/lefthook/package.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "lefthook";
-  version = "1.6.10";
+  version = "1.6.11";
 in
 buildGoModule {
   inherit pname version;
@@ -15,7 +15,7 @@ buildGoModule {
     owner = "evilmartians";
     repo = "lefthook";
     rev = "v${version}";
-    hash = "sha256-6VjvlGA6PBYLa1Ct05jokgF9zlYKihr+ESG4C8MHnO0=";
+    hash = "sha256-l94RysGILYju0u1jOIGxLVe/TECw1naMq9SzpYq6ooM=";
   };
 
   vendorHash = "sha256-sDqP+fzAFavqtvJ98nwsD5+GxNhmLgtOkTzIK06wp9E=";
diff --git a/pkgs/by-name/li/libui-ng/package.nix b/pkgs/by-name/li/libui-ng/package.nix
index 9cded1afcc7e9..80e0589ac2c12 100644
--- a/pkgs/by-name/li/libui-ng/package.nix
+++ b/pkgs/by-name/li/libui-ng/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libui-ng";
-  version = "4.1-unstable-2024-02-05";
+  version = "4.1-unstable-2024-05-03";
 
   src = fetchFromGitHub {
     owner = "libui-ng";
     repo = "libui-ng";
-    rev = "4d46de31eafad84c88b939356bcd64e6c5ee3821";
-    hash = "sha256-Yb8VdJe75uBzRnsfTOVxUXstZmu6dJ9nBuOrf86KO5s=";
+    rev = "56f1ad65f0f32bb1eb67a268cca4658fbe4567c1";
+    hash = "sha256-wo4iS/a1ErdipFDPYKvaGpO/JGtk6eU/qMLC4eUoHnA=";
   };
 
   postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix
index b88f06f9ab4d3..8b888d2bce387 100644
--- a/pkgs/by-name/ll/llama-cpp/package.nix
+++ b/pkgs/by-name/ll/llama-cpp/package.nix
@@ -72,13 +72,13 @@ let
 in
 effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "llama-cpp";
-  version = "2781";
+  version = "2843";
 
   src = fetchFromGitHub {
     owner = "ggerganov";
     repo = "llama.cpp";
     rev = "refs/tags/b${finalAttrs.version}";
-    hash = "sha256-a+Ji8h0Yh52pGnDsrJSgfG5kdMDAmhEQ6YKdtZRc7S8=";
+    hash = "sha256-wT/E4osmhZUSSW73DoNTs5BMTa1yU4E2mDpwiS0pEQc=";
     leaveDotGit = true;
     postFetch = ''
       git -C "$out" rev-parse --short HEAD > $out/COMMIT
diff --git a/pkgs/by-name/lx/lxgw-wenkai-tc/package.nix b/pkgs/by-name/lx/lxgw-wenkai-tc/package.nix
new file mode 100644
index 0000000000000..7b93d94b42cef
--- /dev/null
+++ b/pkgs/by-name/lx/lxgw-wenkai-tc/package.nix
@@ -0,0 +1,30 @@
+{ stdenvNoCC
+, fetchurl
+, lib
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lxgw-wenkai-tc";
+  version = "1.330";
+  src = fetchurl {
+    url = "https://github.com/lxgw/LxgwWenKaiTC/releases/download/v${version}/${pname}-v${version}.tar.gz";
+    hash = "sha256-qpX5shH1HbGMa287u/R1rMFgQeAUC0wwKFVD+QSTyho=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/lxgw/LxgwWenKaiTC";
+    description = "The Traditional Chinese Edition of LXGW WenKai.";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ lebensterben ];
+  };
+}
diff --git a/pkgs/applications/misc/mako/default.nix b/pkgs/by-name/ma/mako/package.nix
index 8c4e37661a8c6..ad518f00e582d 100644
--- a/pkgs/applications/misc/mako/default.nix
+++ b/pkgs/by-name/ma/mako/package.nix
@@ -3,18 +3,17 @@
 , wayland, wayland-protocols
 , wrapGAppsHook3 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "mako";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-sUFMcCrc5iNPeAmRbqDaT/n8OIlFJEwJTzY1HMx94RU=";
+    repo = "mako";
+    rev = "refs/tags/v${finalAttrs.version}";
+    sha256 = "sha256-QtYtondP7E5QXLRnmcaOQlAm9fKXctfjxeUFqK6FnnE=";
   };
 
-  depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook3 ];
   buildInputs = [ systemd pango cairo gdk-pixbuf wayland ];
 
@@ -29,12 +28,12 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  meta = with lib; {
+  meta = {
     description = "A lightweight Wayland notification daemon";
     homepage = "https://wayland.emersion.fr/mako/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ dywedir synthetica ];
-    platforms = platforms.linux;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dywedir synthetica ];
+    platforms = lib.platforms.linux;
     mainProgram = "mako";
   };
-}
+})
diff --git a/pkgs/by-name/ma/materialx/package.nix b/pkgs/by-name/ma/materialx/package.nix
new file mode 100644
index 0000000000000..cac615eaecbbf
--- /dev/null
+++ b/pkgs/by-name/ma/materialx/package.nix
@@ -0,0 +1,76 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  darwin,
+  libX11,
+  libXt,
+  libGL,
+  openimageio,
+  imath,
+  python3Packages,
+  python3
+}:
+
+python3Packages.buildPythonPackage rec {
+  pname = "materialx";
+  version = "1.38.10";
+
+  src = fetchFromGitHub {
+    owner = "AcademySoftwareFoundation";
+    repo = "MaterialX";
+    rev = "v${version}";
+    sha256 = "sha256-/kMHmW2dptZNtjuhE5s+jvPRIdtY+FRiVtMU+tiBgQo=";
+  };
+
+  format = "other";
+
+  nativeBuildInputs = [
+    cmake
+    python3Packages.setuptools
+  ];
+
+  buildInputs =
+    [
+      openimageio
+      imath
+    ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk.frameworks;
+      [
+        OpenGL
+        Cocoa
+      ]
+    )
+    ++ lib.optionals (!stdenv.isDarwin) [
+      libX11
+      libXt
+      libGL
+    ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "MATERIALX_BUILD_OIIO" true)
+    (lib.cmakeBool "MATERIALX_BUILD_PYTHON" true)
+    # don't build MSL shader back-end on x86_x64-darwin, as it requires a newer SDK with metal support
+    (lib.cmakeBool "MATERIALX_BUILD_GEN_MSL" (stdenv.isLinux || (stdenv.isAarch64 && stdenv.isDarwin)))
+  ];
+
+  pythonImportsCheck = [ "MaterialX" ];
+
+  postInstall = ''
+    # Make python lib properly accessible
+    target_dir=$out/${python3.sitePackages}
+    mkdir -p $(dirname $target_dir)
+    # required for cmake to find the bindings, when included in other projects
+    ln -s $out/python $target_dir
+  '';
+
+  meta = {
+    description = "Open standard for representing rich material and look-development content in computer graphics";
+    homepage = "https://materialx.org";
+    maintainers = [ lib.maintainers.gador ];
+    platforms = lib.platforms.unix;
+    license = lib.licenses.mpl20;
+  };
+}
diff --git a/pkgs/by-name/ma/maxfetch/package.nix b/pkgs/by-name/ma/maxfetch/package.nix
new file mode 100644
index 0000000000000..3b664020a4e86
--- /dev/null
+++ b/pkgs/by-name/ma/maxfetch/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, makeBinaryWrapper
+, gnused
+, ncurses
+, procps
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "maxfetch";
+  version = "unstable-2023-07-31";
+
+  src = fetchFromGitHub {
+    owner = "jobcmax";
+    repo = "maxfetch";
+    rev = "17baa4047073e20572403b70703c69696af6b68d";
+    hash = "sha256-LzOhrFFjGs9GIDjk1lUFKhlnzJuEUrKjBcv1eT3kaY8=";
+  };
+
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 maxfetch $out/bin/maxfetch
+    wrapProgram $out/bin/maxfetch \
+     --prefix PATH : ${lib.makeBinPath [ gnused ncurses procps ]}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Nice fetching program written in sh";
+    homepage = "https://github.com/jobcmax/maxfetch";
+    license = licenses.gpl2Plus;
+    mainProgram = "maxfetch";
+    maintainers = with maintainers; [ jtbx ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/me/megapixels/package.nix b/pkgs/by-name/me/megapixels/package.nix
index 74ced5c3af268..91bd2b302b948 100644
--- a/pkgs/by-name/me/megapixels/package.nix
+++ b/pkgs/by-name/me/megapixels/package.nix
@@ -29,13 +29,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "megapixels";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitLab {
     owner = "megapixels-org";
     repo = "Megapixels";
     rev = finalAttrs.version;
-    hash = "sha256-TXiPJbd4TPpsEvmD97F7xkm4rS1g+ViTVTNlxeXrQaw=";
+    hash = "sha256-odsOYrk//ZhodsumLpJjhPDcwF1gkE/no166u+IDxSY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ne/nezha-agent/package.nix b/pkgs/by-name/ne/nezha-agent/package.nix
index 6e5216f5e466b..4f2092e5d99f3 100644
--- a/pkgs/by-name/ne/nezha-agent/package.nix
+++ b/pkgs/by-name/ne/nezha-agent/package.nix
@@ -7,13 +7,13 @@
 }:
 buildGoModule rec {
   pname = "nezha-agent";
-  version = "0.16.6";
+  version = "0.16.7";
 
   src = fetchFromGitHub {
     owner = "nezhahq";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-+78WrkFMY2dfqU3ShmzQgR1ZgEKyb9COUjlIf695OM8=";
+    hash = "sha256-SKPDNYbtN93GVOlghYS69iHORDUshN47lAZ9DDoX0jM=";
   };
 
   vendorHash = "sha256-kqu3+hO0juxI5qbczVFg0GF+pljmePFbKd59a14U7Pg=";
diff --git a/pkgs/by-name/nr/nrfconnect/package.nix b/pkgs/by-name/nr/nrfconnect/package.nix
index c3a6e0e7f3ddf..5f62d6283851e 100644
--- a/pkgs/by-name/nr/nrfconnect/package.nix
+++ b/pkgs/by-name/nr/nrfconnect/package.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "nrfconnect";
-  version = "4.3.0";
+  version = "4.4.1";
 
   src = fetchurl {
     url = "https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/desktop-software/nrf-connect-for-desktop/${lib.versions.major version}-${lib.versions.minor version}-${lib.versions.patch version}/nrfconnect-${version}-x86_64.appimage";
-    hash = "sha256-G8//dZqPxn6mR8Bjzf/bAn9Gv7t2AFWIF9twCGbqMd8=";
+    hash = "sha256-x/vVSOEajuQtLATRXk8DVLlXHegCqP+acecaOFNeBb8=";
     name = "${pname}-${version}.AppImage";
   };
 
@@ -25,7 +25,6 @@ in appimageTools.wrapType2 {
   ];
 
   extraInstallCommands = ''
-    mv $out/bin/nrfconnect-* $out/bin/nrfconnect
     install -Dm444 ${appimageContents}/nrfconnect.desktop -t $out/share/applications
     install -Dm444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/nrfconnect.png \
       -t $out/share/icons/hicolor/512x512/apps
diff --git a/pkgs/by-name/on/onagre/package.nix b/pkgs/by-name/on/onagre/package.nix
new file mode 100644
index 0000000000000..2943e8f032941
--- /dev/null
+++ b/pkgs/by-name/on/onagre/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, fetchFromGitHub
+, makeWrapper
+, rustPlatform
+, cmake
+, pkgconf
+, freetype
+, expat
+, wayland
+, xorg
+, libxkbcommon
+, pop-launcher
+, vulkan-loader
+, libGL
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "onagre";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "onagre-launcher";
+    repo = "onagre";
+    rev = "1.1.0";
+    hash = "sha256-ASeLvgj2RyhsZQtkUTYeA7jWyhbLg8yl6HbN2A/Sl2M=";
+  };
+
+  cargoHash = "sha256-17Hw3jtisOXwARpp0jB0hrNax7nzMWS0kCE3ZAruBj8=";
+
+  nativeBuildInputs = [ makeWrapper cmake pkgconf ];
+  buildInputs = [
+    expat
+    freetype
+    xorg.libX11
+    xorg.libXcursor
+    xorg.libXi
+    xorg.libXrandr
+  ];
+
+  postFixup = let
+    rpath = lib.makeLibraryPath [ libGL vulkan-loader wayland libxkbcommon ];
+  in ''
+    patchelf --set-rpath ${rpath} $out/bin/onagre
+    wrapProgram $out/bin/onagre \
+      --prefix PATH ':' ${lib.makeBinPath [
+        pop-launcher
+      ]}
+  '';
+
+  meta = with lib; {
+    description = "A general purpose application launcher for X and wayland inspired by rofi/wofi and alfred";
+    homepage = "https://github.com/onagre-launcher/onagre";
+    license = licenses.mit;
+    maintainers = [ maintainers.jfvillablanca maintainers.ilya-epifanov ];
+    platforms = platforms.linux;
+    mainProgram = "onagre";
+  };
+}
diff --git a/pkgs/by-name/op/openpgl/package.nix b/pkgs/by-name/op/openpgl/package.nix
index ed81711d8f5da..76e61b6658d6c 100644
--- a/pkgs/by-name/op/openpgl/package.nix
+++ b/pkgs/by-name/op/openpgl/package.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchFromGitHub {
     owner = "OpenPathGuidingLibrary";
-    repo = finalAttrs.pname;
+    repo = "openpgl";
     rev = "v${finalAttrs.version}";
     hash = "sha256-dbHmGGiHQkU0KPpQYpY/o0uCWdb3L5namETdOcOREgs=";
   };
@@ -31,12 +31,12 @@ stdenv.mkDerivation (finalAttrs: {
     "-DTBB_ROOT=${tbb.out}"
   ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-flax-vector-conversions";
+  env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isAarch64 && !stdenv.isDarwin) "-flax-vector-conversions";
 
   meta = {
     description = "Intel Open Path Guiding Library";
     homepage = "https://github.com/OpenPathGuidingLibrary/openpgl";
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.amarshall ];
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/by-name/pr/protonplus/package.nix b/pkgs/by-name/pr/protonplus/package.nix
index 94d6f2f65e9aa..cd715b3a36d0c 100644
--- a/pkgs/by-name/pr/protonplus/package.nix
+++ b/pkgs/by-name/pr/protonplus/package.nix
@@ -20,13 +20,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "protonplus";
-  version = "0.4.9";
+  version = "0.4.10";
 
   src = fetchFromGitHub {
     owner = "Vysp3r";
     repo = "protonplus";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-rYGUKOVQHYaUzQZaVas5zy26xv2NchcqZ7YvTmejb20=";
+    hash = "sha256-dKhGXpsBCZBNNJRAjzSvP0B/3DbS9wRdhTS4WL2NZjE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix
index 9dba1fb8eacd7..f9ad25154dad2 100644
--- a/pkgs/by-name/re/renode-dts2repl/package.nix
+++ b/pkgs/by-name/re/renode-dts2repl/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication {
   pname = "renode-dts2repl";
-  version = "0-unstable-2024-04-30";
+  version = "0-unstable-2024-05-09";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "antmicro";
     repo = "dts2repl";
-    rev = "dc2212318aec6c2aa6920795e16fab7dfcb8796e";
-    hash = "sha256-XY2rQqu2CSKRImx0GmC5ggTZTyvrtX+LvqkYj0sEBuU=";
+    rev = "b95c930c2122e227bbacee42f35933a4c2d40771";
+    hash = "sha256-Sax+ckln+R6ll/UPztESJEjO8dtq8THmi309CaFTv0I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/re/renode-unstable/package.nix b/pkgs/by-name/re/renode-unstable/package.nix
index 21f7596d0169e..147cd5aa519a5 100644
--- a/pkgs/by-name/re/renode-unstable/package.nix
+++ b/pkgs/by-name/re/renode-unstable/package.nix
@@ -5,11 +5,11 @@
 
 renode.overrideAttrs (finalAttrs: _: {
   pname = "renode-unstable";
-  version = "1.15.0+20240502gita79411a5d";
+  version = "1.15.0+20240509git8750f2500";
 
   src = fetchurl {
     url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz";
-    hash = "sha256-JgmoVTFq5z/4YFnmqn/nct7M50JOevQHWfMsaVtBybo=";
+    hash = "sha256-bvPY+VPKCHG0/QHBsM7frU0+9sSMHV0ImISChHfWiAE=";
   };
 
   passthru.updateScript =
diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/by-name/re/renpy/package.nix
index 45a3630f7c576..d31ad9ced8641 100644
--- a/pkgs/development/interpreters/renpy/default.nix
+++ b/pkgs/by-name/re/renpy/package.nix
@@ -1,6 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, python3, pkg-config, SDL2
-, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib
-, makeWrapper
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  python3,
+  pkg-config,
+  SDL2,
+  libpng,
+  ffmpeg,
+  freetype,
+  glew,
+  libGL,
+  libGLU,
+  fribidi,
+  zlib,
+  harfbuzz,
+  makeWrapper,
 }:
 
 let
@@ -8,42 +22,71 @@ let
   # base_version is of the form major.minor.patch
   # vc_version is of the form YYMMDDCC
   # version corresponds to the tag on GitHub
-  base_version = "8.1.3";
-  vc_version = "23091805";
-in stdenv.mkDerivation rec {
-  pname = "renpy";
-
+  base_version = "8.2.1";
+  vc_version = "24030407";
   version = "${base_version}.${vc_version}";
+in
+stdenv.mkDerivation {
+  pname = "renpy";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "renpy";
     repo = "renpy";
     rev = version;
-    sha256 = "sha256-bYqnKSWY8EEGr1+12cWeT9/ZSv5OrKLsRqCnnIruDQw=";
+    hash = "sha256-07Hj8mJGR0+Pn1DQ+sK5YQ3x3CTMsZ5h5yEoz44b2TM=";
   };
 
   nativeBuildInputs = [
     pkg-config
     makeWrapper
-    python3.pkgs.cython
+    # Ren'Py currently does not compile on Cython 3.x.
+    # See https://github.com/renpy/renpy/issues/5359
+    python3.pkgs.cython_0
     python3.pkgs.setuptools
   ];
 
-  buildInputs = [
-    SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib
-  ] ++ (with python3.pkgs; [
-    python pygame-sdl2 tkinter future six pefile requests ecdsa
-  ]);
-
-  RENPY_DEPS_INSTALL = lib.concatStringsSep "::" (map (path: path) [
-    SDL2 SDL2.dev libpng ffmpeg.lib freetype glew.dev libGLU libGL fribidi zlib
-  ]);
+  buildInputs =
+    [
+      SDL2
+      libpng
+      ffmpeg
+      freetype
+      glew
+      libGLU
+      libGL
+      fribidi
+      zlib
+      harfbuzz
+    ]
+    ++ (with python3.pkgs; [
+      python
+      pygame-sdl2
+      tkinter
+      future
+      six
+      pefile
+      requests
+      ecdsa
+    ]);
+
+  RENPY_DEPS_INSTALL = lib.concatStringsSep "::" [
+    SDL2
+    SDL2.dev
+    libpng
+    ffmpeg.lib
+    freetype
+    glew.dev
+    libGLU
+    libGL
+    fribidi
+    zlib
+    harfbuzz.dev
+  ];
 
   enableParallelBuilding = true;
 
-  patches = [
-    ./shutup-erofs-errors.patch
-  ];
+  patches = [ ./shutup-erofs-errors.patch ];
 
   postPatch = ''
     cp tutorial/game/tutorial_director.rpy{m,}
@@ -53,7 +96,7 @@ in stdenv.mkDerivation rec {
     official = False
     nightly = False
     # Look at https://renpy.org/latest.html for what to put.
-    version_name = 'Where No One Has Gone Before'
+    version_name = '64bit Sensation'
     EOF
   '';
 
@@ -79,15 +122,17 @@ in stdenv.mkDerivation rec {
 
   env.NIX_CFLAGS_COMPILE = with python3.pkgs; "-I${pygame-sdl2}/include/${python.libPrefix}";
 
-  meta = with lib; {
+  meta = {
     description = "Visual Novel Engine";
     mainProgram = "renpy";
     homepage = "https://renpy.org/";
     changelog = "https://renpy.org/doc/html/changelog.html";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ shadowrz ];
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ shadowrz ];
   };
 
-  passthru = { inherit base_version vc_version; };
+  passthru = {
+    inherit base_version vc_version;
+  };
 }
diff --git a/pkgs/development/interpreters/renpy/shutup-erofs-errors.patch b/pkgs/by-name/re/renpy/shutup-erofs-errors.patch
index 9889c9f8ef858..9889c9f8ef858 100644
--- a/pkgs/development/interpreters/renpy/shutup-erofs-errors.patch
+++ b/pkgs/by-name/re/renpy/shutup-erofs-errors.patch
diff --git a/pkgs/by-name/re/retrospy/package.nix b/pkgs/by-name/re/retrospy/package.nix
index 4333a68d06039..07ba2d35da367 100644
--- a/pkgs/by-name/re/retrospy/package.nix
+++ b/pkgs/by-name/re/retrospy/package.nix
@@ -9,27 +9,35 @@
 , libXcursor
 , libICE
 , libSM
+, runCommandLocal
 }:
 let
   version = "6.4.8";
 
+  src = fetchFromGitHub {
+    owner = "retrospy";
+    repo = "RetroSpy";
+    rev = "v${version}";
+    hash = "sha256-0rdLdud78gnBX8CIdG81caJ1IRoIjGzb7coP4huEPDA=";
+  };
+
   executables = [
     "RetroSpy"
     "GBPemu"
     "GBPUpdater"
     "UsbUpdater"
   ];
+
+  retrospy-icons = runCommandLocal "retrospy-icons" { } ''
+    mkdir -p $out/share/retrospy
+    ${builtins.concatStringsSep "\n" (map (e: "cp ${src}/${e}.ico $out/share/retrospy/${e}.ico") executables)}
+  '';
 in
 buildDotnetModule {
   pname = "retrospy";
   inherit version;
 
-  src = fetchFromGitHub {
-    owner = "retrospy";
-    repo = "RetroSpy";
-    rev = "v${version}";
-    hash = "sha256-0rdLdud78gnBX8CIdG81caJ1IRoIjGzb7coP4huEPDA=";
-  };
+  inherit src;
 
   nativeBuildInputs = [
     copyDesktopItems
@@ -57,18 +65,13 @@ buildDotnetModule {
 
   inherit executables;
 
-  postInstall = ''
-    mkdir -p $out/share/retrospy
-    ${builtins.concatStringsSep "\n" (map (e: "cp ./${e}.ico $out/share/retrospy/${e}.ico") executables)}
-  '';
-
   passthru.updateScript = ./update.sh;
 
   desktopItems = map
     (e: (makeDesktopItem {
       name = e;
       exec = e;
-      icon = "${placeholder "out"}/share/retrospy/${e}.ico";
+      icon = "${retrospy-icons}/share/retrospy/${e}.ico";
       desktopName = "${e}";
       categories = [ "Utility" ];
       startupWMClass = e;
diff --git a/pkgs/by-name/rh/rHttp/package.nix b/pkgs/by-name/rh/rHttp/package.nix
new file mode 100644
index 0000000000000..bd28007dc3611
--- /dev/null
+++ b/pkgs/by-name/rh/rHttp/package.nix
@@ -0,0 +1,27 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  ...
+}:
+buildGoModule {
+  pname = "rHttp";
+  version = "unstable-2024-04-28";
+
+  src = fetchFromGitHub {
+    owner = "1buran";
+    repo = "rHttp";
+    rev = "9b7da3a0f7c2e35c9d326e7920ded15f806f8113";
+    sha256 = "1nz3f6zgpbxlwn6c5rqxa8897ygi5r7h7f6624i27rq9kr729cra";
+  };
+
+  vendorHash = "sha256-NR1q44IUSME+x1EOcnXXRoIXw8Av0uH7iXhD+cdd99I=";
+
+  meta = with lib; {
+    description = "Go REPL for HTTP";
+    homepage = "https://github.com/1buran/rHttp";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ luftmensch-luftmensch ];
+    mainProgram = "rhttp";
+  };
+}
diff --git a/pkgs/by-name/sa/sarasa-gothic/package.nix b/pkgs/by-name/sa/sarasa-gothic/package.nix
index 68c5d35cd0fa0..9c77d1070ee66 100644
--- a/pkgs/by-name/sa/sarasa-gothic/package.nix
+++ b/pkgs/by-name/sa/sarasa-gothic/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sarasa-gothic";
-  version = "1.0.11";
+  version = "1.0.12";
 
   src = fetchurl {
     # Use the 'ttc' files here for a smaller closure size.
     # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
     url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
-    hash = "sha256-bBBXW/06lfhiS44JF9i/x4clfnvh2nitOyAgOPoHI0A=";
+    hash = "sha256-icZT/CEvCCbDTklcca3LjtX7wnvx35wg4RyK1jHDmwk=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/by-name/sm/smartgithg/package.nix b/pkgs/by-name/sm/smartgithg/package.nix
index 57625a97b14a6..65c5a78ad299e 100644
--- a/pkgs/by-name/sm/smartgithg/package.nix
+++ b/pkgs/by-name/sm/smartgithg/package.nix
@@ -15,11 +15,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "smartgithg";
-  version = "23.1.2";
+  version = "23.1.3";
 
   src = fetchurl {
     url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.gz";
-    hash = "sha256-gXfHmRPUhs8s7IQIhN0vQyx8NpLrS28ufNNYOMA4AXw=";
+    hash = "sha256-UvdHr1L5MYwl7eT1BVS/M8Ydtw8VjDG+QuqMW0Q5La4=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook3 ];
diff --git a/pkgs/by-name/sp/spicetify-cli/package.nix b/pkgs/by-name/sp/spicetify-cli/package.nix
index 13d1b8aceedbc..22489b3b7c9c3 100644
--- a/pkgs/by-name/sp/spicetify-cli/package.nix
+++ b/pkgs/by-name/sp/spicetify-cli/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "2.36.10";
+  version = "2.36.11";
 
   src = fetchFromGitHub {
     owner = "spicetify";
     repo = "spicetify-cli";
     rev = "v${version}";
-    hash = "sha256-lwbd5sXqzC3H2GwmVqxAdt6Qcic00wh39l5Kp1UIYAs=";
+    hash = "sha256-ZqWGKuYDxuKVqz6cNxZ3cTcKTxkxuu42b48hlAialKc=";
   };
 
   vendorHash = "sha256-UPrLXzAdvCOmLm1tekzKyulQ4+2BSyPUF1k66GwKS88=";
diff --git a/pkgs/by-name/ss/sse2neon/package.nix b/pkgs/by-name/ss/sse2neon/package.nix
new file mode 100644
index 0000000000000..f7ef8cca15631
--- /dev/null
+++ b/pkgs/by-name/ss/sse2neon/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  fetchFromGitHub,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "sse2neon";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "DLTcollab";
+    repo = "sse2neon";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-riFFGIA0H7e5StYSjO0/JDrduzfwS+lOASzk5BRUyo4=";
+  };
+
+  postPatch = ''
+    # remove warning about gcc < 10
+    substituteInPlace sse2neon.h --replace-fail "#warning \"GCC versions" "// "
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+
+  dontInstall = true;
+  # use postBuild instead of installPhase, because the build
+  # in itself doesn't produce any ($out) output
+  postBuild = ''
+    mkdir -p $out/lib
+    install -m444 sse2neon.h $out/lib/
+  '';
+
+  meta = {
+    description = "Mono library that provides a GDI+-compatible API on non-Windows operating systems";
+    homepage = "https://www.mono-project.com/docs/gui/libgdiplus/";
+    platforms = lib.platforms.unix;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.gador ];
+  };
+})
diff --git a/pkgs/by-name/sw/switch-to-configuration-ng/.gitignore b/pkgs/by-name/sw/switch-to-configuration-ng/.gitignore
new file mode 100644
index 0000000000000..ea8c4bf7f35f6
--- /dev/null
+++ b/pkgs/by-name/sw/switch-to-configuration-ng/.gitignore
@@ -0,0 +1 @@
+/target
diff --git a/pkgs/by-name/sw/switch-to-configuration-ng/Cargo.lock b/pkgs/by-name/sw/switch-to-configuration-ng/Cargo.lock
new file mode 100644
index 0000000000000..d66a2c6e75278
--- /dev/null
+++ b/pkgs/by-name/sw/switch-to-configuration-ng/Cargo.lock
@@ -0,0 +1,527 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "const-random"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
+dependencies = [
+ "const-random-macro",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "dbus"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b"
+dependencies = [
+ "libc",
+ "libdbus-sys",
+ "winapi",
+]
+
+[[package]]
+name = "dbus-codegen"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcd91775d91fc83c7d526aa7c08078bac0b30f382706689901ac819fe6ddc812"
+dependencies = [
+ "clap",
+ "dbus",
+ "xml-rs",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "dlv-list"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
+
+[[package]]
+name = "error-chain"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hostname"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+dependencies = [
+ "libc",
+ "match_cfg",
+ "winapi",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "libc"
+version = "0.2.154"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+
+[[package]]
+name = "libdbus-sys"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72"
+dependencies = [
+ "pkg-config",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "match_cfg"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "ordered-multimap"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
+dependencies = [
+ "dlv-list",
+ "hashbrown",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rust-ini"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d625ed57d8f49af6cfa514c42e1a71fadcff60eb0b1c517ff82fe41aa025b41"
+dependencies = [
+ "cfg-if",
+ "ordered-multimap",
+ "trim-in-place",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.200"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.200"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "switch-to-configuration"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "dbus",
+ "dbus-codegen",
+ "glob",
+ "log",
+ "nix",
+ "regex",
+ "rust-ini",
+ "syslog",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syslog"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc7e95b5b795122fafe6519e27629b5ab4232c73ebb2428f568e82b1a457ad3"
+dependencies = [
+ "error-chain",
+ "hostname",
+ "libc",
+ "log",
+ "time",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "time"
+version = "0.3.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+dependencies = [
+ "deranged",
+ "itoa",
+ "libc",
+ "num-conv",
+ "num_threads",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "trim-in-place"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[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.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[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-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "xml-rs"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
diff --git a/pkgs/by-name/sw/switch-to-configuration-ng/Cargo.toml b/pkgs/by-name/sw/switch-to-configuration-ng/Cargo.toml
new file mode 100644
index 0000000000000..51d805dcd959d
--- /dev/null
+++ b/pkgs/by-name/sw/switch-to-configuration-ng/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+name = "switch-to-configuration"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+anyhow = "1.0.82"
+dbus = "0.9.7"
+glob = "0.3.1"
+log = "0.4.21"
+nix = { version = "0.28.0", features = ["fs", "signal"] }
+regex = "1.10.4"
+rust-ini = "0.21.0"
+syslog = "6.1.1"
+
+[build-dependencies]
+dbus-codegen = "0.11.0"
diff --git a/pkgs/by-name/sw/switch-to-configuration-ng/build.rs b/pkgs/by-name/sw/switch-to-configuration-ng/build.rs
new file mode 100644
index 0000000000000..41fed3086e690
--- /dev/null
+++ b/pkgs/by-name/sw/switch-to-configuration-ng/build.rs
@@ -0,0 +1,30 @@
+use std::io::Write;
+
+fn code_for_dbus_xml(xml: impl AsRef<std::path::Path>) -> String {
+    dbus_codegen::generate(
+        &std::fs::read_to_string(xml).unwrap(),
+        &dbus_codegen::GenOpts {
+            methodtype: None,
+            connectiontype: dbus_codegen::ConnectionType::Blocking,
+            ..Default::default()
+        },
+    )
+    .unwrap()
+}
+
+fn main() {
+    let systemd_dbus_interface_dir = std::env::var("SYSTEMD_DBUS_INTERFACE_DIR").unwrap();
+    let systemd_dbus_interface_dir = std::path::Path::new(systemd_dbus_interface_dir.as_str());
+
+    let out_path = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap());
+
+    let systemd_manager_code =
+        code_for_dbus_xml(systemd_dbus_interface_dir.join("org.freedesktop.systemd1.Manager.xml"));
+    let mut file = std::fs::File::create(out_path.join("systemd_manager.rs")).unwrap();
+    file.write_all(systemd_manager_code.as_bytes()).unwrap();
+
+    let logind_manager_code =
+        code_for_dbus_xml(systemd_dbus_interface_dir.join("org.freedesktop.login1.Manager.xml"));
+    let mut file = std::fs::File::create(out_path.join("logind_manager.rs")).unwrap();
+    file.write_all(logind_manager_code.as_bytes()).unwrap();
+}
diff --git a/pkgs/by-name/sw/switch-to-configuration-ng/package.nix b/pkgs/by-name/sw/switch-to-configuration-ng/package.nix
new file mode 100644
index 0000000000000..aa748a0c2b3d5
--- /dev/null
+++ b/pkgs/by-name/sw/switch-to-configuration-ng/package.nix
@@ -0,0 +1,36 @@
+{
+  buildPackages,
+  dbus,
+  lib,
+  pkg-config,
+  rustPlatform,
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "switch-to-configuration";
+  version = "0.1.0";
+
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./Cargo.lock
+      ./Cargo.toml
+      ./build.rs
+      ./src
+    ];
+  };
+
+  cargoLock.lockFile = ./Cargo.lock;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dbus ];
+
+  env.SYSTEMD_DBUS_INTERFACE_DIR = "${buildPackages.systemd}/share/dbus-1/interfaces";
+
+  meta = {
+    description = "NixOS switch-to-configuration program";
+    mainProgram = "switch-to-configuration";
+    maintainers = with lib.maintainers; [ jmbaur ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs b/pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs
new file mode 100644
index 0000000000000..e050e74d79eaf
--- /dev/null
+++ b/pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs
@@ -0,0 +1,2077 @@
+use std::{
+    cell::RefCell,
+    collections::HashMap,
+    io::{BufRead, Write},
+    os::unix::{fs::PermissionsExt, process::CommandExt},
+    path::{Path, PathBuf},
+    rc::Rc,
+    str::FromStr,
+    sync::OnceLock,
+    time::Duration,
+};
+
+use anyhow::{anyhow, bail, Context, Result};
+use dbus::{
+    blocking::{stdintf::org_freedesktop_dbus::Properties, LocalConnection, Proxy},
+    Message,
+};
+use glob::glob;
+use ini::Ini;
+use log::LevelFilter;
+use nix::{
+    fcntl::{Flock, FlockArg, OFlag},
+    sys::{
+        signal::{self, SigHandler, Signal},
+        stat::Mode,
+    },
+};
+use regex::Regex;
+use syslog::Facility;
+
+mod systemd_manager {
+    #![allow(non_upper_case_globals)]
+    #![allow(non_camel_case_types)]
+    #![allow(non_snake_case)]
+    #![allow(unused)]
+    include!(concat!(env!("OUT_DIR"), "/systemd_manager.rs"));
+}
+
+mod logind_manager {
+    #![allow(non_upper_case_globals)]
+    #![allow(non_camel_case_types)]
+    #![allow(non_snake_case)]
+    #![allow(unused)]
+    include!(concat!(env!("OUT_DIR"), "/logind_manager.rs"));
+}
+
+use crate::systemd_manager::OrgFreedesktopSystemd1Manager;
+use crate::{
+    logind_manager::OrgFreedesktopLogin1Manager,
+    systemd_manager::{
+        OrgFreedesktopSystemd1ManagerJobRemoved, OrgFreedesktopSystemd1ManagerReloading,
+    },
+};
+
+type UnitInfo = HashMap<String, HashMap<String, Vec<String>>>;
+
+const SYSINIT_REACTIVATION_TARGET: &str = "sysinit-reactivation.target";
+
+// To be robust against interruption, record what units need to be started etc. We read these files
+// again every time this program starts to make sure we continue where the old (interrupted) script
+// left off.
+const START_LIST_FILE: &str = "/run/nixos/start-list";
+const RESTART_LIST_FILE: &str = "/run/nixos/restart-list";
+const RELOAD_LIST_FILE: &str = "/run/nixos/reload-list";
+
+// Parse restart/reload requests by the activation script. Activation scripts may write
+// newline-separated units to the restart file and switch-to-configuration will handle them. While
+// `stopIfChanged = true` is ignored, switch-to-configuration will handle `restartIfChanged =
+// false` and `reloadIfChanged = true`. This is the same as specifying a restart trigger in the
+// NixOS module.
+//
+// The reload file asks this program to reload a unit. This is the same as specifying a reload
+// trigger in the NixOS module and can be ignored if the unit is restarted in this activation.
+const RESTART_BY_ACTIVATION_LIST_FILE: &str = "/run/nixos/activation-restart-list";
+const RELOAD_BY_ACTIVATION_LIST_FILE: &str = "/run/nixos/activation-reload-list";
+const DRY_RESTART_BY_ACTIVATION_LIST_FILE: &str = "/run/nixos/dry-activation-restart-list";
+const DRY_RELOAD_BY_ACTIVATION_LIST_FILE: &str = "/run/nixos/dry-activation-reload-list";
+
+#[derive(Debug, Clone, PartialEq)]
+enum Action {
+    Switch,
+    Boot,
+    Test,
+    DryActivate,
+}
+
+impl std::str::FromStr for Action {
+    type Err = anyhow::Error;
+
+    fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
+        Ok(match s {
+            "switch" => Self::Switch,
+            "boot" => Self::Boot,
+            "test" => Self::Test,
+            "dry-activate" => Self::DryActivate,
+            _ => bail!("invalid action {s}"),
+        })
+    }
+}
+
+impl Into<&'static str> for &Action {
+    fn into(self) -> &'static str {
+        match self {
+            Action::Switch => "switch",
+            Action::Boot => "boot",
+            Action::Test => "test",
+            Action::DryActivate => "dry-activate",
+        }
+    }
+}
+
+// Allow for this switch-to-configuration to remain consistent with the perl implementation.
+// Perl's "die" uses errno to set the exit code: https://perldoc.perl.org/perlvar#%24%21
+fn die() -> ! {
+    std::process::exit(std::io::Error::last_os_error().raw_os_error().unwrap_or(1));
+}
+
+fn parse_os_release() -> Result<HashMap<String, String>> {
+    Ok(std::fs::read_to_string("/etc/os-release")
+        .context("Failed to read /etc/os-release")?
+        .lines()
+        .into_iter()
+        .fold(HashMap::new(), |mut acc, line| {
+            if let Some((k, v)) = line.split_once('=') {
+                acc.insert(k.to_string(), v.to_string());
+            }
+
+            acc
+        }))
+}
+
+fn do_install_bootloader(command: &str, toplevel: &Path) -> Result<()> {
+    let mut cmd_split = command.split_whitespace();
+    let Some(argv0) = cmd_split.next() else {
+        bail!("missing first argument in install bootloader commands");
+    };
+
+    match std::process::Command::new(argv0)
+        .args(cmd_split.collect::<Vec<&str>>())
+        .arg(toplevel)
+        .spawn()
+        .map(|mut child| child.wait())
+    {
+        Ok(Ok(status)) if status.success() => {}
+        _ => {
+            eprintln!("Failed to install bootloader");
+            die();
+        }
+    }
+
+    Ok(())
+}
+
+extern "C" fn handle_sigpipe(_signal: nix::libc::c_int) {}
+
+fn required_env(var: &str) -> anyhow::Result<String> {
+    std::env::var(var).with_context(|| format!("missing required environment variable ${var}"))
+}
+
+#[derive(Debug)]
+struct UnitState {
+    state: String,
+    substate: String,
+}
+
+// Asks the currently running systemd instance via dbus which units are active. Returns a hash
+// where the key is the name of each unit and the value a hash of load, state, substate.
+fn get_active_units<'a>(
+    systemd_manager: &Proxy<'a, &LocalConnection>,
+) -> Result<HashMap<String, UnitState>> {
+    let units = systemd_manager
+        .list_units_by_patterns(Vec::new(), Vec::new())
+        .context("Failed to list systemd units")?;
+
+    Ok(units
+        .into_iter()
+        .filter_map(
+            |(
+                id,
+                _description,
+                _load_state,
+                active_state,
+                sub_state,
+                following,
+                _unit_path,
+                _job_id,
+                _job_type,
+                _job_path,
+            )| {
+                if following == "" && active_state != "inactive" {
+                    Some((id, active_state, sub_state))
+                } else {
+                    None
+                }
+            },
+        )
+        .fold(HashMap::new(), |mut acc, (id, active_state, sub_state)| {
+            acc.insert(
+                id,
+                UnitState {
+                    state: active_state,
+                    substate: sub_state,
+                },
+            );
+
+            acc
+        }))
+}
+
+// This function takes a single ini file that specified systemd configuration like unit
+// configuration and parses it into a HashMap where the keys are the sections of the unit file and
+// the values are HashMaps themselves. These HashMaps have the unit file keys as their keys (left
+// side of =) and an array of all values that were set as their values. If a value is empty (for
+// example `ExecStart=`), then all current definitions are removed.
+//
+// Instead of returning the HashMap, this function takes a mutable reference to a HashMap to return
+// the data in. This allows calling the function multiple times with the same Hashmap to parse
+// override files.
+fn parse_systemd_ini(data: &mut UnitInfo, unit_file: &Path) -> Result<()> {
+    let ini = Ini::load_from_file(unit_file)
+        .with_context(|| format!("Failed to load unit file {}", unit_file.display()))?;
+
+    // Copy over all sections
+    for (section, properties) in ini.iter() {
+        let Some(section) = section else {
+            continue;
+        };
+
+        if section == "Install" {
+            // Skip the [Install] section because it has no relevant keys for us
+            continue;
+        }
+
+        let section_map = if let Some(section_map) = data.get_mut(section) {
+            section_map
+        } else {
+            data.insert(section.to_string(), HashMap::new());
+            data.get_mut(section)
+                .ok_or(anyhow!("section name should exist in hashmap"))?
+        };
+
+        for (ini_key, _) in properties {
+            let values = properties.get_all(ini_key);
+            let values = values
+                .into_iter()
+                .map(String::from)
+                .collect::<Vec<String>>();
+
+            // Go over all values
+            let mut new_vals = Vec::new();
+            let mut clear_existing = false;
+
+            for val in values {
+                // If a value is empty, it's an override that tells us to clean the value
+                if val.is_empty() {
+                    new_vals.clear();
+                    clear_existing = true;
+                } else {
+                    new_vals.push(val);
+                }
+            }
+
+            match (section_map.get_mut(ini_key), clear_existing) {
+                (Some(existing_vals), false) => existing_vals.extend(new_vals),
+                _ => _ = section_map.insert(ini_key.to_string(), new_vals),
+            };
+        }
+    }
+
+    Ok(())
+}
+
+// This function takes the path to a systemd configuration file (like a unit configuration) and
+// parses it into a UnitInfo structure.
+//
+// If a directory with the same basename ending in .d exists next to the unit file, it will be
+// assumed to contain override files which will be parsed as well and handled properly.
+fn parse_unit(unit_file: &Path, base_unit_file: &Path) -> Result<UnitInfo> {
+    // Parse the main unit and all overrides
+    let mut unit_data = HashMap::new();
+
+    parse_systemd_ini(&mut unit_data, base_unit_file)?;
+
+    for entry in
+        glob(&format!("{}.d/*.conf", base_unit_file.display())).context("Invalid glob pattern")?
+    {
+        let Ok(entry) = entry else {
+            continue;
+        };
+
+        parse_systemd_ini(&mut unit_data, &entry)?;
+    }
+
+    // Handle drop-in template-unit instance overrides
+    if unit_file != base_unit_file {
+        for entry in
+            glob(&format!("{}.d/*.conf", unit_file.display())).context("Invalid glob pattern")?
+        {
+            let Ok(entry) = entry else {
+                continue;
+            };
+
+            parse_systemd_ini(&mut unit_data, &entry)?;
+        }
+    }
+
+    Ok(unit_data)
+}
+
+// Checks whether a specified boolean in a systemd unit is true or false, with a default that is
+// applied when the value is not set.
+fn parse_systemd_bool(
+    unit_data: Option<&UnitInfo>,
+    section_name: &str,
+    bool_name: &str,
+    default: bool,
+) -> bool {
+    if let Some(Some(Some(Some(b)))) = unit_data.map(|data| {
+        data.get(section_name).map(|section| {
+            section.get(bool_name).map(|vals| {
+                vals.last()
+                    .map(|last| matches!(last.as_str(), "1" | "yes" | "true" | "on"))
+            })
+        })
+    }) {
+        b
+    } else {
+        default
+    }
+}
+
+#[derive(Debug, PartialEq)]
+enum UnitComparison {
+    Equal,
+    UnequalNeedsRestart,
+    UnequalNeedsReload,
+}
+
+// Compare the contents of two unit files and return whether the unit needs to be restarted or
+// reloaded. If the units differ, the service is restarted unless the only difference is
+// `X-Reload-Triggers` in the `Unit` section. If this is the only modification, the unit is
+// reloaded instead of restarted. If the only difference is `Options` in the `[Mount]` section, the
+// unit is reloaded rather than restarted.
+fn compare_units(current_unit: &UnitInfo, new_unit: &UnitInfo) -> UnitComparison {
+    let mut ret = UnitComparison::Equal;
+
+    let unit_section_ignores = HashMap::from(
+        [
+            "X-Reload-Triggers",
+            "Description",
+            "Documentation",
+            "OnFailure",
+            "OnSuccess",
+            "OnFailureJobMode",
+            "IgnoreOnIsolate",
+            "StopWhenUnneeded",
+            "RefuseManualStart",
+            "RefuseManualStop",
+            "AllowIsolate",
+            "CollectMode",
+            "SourcePath",
+        ]
+        .map(|name| (name, ())),
+    );
+
+    let mut section_cmp = new_unit.keys().fold(HashMap::new(), |mut acc, key| {
+        acc.insert(key.as_str(), ());
+        acc
+    });
+
+    // Iterate over the sections
+    for (section_name, section_val) in current_unit {
+        // Missing section in the new unit?
+        if !section_cmp.contains_key(section_name.as_str()) {
+            // If the [Unit] section was removed, make sure that only keys were in it that are
+            // ignored
+            if section_name == "Unit" {
+                for (ini_key, _ini_val) in section_val {
+                    if !unit_section_ignores.contains_key(ini_key.as_str()) {
+                        return UnitComparison::UnequalNeedsRestart;
+                    }
+                }
+                continue; // check the next section
+            } else {
+                return UnitComparison::UnequalNeedsRestart;
+            }
+        }
+
+        section_cmp.remove(section_name.as_str());
+
+        // Comparison hash for the section contents
+        let mut ini_cmp = new_unit
+            .get(section_name)
+            .map(|section_val| {
+                section_val.keys().fold(HashMap::new(), |mut acc, ini_key| {
+                    acc.insert(ini_key.as_str(), ());
+                    acc
+                })
+            })
+            .unwrap_or_default();
+
+        // Iterate over the keys of the section
+        for (ini_key, current_value) in section_val {
+            ini_cmp.remove(ini_key.as_str());
+            let Some(Some(new_value)) = new_unit
+                .get(section_name)
+                .map(|section| section.get(ini_key))
+            else {
+                // If the key is missing in the new unit, they are different unless the key that is
+                // now missing is one of the ignored keys
+                if section_name == "Unit" && unit_section_ignores.contains_key(ini_key.as_str()) {
+                    continue;
+                }
+                return UnitComparison::UnequalNeedsRestart;
+            };
+
+            // If the contents are different, the units are different
+            if current_value != new_value {
+                if section_name == "Unit" {
+                    if ini_key == "X-Reload-Triggers" {
+                        ret = UnitComparison::UnequalNeedsReload;
+                        continue;
+                    } else if unit_section_ignores.contains_key(ini_key.as_str()) {
+                        continue;
+                    }
+                }
+
+                // If this is a mount unit, check if it was only `Options`
+                if section_name == "Mount" && ini_key == "Options" {
+                    ret = UnitComparison::UnequalNeedsReload;
+                    continue;
+                }
+
+                return UnitComparison::UnequalNeedsRestart;
+            }
+        }
+
+        // A key was introduced that was missing in the previous unit
+        if !ini_cmp.is_empty() {
+            if section_name == "Unit" {
+                for (ini_key, _) in ini_cmp {
+                    if ini_key == "X-Reload-Triggers" {
+                        ret = UnitComparison::UnequalNeedsReload;
+                    } else if unit_section_ignores.contains_key(ini_key) {
+                        continue;
+                    } else {
+                        return UnitComparison::UnequalNeedsRestart;
+                    }
+                }
+            } else {
+                return UnitComparison::UnequalNeedsRestart;
+            }
+        }
+    }
+
+    // A section was introduced that was missing in the previous unit
+    if !section_cmp.is_empty() {
+        if section_cmp.keys().len() == 1 && section_cmp.contains_key("Unit") {
+            if let Some(new_unit_unit) = new_unit.get("Unit") {
+                for (ini_key, _) in new_unit_unit {
+                    if !unit_section_ignores.contains_key(ini_key.as_str()) {
+                        return UnitComparison::UnequalNeedsRestart;
+                    } else if ini_key == "X-Reload-Triggers" {
+                        ret = UnitComparison::UnequalNeedsReload;
+                    }
+                }
+            }
+        } else {
+            return UnitComparison::UnequalNeedsRestart;
+        }
+    }
+
+    ret
+}
+
+// Called when a unit exists in both the old systemd and the new system and the units differ. This
+// figures out of what units are to be stopped, restarted, reloaded, started, and skipped.
+fn handle_modified_unit(
+    toplevel: &Path,
+    unit: &str,
+    base_name: &str,
+    new_unit_file: &Path,
+    new_base_unit_file: &Path,
+    new_unit_info: Option<&UnitInfo>,
+    active_cur: &HashMap<String, UnitState>,
+    units_to_stop: &mut HashMap<String, ()>,
+    units_to_start: &mut HashMap<String, ()>,
+    units_to_reload: &mut HashMap<String, ()>,
+    units_to_restart: &mut HashMap<String, ()>,
+    units_to_skip: &mut HashMap<String, ()>,
+) -> Result<()> {
+    let use_restart_as_stop_and_start = new_unit_info.is_none();
+
+    if matches!(
+        unit,
+        "sysinit.target" | "basic.target" | "multi-user.target" | "graphical.target"
+    ) || unit.ends_with(".unit")
+        || unit.ends_with(".slice")
+    {
+        // Do nothing.  These cannot be restarted directly.
+
+        // Slices and Paths don't have to be restarted since properties (resource limits and
+        // inotify watches) seem to get applied on daemon-reload.
+    } else if unit.ends_with(".mount") {
+        // Just restart the unit. We wouldn't have gotten into this subroutine if only `Options`
+        // was changed, in which case the unit would be reloaded. The only exception is / and /nix
+        // because it's very unlikely we can safely unmount them so we reload them instead. This
+        // means that we may not get all changes into the running system but it's better than
+        // crashing it.
+        if unit == "-.mount" || unit == "nix.mount" {
+            units_to_reload.insert(unit.to_string(), ());
+            record_unit(RELOAD_LIST_FILE, unit);
+        } else {
+            units_to_restart.insert(unit.to_string(), ());
+            record_unit(RESTART_LIST_FILE, unit);
+        }
+    } else if unit.ends_with(".socket") {
+        // FIXME: do something?
+        // Attempt to fix this: https://github.com/NixOS/nixpkgs/pull/141192
+        // Revert of the attempt: https://github.com/NixOS/nixpkgs/pull/147609
+        // More details: https://github.com/NixOS/nixpkgs/issues/74899#issuecomment-981142430
+    } else {
+        let fallback = parse_unit(new_unit_file, new_base_unit_file)?;
+        let new_unit_info = if new_unit_info.is_some() {
+            new_unit_info
+        } else {
+            Some(&fallback)
+        };
+
+        if parse_systemd_bool(new_unit_info, "Service", "X-ReloadIfChanged", false)
+            && !units_to_restart.contains_key(unit)
+            && !(if use_restart_as_stop_and_start {
+                units_to_restart.contains_key(unit)
+            } else {
+                units_to_stop.contains_key(unit)
+            })
+        {
+            units_to_reload.insert(unit.to_string(), ());
+            record_unit(RELOAD_LIST_FILE, unit);
+        } else if !parse_systemd_bool(new_unit_info, "Service", "X-RestartIfChanged", true)
+            || parse_systemd_bool(new_unit_info, "Unit", "RefuseManualStop", false)
+            || parse_systemd_bool(new_unit_info, "Unit", "X-OnlyManualStart", false)
+        {
+            units_to_skip.insert(unit.to_string(), ());
+        } else {
+            // It doesn't make sense to stop and start non-services because they can't have
+            // ExecStop=
+            if !parse_systemd_bool(new_unit_info, "Service", "X-StopIfChanged", true)
+                || !unit.ends_with(".service")
+            {
+                // This unit should be restarted instead of stopped and started.
+                units_to_restart.insert(unit.to_string(), ());
+                record_unit(RESTART_LIST_FILE, unit);
+                // Remove from units to reload so we don't restart and reload
+                if units_to_reload.contains_key(unit) {
+                    units_to_reload.remove(unit);
+                    unrecord_unit(RELOAD_LIST_FILE, unit);
+                }
+            } else {
+                // If this unit is socket-activated, then stop the socket unit(s) as well, and
+                // restart the socket(s) instead of the service.
+                let mut socket_activated = false;
+                if unit.ends_with(".service") {
+                    let mut sockets = if let Some(Some(Some(sockets))) = new_unit_info.map(|info| {
+                        info.get("Service")
+                            .map(|service_section| service_section.get("Sockets"))
+                    }) {
+                        sockets
+                            .join(" ")
+                            .split_whitespace()
+                            .into_iter()
+                            .map(String::from)
+                            .collect()
+                    } else {
+                        Vec::new()
+                    };
+
+                    if sockets.is_empty() {
+                        sockets.push(format!("{}.socket", base_name));
+                    }
+
+                    for socket in &sockets {
+                        if active_cur.contains_key(socket) {
+                            // We can now be sure this is a socket-activated unit
+
+                            if use_restart_as_stop_and_start {
+                                units_to_restart.insert(socket.to_string(), ());
+                            } else {
+                                units_to_stop.insert(socket.to_string(), ());
+                            }
+
+                            // Only restart sockets that actually exist in new configuration:
+                            if toplevel.join("etc/systemd/system").join(socket).exists() {
+                                if use_restart_as_stop_and_start {
+                                    units_to_restart.insert(socket.to_string(), ());
+                                    record_unit(RESTART_LIST_FILE, socket);
+                                } else {
+                                    units_to_start.insert(socket.to_string(), ());
+                                    record_unit(START_LIST_FILE, socket);
+                                }
+
+                                socket_activated = true;
+                            }
+
+                            // Remove from units to reload so we don't restart and reload
+                            if units_to_reload.contains_key(unit) {
+                                units_to_reload.remove(unit);
+                                unrecord_unit(RELOAD_LIST_FILE, unit);
+                            }
+                        }
+                    }
+                }
+
+                // If the unit is not socket-activated, record that this unit needs to be started
+                // below. We write this to a file to ensure that the service gets restarted if
+                // we're interrupted.
+                if !socket_activated {
+                    if use_restart_as_stop_and_start {
+                        units_to_restart.insert(unit.to_string(), ());
+                        record_unit(RESTART_LIST_FILE, unit);
+                    } else {
+                        units_to_start.insert(unit.to_string(), ());
+                        record_unit(START_LIST_FILE, unit);
+                    }
+                }
+
+                if use_restart_as_stop_and_start {
+                    units_to_restart.insert(unit.to_string(), ());
+                } else {
+                    units_to_stop.insert(unit.to_string(), ());
+                }
+                // Remove from units to reload so we don't restart and reload
+                if units_to_reload.contains_key(unit) {
+                    units_to_reload.remove(unit);
+                    unrecord_unit(RELOAD_LIST_FILE, unit);
+                }
+            }
+        }
+    }
+
+    Ok(())
+}
+
+// Writes a unit name into a given file to be more resilient against crashes of the script. Does
+// nothing when the action is dry-activate.
+fn record_unit(p: impl AsRef<Path>, unit: &str) {
+    if ACTION.get() != Some(&Action::DryActivate) {
+        if let Ok(mut f) = std::fs::File::options().append(true).create(true).open(p) {
+            _ = writeln!(&mut f, "{unit}");
+        }
+    }
+}
+
+// The opposite of record_unit, removes a unit name from a file
+fn unrecord_unit(p: impl AsRef<Path>, unit: &str) {
+    if ACTION.get() != Some(&Action::DryActivate) {
+        if let Ok(contents) = std::fs::read_to_string(&p) {
+            if let Ok(mut f) = std::fs::File::options()
+                .write(true)
+                .truncate(true)
+                .create(true)
+                .open(&p)
+            {
+                contents
+                    .lines()
+                    .into_iter()
+                    .filter(|line| line != &unit)
+                    .for_each(|line| _ = writeln!(&mut f, "{line}"))
+            }
+        }
+    }
+}
+
+fn map_from_list_file(p: impl AsRef<Path>) -> HashMap<String, ()> {
+    std::fs::read_to_string(p)
+        .unwrap_or_default()
+        .lines()
+        .filter(|line| !line.is_empty())
+        .into_iter()
+        .fold(HashMap::new(), |mut acc, line| {
+            acc.insert(line.to_string(), ());
+            acc
+        })
+}
+
+#[derive(Debug)]
+struct Filesystem {
+    device: String,
+    fs_type: String,
+    options: String,
+}
+
+#[derive(Debug)]
+#[allow(unused)]
+struct Swap(String);
+
+// Parse a fstab file, given its path. Returns a tuple of filesystems and swaps.
+//
+// Filesystems is a hash of mountpoint and { device, fsType, options } Swaps is a hash of device
+// and { options }
+fn parse_fstab(fstab: impl BufRead) -> (HashMap<String, Filesystem>, HashMap<String, Swap>) {
+    let mut filesystems = HashMap::new();
+    let mut swaps = HashMap::new();
+
+    for line in fstab.lines() {
+        let Ok(line) = line else {
+            break;
+        };
+
+        if line.contains('#') {
+            continue;
+        }
+
+        let mut split = line.split_whitespace();
+        let (Some(device), Some(mountpoint), Some(fs_type), options) = (
+            split.next(),
+            split.next(),
+            split.next(),
+            split.next().unwrap_or_default(),
+        ) else {
+            continue;
+        };
+
+        if fs_type == "swap" {
+            swaps.insert(device.to_string(), Swap(options.to_string()));
+        } else {
+            filesystems.insert(
+                mountpoint.to_string(),
+                Filesystem {
+                    device: device.to_string(),
+                    fs_type: fs_type.to_string(),
+                    options: options.to_string(),
+                },
+            );
+        }
+    }
+
+    (filesystems, swaps)
+}
+
+// Converts a path to the name of a systemd mount unit that would be responsible for mounting this
+// path.
+fn path_to_unit_name(bin_path: &Path, path: &str) -> String {
+    let Ok(output) = std::process::Command::new(bin_path.join("systemd-escape"))
+        .arg("--suffix=mount")
+        .arg("-p")
+        .arg(path)
+        .output()
+    else {
+        eprintln!("Unable to escape {}!", path);
+        die();
+    };
+
+    let Ok(unit) = String::from_utf8(output.stdout) else {
+        eprintln!("Unable to convert systemd-espape output to valid UTF-8");
+        die();
+    };
+
+    unit.trim().to_string()
+}
+
+// Returns a HashMap containing the same contents as the passed in `units`, minus the units in
+// `units_to_filter`.
+fn filter_units(
+    units_to_filter: &HashMap<String, ()>,
+    units: &HashMap<String, ()>,
+) -> HashMap<String, ()> {
+    let mut res = HashMap::new();
+
+    for (unit, _) in units {
+        if !units_to_filter.contains_key(unit) {
+            res.insert(unit.to_string(), ());
+        }
+    }
+
+    res
+}
+
+fn unit_is_active<'a>(conn: &LocalConnection, unit: &str) -> Result<bool> {
+    let unit_object_path = conn
+        .with_proxy(
+            "org.freedesktop.systemd1",
+            "/org/freedesktop/systemd1",
+            Duration::from_millis(5000),
+        )
+        .get_unit(unit)
+        .with_context(|| format!("Failed to get unit {unit}"))?;
+
+    let active_state: String = conn
+        .with_proxy(
+            "org.freedesktop.systemd1",
+            unit_object_path,
+            Duration::from_millis(5000),
+        )
+        .get("org.freedesktop.systemd1.Unit", "ActiveState")
+        .with_context(|| format!("Failed to get ExecMainStatus for {unit}"))?;
+
+    Ok(matches!(active_state.as_str(), "active" | "activating"))
+}
+
+static ACTION: OnceLock<Action> = OnceLock::new();
+
+#[derive(Debug)]
+enum Job {
+    Start,
+    Restart,
+    Reload,
+    Stop,
+}
+
+impl std::fmt::Display for Job {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        write!(
+            f,
+            "{}",
+            match self {
+                Job::Start => "start",
+                Job::Restart => "restart",
+                Job::Reload => "reload",
+                Job::Stop => "stop",
+            }
+        )
+    }
+}
+
+fn new_dbus_proxies<'a>(
+    conn: &'a LocalConnection,
+) -> (
+    Proxy<'a, &'a LocalConnection>,
+    Proxy<'a, &'a LocalConnection>,
+) {
+    (
+        conn.with_proxy(
+            "org.freedesktop.systemd1",
+            "/org/freedesktop/systemd1",
+            Duration::from_millis(5000),
+        ),
+        conn.with_proxy(
+            "org.freedesktop.login1",
+            "/org/freedesktop/login1",
+            Duration::from_millis(5000),
+        ),
+    )
+}
+
+fn block_on_jobs(
+    conn: &LocalConnection,
+    submitted_jobs: &Rc<RefCell<HashMap<dbus::Path<'static>, Job>>>,
+) {
+    while !submitted_jobs.borrow().is_empty() {
+        _ = conn.process(Duration::from_millis(500));
+    }
+}
+
+fn remove_file_if_exists(p: impl AsRef<Path>) -> std::io::Result<()> {
+    match std::fs::remove_file(p) {
+        Err(err) if err.kind() != std::io::ErrorKind::NotFound => Err(err),
+        _ => Ok(()),
+    }
+}
+
+/// Performs switch-to-configuration functionality for a single non-root user
+fn do_user_switch(parent_exe: String) -> anyhow::Result<()> {
+    if Path::new(&parent_exe)
+        != Path::new("/proc/self/exe")
+            .canonicalize()
+            .context("Failed to get full path to current executable")?
+            .as_path()
+    {
+        eprintln!(
+            r#"This program is not meant to be called from outside of switch-to-configuration."#
+        );
+        die();
+    }
+
+    let dbus_conn = LocalConnection::new_session().context("Failed to open dbus connection")?;
+    let (systemd, _) = new_dbus_proxies(&dbus_conn);
+
+    let nixos_activation_done = Rc::new(RefCell::new(false));
+    let _nixos_activation_done = nixos_activation_done.clone();
+    let jobs_token = systemd
+        .match_signal(
+            move |signal: OrgFreedesktopSystemd1ManagerJobRemoved,
+                  _: &LocalConnection,
+                  _: &Message| {
+                if signal.unit.as_str() == "nixos-activation.service" {
+                    *_nixos_activation_done.borrow_mut() = true;
+                }
+
+                true
+            },
+        )
+        .context("Failed to add signal match for systemd removed jobs")?;
+
+    // The systemd user session seems to not send a Reloaded signal, so we don't have anything to
+    // wait on here.
+    _ = systemd.reexecute();
+
+    systemd
+        .restart_unit("nixos-activation.service", "replace")
+        .context("Failed to restart nixos-activation.service")?;
+
+    while !*nixos_activation_done.borrow() {
+        _ = dbus_conn
+            .process(Duration::from_secs(500))
+            .context("Failed to process dbus messages")?;
+    }
+
+    dbus_conn
+        .remove_match(jobs_token)
+        .context("Failed to remove jobs token")?;
+
+    Ok(())
+}
+
+/// Performs switch-to-configuration functionality for the entire system
+fn do_system_switch() -> anyhow::Result<()> {
+    let out = PathBuf::from(required_env("OUT")?);
+    let toplevel = PathBuf::from(required_env("TOPLEVEL")?);
+    let distro_id = required_env("DISTRO_ID")?;
+    let install_bootloader = required_env("INSTALL_BOOTLOADER")?;
+    let locale_archive = required_env("LOCALE_ARCHIVE")?;
+    let new_systemd = PathBuf::from(required_env("SYSTEMD")?);
+
+    let mut args = std::env::args();
+    let argv0 = args.next().ok_or(anyhow!("no argv[0]"))?;
+
+    let Some(Ok(action)) = args.next().map(|a| Action::from_str(&a)) else {
+        eprintln!(
+            r#"Usage: {} [switch|boot|test|dry-activate]
+switch:       make the configuration the boot default and activate now
+boot:         make the configuration the boot default
+test:         activate the configuration, but don't make it the boot default
+dry-activate: show what would be done if this configuration were activated
+"#,
+            argv0
+                .split(std::path::MAIN_SEPARATOR_STR)
+                .last()
+                .unwrap_or("switch-to-configuration")
+        );
+        std::process::exit(1);
+    };
+
+    let action = ACTION.get_or_init(|| action);
+
+    // The action that is to be performed (like switch, boot, test, dry-activate) Also exposed via
+    // environment variable from now on
+    std::env::set_var("NIXOS_ACTION", Into::<&'static str>::into(action));
+
+    // Expose the locale archive as an environment variable for systemctl and the activation script
+    if !locale_archive.is_empty() {
+        std::env::set_var("LOCALE_ARCHIVE", locale_archive);
+    }
+
+    let current_system_bin = std::path::PathBuf::from("/run/current-system/sw/bin")
+        .canonicalize()
+        .context("/run/current-system/sw/bin is missing")?;
+
+    let os_release = parse_os_release().context("Failed to parse os-release")?;
+
+    let distro_id_re = Regex::new(format!("^\"?{}\"?$", distro_id).as_str())
+        .context("Invalid regex for distro ID")?;
+
+    // This is a NixOS installation if it has /etc/NIXOS or a proper /etc/os-release.
+    if !Path::new("/etc/NIXOS").is_file()
+        && !os_release
+            .get("ID")
+            .map(|id| distro_id_re.is_match(id))
+            .unwrap_or_default()
+    {
+        eprintln!("This is not a NixOS installation!");
+        die();
+    }
+
+    std::fs::create_dir_all("/run/nixos").context("Failed to create /run/nixos directory")?;
+    let perms = std::fs::Permissions::from_mode(0o755);
+    std::fs::set_permissions("/run/nixos", perms)
+        .context("Failed to set permissions on /run/nixos directory")?;
+
+    let Ok(lock) = std::fs::OpenOptions::new()
+        .append(true)
+        .create(true)
+        .open("/run/nixos/switch-to-configuration.lock")
+    else {
+        eprintln!("Could not open lock");
+        die();
+    };
+
+    let Ok(_lock) = Flock::lock(lock, FlockArg::LockExclusive) else {
+        eprintln!("Could not acquire lock");
+        die();
+    };
+
+    if syslog::init(Facility::LOG_USER, LevelFilter::Debug, Some("nixos")).is_err() {
+        bail!("Failed to initialize logger");
+    }
+
+    // Install or update the bootloader.
+    if matches!(action, Action::Switch | Action::Boot) {
+        do_install_bootloader(&install_bootloader, &toplevel)?;
+    }
+
+    // Just in case the new configuration hangs the system, do a sync now.
+    if std::env::var("NIXOS_NO_SYNC")
+        .as_deref()
+        .unwrap_or_default()
+        != "1"
+    {
+        let fd = nix::fcntl::open("/nix/store", OFlag::O_NOCTTY, Mode::S_IROTH)
+            .context("Failed to open /nix/store")?;
+        nix::unistd::syncfs(fd).context("Failed to sync /nix/store")?;
+    }
+
+    if *action == Action::Boot {
+        std::process::exit(0);
+    }
+
+    let current_init_interface_version =
+        std::fs::read_to_string("/run/current-system/init-interface-version").unwrap_or_default();
+
+    let new_init_interface_version =
+        std::fs::read_to_string(toplevel.join("init-interface-version"))
+            .context("File init-interface-version should exist")?;
+
+    // Check if we can activate the new configuration.
+    if current_init_interface_version != new_init_interface_version {
+        eprintln!(
+            r#"Warning: the new NixOS configuration has an ‘init’ that is
+incompatible with the current configuration.  The new configuration
+won't take effect until you reboot the system.
+"#
+        );
+        std::process::exit(100);
+    }
+
+    // Ignore SIGHUP so that we're not killed if we're running on (say) virtual console 1 and we
+    // restart the "tty1" unit.
+    let handler = SigHandler::Handler(handle_sigpipe);
+    unsafe { signal::signal(Signal::SIGPIPE, handler) }.context("Failed to set SIGPIPE handler")?;
+
+    let mut units_to_stop = HashMap::new();
+    let mut units_to_skip = HashMap::new();
+    let mut units_to_filter = HashMap::new(); // units not shown
+
+    let mut units_to_start = map_from_list_file(START_LIST_FILE);
+    let mut units_to_restart = map_from_list_file(RESTART_LIST_FILE);
+    let mut units_to_reload = map_from_list_file(RELOAD_LIST_FILE);
+
+    let dbus_conn = LocalConnection::new_system().context("Failed to open dbus connection")?;
+    let (systemd, logind) = new_dbus_proxies(&dbus_conn);
+
+    let submitted_jobs = Rc::new(RefCell::new(HashMap::new()));
+    let finished_jobs = Rc::new(RefCell::new(HashMap::new()));
+
+    let systemd_reload_status = Rc::new(RefCell::new(false));
+
+    systemd
+        .subscribe()
+        .context("Failed to subscribe to systemd dbus messages")?;
+
+    // Wait for the system to have finished booting.
+    loop {
+        let system_state: String = systemd
+            .get("org.freedesktop.systemd1.Manager", "SystemState")
+            .context("Failed to get system state")?;
+
+        match system_state.as_str() {
+            "running" | "degraded" | "maintenance" => break,
+            _ => {
+                _ = dbus_conn
+                    .process(Duration::from_millis(500))
+                    .context("Failed to process dbus messages")?
+            }
+        }
+    }
+
+    let _systemd_reload_status = systemd_reload_status.clone();
+    let reloading_token = systemd
+        .match_signal(
+            move |signal: OrgFreedesktopSystemd1ManagerReloading,
+                  _: &LocalConnection,
+                  _msg: &Message| {
+                *_systemd_reload_status.borrow_mut() = signal.active;
+
+                true
+            },
+        )
+        .context("Failed to add systemd Reloading match")?;
+
+    let _submitted_jobs = submitted_jobs.clone();
+    let _finished_jobs = finished_jobs.clone();
+    let job_removed_token = systemd
+        .match_signal(
+            move |signal: OrgFreedesktopSystemd1ManagerJobRemoved,
+                  _: &LocalConnection,
+                  _msg: &Message| {
+                if let Some(old) = _submitted_jobs.borrow_mut().remove(&signal.job) {
+                    let mut finished_jobs = _finished_jobs.borrow_mut();
+                    finished_jobs.insert(signal.job, (signal.unit, old, signal.result));
+                }
+
+                true
+            },
+        )
+        .context("Failed to add systemd JobRemoved match")?;
+
+    let current_active_units = get_active_units(&systemd)?;
+
+    let template_unit_re = Regex::new(r"^(.*)@[^\.]*\.(.*)$")
+        .context("Invalid regex for matching systemd template units")?;
+    let unit_name_re = Regex::new(r"^(.*)\.[[:lower:]]*$")
+        .context("Invalid regex for matching systemd unit names")?;
+
+    for (unit, unit_state) in &current_active_units {
+        let current_unit_file = Path::new("/etc/systemd/system").join(&unit);
+        let new_unit_file = toplevel.join("etc/systemd/system").join(&unit);
+
+        let mut base_unit = unit.clone();
+        let mut current_base_unit_file = current_unit_file.clone();
+        let mut new_base_unit_file = new_unit_file.clone();
+
+        // Detect template instances
+        if let Some((Some(template_name), Some(template_instance))) =
+            template_unit_re.captures(&unit).map(|captures| {
+                (
+                    captures.get(1).map(|c| c.as_str()),
+                    captures.get(2).map(|c| c.as_str()),
+                )
+            })
+        {
+            if !current_unit_file.exists() && !new_unit_file.exists() {
+                base_unit = format!("{}@.{}", template_name, template_instance);
+                current_base_unit_file = Path::new("/etc/systemd/system").join(&base_unit);
+                new_base_unit_file = toplevel.join("etc/systemd/system").join(&base_unit);
+            }
+        }
+
+        let mut base_name = base_unit.as_str();
+        if let Some(Some(new_base_name)) = unit_name_re
+            .captures(&base_unit)
+            .map(|capture| capture.get(1).map(|first| first.as_str()))
+        {
+            base_name = new_base_name;
+        }
+
+        if current_base_unit_file.exists()
+            && (unit_state.state == "active" || unit_state.state == "activating")
+        {
+            if new_base_unit_file
+                .canonicalize()
+                .map(|full_path| full_path == Path::new("/dev/null"))
+                .unwrap_or(true)
+            {
+                let current_unit_info = parse_unit(&current_unit_file, &current_base_unit_file)?;
+                if parse_systemd_bool(Some(&current_unit_info), "Unit", "X-StopOnRemoval", true) {
+                    _ = units_to_stop.insert(unit.to_string(), ());
+                }
+            } else if unit.ends_with(".target") {
+                let new_unit_info = parse_unit(&new_unit_file, &new_base_unit_file)?;
+
+                // Cause all active target units to be restarted below. This should start most
+                // changed units we stop here as well as any new dependencies (including new mounts
+                // and swap devices).  FIXME: the suspend target is sometimes active after the
+                // system has resumed, which probably should not be the case.  Just ignore it.
+                if !matches!(
+                    unit.as_str(),
+                    "suspend.target" | "hibernate.target" | "hybrid-sleep.target"
+                ) {
+                    if !(parse_systemd_bool(
+                        Some(&new_unit_info),
+                        "Unit",
+                        "RefuseManualStart",
+                        false,
+                    ) || parse_systemd_bool(
+                        Some(&new_unit_info),
+                        "Unit",
+                        "X-OnlyManualStart",
+                        false,
+                    )) {
+                        units_to_start.insert(unit.to_string(), ());
+                        record_unit(START_LIST_FILE, unit);
+                        // Don't spam the user with target units that always get started.
+                        if std::env::var("STC_DISPLAY_ALL_UNITS").as_deref() != Ok("1") {
+                            units_to_filter.insert(unit.to_string(), ());
+                        }
+                    }
+                }
+
+                // Stop targets that have X-StopOnReconfiguration set. This is necessary to respect
+                // dependency orderings involving targets: if unit X starts after target Y and
+                // target Y starts after unit Z, then if X and Z have both changed, then X should
+                // be restarted after Z.  However, if target Y is in the "active" state, X and Z
+                // will be restarted at the same time because X's dependency on Y is already
+                // satisfied.  Thus, we need to stop Y first. Stopping a target generally has no
+                // effect on other units (unless there is a PartOf dependency), so this is just a
+                // bookkeeping thing to get systemd to do the right thing.
+                if parse_systemd_bool(
+                    Some(&new_unit_info),
+                    "Unit",
+                    "X-StopOnReconfiguration",
+                    false,
+                ) {
+                    units_to_stop.insert(unit.to_string(), ());
+                }
+            } else {
+                let current_unit_info = parse_unit(&current_unit_file, &current_base_unit_file)?;
+                let new_unit_info = parse_unit(&new_unit_file, &new_base_unit_file)?;
+                match compare_units(&current_unit_info, &new_unit_info) {
+                    UnitComparison::UnequalNeedsRestart => {
+                        handle_modified_unit(
+                            &toplevel,
+                            &unit,
+                            base_name,
+                            &new_unit_file,
+                            &new_base_unit_file,
+                            Some(&new_unit_info),
+                            &current_active_units,
+                            &mut units_to_stop,
+                            &mut units_to_start,
+                            &mut units_to_reload,
+                            &mut units_to_restart,
+                            &mut units_to_skip,
+                        )?;
+                    }
+                    UnitComparison::UnequalNeedsReload if !units_to_restart.contains_key(unit) => {
+                        units_to_reload.insert(unit.clone(), ());
+                        record_unit(RELOAD_LIST_FILE, &unit);
+                    }
+                    _ => {}
+                }
+            }
+        }
+    }
+
+    // Compare the previous and new fstab to figure out which filesystems need a remount or need to
+    // be unmounted. New filesystems are mounted automatically by starting local-fs.target.
+    // FIXME: might be nicer if we generated units for all mounts; then we could unify this with
+    // the unit checking code above.
+    let (current_filesystems, current_swaps) = std::fs::read_to_string("/etc/fstab")
+        .map(|fstab| parse_fstab(std::io::Cursor::new(fstab)))
+        .unwrap_or_default();
+    let (new_filesystems, new_swaps) = std::fs::read_to_string(toplevel.join("etc/fstab"))
+        .map(|fstab| parse_fstab(std::io::Cursor::new(fstab)))
+        .unwrap_or_default();
+
+    for (mountpoint, current_filesystem) in current_filesystems {
+        // Use current version of systemctl binary before daemon is reexeced.
+        let unit = path_to_unit_name(&current_system_bin, &mountpoint);
+        if let Some(new_filesystem) = new_filesystems.get(&mountpoint) {
+            if current_filesystem.fs_type != new_filesystem.fs_type
+                || current_filesystem.device != new_filesystem.device
+            {
+                if matches!(mountpoint.as_str(), "/" | "/nix") {
+                    if current_filesystem.options != new_filesystem.options {
+                        // Mount options changes, so remount it.
+                        units_to_reload.insert(unit.to_string(), ());
+                        record_unit(RELOAD_LIST_FILE, &unit)
+                    } else {
+                        // Don't unmount / or /nix if the device changed
+                        units_to_skip.insert(unit, ());
+                    }
+                } else {
+                    // Filesystem type or device changed, so unmount and mount it.
+                    units_to_restart.insert(unit.to_string(), ());
+                    record_unit(RESTART_LIST_FILE, &unit);
+                }
+            } else if current_filesystem.options != new_filesystem.options {
+                // Mount options changes, so remount it.
+                units_to_reload.insert(unit.to_string(), ());
+                record_unit(RELOAD_LIST_FILE, &unit)
+            }
+        } else {
+            // Filesystem entry disappeared, so unmount it.
+            units_to_stop.insert(unit, ());
+        }
+    }
+
+    // Also handles swap devices.
+    for (device, _) in current_swaps {
+        if new_swaps.get(&device).is_none() {
+            // Swap entry disappeared, so turn it off.  Can't use "systemctl stop" here because
+            // systemd has lots of alias units that prevent a stop from actually calling "swapoff".
+            if *action == Action::DryActivate {
+                eprintln!("would stop swap device: {}", &device);
+            } else {
+                eprintln!("stopping swap device: {}", &device);
+                let c_device = std::ffi::CString::new(device.clone())
+                    .context("failed to convert device to cstring")?;
+                if unsafe { nix::libc::swapoff(c_device.as_ptr()) } != 0 {
+                    let err = std::io::Error::last_os_error();
+                    eprintln!("Failed to stop swapping to {device}: {err}");
+                }
+            }
+        }
+        // FIXME: update swap options (i.e. its priority).
+    }
+
+    // Should we have systemd re-exec itself?
+    let current_pid1_path = Path::new("/proc/1/exe")
+        .canonicalize()
+        .unwrap_or_else(|_| PathBuf::from("/unknown"));
+    let current_systemd_system_config = Path::new("/etc/systemd/system.conf")
+        .canonicalize()
+        .unwrap_or_else(|_| PathBuf::from("/unknown"));
+    let Ok(new_pid1_path) = new_systemd.join("lib/systemd/systemd").canonicalize() else {
+        die();
+    };
+    let new_systemd_system_config = toplevel
+        .join("etc/systemd/system.conf")
+        .canonicalize()
+        .unwrap_or_else(|_| PathBuf::from("/unknown"));
+
+    let restart_systemd = current_pid1_path != new_pid1_path
+        || current_systemd_system_config != new_systemd_system_config;
+
+    let units_to_stop_filtered = filter_units(&units_to_filter, &units_to_stop);
+
+    // Show dry-run actions.
+    if *action == Action::DryActivate {
+        if !units_to_stop_filtered.is_empty() {
+            let mut units = units_to_stop_filtered
+                .keys()
+                .into_iter()
+                .map(String::as_str)
+                .collect::<Vec<&str>>();
+            units.sort_by_key(|name| name.to_lowercase());
+            eprintln!("would stop the following units: {}", units.join(", "));
+        }
+
+        if !units_to_skip.is_empty() {
+            let mut units = units_to_skip
+                .keys()
+                .into_iter()
+                .map(String::as_str)
+                .collect::<Vec<&str>>();
+            units.sort_by_key(|name| name.to_lowercase());
+            eprintln!(
+                "would NOT stop the following changed units: {}",
+                units.join(", ")
+            );
+        }
+
+        eprintln!("would activate the configuration...");
+        _ = std::process::Command::new(out.join("dry-activate"))
+            .arg(&out)
+            .spawn()
+            .map(|mut child| child.wait());
+
+        // Handle the activation script requesting the restart or reload of a unit.
+        for unit in std::fs::read_to_string(DRY_RESTART_BY_ACTIVATION_LIST_FILE)
+            .unwrap_or_default()
+            .lines()
+        {
+            let current_unit_file = Path::new("/etc/systemd/system").join(unit);
+            let new_unit_file = toplevel.join("etc/systemd/system").join(unit);
+            let mut base_unit = unit.to_string();
+            let mut new_base_unit_file = new_unit_file.clone();
+
+            // Detect template instances.
+            if let Some((Some(template_name), Some(template_instance))) =
+                template_unit_re.captures(&unit).map(|captures| {
+                    (
+                        captures.get(1).map(|c| c.as_str()),
+                        captures.get(2).map(|c| c.as_str()),
+                    )
+                })
+            {
+                if !current_unit_file.exists() && !new_unit_file.exists() {
+                    base_unit = format!("{}@.{}", template_name, template_instance);
+                    new_base_unit_file = toplevel.join("etc/systemd/system").join(&base_unit);
+                }
+            }
+
+            let mut base_name = base_unit.as_str();
+            if let Some(Some(new_base_name)) = unit_name_re
+                .captures(&base_unit)
+                .map(|capture| capture.get(1).map(|first| first.as_str()))
+            {
+                base_name = new_base_name;
+            }
+
+            // Start units if they were not active previously
+            if !current_active_units.contains_key(unit) {
+                units_to_start.insert(unit.to_string(), ());
+                continue;
+            }
+
+            handle_modified_unit(
+                &toplevel,
+                unit,
+                base_name,
+                &new_unit_file,
+                &new_base_unit_file,
+                None,
+                &current_active_units,
+                &mut units_to_stop,
+                &mut units_to_start,
+                &mut units_to_reload,
+                &mut units_to_restart,
+                &mut units_to_skip,
+            )?;
+        }
+
+        remove_file_if_exists(DRY_RESTART_BY_ACTIVATION_LIST_FILE)
+            .with_context(|| format!("Failed to remove {}", DRY_RESTART_BY_ACTIVATION_LIST_FILE))?;
+
+        for unit in std::fs::read_to_string(DRY_RELOAD_BY_ACTIVATION_LIST_FILE)
+            .unwrap_or_default()
+            .lines()
+        {
+            if current_active_units.contains_key(unit)
+                && !units_to_restart.contains_key(unit)
+                && !units_to_stop.contains_key(unit)
+            {
+                units_to_reload.insert(unit.to_string(), ());
+                record_unit(RELOAD_LIST_FILE, unit);
+            }
+        }
+
+        remove_file_if_exists(DRY_RELOAD_BY_ACTIVATION_LIST_FILE)
+            .with_context(|| format!("Failed to remove {}", DRY_RELOAD_BY_ACTIVATION_LIST_FILE))?;
+
+        if restart_systemd {
+            eprintln!("would restart systemd");
+        }
+
+        if !units_to_reload.is_empty() {
+            let mut units = units_to_reload
+                .keys()
+                .into_iter()
+                .map(String::as_str)
+                .collect::<Vec<&str>>();
+            units.sort_by_key(|name| name.to_lowercase());
+            eprintln!("would reload the following units: {}", units.join(", "));
+        }
+
+        if !units_to_restart.is_empty() {
+            let mut units = units_to_restart
+                .keys()
+                .into_iter()
+                .map(String::as_str)
+                .collect::<Vec<&str>>();
+            units.sort_by_key(|name| name.to_lowercase());
+            eprintln!("would restart the following units: {}", units.join(", "));
+        }
+
+        let units_to_start_filtered = filter_units(&units_to_filter, &units_to_start);
+        if !units_to_start_filtered.is_empty() {
+            let mut units = units_to_start_filtered
+                .keys()
+                .into_iter()
+                .map(String::as_str)
+                .collect::<Vec<&str>>();
+            units.sort_by_key(|name| name.to_lowercase());
+            eprintln!("would start the following units: {}", units.join(", "));
+        }
+
+        std::process::exit(0);
+    }
+
+    log::info!("switching to system configuration {}", toplevel.display());
+
+    if !units_to_stop.is_empty() {
+        if !units_to_stop_filtered.is_empty() {
+            let mut units = units_to_stop_filtered
+                .keys()
+                .into_iter()
+                .map(String::as_str)
+                .collect::<Vec<&str>>();
+            units.sort_by_key(|name| name.to_lowercase());
+            eprintln!("stopping the following units: {}", units.join(", "));
+        }
+
+        for unit in units_to_stop.keys() {
+            match systemd.stop_unit(unit, "replace") {
+                Ok(job_path) => {
+                    let mut j = submitted_jobs.borrow_mut();
+                    j.insert(job_path.to_owned(), Job::Stop);
+                }
+                Err(_) => {}
+            };
+        }
+
+        block_on_jobs(&dbus_conn, &submitted_jobs);
+    }
+
+    if !units_to_skip.is_empty() {
+        let mut units = units_to_skip
+            .keys()
+            .into_iter()
+            .map(String::as_str)
+            .collect::<Vec<&str>>();
+        units.sort_by_key(|name| name.to_lowercase());
+        eprintln!(
+            "NOT restarting the following changed units: {}",
+            units.join(", "),
+        );
+    }
+
+    // Wait for all stop jobs to finish
+    block_on_jobs(&dbus_conn, &submitted_jobs);
+
+    let mut exit_code = 0;
+
+    // Activate the new configuration (i.e., update /etc, make accounts, and so on).
+    eprintln!("activating the configuration...");
+    match std::process::Command::new(out.join("activate"))
+        .arg(&out)
+        .spawn()
+        .map(|mut child| child.wait())
+    {
+        Ok(Ok(status)) if status.success() => {}
+        Err(_) => {
+            // allow toplevel to not have an activation script
+        }
+        _ => {
+            eprintln!("Failed to run activate script");
+            exit_code = 2;
+        }
+    }
+
+    // Handle the activation script requesting the restart or reload of a unit.
+    for unit in std::fs::read_to_string(RESTART_BY_ACTIVATION_LIST_FILE)
+        .unwrap_or_default()
+        .lines()
+    {
+        let new_unit_file = toplevel.join("etc/systemd/system").join(unit);
+        let mut base_unit = unit.to_string();
+        let mut new_base_unit_file = new_unit_file.clone();
+
+        // Detect template instances.
+        if let Some((Some(template_name), Some(template_instance))) =
+            template_unit_re.captures(&unit).map(|captures| {
+                (
+                    captures.get(1).map(|c| c.as_str()),
+                    captures.get(2).map(|c| c.as_str()),
+                )
+            })
+        {
+            if !new_unit_file.exists() {
+                base_unit = format!("{}@.{}", template_name, template_instance);
+                new_base_unit_file = toplevel.join("etc/systemd/system").join(&base_unit);
+            }
+        }
+
+        let mut base_name = base_unit.as_str();
+        if let Some(Some(new_base_name)) = unit_name_re
+            .captures(&base_unit)
+            .map(|capture| capture.get(1).map(|first| first.as_str()))
+        {
+            base_name = new_base_name;
+        }
+
+        // Start units if they were not active previously
+        if !current_active_units.contains_key(unit) {
+            units_to_start.insert(unit.to_string(), ());
+            record_unit(START_LIST_FILE, unit);
+            continue;
+        }
+
+        handle_modified_unit(
+            &toplevel,
+            unit,
+            base_name,
+            &new_unit_file,
+            &new_base_unit_file,
+            None,
+            &current_active_units,
+            &mut units_to_stop,
+            &mut units_to_start,
+            &mut units_to_reload,
+            &mut units_to_restart,
+            &mut units_to_skip,
+        )?;
+    }
+
+    // We can remove the file now because it has been propagated to the other restart/reload files
+    remove_file_if_exists(RESTART_BY_ACTIVATION_LIST_FILE)
+        .with_context(|| format!("Failed to remove {}", RESTART_BY_ACTIVATION_LIST_FILE))?;
+
+    for unit in std::fs::read_to_string(RELOAD_BY_ACTIVATION_LIST_FILE)
+        .unwrap_or_default()
+        .lines()
+    {
+        if current_active_units.contains_key(unit)
+            && !units_to_restart.contains_key(unit)
+            && !units_to_stop.contains_key(unit)
+        {
+            units_to_reload.insert(unit.to_string(), ());
+            record_unit(RELOAD_LIST_FILE, unit);
+        }
+    }
+
+    // We can remove the file now because it has been propagated to the other reload file
+    remove_file_if_exists(RELOAD_BY_ACTIVATION_LIST_FILE)
+        .with_context(|| format!("Failed to remove {}", RELOAD_BY_ACTIVATION_LIST_FILE))?;
+
+    // Restart systemd if necessary. Note that this is done using the current version of systemd,
+    // just in case the new one has trouble communicating with the running pid 1.
+    if restart_systemd {
+        eprintln!("restarting systemd...");
+        _ = systemd.reexecute(); // we don't get a dbus reply here
+
+        while !*systemd_reload_status.borrow() {
+            _ = dbus_conn
+                .process(Duration::from_millis(500))
+                .context("Failed to process dbus messages")?;
+        }
+    }
+
+    // Forget about previously failed services.
+    systemd
+        .reset_failed()
+        .context("Failed to reset failed units")?;
+
+    // Make systemd reload its units.
+    _ = systemd.reload(); // we don't get a dbus reply here
+    while !*systemd_reload_status.borrow() {
+        _ = dbus_conn
+            .process(Duration::from_millis(500))
+            .context("Failed to process dbus messages")?;
+    }
+
+    dbus_conn
+        .remove_match(reloading_token)
+        .context("Failed to cleanup systemd Reloading match")?;
+
+    // Reload user units
+    match logind.list_users() {
+        Err(err) => {
+            eprintln!("Unable to list users with logind: {err}");
+            die();
+        }
+        Ok(users) => {
+            for (uid, name, _) in users {
+                eprintln!("reloading user units for {}...", name);
+                let myself = Path::new("/proc/self/exe")
+                    .canonicalize()
+                    .context("Failed to get full path to /proc/self/exe")?;
+
+                std::process::Command::new(&myself)
+                    .uid(uid)
+                    .env("XDG_RUNTIME_DIR", format!("/run/user/{}", uid))
+                    .env("__NIXOS_SWITCH_TO_CONFIGURATION_PARENT_EXE", &myself)
+                    .spawn()
+                    .map(|mut child| _ = child.wait())
+                    .with_context(|| format!("Failed to run user activation for {name}"))?;
+            }
+        }
+    }
+
+    // Restart sysinit-reactivation.target. This target only exists to restart services ordered
+    // before sysinit.target. We cannot use X-StopOnReconfiguration to restart sysinit.target
+    // because then ALL services of the system would be restarted since all normal services have a
+    // default dependency on sysinit.target. sysinit-reactivation.target ensures that services
+    // ordered BEFORE sysinit.target get re-started in the correct order. Ordering between these
+    // services is respected.
+    eprintln!("restarting {SYSINIT_REACTIVATION_TARGET}");
+    match systemd.restart_unit(SYSINIT_REACTIVATION_TARGET, "replace") {
+        Ok(job_path) => {
+            let mut jobs = submitted_jobs.borrow_mut();
+            jobs.insert(job_path, Job::Restart);
+        }
+        Err(err) => {
+            eprintln!("Failed to restart {SYSINIT_REACTIVATION_TARGET}: {err}");
+            exit_code = 4;
+        }
+    }
+
+    // Wait for the restart job of sysinit-reactivation.service to finish
+    block_on_jobs(&dbus_conn, &submitted_jobs);
+
+    // Before reloading we need to ensure that the units are still active. They may have been
+    // deactivated because one of their requirements got stopped. If they are inactive but should
+    // have been reloaded, the user probably expects them to be started.
+    if !units_to_reload.is_empty() {
+        for (unit, _) in units_to_reload.clone() {
+            if !unit_is_active(&dbus_conn, &unit)? {
+                // Figure out if we need to start the unit
+                let unit_info = parse_unit(
+                    toplevel.join("etc/systemd/system").join(&unit).as_path(),
+                    toplevel.join("etc/systemd/system").join(&unit).as_path(),
+                )?;
+                if !parse_systemd_bool(Some(&unit_info), "Unit", "RefuseManualStart", false)
+                    || parse_systemd_bool(Some(&unit_info), "Unit", "X-OnlyManualStart", false)
+                {
+                    units_to_start.insert(unit.clone(), ());
+                    record_unit(START_LIST_FILE, &unit);
+                }
+                // Don't reload the unit, reloading would fail
+                units_to_reload.remove(&unit);
+                unrecord_unit(RELOAD_LIST_FILE, &unit);
+            }
+        }
+    }
+
+    // Reload units that need it. This includes remounting changed mount units.
+    if !units_to_reload.is_empty() {
+        let mut units = units_to_reload
+            .keys()
+            .into_iter()
+            .map(String::as_str)
+            .collect::<Vec<&str>>();
+        units.sort_by_key(|name| name.to_lowercase());
+        eprintln!("reloading the following units: {}", units.join(", "));
+
+        for unit in units {
+            match systemd.reload_unit(unit, "replace") {
+                Ok(job_path) => {
+                    submitted_jobs
+                        .borrow_mut()
+                        .insert(job_path.clone(), Job::Reload);
+                }
+                Err(err) => {
+                    eprintln!("Failed to reload {unit}: {err}");
+                    exit_code = 4;
+                }
+            }
+        }
+
+        block_on_jobs(&dbus_conn, &submitted_jobs);
+
+        remove_file_if_exists(RELOAD_LIST_FILE)
+            .with_context(|| format!("Failed to remove {}", RELOAD_LIST_FILE))?;
+    }
+
+    // Restart changed services (those that have to be restarted rather than stopped and started).
+    if !units_to_restart.is_empty() {
+        let mut units = units_to_restart
+            .keys()
+            .into_iter()
+            .map(String::as_str)
+            .collect::<Vec<&str>>();
+        units.sort_by_key(|name| name.to_lowercase());
+        eprintln!("restarting the following units: {}", units.join(", "));
+
+        for unit in units {
+            match systemd.restart_unit(unit, "replace") {
+                Ok(job_path) => {
+                    let mut jobs = submitted_jobs.borrow_mut();
+                    jobs.insert(job_path, Job::Restart);
+                }
+                Err(err) => {
+                    eprintln!("Failed to restart {unit}: {err}");
+                    exit_code = 4;
+                }
+            }
+        }
+
+        block_on_jobs(&dbus_conn, &submitted_jobs);
+
+        remove_file_if_exists(RESTART_LIST_FILE)
+            .with_context(|| format!("Failed to remove {}", RESTART_LIST_FILE))?;
+    }
+
+    // Start all active targets, as well as changed units we stopped above. The latter is necessary
+    // because some may not be dependencies of the targets (i.e., they were manually started).
+    // FIXME: detect units that are symlinks to other units.  We shouldn't start both at the same
+    // time because we'll get a "Failed to add path to set" error from systemd.
+    let units_to_start_filtered = filter_units(&units_to_filter, &units_to_start);
+    if !units_to_start_filtered.is_empty() {
+        let mut units = units_to_start_filtered
+            .keys()
+            .into_iter()
+            .map(String::as_str)
+            .collect::<Vec<&str>>();
+        units.sort_by_key(|name| name.to_lowercase());
+        eprintln!("starting the following units: {}", units.join(", "));
+    }
+
+    for unit in units_to_start.keys() {
+        match systemd.start_unit(unit, "replace") {
+            Ok(job_path) => {
+                let mut jobs = submitted_jobs.borrow_mut();
+                jobs.insert(job_path, Job::Start);
+            }
+            Err(err) => {
+                eprintln!("Failed to start {unit}: {err}");
+                exit_code = 4;
+            }
+        }
+    }
+
+    block_on_jobs(&dbus_conn, &submitted_jobs);
+
+    remove_file_if_exists(START_LIST_FILE)
+        .with_context(|| format!("Failed to remove {}", START_LIST_FILE))?;
+
+    for (unit, job, result) in finished_jobs.borrow().values() {
+        match result.as_str() {
+            "timeout" | "failed" | "dependency" => {
+                eprintln!("Failed to {} {}", job, unit);
+                exit_code = 4;
+            }
+            _ => {}
+        }
+    }
+
+    dbus_conn
+        .remove_match(job_removed_token)
+        .context("Failed to cleanup systemd job match")?;
+
+    // Print failed and new units.
+    let mut failed_units = Vec::new();
+    let mut new_units = Vec::new();
+
+    // NOTE: We want switch-to-configuration to be able to report to the user any units that failed
+    // to start or units that systemd had to restart due to having previously failed. This is
+    // inherently a race condition between how long our program takes to run and how long the unit
+    // in question takes to potentially fail. The amount of time we wait for new messages on the
+    // bus to settle is purely tuned so that this program is compatible with the Perl
+    // implementation.
+    //
+    // Wait for events from systemd to settle. process() will return true if we have received any
+    // messages on the bus.
+    while dbus_conn
+        .process(Duration::from_millis(250))
+        .unwrap_or_default()
+    {}
+
+    let new_active_units = get_active_units(&systemd)?;
+
+    for (unit, unit_state) in new_active_units {
+        if &unit_state.state == "failed" {
+            failed_units.push(unit);
+            continue;
+        }
+
+        if unit_state.substate == "auto-restart" && unit.ends_with(".service") {
+            // A unit in auto-restart substate is a failure *if* it previously failed to start
+            let unit_object_path = systemd
+                .get_unit(&unit)
+                .context("Failed to get unit info for {unit}")?;
+            let exec_main_status: i32 = dbus_conn
+                .with_proxy(
+                    "org.freedesktop.systemd1",
+                    unit_object_path,
+                    Duration::from_millis(5000),
+                )
+                .get("org.freedesktop.systemd1.Service", "ExecMainStatus")
+                .context("Failed to get ExecMainStatus for {unit}")?;
+
+            if exec_main_status != 0 {
+                failed_units.push(unit);
+                continue;
+            }
+        }
+
+        // Ignore scopes since they are not managed by this script but rather created and managed
+        // by third-party services via the systemd dbus API. This only lists units that are not
+        // failed (including ones that are in auto-restart but have not failed previously)
+        if unit_state.state != "failed"
+            && !current_active_units.contains_key(&unit)
+            && !unit.ends_with(".scope")
+        {
+            new_units.push(unit);
+        }
+    }
+
+    if !new_units.is_empty() {
+        new_units.sort_by_key(|name| name.to_lowercase());
+        eprintln!(
+            "the following new units were started: {}",
+            new_units.join(", ")
+        );
+    }
+
+    if !failed_units.is_empty() {
+        failed_units.sort_by_key(|name| name.to_lowercase());
+        eprintln!(
+            "warning: the following units failed: {}",
+            failed_units.join(", ")
+        );
+        _ = std::process::Command::new(new_systemd.join("bin/systemctl"))
+            .arg("status")
+            .arg("--no-pager")
+            .arg("--full")
+            .args(failed_units)
+            .spawn()
+            .map(|mut child| child.wait());
+
+        exit_code = 4;
+    }
+
+    if exit_code == 0 {
+        log::info!(
+            "finished switching to system configuration {}",
+            toplevel.display()
+        );
+    } else {
+        log::error!(
+            "switching to system configuration {} failed (status {})",
+            toplevel.display(),
+            exit_code
+        );
+    }
+
+    std::process::exit(exit_code);
+}
+
+fn main() -> anyhow::Result<()> {
+    match (
+        unsafe { nix::libc::geteuid() },
+        std::env::var("__NIXOS_SWITCH_TO_CONFIGURATION_PARENT_EXE").ok(),
+    ) {
+        (0, None) => do_system_switch(),
+        (1..=u32::MAX, None) => bail!("This program does not support being ran outside of the switch-to-configuration environment"),
+        (_, Some(parent_exe)) => do_user_switch(parent_exe),
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    use std::collections::HashMap;
+
+    #[test]
+    fn parse_fstab() {
+        {
+            let (filesystems, swaps) = super::parse_fstab(std::io::Cursor::new(""));
+            assert!(filesystems.is_empty());
+            assert!(swaps.is_empty());
+        }
+
+        {
+            let (filesystems, swaps) = super::parse_fstab(std::io::Cursor::new(
+                r#"\
+invalid
+                    "#,
+            ));
+            assert!(filesystems.is_empty());
+            assert!(swaps.is_empty());
+        }
+
+        {
+            let (filesystems, swaps) = super::parse_fstab(std::io::Cursor::new(
+                r#"\
+# This is a generated file.  Do not edit!
+#
+# To make changes, edit the fileSystems and swapDevices NixOS options
+# in your /etc/nixos/configuration.nix file.
+#
+# <file system> <mount point>   <type>  <options>       <dump>  <pass>
+
+# Filesystems.
+/dev/mapper/root / btrfs x-initrd.mount,compress=zstd,noatime,defaults 0 0
+/dev/disk/by-partlabel/BOOT /boot vfat x-systemd.automount 0 2
+/dev/disk/by-partlabel/home /home ext4 defaults 0 2
+/dev/mapper/usr /nix/.ro-store erofs x-initrd.mount,ro 0 2
+
+
+# Swap devices.
+                    "#,
+            ));
+            assert_eq!(filesystems.len(), 4);
+            assert_eq!(swaps.len(), 0);
+            let home_fs = filesystems.get("/home").unwrap();
+            assert_eq!(home_fs.fs_type, "ext4");
+            assert_eq!(home_fs.device, "/dev/disk/by-partlabel/home");
+            assert_eq!(home_fs.options, "defaults");
+        }
+    }
+
+    #[test]
+    fn filter_units() {
+        assert_eq!(
+            super::filter_units(&HashMap::from([]), &HashMap::from([])),
+            HashMap::from([])
+        );
+
+        assert_eq!(
+            super::filter_units(
+                &HashMap::from([("foo".to_string(), ())]),
+                &HashMap::from([("foo".to_string(), ()), ("bar".to_string(), ())])
+            ),
+            HashMap::from([("bar".to_string(), ())])
+        );
+    }
+
+    #[test]
+    fn compare_units() {
+        {
+            assert!(
+                super::compare_units(&HashMap::from([]), &HashMap::from([]))
+                    == super::UnitComparison::Equal
+            );
+
+            assert!(
+                super::compare_units(
+                    &HashMap::from([("Unit".to_string(), HashMap::from([]))]),
+                    &HashMap::from([])
+                ) == super::UnitComparison::Equal
+            );
+
+            assert!(
+                super::compare_units(
+                    &HashMap::from([(
+                        "Unit".to_string(),
+                        HashMap::from([(
+                            "X-Reload-Triggers".to_string(),
+                            vec!["foobar".to_string()]
+                        )])
+                    )]),
+                    &HashMap::from([])
+                ) == super::UnitComparison::Equal
+            );
+        }
+
+        {
+            assert!(
+                super::compare_units(
+                    &HashMap::from([("foobar".to_string(), HashMap::from([]))]),
+                    &HashMap::from([])
+                ) == super::UnitComparison::UnequalNeedsRestart
+            );
+
+            assert!(
+                super::compare_units(
+                    &HashMap::from([(
+                        "Mount".to_string(),
+                        HashMap::from([("Options".to_string(), vec![])])
+                    )]),
+                    &HashMap::from([(
+                        "Mount".to_string(),
+                        HashMap::from([("Options".to_string(), vec!["ro".to_string()])])
+                    )])
+                ) == super::UnitComparison::UnequalNeedsReload
+            );
+        }
+
+        {
+            assert!(
+                super::compare_units(
+                    &HashMap::from([]),
+                    &HashMap::from([(
+                        "Unit".to_string(),
+                        HashMap::from([(
+                            "X-Reload-Triggers".to_string(),
+                            vec!["foobar".to_string()]
+                        )])
+                    )])
+                ) == super::UnitComparison::UnequalNeedsReload
+            );
+
+            assert!(
+                super::compare_units(
+                    &HashMap::from([(
+                        "Unit".to_string(),
+                        HashMap::from([(
+                            "X-Reload-Triggers".to_string(),
+                            vec!["foobar".to_string()]
+                        )])
+                    )]),
+                    &HashMap::from([(
+                        "Unit".to_string(),
+                        HashMap::from([(
+                            "X-Reload-Triggers".to_string(),
+                            vec!["barfoo".to_string()]
+                        )])
+                    )])
+                ) == super::UnitComparison::UnequalNeedsReload
+            );
+
+            assert!(
+                super::compare_units(
+                    &HashMap::from([(
+                        "Mount".to_string(),
+                        HashMap::from([("Type".to_string(), vec!["ext4".to_string()])])
+                    )]),
+                    &HashMap::from([(
+                        "Mount".to_string(),
+                        HashMap::from([("Type".to_string(), vec!["btrfs".to_string()])])
+                    )])
+                ) == super::UnitComparison::UnequalNeedsRestart
+            );
+        }
+    }
+}
diff --git a/pkgs/development/tools/treefmt/default.nix b/pkgs/by-name/tr/treefmt/package.nix
index 48fc4b44962e8..48fc4b44962e8 100644
--- a/pkgs/development/tools/treefmt/default.nix
+++ b/pkgs/by-name/tr/treefmt/package.nix
diff --git a/pkgs/by-name/tr/treefmt2/package.nix b/pkgs/by-name/tr/treefmt2/package.nix
new file mode 100644
index 0000000000000..defe9100906aa
--- /dev/null
+++ b/pkgs/by-name/tr/treefmt2/package.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+buildGoModule rec {
+  pname = "treefmt";
+  version = "2.0.0-rc1";
+
+  src = fetchFromGitHub {
+    owner = "numtide";
+    repo = "treefmt";
+    rev = "v${version}";
+    hash = "sha256-iRjd7iYd3617XZrGD6Bi6d1SoE8dgATMbT4AMXklfgM=";
+  };
+
+  vendorHash = "sha256-xbXy5Csl2JD5/F5mtvh8J36VZqrUIfO3OBV/LE+KzWA=";
+
+  subPackages = [ "." ];
+
+  CGO_ENABLED = 1;
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X git.numtide.com/numtide/treefmt/build.Name=${pname}"
+    "-X git.numtide.com/numtide/treefmt/build.Version=v${version}"
+  ];
+
+  meta = {
+    description = "one CLI to format the code tree";
+    homepage = "https://github.com/numtide/treefmt";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.brianmcgee lib.maintainers.zimbatm ];
+    mainProgram = "treefmt";
+  };
+}
diff --git a/pkgs/servers/uxplay/default.nix b/pkgs/by-name/ux/uxplay/package.nix
index 34c0a59e84adf..53c2c76f5ab50 100644
--- a/pkgs/servers/uxplay/default.nix
+++ b/pkgs/by-name/ux/uxplay/package.nix
@@ -1,14 +1,16 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, openssl
-, libplist
-, pkg-config
-, wrapGAppsHook3
-, avahi
-, avahi-compat
-, gst_all_1
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  openssl,
+  libplist,
+  pkg-config,
+  wrapGAppsHook3,
+  avahi,
+  avahi-compat,
+  gst_all_1,
+  nix-update-script,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -47,12 +49,15 @@ stdenv.mkDerivation (finalAttrs: {
     gst_all_1.gst-libav
   ];
 
+  passthru.updateScript = nix-update-script { };
+
   meta = {
+    changelog = "https://github.com/FDH2/UxPlay/releases/tag/v${finalAttrs.version}";
     description = "AirPlay Unix mirroring server";
     homepage = "https://github.com/FDH2/UxPlay";
     license = lib.licenses.gpl3Plus;
+    mainProgram = "uxplay";
     maintainers = [ lib.maintainers.azuwis ];
     platforms = lib.platforms.unix;
-    mainProgram = "uxplay";
   };
 })
diff --git a/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix b/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
index 9f910079eef1c..a38699cf0ddc3 100644
--- a/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
+++ b/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "wireguard-vanity-keygen";
-  version = "0.0.8";
+  version = "0.0.9";
 
   src = fetchFromGitHub {
     owner = "axllent";
     repo = "wireguard-vanity-keygen";
     rev = version;
-    hash = "sha256-qTVPPr7lmjMvUqetDupZCo8RdoBHr++0V9CB4b6Bp4Y=";
+    hash = "sha256-K5lJSDRBf3NCs6v+HmjYJiHjfKt/6djvM847/C4qfeI=";
   };
 
-  vendorHash = "sha256-9/waDAfHYgKh+FsGZEp7HbgI83urRDQPuvtuEKHOf58=";
+  vendorHash = "sha256-kAPw5M9o99NijCC9BzYhIpzHK/8fSAJxvckaj8iRby0=";
 
   ldflags = [ "-s" "-w" "-X main.appVersion=${version}" ];
 
diff --git a/pkgs/by-name/wt/wttrbar/package.nix b/pkgs/by-name/wt/wttrbar/package.nix
index 6cba42d0c1582..0d3fce04d1c1c 100644
--- a/pkgs/by-name/wt/wttrbar/package.nix
+++ b/pkgs/by-name/wt/wttrbar/package.nix
@@ -8,18 +8,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wttrbar";
-  version = "0.9.4";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "bjesus";
     repo = "wttrbar";
     rev = version;
-    hash = "sha256-kRrVqUfkrSK/9z3Hj4J+mKcdV7JdTzjhxlVRa/kf8sw=";
+    hash = "sha256-rUiLB0M/dzNxzBPAqlGy5m/gOTGYw4GRzb+ud0l/1+8=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Security SystemConfiguration ]);
 
-  cargoHash = "sha256-HxSyGME95FWR5VwodmrMUX0jPlfE9SJV0WBbICuuTok=";
+  cargoHash = "sha256-v415OJ6dmWSLUDeFUtd27mBaQlB3x1vC37sjpMhKyYY=";
 
   passthru.updateScript = nix-update-script { };
 
diff --git a/pkgs/by-name/xd/xdg-terminal-exec-mkhl/package.nix b/pkgs/by-name/xd/xdg-terminal-exec-mkhl/package.nix
new file mode 100644
index 0000000000000..1d6e61edb6b0a
--- /dev/null
+++ b/pkgs/by-name/xd/xdg-terminal-exec-mkhl/package.nix
@@ -0,0 +1,27 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitea,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "xdg-terminal-exec-mkhl";
+  version = "0.2.0";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "mkhl";
+    repo = "xdg-terminal-exec";
+    rev = "v${version}";
+    hash = "sha256-iVp+tg+OujMMddKsQ/T9wyqh/Jk/j/jQgsl23uQA/iM=";
+  };
+
+  cargoHash = "sha256-x2oEPFx2KRhnKPX3QjGBM16nkYGclxR5mELGYvxjtMA=";
+
+  meta = {
+    description = "Alternative rust-based implementation of the proposed XDG Default Terminal Execution Specification";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "xdg-terminal-exec";
+    maintainers = with lib.maintainers; [ quantenzitrone ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/tools/wayland/ydotool/default.nix b/pkgs/by-name/yd/ydotool/package.nix
index 42f95735de597..137a701d87a36 100644
--- a/pkgs/tools/wayland/ydotool/default.nix
+++ b/pkgs/by-name/yd/ydotool/package.nix
@@ -1,13 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, cmake, scdoc, util-linux, xorg }:
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  scdoc,
+  util-linux,
+  xorg,
+  nixosTests,
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "ydotool";
   version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "ReimuNotMoe";
     repo = "ydotool";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-MtanR+cxz6FsbNBngqLE+ITKPZFHmWGsD1mBDk0OVng=";
   };
 
@@ -19,13 +28,22 @@ stdenv.mkDerivation rec {
   '';
 
   strictDeps = true;
-  nativeBuildInputs = [ cmake scdoc ];
+  nativeBuildInputs = [
+    cmake
+    scdoc
+  ];
 
-  meta = with lib; {
-    homepage = "https://github.com/ReimuNotMoe/ydotool";
+  passthru.tests.basic = nixosTests.ydotool;
+
+  meta = {
     description = "Generic Linux command-line automation tool";
-    license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ willibutz kraem ];
-    platforms = with platforms; linux;
+    homepage = "https://github.com/ReimuNotMoe/ydotool";
+    license = lib.licenses.agpl3Plus;
+    mainProgram = "ydotool";
+    maintainers = with lib.maintainers; [
+      willibutz
+      kraem
+    ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/data/themes/colloid-gtk-theme/default.nix b/pkgs/data/themes/colloid-gtk-theme/default.nix
index ef69114c855e0..60849a407d866 100644
--- a/pkgs/data/themes/colloid-gtk-theme/default.nix
+++ b/pkgs/data/themes/colloid-gtk-theme/default.nix
@@ -22,13 +22,13 @@ lib.checkListOfEnum "${pname}: tweaks" [ "nord" "dracula" "gruvbox" "everforest"
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2024-04-14";
+  version = "2024-05-13";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-DQYnR2V86KbIJfAA4ObRtKQq1IuECie1qdOBYVu8NtA=";
+    hash = "sha256-24U1iMByy+cFQuLUWYPBSuvJwYzwS0rCr7L6OWyMUz0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix
index 229a19f1b9668..d21264f4e075c 100644
--- a/pkgs/data/themes/dracula-theme/default.nix
+++ b/pkgs/data/themes/dracula-theme/default.nix
@@ -2,7 +2,7 @@
 
 let
   themeName = "Dracula";
-  version = "4.0.0-unstable-2024-04-24";
+  version = "4.0.0-unstable-2024-05-12";
 in
 stdenvNoCC.mkDerivation {
   pname = "dracula-theme";
@@ -11,8 +11,8 @@ stdenvNoCC.mkDerivation {
   src = fetchFromGitHub {
     owner = "dracula";
     repo = "gtk";
-    rev = "5e9a46b7610da0944a8131bbf08487861cae2c46";
-    hash = "sha256-pKKEZ/GheyIf6pPb+Sz4AfF8oRlf1Jk4cl0tub5Ye10=";
+    rev = "98ad13fb6efbdcbf944b3c5507de01cf94338c0c";
+    hash = "sha256-qF35jUvoDw3xMGGscET18sKqqQ0+oZJYNnSXbvy7ayM=";
   };
 
   propagatedUserEnvPkgs = [
diff --git a/pkgs/development/compilers/erg/default.nix b/pkgs/development/compilers/erg/default.nix
index 9d02f1f4a9968..6a8741be05818 100644
--- a/pkgs/development/compilers/erg/default.nix
+++ b/pkgs/development/compilers/erg/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "erg";
-  version = "0.6.35";
+  version = "0.6.36";
 
   src = fetchFromGitHub {
     owner = "erg-lang";
     repo = "erg";
     rev = "v${version}";
-    hash = "sha256-aDYT2bXd2OcRRgYd6ycjeLPQ1LuRxejivhEFkiqZoGw=";
+    hash = "sha256-fwuAlIUPEzc2ZjKJ+4gdzXM679MAAJpg9Mh0d7LAt5s=";
   };
 
-  cargoHash = "sha256-I5g+Nqdr/UYS/+F9sGelOSnb2vnT5vHc0/VeRASBsQY=";
+  cargoHash = "sha256-MfetCaYK5bBsV6EszNkwqlBFMykmLW7jX4gZWuIbHek=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/development/compilers/ocaml/5.2.nix b/pkgs/development/compilers/ocaml/5.2.nix
index 8df6f1d5d48ea..5a0c2783207a8 100644
--- a/pkgs/development/compilers/ocaml/5.2.nix
+++ b/pkgs/development/compilers/ocaml/5.2.nix
@@ -1,9 +1,6 @@
 import ./generic.nix {
   major_version = "5";
   minor_version = "2";
-  patch_version = "0-beta2";
-  src = fetchTarball {
-    url = "https://caml.inria.fr/pub/distrib/ocaml-5.2/ocaml-5.2.0~beta2.tar.xz";
-    sha256 = "sha256:1cyw0w79j7kyr3x0ivsqm1si704b29ic33yj621dq7f125jabk00";
-  };
+  patch_version = "0";
+  sha256 = "sha256-L0v0efUUefm/jH8WlKbqcza793T0rW2mtZ0a1JOd2Kc=";
 }
diff --git a/pkgs/development/libraries/cjson/default.nix b/pkgs/development/libraries/cjson/default.nix
index e6e09a7ffe3ba..38be1c30cd468 100644
--- a/pkgs/development/libraries/cjson/default.nix
+++ b/pkgs/development/libraries/cjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cjson";
-  version = "1.7.17";
+  version = "1.7.18";
 
   src = fetchFromGitHub {
     owner = "DaveGamble";
     repo = "cJSON";
     rev = "v${version}";
-    sha256 = "sha256-jU9UbXvdXiNXFh7c9p/LppMsuqryFK40NTTyQGbNU84=";
+    sha256 = "sha256-UgUWc/+Zie2QNijxKK5GFe4Ypk97EidG8nTiiHhn5Ys=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index d5202e113764a..70d24842a86e3 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -23,7 +23,10 @@
 , testers
 , gobject-introspection
 , mesonEmulatorHook
-, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages && lib.meta.availableOn stdenv.hostPlatform gobject-introspection
+, withIntrospection ?
+  stdenv.hostPlatform.emulatorAvailable buildPackages &&
+  lib.meta.availableOn stdenv.hostPlatform gobject-introspection &&
+  stdenv.hostPlatform.isLittleEndian == stdenv.buildPlatform.isLittleEndian
 }:
 
 assert stdenv.isLinux -> util-linuxMinimal != null;
diff --git a/pkgs/development/libraries/libeatmydata/default.nix b/pkgs/development/libraries/libeatmydata/default.nix
index 9e8d5970431c9..7be484538ab12 100644
--- a/pkgs/development/libraries/libeatmydata/default.nix
+++ b/pkgs/development/libraries/libeatmydata/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , fetchpatch2
-, fetchurl
 , autoreconfHook
 , strace
 , which
@@ -25,16 +24,6 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/861ac185a6b60134292ff93d40e40b5391d0aa8e/srcpkgs/libeatmydata/patches/musl.patch";
       hash = "sha256-MZfTgf2Qn94UpPlYNRM2zK99iKQorKQrlbU5/1WJhJM=";
     })
-
-    # Don't use transitional LFS64 API, removed in musl 1.2.4.
-    (fetchurl {
-      url = "https://git.alpinelinux.org/aports/plain/main/libeatmydata/lfs64.patch?id=f87f2c59384cc4a8a1b71aaa875be2b3ae2dbce0";
-      hash = "sha256-5Jhy9gunKcbrSmLh0DoP/uwJLgaLd+zKV2iVxiDwiHs=";
-    })
-  ];
-
-  configureFlags = [
-    "CFLAGS=-D_FILE_OFFSET_BITS=64"
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/openimagedenoise/default.nix b/pkgs/development/libraries/openimagedenoise/default.nix
index e2d9b66004ed6..ad68505ad609f 100644
--- a/pkgs/development/libraries/openimagedenoise/default.nix
+++ b/pkgs/development/libraries/openimagedenoise/default.nix
@@ -3,34 +3,54 @@
   config,
   cudaPackages,
   cudaSupport ? config.cudaSupport,
+  darwin,
   fetchzip,
   ispc,
   lib,
   python3,
   stdenv,
   tbb,
+  xcodebuild,
 }:
 
-stdenv.mkDerivation rec {
+let
+  stdenv' = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+in
+stdenv'.mkDerivation (finalAttrs: {
   pname = "openimagedenoise";
   version = "2.2.2";
 
   # The release tarballs include pretrained weights, which would otherwise need to be fetched with git-lfs
   src = fetchzip {
-    url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${version}/oidn-${version}.src.tar.gz";
+    url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${finalAttrs.version}/oidn-${finalAttrs.version}.src.tar.gz";
     sha256 = "sha256-ZIrs4oEb+PzdMh2x2BUFXKyu/HBlFb3CJX24ciEHy3Q=";
   };
 
   patches = lib.optional cudaSupport ./cuda.patch;
 
+  postPatch =
+    ''
+      substituteInPlace devices/metal/CMakeLists.txt \
+        --replace-fail "AppleClang" "Clang"
+    '';
+
   nativeBuildInputs = [
     cmake
     python3
     ispc
-  ] ++ lib.optional cudaSupport cudaPackages.cuda_nvcc;
+  ] ++ lib.optional cudaSupport cudaPackages.cuda_nvcc
+    ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
 
   buildInputs =
     [ tbb ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk_11_0.frameworks;
+      [
+        Accelerate
+        MetalKit
+        MetalPerformanceShadersGraph
+      ]
+    )
     ++ lib.optionals cudaSupport [
       cudaPackages.cuda_cudart
       cudaPackages.cuda_cccl
@@ -50,4 +70,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     changelog = "https://github.com/OpenImageDenoise/oidn/blob/v${version}/CHANGELOG.md";
   };
-}
+})
diff --git a/pkgs/development/libraries/openvdb/default.nix b/pkgs/development/libraries/openvdb/default.nix
index 5af5a27f34f50..bbb8aa47a35d6 100644
--- a/pkgs/development/libraries/openvdb/default.nix
+++ b/pkgs/development/libraries/openvdb/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec
 
   buildInputs = [ boost tbb jemalloc c-blosc zlib ];
 
-  cmakeFlags = [ "-DOPENVDB_CORE_STATIC=OFF" ];
+  cmakeFlags = [ "-DOPENVDB_CORE_STATIC=OFF" "-DOPENVDB_BUILD_NANOVDB=ON"];
 
   # error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
   env = lib.optionalAttrs (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13" && lib.versionAtLeast tbb.version "2021.8.0") {
diff --git a/pkgs/development/libraries/pinocchio/default.nix b/pkgs/development/libraries/pinocchio/default.nix
index add7ef6fde22e..86f0c891b2a90 100644
--- a/pkgs/development/libraries/pinocchio/default.nix
+++ b/pkgs/development/libraries/pinocchio/default.nix
@@ -4,7 +4,9 @@
 , cmake
 , boost
 , eigen
+, example-robot-data
 , collisionSupport ? !stdenv.isDarwin
+, jrl-cmakemodules
 , hpp-fcl
 , urdfdom
 , pythonSupport ? false
@@ -13,16 +15,22 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pinocchio";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    fetchSubmodules = true;
-    hash = "sha256-yhrG+MilGJkvwLUNTAgNhDqUWGjPswjrbg38yOLsmHc=";
+    hash = "sha256-Ks5dvKi5iutjM+iovDOYGx3vsr45JWRqGOXV8+Ko4gg=";
   };
 
+  # example-robot-data models are used in checks.
+  # Upstream provide them as git submodule, but we can use our own version instead.
+  postPatch = ''
+    rmdir models/example-robot-data
+    ln -s ${example-robot-data.src} models/example-robot-data
+  '';
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -30,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   propagatedBuildInputs = [
+    jrl-cmakemodules
     urdfdom
   ] ++ lib.optionals (!pythonSupport) [
     boost
@@ -43,15 +52,13 @@ stdenv.mkDerivation (finalAttrs: {
     python3Packages.hpp-fcl
   ];
 
-  cmakeFlags = lib.optionals collisionSupport [
-    "-DBUILD_WITH_COLLISION_SUPPORT=ON"
-  ] ++ lib.optionals pythonSupport [
-    "-DBUILD_WITH_LIBPYTHON=ON"
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport)
+    (lib.cmakeBool "BUILD_WITH_LIBPYTHON" pythonSupport)
+    (lib.cmakeBool "BUILD_WITH_COLLISION_SUPPORT" collisionSupport)
   ] ++ lib.optionals (pythonSupport && stdenv.isDarwin) [
     # AssertionError: '.' != '/tmp/nix-build-pinocchio-2.7.0.drv/sou[84 chars].dae'
     "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;test-py-bindings_geometry_model_urdf'"
-  ] ++ lib.optionals (!pythonSupport) [
-    "-DBUILD_PYTHON_INTERFACE=OFF"
   ];
 
   doCheck = true;
@@ -60,11 +67,11 @@ stdenv.mkDerivation (finalAttrs: {
     "pinocchio"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives";
     homepage = "https://github.com/stack-of-tasks/pinocchio";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ nim65s wegank ];
-    platforms = platforms.unix;
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ nim65s wegank ];
+    platforms = lib.platforms.unix;
   };
 })
diff --git a/pkgs/development/libraries/science/biology/bicpl/default.nix b/pkgs/development/libraries/science/biology/bicpl/default.nix
index c15689aa606a0..45d1b159d0747 100644
--- a/pkgs/development/libraries/science/biology/bicpl/default.nix
+++ b/pkgs/development/libraries/science/biology/bicpl/default.nix
@@ -1,19 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libminc, netpbm }:
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  cmake,
+  libminc,
+  netpbm,
+}:
 
 stdenv.mkDerivation rec {
   pname = "bicpl";
-  version = "unstable-2020-10-15";
+  version = "unstable-2023-01-19";
 
-  # current master is significantly ahead of most recent release, so use Git version:
+  # master is not actively maintained, using develop and develop-apple branches
   src = fetchFromGitHub {
-    owner  = "BIC-MNI";
-    repo   = pname;
-    rev    = "a58af912a71a4c62014975b89ef37a8e72de3c9d";
-    sha256 = "0iw0pmr8xrifbx5l8a0xidfqbm1v8hwzqrw0lcmimxlzdihyri0g";
+    owner = "BIC-MNI";
+    repo = pname;
+    rev = "884b3ac8db945a17df51a325d29f49b825a61c3e";
+    hash = "sha256-zAA+hPwjMawQ1rJuv8W30EqKO+AI0aq9ybquBnKlzC0=";
   };
 
+  patches = [
+    # fixes build by including missing time.h header
+    (fetchpatch {
+      url = "https://github.com/RaghavSood/bicpl/commit/3def4acd6bae61ff7a930ef8422ad920690382a6.patch";
+      hash = "sha256-VdAKuLWTZY7JriK1rexIiuj8y5ToaSEJ5Y+BbnfdYnI=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ libminc netpbm ];
+  buildInputs = [
+    libminc
+    netpbm
+  ];
 
   cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" ];
 
@@ -25,6 +44,9 @@ stdenv.mkDerivation rec {
     description = "Brain Imaging Centre programming library";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license   = with licenses; [ hpndUc gpl3Plus ];
+    license = with licenses; [
+      hpndUc
+      gpl3Plus
+    ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/openspecfun/default.nix b/pkgs/development/libraries/science/math/openspecfun/default.nix
index 14befd6d11fe1..53a613522bb05 100644
--- a/pkgs/development/libraries/science/math/openspecfun/default.nix
+++ b/pkgs/development/libraries/science/math/openspecfun/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "openspecfun";
-  version = "0.5.6";
+  version = "0.5.7";
   src = fetchFromGitHub {
     owner = "JuliaLang";
     repo = "openspecfun";
     rev = "v${version}";
-    sha256 = "sha256-4MPoRMtDTkdvDfhNXKk/80pZjXRNEPcysLNTb5ohxWk=";
+    sha256 = "sha256-fx9z6bbU2V4x6Pr7/vmlSxkWxZ6qTYuPxnfqKLv08CA=";
   };
 
   makeFlags = [ "prefix=$(out)" ];
diff --git a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix b/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
index 30e2a343e2d07..b7887bce3e1b2 100644
--- a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
+++ b/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing";
     description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
     license = licenses.bsd3;
-    # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/v0.3.1/webrtc/rtc_base/system/arch.h
+    # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/v0.3.1/webrtc/typedefs.h
     # + our patches
     platforms = intersectLists platforms.unix (platforms.arm ++ platforms.aarch64 ++ platforms.mips ++ platforms.power ++ platforms.riscv ++ platforms.x86);
   };
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index ddda6aeb63ab6..7eea1ba9930c8 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -709,9 +709,11 @@ in
     propagatedBuildInputs = oa.propagatedBuildInputs ++ [ sol2 ];
 
     postPatch = ''
-      substituteInPlace CMakeLists.txt --replace-fail \
-        "TOML_PLUS_PLUS_SRC" \
-        "${tomlplusplus.src}"
+      substituteInPlace CMakeLists.txt \
+        --replace-fail "TOML_PLUS_PLUS_SRC" "${tomlplusplus.src}/include/toml++" \
+        --replace-fail "MAGIC_ENUM_SRC" "${magic-enum.src}/include/magic_enum"
+
+      cat CMakeLists.txt
     '';
   });
 
diff --git a/pkgs/development/lua-modules/toml.patch b/pkgs/development/lua-modules/toml.patch
index db09dd66db5eb..e04fc5d630f95 100644
--- a/pkgs/development/lua-modules/toml.patch
+++ b/pkgs/development/lua-modules/toml.patch
@@ -1,16 +1,16 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index faae37a..6990d4a 100644
+index ab3884c..c0fd356 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -38,26 +38,17 @@ include(FetchContent)
+@@ -38,32 +38,23 @@ include(FetchContent)
  
  FetchContent_Declare(
  	${TOML++}
 -	GIT_REPOSITORY "https://github.com/marzer/tomlplusplus.git"
 -	GIT_SHALLOW ON
 -    GIT_SUBMODULES ""
--	GIT_TAG "v3.4.0"
-+      DOWNLOAD_COMMAND true
+-	GIT_TAG "v3.3.0"
++  DOWNLOAD_COMMAND true
  )
  
  FetchContent_Declare(
@@ -19,7 +19,7 @@ index faae37a..6990d4a 100644
 -	GIT_SHALLOW ON
 -    GIT_SUBMODULES ""
 -	GIT_TAG "v3.3.0"
-+      DOWNLOAD_COMMAND true
++  DOWNLOAD_COMMAND true
  )
  
  FetchContent_Declare(
@@ -27,26 +27,35 @@ index faae37a..6990d4a 100644
 -	GIT_REPOSITORY "https://github.com/Neargye/magic_enum.git"
 -	GIT_SHALLOW ON
 -    GIT_SUBMODULES ""
--	GIT_TAG "v0.9.5"
-+      DOWNLOAD_COMMAND true
+-	GIT_TAG "v0.8.2"
++  DOWNLOAD_COMMAND true
  )
  
  FetchContent_GetProperties(${TOML++})
-@@ -112,7 +103,7 @@ if(NOT LUA_INCLUDE_DIR OR (WIN32 AND NOT LUA_LIBRARIES))
+ if(NOT ${TOML++}_POPULATED)
+     message(STATUS "Cloning ${TOML++}")
+-	FetchContent_Populate(${TOML++}) 
++	FetchContent_Populate(${TOML++})
+     FetchContent_MakeAvailable(${TOML++})
+ endif()
+ 
+@@ -113,7 +104,7 @@ if(NOT LUA_INCLUDE_DIR OR (WIN32 AND NOT LUA_LIBRARIES))
      find_package(Lua)
  endif()
  
 -include_directories(${LUA_INCLUDE_DIR} src src/include ${${TOML++}_SOURCE_DIR} ${${SOL2}_SOURCE_DIR}/include ${${MAGIC_ENUM}_SOURCE_DIR}/include)
-+include_directories(${LUA_INCLUDE_DIR} src src/include TOML_PLUS_PLUS_SRC ${${SOL2}_SOURCE_DIR}/include MAGIC_ENUM_SRC/include)
++include_directories(${LUA_INCLUDE_DIR} src src/include TOML_PLUS_PLUS_SRC ${${SOL2}_SOURCE_DIR}/include MAGIC_ENUM_SRC)
  
  set(SOURCES
      src/toml.cpp
-@@ -129,7 +120,7 @@ source_group(src FILES ${SOURCES})
- if(WIN32 AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR MSVC)
+@@ -129,8 +120,8 @@ source_group(src FILES ${SOURCES})
+ 
+ if(WIN32 AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
  	target_link_options(toml.lua PUBLIC ${PROJECT_SOURCE_DIR}\\libs\\lua51.lib)
- else() 
--    target_link_libraries(toml.lua ${LUA_LIBRARIES} tomlplusplus::tomlplusplus)    
-+    target_link_libraries(toml.lua ${LUA_LIBRARIES} tomlplusplus)
+-else() 
+-    target_link_libraries(toml.lua ${LUA_LIBRARIES})    
++else()
++    target_link_libraries(toml.lua ${LUA_LIBRARIES})
  endif()
  
  if (LINK_FLAGS)
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index 73f7c0aaccd20..30b955876ace5 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -1,7 +1,6 @@
 { buildDunePackage
 , lib
 , fetchFromGitHub
-, fetchpatch
 , which
 , ocsigen_server
 , lwt_react
@@ -18,19 +17,13 @@
 
 buildDunePackage rec {
   pname = "eliom";
-  version = "10.3.1";
+  version = "10.4.1";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "eliom";
     rev = version;
-    hash = "sha256-REOyxwnQqWOKywVYwN/WP22cNKZv5Nv0OpFVbNBPJN8=";
-  };
-
-  # Compatibility with tyxml 4.6.x
-  patches = fetchpatch {
-    url = "https://github.com/ocsigen/eliom/commit/9a6adcce3959a37b971890999331335d07f4f732.patch";
-    hash = "sha256-rgsqohSAHHljvag3c+HNGEgW9qwmqPq8qfTpX6vVKtg=";
+    hash = "sha256-j4t6GEd8hYyM87b9XvgcnaV9XMkouz6+v0SYW22/bqg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/janestreet/0.16.nix b/pkgs/development/ocaml-modules/janestreet/0.16.nix
index 526ea44808cd7..59cd7539d1f19 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.16.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.16.nix
@@ -569,13 +569,17 @@ with self;
     propagatedBuildInputs = [ base ppx_jane ];
   };
 
-  ocaml-compiler-libs = janePackage {
+  ocaml-compiler-libs = janePackage ({
     pname = "ocaml-compiler-libs";
-    version = "0.12.4";
-    hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
     minimalOCamlVersion = "4.04.1";
     meta.description = "OCaml compiler libraries repackaged";
-  };
+  } // (if lib.versionAtLeast ocaml.version "5.2" then {
+    version = "0.17.0";
+    hash = "sha256-QaC6BWrpFblra6X1+TrlK+J3vZxLvLJZ2b0427DiQzM=";
+  } else {
+    version = "0.12.4";
+    hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
+  }));
 
   ocaml-embed-file = janePackage {
     pname = "ocaml-embed-file";
diff --git a/pkgs/development/ocaml-modules/odoc-parser/default.nix b/pkgs/development/ocaml-modules/odoc-parser/default.nix
index 90e99427ec09d..5d22d2d712384 100644
--- a/pkgs/development/ocaml-modules/odoc-parser/default.nix
+++ b/pkgs/development/ocaml-modules/odoc-parser/default.nix
@@ -1,23 +1,22 @@
-{ lib, fetchurl, buildDunePackage, ocaml, astring, result, camlp-streams, version ? "2.0.0" }:
+{ lib, fetchurl, buildDunePackage, ocaml, astring, result, camlp-streams, version ? "2.4.2" }:
 
 let param = {
+  "2.4.2" = {
+    sha256 = "sha256-Vjz9uybsijDnN6nPKFoG4LuulT9I4lu7D2n3qZwrpAs=";
+  };
   "2.0.0" = {
     sha256 = "sha256-QHkZ+7DrlXYdb8bsZ3dijZSqGQc0O9ymeLGIC6+zOSI=";
-    extraBuildInputs = [ camlp-streams ];
   };
   "1.0.1" = {
     sha256 = "sha256-orvo5CAbYOmAurAeluQfK6CwW6P1C0T3WDfoovuQfSw=";
-    extraBuildInputs = [ camlp-streams ];
   };
   "1.0.0" = {
     sha256 = "sha256-tqoI6nGp662bK+vE2h7aDXE882dObVfRBFnZNChueqE=";
     max_version = "5.0";
-    extraBuildInputs = [];
   };
   "0.9.0" = {
     sha256 = "sha256-3w2tG605v03mvmZsS2O5c71y66O3W+n3JjFxIbXwvXk=";
     max_version = "5.0";
-    extraBuildInputs = [];
   };
 }."${version}"; in
 
@@ -31,11 +30,14 @@ buildDunePackage rec {
   minimalOCamlVersion = "4.02";
 
   src = fetchurl {
-    url = "https://github.com/ocaml-doc/odoc-parser/releases/download/${version}/odoc-parser-${version}.tbz";
+    url = if lib.versionAtLeast version "2.4"
+      then "https://github.com/ocaml/odoc/releases/download/${version}/odoc-${version}.tbz"
+      else "https://github.com/ocaml-doc/odoc-parser/releases/download/${version}/odoc-parser-${version}.tbz";
     inherit (param) sha256;
   };
 
-  propagatedBuildInputs = [ astring result ] ++ param.extraBuildInputs;
+  propagatedBuildInputs = [ astring result ] ++
+    lib.optional (lib.versionAtLeast version "1.0.1") camlp-streams;
 
   meta = {
     description = "Parser for Ocaml documentation comments";
diff --git a/pkgs/development/ocaml-modules/odoc/default.nix b/pkgs/development/ocaml-modules/odoc/default.nix
index 18be9801a9c01..92d605be157a3 100644
--- a/pkgs/development/ocaml-modules/odoc/default.nix
+++ b/pkgs/development/ocaml-modules/odoc/default.nix
@@ -1,4 +1,5 @@
 { lib, fetchurl, buildDunePackage, ocaml
+, ocaml-crunch
 , astring, cmdliner, cppo, fpath, result, tyxml
 , markup, yojson, sexplib0, jq
 , odoc-parser, ppx_expect, bash, fmt
@@ -6,14 +7,9 @@
 
 buildDunePackage rec {
   pname = "odoc";
-  version = "2.2.1";
+  inherit (odoc-parser) version src;
 
-  src = fetchurl {
-    url = "https://github.com/ocaml/odoc/releases/download/${version}/odoc-${version}.tbz";
-    sha256 = "sha256-F4blO/CCT+HHx7gdKn2EaEal0RZ3lp5jljYfd6OBaAM=";
-  };
-
-  nativeBuildInputs = [ cppo ];
+  nativeBuildInputs = [ cppo ocaml-crunch ];
   buildInputs = [ astring cmdliner fpath result tyxml odoc-parser fmt ];
 
   nativeCheckInputs = [ bash jq ];
diff --git a/pkgs/development/ocaml-modules/pecu/default.nix b/pkgs/development/ocaml-modules/pecu/default.nix
index 746c75fccc1c0..66d9e56c6dc36 100644
--- a/pkgs/development/ocaml-modules/pecu/default.nix
+++ b/pkgs/development/ocaml-modules/pecu/default.nix
@@ -2,15 +2,13 @@
 
 buildDunePackage rec {
   pname = "pecu";
-  version = "0.6";
-
-  duneVersion = "3";
+  version = "0.7";
 
   minimalOCamlVersion = "4.03";
 
   src = fetchurl {
-    url = "https://github.com/mirage/pecu/releases/download/v${version}/pecu-v${version}.tbz";
-    sha256 = "a9d2b7da444c83b20f879f6c3b7fc911d08ac1e6245ad7105437504f9394e5c7";
+    url = "https://github.com/mirage/pecu/releases/download/v${version}/pecu-${version}.tbz";
+    hash = "sha256-rXR3tbFkKNM8MkQAZ2hJU9lO+qQ/qvYghXkYus6f13g=";
   };
 
   # crowbar availability
diff --git a/pkgs/development/ocaml-modules/unstrctrd/default.nix b/pkgs/development/ocaml-modules/unstrctrd/default.nix
index f9e287e21620c..d1ac4ca9acf58 100644
--- a/pkgs/development/ocaml-modules/unstrctrd/default.nix
+++ b/pkgs/development/ocaml-modules/unstrctrd/default.nix
@@ -14,15 +14,13 @@
 
 buildDunePackage rec {
   pname = "unstrctrd";
-  version = "0.3";
+  version = "0.4";
 
   src = fetchzip {
-    url = "https://github.com/dinosaure/unstrctrd/releases/download/v${version}/unstrctrd-v${version}.tbz";
-    sha256 = "0mjm4v7kk75iwwsfnpmxc3bsl8aisz53y7z21sykdp60f4rxnah7";
+    url = "https://github.com/dinosaure/unstrctrd/releases/download/v${version}/unstrctrd-${version}.tbz";
+    hash = "sha256-CGcDqEr+VDTbDYkjxeYB6IFWiTkOTLJJl/Y2bHtv19g=";
   };
 
-  duneVersion = "3";
-
   propagatedBuildInputs = [
     angstrom
     uutf
diff --git a/pkgs/development/octave-modules/ga/default.nix b/pkgs/development/octave-modules/ga/default.nix
index 83d4449594232..6c7f8e0946020 100644
--- a/pkgs/development/octave-modules/ga/default.nix
+++ b/pkgs/development/octave-modules/ga/default.nix
@@ -5,11 +5,11 @@
 
 buildOctavePackage rec {
   pname = "ga";
-  version = "0.10.3";
+  version = "0.10.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
-    sha256 = "sha256-cbP7ucua7DdxLL422INxjZxz/x1pHoIq+jkjrtfaabE=";
+    sha256 = "sha256-hsrjh2rZFhP6WA+qaKjiGfJkDtT2nTlXlKr3jAJ5Y44=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiogram/default.nix b/pkgs/development/python-modules/aiogram/default.nix
index 74d9f070a7219..e15d1a993dccd 100644
--- a/pkgs/development/python-modules/aiogram/default.nix
+++ b/pkgs/development/python-modules/aiogram/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "aiogram";
-  version = "3.5.0";
+  version = "3.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "aiogram";
     repo = "aiogram";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NOaI01Lb969Lp/v38u2UipN9UbOQNJQEbN2JS3lmFno=";
+    hash = "sha256-8hbB6/j9mWONFNpQuC3p91xnHR/74TWA9Cq8E+Gsnlw=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/aiounifi/default.nix b/pkgs/development/python-modules/aiounifi/default.nix
index f4f150c820f82..1bf95b718742b 100644
--- a/pkgs/development/python-modules/aiounifi/default.nix
+++ b/pkgs/development/python-modules/aiounifi/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "77";
+  version = "78";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = "aiounifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-c3UR/AwnQLm6h1jsM6mk6MOii2/xQzFcrci+oG4BsDs=";
+    hash = "sha256-fY3VsXJfs/uqqQjR6Sp03XlkCOk+8GvXq476dgagJQ8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/androidtvremote2/default.nix b/pkgs/development/python-modules/androidtvremote2/default.nix
index a0c066c4d9751..df179dab636be 100644
--- a/pkgs/development/python-modules/androidtvremote2/default.nix
+++ b/pkgs/development/python-modules/androidtvremote2/default.nix
@@ -1,40 +1,37 @@
-{ lib
-, aiofiles
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, protobuf
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiofiles,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  protobuf,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "androidtvremote2";
-  version = "0.0.15";
-  format = "pyproject";
+  version = "0.1.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "tronikos";
     repo = "androidtvremote2";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aLNmuMuwaMhl/Utv6bVU4fR8zmhj0fUiInL4RHT4dVw=";
+    hash = "sha256-Zem2IWBUWmyVdBjqoVKFk+/lg5T7CPXCKFXhFusQFLY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiofiles
     cryptography
     protobuf
   ];
 
-  pythonImportsCheck = [
-    "androidtvremote2"
-  ];
+  pythonImportsCheck = [ "androidtvremote2" ];
 
   # Module only has a dummy test
   doCheck = false;
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index b29ddeedad7fe..e079703d17a0c 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     cryptography
     markdown
@@ -57,7 +57,11 @@ buildPythonPackage rec {
 
   disabledTests = [
     "test_apprise_cli_nux_env"
+    # Nondeterministic. Fails with `assert 0 == 1`
+    "test_notify_emoji_general"
     "test_plugin_mqtt_general"
+    # Nondeterministic. Fails with `AssertionError`
+    "test_plugin_xbmc_kodi_urls"
   ];
 
   disabledTestPaths = [
@@ -76,7 +80,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/caronc/apprise";
     changelog = "https://github.com/caronc/apprise/releases/tag/v${version}";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ getchoo ];
     mainProgram = "apprise";
   };
 }
diff --git a/pkgs/development/python-modules/augmax/default.nix b/pkgs/development/python-modules/augmax/default.nix
index 879bffb8a0d0a..3be4c47136006 100644
--- a/pkgs/development/python-modules/augmax/default.nix
+++ b/pkgs/development/python-modules/augmax/default.nix
@@ -1,6 +1,6 @@
 { buildPythonPackage
 , einops
-, fetchPypi
+, fetchFromGitHub
 , jax
 , jaxlib
 , lib
@@ -15,19 +15,21 @@ buildPythonPackage rec {
 
   disbaled = pythonOlder "3.6";
 
-  # Using fetchPypi because the latest version was not tagged on GitHub.
-  # Switch back to fetchFromGitHub when a tag will be available
-  # https://github.com/khdlr/augmax/issues/8
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-pf1DTaHA7D+s2rqwwGYlJrJOI7fok+WOvOCtZhOOGHo=";
+  src = fetchFromGitHub {
+    owner = "khdlr";
+    repo = "augmax";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-xz6yJiVZUkRcRa2rKZdytfpP+XCk/QI4xtKlNaS9FYo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [ einops jax ];
+  dependencies = [
+    einops
+    jax
+  ];
 
   # augmax does not have any tests at the time of writing (2022-02-19), but
   # jaxlib is necessary for the pythonImportsCheckPhase.
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index 266443af70f02..aa5fa2e2c40db 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "2.1.0";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "Backblaze";
     repo = "b2-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/TuPT+Y0asGGtfRNxxvpX0WkS4O4asFmIuqSdQ4I9fQ=";
+    hash = "sha256-ENEAynUd66sjS+/Qoy9qyffPpSvxdnY1Nwdi+JTE96I=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/bc-detect-secrets/default.nix b/pkgs/development/python-modules/bc-detect-secrets/default.nix
index 421e97de15eb9..7e2a162df53f4 100644
--- a/pkgs/development/python-modules/bc-detect-secrets/default.nix
+++ b/pkgs/development/python-modules/bc-detect-secrets/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "bc-detect-secrets";
-  version = "1.5.9";
+  version = "1.5.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "bridgecrewio";
     repo = "detect-secrets";
     rev = "refs/tags/${version}";
-    hash = "sha256-3O1taxOxVI+36h2Qz+dzOuilmapm9QO4X4XjRgX4kUc=";
+    hash = "sha256-b0t5xv4fWiErQsYvDKTJuweiGLqS2WpR9ECGo/cpvQ8=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/blackjax/default.nix b/pkgs/development/python-modules/blackjax/default.nix
index 6f3403d3c143f..4a0807cd7c49f 100644
--- a/pkgs/development/python-modules/blackjax/default.nix
+++ b/pkgs/development/python-modules/blackjax/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "blackjax";
-  version = "1.2.0";
+  version = "1.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "blackjax-devs";
     repo = "blackjax";
     rev = "refs/tags/${version}";
-    hash = "sha256-vXyxK3xALKG61YGK7fmoqQNGfOiagHFrvnU02WKZThw=";
+    hash = "sha256-VoWBCjFMyE5LVJyf7du/pKlnvDHj22lguiP6ZUzH9ak=";
   };
 
   build-system = [
@@ -56,6 +56,10 @@ buildPythonPackage rec {
   disabledTests = [
     # too slow
     "test_adaptive_tempered_smc"
+  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+    # Numerical test (AssertionError)
+    # https://github.com/blackjax-devs/blackjax/issues/668
+    "test_chees_adaptation"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/cadquery/default.nix b/pkgs/development/python-modules/cadquery/default.nix
deleted file mode 100644
index 5db0b6ae2c997..0000000000000
--- a/pkgs/development/python-modules/cadquery/default.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ lib
-, buildPythonPackage
-, toPythonModule
-, pythonOlder
-, pythonAtLeast
-, fetchFromGitHub
-, pyparsing
-, opencascade-occt
-, stdenv
-, python
-, cmake
-, swig
-, freetype
-, libGL
-, libGLU
-, libX11
-, six
-, pytest
-, makeFontsConf
-, freefont_ttf
-, Cocoa
-}:
-
-let
-  pythonocc-core-cadquery = toPythonModule (stdenv.mkDerivation {
-    pname = "pythonocc-core-cadquery";
-    version = "0.18.2";
-    format = "setuptools";
-
-    src = fetchFromGitHub {
-      owner = "CadQuery";
-      repo = "pythonocc-core";
-      # no proper release to to use, this commit copied from the Anaconda receipe
-      rev = "701e924ae40701cbe6f9992bcbdc2ef22aa9b5ab";
-      sha256 = "07zmiiw74dyj4v0ar5vqkvk30wzcpjjzbi04nsdk5mnlzslmyi6c";
-    };
-
-    nativeBuildInputs = [
-      cmake
-      swig
-    ];
-
-    buildInputs = [
-      python
-      opencascade-occt
-      freetype
-      libGL
-      libGLU
-      libX11
-    ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
-
-    propagatedBuildInputs = [
-      six
-    ];
-
-    cmakeFlags = [
-      "-Wno-dev"
-      "-DPYTHONOCC_INSTALL_DIRECTORY=${placeholder "out"}/${python.sitePackages}/OCC"
-    ];
-  });
-
-in
-  buildPythonPackage rec {
-    pname = "cadquery";
-    version = "2.0";
-
-    src = fetchFromGitHub {
-      owner = "CadQuery";
-      repo = pname;
-      rev = version;
-      sha256 = "1n63b6cjjrdwdfmwq0zx1xabjnhndk9mgfkm4w7z9ardcfpvg84l";
-    };
-
-    buildInputs = [
-      opencascade-occt
-    ];
-
-    propagatedBuildInputs = [
-      pyparsing
-      pythonocc-core-cadquery
-    ];
-
-    FONTCONFIG_FILE = makeFontsConf {
-      fontDirectories = [ freefont_ttf ];
-    };
-
-    nativeCheckInputs = [
-      pytest
-    ];
-
-    disabled = pythonOlder "3.6" || pythonAtLeast "3.8";
-
-    meta = with lib; {
-      description = "Parametric scripting language for creating and traversing CAD models";
-      homepage = "https://github.com/CadQuery/cadquery";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ marcus7070 ];
-      broken = true;
-    };
-  }
diff --git a/pkgs/development/python-modules/coffea/default.nix b/pkgs/development/python-modules/coffea/default.nix
index 86090e3b25562..538e25ee01575 100644
--- a/pkgs/development/python-modules/coffea/default.nix
+++ b/pkgs/development/python-modules/coffea/default.nix
@@ -88,6 +88,8 @@ buildPythonPackage rec {
     "coffea"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Basic tools and wrappers for enabling not-too-alien syntax when running columnar Collider HEP analysis";
     homepage = "https://github.com/CoffeaTeam/coffea";
diff --git a/pkgs/development/python-modules/cryptacular/default.nix b/pkgs/development/python-modules/cryptacular/default.nix
deleted file mode 100644
index 977de2396f2c0..0000000000000
--- a/pkgs/development/python-modules/cryptacular/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
-, coverage, nose, pbkdf2 }:
-
-buildPythonPackage rec {
-  pname = "cryptacular";
-  version = "1.6.2";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7b529cb2b8a3c7e5be77921bf1ebc653d4d3a8f791375cc6f971b20db2404176";
-  };
-
-  buildInputs = [ coverage nose ];
-  propagatedBuildInputs = [ pbkdf2 ];
-
-  # TODO: tests fail: TypeError: object of type 'NoneType' has no len()
-  doCheck = false;
-
-  # Python >=2.7.15, >=3.6.5 are incompatible:
-  # https://bitbucket.org/dholth/cryptacular/issues/11
-  disabled = isPy27 || pythonAtLeast "3.6";
-
-  meta = with lib; {
-    maintainers = with maintainers; [ domenkozar ];
-  };
-}
diff --git a/pkgs/development/python-modules/dask-awkward/default.nix b/pkgs/development/python-modules/dask-awkward/default.nix
index e24b06a23b68c..26f2c2bb5191e 100644
--- a/pkgs/development/python-modules/dask-awkward/default.nix
+++ b/pkgs/development/python-modules/dask-awkward/default.nix
@@ -77,6 +77,8 @@ buildPythonPackage rec {
     "test_basic_root_works"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Native Dask collection for awkward arrays, and the library to use it";
     homepage = "https://github.com/dask-contrib/dask-awkward";
diff --git a/pkgs/development/python-modules/dask-expr/default.nix b/pkgs/development/python-modules/dask-expr/default.nix
index 8a13311116c79..657d588931e7a 100644
--- a/pkgs/development/python-modules/dask-expr/default.nix
+++ b/pkgs/development/python-modules/dask-expr/default.nix
@@ -51,6 +51,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "";
     homepage = "https://github.com/dask/dask-expr";
diff --git a/pkgs/development/python-modules/dask-glm/default.nix b/pkgs/development/python-modules/dask-glm/default.nix
index dd5cfe0d29811..15a7df7fe029c 100644
--- a/pkgs/development/python-modules/dask-glm/default.nix
+++ b/pkgs/development/python-modules/dask-glm/default.nix
@@ -59,6 +59,8 @@ buildPythonPackage rec {
     "test_determinism_distributed"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Generalized Linear Models with Dask";
     homepage = "https://github.com/dask/dask-glm/";
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index 3cb7ed9618b15..9c19a072ee587 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -1,37 +1,47 @@
 { lib
 , buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, hatch-vcs
+, hatchling
+, setuptools-scm
 , dask
+, dask-expr
 , dask-glm
 , distributed
-, fetchPypi
 , multipledispatch
 , numba
 , numpy
 , packaging
 , pandas
-, pythonOlder
 , scikit-learn
 , scipy
-, setuptools-scm
+, pytest-mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "dask-ml";
-  version = "2023.3.24";
-  format = "setuptools";
+  version = "2024.4.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-lsCQ220yg2U24/Ccpk3rWZ6GRYeqjj1NLGtK9YhzMwc=";
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = "dask-ml";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZiBpCk3b4Tk0Hwb4uapJLEx+Nb/qHFROCnkBTNGDzoU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    hatch-vcs
+    hatchling
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    dask-expr
     dask-glm
     distributed
     multipledispatch
@@ -44,9 +54,6 @@ buildPythonPackage rec {
   ] ++ dask.optional-dependencies.array
     ++ dask.optional-dependencies.dataframe;
 
-  # has non-standard build from source, and pypi doesn't include tests
-  doCheck = false;
-
   pythonImportsCheck = [
     "dask_ml"
     "dask_ml.naive_bayes"
@@ -54,10 +61,17 @@ buildPythonPackage rec {
     "dask_ml.utils"
   ];
 
+  nativeCheckInputs = [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Scalable Machine Learn with Dask";
     homepage = "https://github.com/dask/dask-ml";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/devito/default.nix b/pkgs/development/python-modules/devito/default.nix
index 064899b8e78eb..719bdf3aafb0b 100644
--- a/pkgs/development/python-modules/devito/default.nix
+++ b/pkgs/development/python-modules/devito/default.nix
@@ -15,7 +15,6 @@
 , nbval
 , psutil
 , py-cpuinfo
-, pyrevolve
 , pytest-xdist
 , pytestCheckHook
 , pythonOlder
@@ -26,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "devito";
-  version = "4.8.3";
+  version = "4.8.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -35,7 +34,7 @@ buildPythonPackage rec {
     owner = "devitocodes";
     repo = "devito";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g9rRJF1JrZ6+s3tj4RZHuGOjt5LJjtK9I5CJmq4CJL4=";
+    hash = "sha256-unuJLp+zTyGpOk5O78xYbW6Zrzp60WyqgT9mf2YpTG4=";
   };
 
   pythonRemoveDeps = [
@@ -51,7 +50,7 @@ buildPythonPackage rec {
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     anytree
     cached-property
     cgen
@@ -62,7 +61,6 @@ buildPythonPackage rec {
     multidict
     psutil
     py-cpuinfo
-    pyrevolve
     scipy
     sympy
   ] ++ lib.optionals stdenv.cc.isClang [
@@ -99,6 +97,20 @@ buildPythonPackage rec {
     "test_setupWOverQ"
     "test_shortcuts"
     "test_subdomainset_mpi"
+    "test_subdomains_mpi"
+  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+    # FAILED tests/test_unexpansion.py::Test2Pass::test_v0 - assert False
+    "test_v0"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # FAILED tests/test_caching.py::TestCaching::test_special_symbols - ValueError: not enough values to unpack (expected 3, got 2)
+    "test_special_symbols"
+
+    # FAILED tests/test_unexpansion.py::Test2Pass::test_v0 - codepy.CompileError: module compilation failed
+    "test_v0"
+  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    # Numerical tests
+    "test_lm_fb"
+    "test_lm_ds"
   ];
 
   disabledTestPaths = [
@@ -109,6 +121,8 @@ buildPythonPackage rec {
     "tests/test_data.py"
     "tests/test_dse.py"
     "tests/test_gradient.py"
+  ] ++ lib.optionals ((stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin) [
+    "tests/test_dle.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/dirigera/default.nix b/pkgs/development/python-modules/dirigera/default.nix
index 36789741f83aa..7b5f5d536601e 100644
--- a/pkgs/development/python-modules/dirigera/default.nix
+++ b/pkgs/development/python-modules/dirigera/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "dirigera";
-  version = "1.1.6";
+  version = "1.1.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Leggin";
     repo = "dirigera";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OXq8eJyZQBsJEK81GxstfMHqDShlZyOWSXLwP9Zfpqw=";
+    hash = "sha256-KAwXpcs0EvmaxBVgZ7TlT1hDI0m7f8hJigUTluVATsw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 890f579207cac..35c1df57422a1 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2024.4.2";
+  version = "2024.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = "distributed";
     rev = "refs/tags/${version}";
-    hash = "sha256-xoQ+b7qzstZl9gRNs4jssNOsGQHDdvTXU7pTjBSuyWs=";
+    hash = "sha256-9W5BpBQHw1ZXCOWiFPeIlMns/Yys1gtdwQ4Lhd7qjK8=";
   };
 
   postPatch = ''
@@ -43,7 +43,7 @@ buildPythonPackage rec {
       --replace 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     pythonRelaxDepsHook
     setuptools
     setuptools-scm
@@ -54,7 +54,7 @@ buildPythonPackage rec {
     "dask"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     cloudpickle
     dask
diff --git a/pkgs/development/python-modules/dj-rest-auth/default.nix b/pkgs/development/python-modules/dj-rest-auth/default.nix
index e415977d86374..49e0c49e75bb1 100644
--- a/pkgs/development/python-modules/dj-rest-auth/default.nix
+++ b/pkgs/development/python-modules/dj-rest-auth/default.nix
@@ -1,61 +1,46 @@
-{ lib
-, buildPythonPackage
-, django
-, django-allauth
-, djangorestframework
-, djangorestframework-simplejwt
-, fetchFromGitHub
-, fetchpatch
-, python
-, pythonOlder
-, responses
-, setuptools
-, unittest-xml-reporting
+{
+  lib,
+  buildPythonPackage,
+  django,
+  django-allauth,
+  djangorestframework,
+  djangorestframework-simplejwt,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  responses,
+  setuptools,
+  unittest-xml-reporting,
 }:
 
 buildPythonPackage rec {
   pname = "dj-rest-auth";
-  version = "5.0.2";
+  version = "6.0.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "iMerica";
     repo = "dj-rest-auth";
     rev = "refs/tags/${version}";
-    hash = "sha256-TqeNpxXn+v89fEiJ4AVNhp8blCfYQKFQfYmZ6/QlRbQ=";
+    hash = "sha256-fNy1uN3oH54Wd9+EqYpiV0ot1MbSSC7TZoAARQeR81s=";
   };
 
-  patches = [
-    # https://github.com/iMerica/dj-rest-auth/pull/597
-    (fetchpatch {
-      name = "disable-email-confirmation-ratelimit-in-tests-to-support-new-allauth.patch";
-      url = "https://github.com/iMerica/dj-rest-auth/commit/c8f19e18a93f4959da875f9c5cdd32f7d9363bba.patch";
-      hash = "sha256-Y/YBjV+c5Gw1wMR5r/4VnyV/ewUVG0z4pjY/MB4ca9Y=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "==" ">="
+      --replace-fail "==" ">="
+    substituteInPlace dj_rest_auth/tests/test_api.py \
+      --replace-fail "assertEquals" "assertEqual"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  propagatedBuildInputs = [
-    djangorestframework
-  ];
+  dependencies = [ djangorestframework ];
 
-  passthru.optional-dependencies.with_social = [
-    django-allauth
-  ];
+  passthru.optional-dependencies.with_social = [ django-allauth ];
 
   nativeCheckInputs = [
     djangorestframework-simplejwt
@@ -66,7 +51,7 @@ buildPythonPackage rec {
   preCheck = ''
     # Test connects to graph.facebook.com
     substituteInPlace dj_rest_auth/tests/test_serializers.py \
-      --replace "def test_http_error" "def dont_test_http_error"
+      --replace-fail "def test_http_error" "def dont_test_http_error"
   '';
 
   checkPhase = ''
@@ -75,9 +60,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "dj_rest_auth"
-  ];
+  pythonImportsCheck = [ "dj_rest_auth" ];
 
   meta = with lib; {
     description = "Authentication for Django Rest Framework";
diff --git a/pkgs/development/python-modules/dogpile-cache/default.nix b/pkgs/development/python-modules/dogpile-cache/default.nix
index 51d799b90f13f..e03a72626a976 100644
--- a/pkgs/development/python-modules/dogpile-cache/default.nix
+++ b/pkgs/development/python-modules/dogpile-cache/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "dogpile-cache";
-  version = "1.3.2";
+  version = "1.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "dogpile.cache";
     inherit version;
-    hash = "sha256-T3HcAzOtNRycb3BPW6Kje/Ucbu0EN9Gt9W4HWVmv5js=";
+    hash = "sha256-+EuO0LD7KX0VEFVEf6jcr3uuVm1Nve/s3MHzdmKrWIs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/drf-spectacular/default.nix b/pkgs/development/python-modules/drf-spectacular/default.nix
index f38a2fbf86bc7..9b957b53d4a0c 100644
--- a/pkgs/development/python-modules/drf-spectacular/default.nix
+++ b/pkgs/development/python-modules/drf-spectacular/default.nix
@@ -1,42 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, dj-rest-auth
-, django
-, django-allauth
-, django-filter
-, django-oauth-toolkit
-, django-polymorphic
-, django-rest-auth
-, django-rest-polymorphic
-, djangorestframework
-, djangorestframework-camel-case
-, djangorestframework-dataclasses
-, djangorestframework-recursive
-, djangorestframework-simplejwt
-, drf-jwt
-, drf-nested-routers
-, drf-spectacular-sidecar
-, inflection
-, jsonschema
-, psycopg2
-, pytest-django
-, pytestCheckHook
-, pyyaml
-, uritemplate
+{
+  lib,
+  buildPythonPackage,
+  dj-rest-auth,
+  django,
+  django-allauth,
+  django-filter,
+  django-oauth-toolkit,
+  django-polymorphic,
+  django-rest-auth,
+  django-rest-polymorphic,
+  djangorestframework,
+  djangorestframework-camel-case,
+  djangorestframework-dataclasses,
+  djangorestframework-recursive,
+  djangorestframework-simplejwt,
+  drf-jwt,
+  drf-nested-routers,
+  drf-spectacular-sidecar,
+  fetchFromGitHub,
+  fetchpatch,
+  inflection,
+  jsonschema,
+  psycopg2,
+  pytest-django,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  uritemplate,
 }:
 
 buildPythonPackage rec {
   pname = "drf-spectacular";
-  version = "0.27.1";
-  format = "setuptools";
+  version = "0.27.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "tfranzel";
     repo = "drf-spectacular";
     rev = "refs/tags/${version}";
-    hash = "sha256-R6rxEo9SNNziXRWB+01UUInParpGcFDIkDZtN4k+dFE=";
+    hash = "sha256-lOgFDkAY+PqSeyLSvWFT7KPVicSJZxd6yl17GAGHbRs=";
   };
 
   patches = [
@@ -47,7 +52,9 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     django
     djangorestframework
     inflection
@@ -77,10 +84,11 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # requires django with gdal
+    # Test requires django with gdal
     "test_rest_framework_gis"
-    # outdated test artifact
+    # Outdated test artifact
     "test_pydantic_decoration"
+    "test_knox_auth_token"
   ];
 
   pythonImportsCheck = [ "drf_spectacular" ];
diff --git a/pkgs/development/python-modules/equinox/default.nix b/pkgs/development/python-modules/equinox/default.nix
index 976406b399b1e..cd4f60e8bad4a 100644
--- a/pkgs/development/python-modules/equinox/default.nix
+++ b/pkgs/development/python-modules/equinox/default.nix
@@ -48,8 +48,21 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "equinox" ];
 
   disabledTests = [
-    # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
-    "test_tracetime"
+    # For simplicity, JAX has removed its internal frames from the traceback of the following exception.
+    # https://github.com/patrick-kidger/equinox/issues/716
+    "test_abstract"
+    "test_complicated"
+    "test_grad"
+    "test_jvp"
+    "test_mlp"
+    "test_num_traces"
+    "test_pytree_in"
+    "test_simple"
+    "test_vmap"
+
+    # AssertionError: assert 'foo:\n   pri...pe=float32)\n' == 'foo:\n   pri...pe=float32)\n'
+    # Also reported in patrick-kidger/equinox#716
+    "test_backward_nan"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
index b7dba4cf9dbaf..5311a0add5495 100644
--- a/pkgs/development/python-modules/fastcore/default.nix
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "fastcore";
-  version = "1.5.33";
+  version = "1.5.35";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "fastai";
     repo = "fastcore";
     rev = "refs/tags/${version}";
-    hash = "sha256-Zf6bNHMiYEJrLPU1w7OvEavdKIageG+sJ9W8OE/ET0M=";
+    hash = "sha256-dhYmy7dAHmmRfC2mpn49UsE4+hpqMbB1PHGmrowCTIQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/flax/default.nix b/pkgs/development/python-modules/flax/default.nix
index ce41f8e561394..6afe4ef9a2f32 100644
--- a/pkgs/development/python-modules/flax/default.nix
+++ b/pkgs/development/python-modules/flax/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "flax";
-  version = "0.8.2";
+  version = "0.8.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -34,16 +34,16 @@ buildPythonPackage rec {
     owner = "google";
     repo = "flax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UABgJGe1grUSkwOJpjeIoFqhXsqG//HlC1YyYPxXV+g=";
+    hash = "sha256-uDGTyksUZTTL6FiTJP+qteFLOjr75dcTj9yRJ6Jm8xU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     jaxlib
     pythonRelaxDepsHook
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jax
     msgpack
     numpy
diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix
index 7ac5f86b1ee2a..313e6d7c7e48f 100644
--- a/pkgs/development/python-modules/fontbakery/default.nix
+++ b/pkgs/development/python-modules/fontbakery/default.nix
@@ -47,11 +47,11 @@
 
 buildPythonPackage rec {
   pname = "fontbakery";
-  version = "0.12.2";
+  version = "0.12.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sHkTxu8TdPXbUZvpJH46SF8U4JNIzfFb5HJEXCqomOI=";
+    hash = "sha256-DN1v5MQtMhHO12tVPkJUuIfh+X3kb1o71zAwNgtLH+I=";
   };
 
   pyproject = true;
diff --git a/pkgs/development/python-modules/gguf/default.nix b/pkgs/development/python-modules/gguf/default.nix
new file mode 100644
index 0000000000000..767a8472adf83
--- /dev/null
+++ b/pkgs/development/python-modules/gguf/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, numpy
+, poetry-core
+, pythonOlder
+}:
+buildPythonPackage rec {
+  pname = "gguf";
+  version = "0.6.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-suIuq6KhBsGtFIGGoUrZ8pxCk1Fob+nXzhbfOaBgfmU=";
+  };
+
+  dependencies = [
+    numpy
+    poetry-core
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A module for writing binary files in the GGUF format";
+    homepage = "https://ggml.ai/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mitchmindtree ];
+  };
+}
diff --git a/pkgs/development/python-modules/globre/default.nix b/pkgs/development/python-modules/globre/default.nix
deleted file mode 100644
index a270a2b4c430c..0000000000000
--- a/pkgs/development/python-modules/globre/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib
-, pythonAtLeast
-, buildPythonPackage
-, fetchPypi
-, nose
-, coverage
-}:
-
-buildPythonPackage rec {
-  pname = "globre";
-  version = "0.1.5";
-  format = "setuptools";
-  # https://github.com/metagriffin/globre/issues/7
-  disabled = pythonAtLeast "3.7";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1qhjpg0722871dm5m7mmldf6c7mx58fbdvk1ix5i3s9py82448gf";
-  };
-
-  nativeCheckInputs = [ nose coverage ];
-
-  meta = with lib; {
-    homepage = "https://github.com/metagriffin/globre";
-    description = "A python glob-like regular expression generation library.";
-    maintainers = with maintainers; [ glittershark ];
-    license = licenses.gpl3;
-  };
-}
diff --git a/pkgs/development/python-modules/griffe/default.nix b/pkgs/development/python-modules/griffe/default.nix
index 6f385ff9fb7c9..c913971f6d35b 100644
--- a/pkgs/development/python-modules/griffe/default.nix
+++ b/pkgs/development/python-modules/griffe/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "griffe";
-  version = "0.44.0";
+  version = "0.45.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "griffe";
     rev = "refs/tags/${version}";
-    hash = "sha256-jZ5QK6HiQ0C5miFYGavIlScJHmocy6frzC2c8xTvYOw=";
+    hash = "sha256-nczu6Neh1feSZyyMrXyiXU1aDIjOsX6RKqaH+Qw8yrQ=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/hikari/default.nix b/pkgs/development/python-modules/hikari/default.nix
index e76d7780c0bfa..062a6a9ebe14c 100644
--- a/pkgs/development/python-modules/hikari/default.nix
+++ b/pkgs/development/python-modules/hikari/default.nix
@@ -17,13 +17,13 @@
 }:
 buildPythonPackage rec {
   pname = "hikari";
-  version = "2.0.0.dev124";
+  version = "2.0.0.dev125";
 
   src = fetchFromGitHub {
     owner = "hikari-py";
     repo = "hikari";
     rev = version;
-    hash = "sha256-zDgU3Ol/I3YNnwXm+aBh20KwonW746p5TObuwuWORog=";
+    hash = "sha256-qxgIYquXUWrm8bS8EamERMHOnjI2aPyK7bQieVG66uA=";
     # The git commit is part of the `hikari.__git_sha1__` original output;
     # leave that output the same in nixpkgs. Use the `.git` directory
     # to retrieve the commit SHA, and remove the directory afterwards,
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index e160eec612cf1..80b02765550fb 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -29,7 +29,7 @@ let
 in
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.4.25";
+  version = "0.4.28";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     repo = "jax";
     # google/jax contains tags for jax and jaxlib. Only use jax tags!
     rev = "refs/tags/jax-v${version}";
-    hash = "sha256-poQQo2ZgEhPYzK3aCs+BjaHTNZbezJAECd+HOdY1Yok=";
+    hash = "sha256-qSHPwi3is6Ts7pz5s4KzQHBMbcjGp+vAOsejW3o36Ek=";
   };
 
   nativeBuildInputs = [
@@ -81,6 +81,14 @@ buildPythonPackage rec {
     "tests/"
   ];
 
+  # Prevents `tests/export_back_compat_test.py::CompatTest::test_*` tests from failing on darwin with
+  # PermissionError: [Errno 13] Permission denied: '/tmp/back_compat_testdata/test_*.py'
+  # See https://github.com/google/jax/blob/jaxlib-v0.4.27/jax/_src/internal_test_util/export_back_compat_test_util.py#L240-L241
+  # NOTE: this doesn't seem to be an issue on linux
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    export TEST_UNDECLARED_OUTPUTS_DIR=$(mktemp -d)
+  '';
+
   disabledTests = [
     # Exceeds tolerance when the machine is busy
     "test_custom_linear_solve_aux"
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index 2b65aa591aa8c..d2bf3604a78d9 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -20,17 +20,17 @@
 , stdenv
   # Options:
 , cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
+, cudaPackages
 }:
 
 let
-  inherit (cudaPackagesGoogle) cudaVersion;
+  inherit (cudaPackages) cudaVersion;
 
-  version = "0.4.24";
+  version = "0.4.28";
 
   inherit (python) pythonVersion;
 
-  cudaLibPath = lib.makeLibraryPath (with cudaPackagesGoogle; [
+  cudaLibPath = lib.makeLibraryPath (with cudaPackages; [
     cuda_cudart.lib # libcudart.so
     cuda_cupti.lib # libcupti.so
     cudnn.lib # libcudnn.so
@@ -56,65 +56,65 @@ let
       "3.9-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp39";
-        hash = "sha256-6P5ArMoLZiUkHUoQ/mJccbNj5/7el/op+Qo6cGQ33xE=";
+        hash = "sha256-Slbr8FtKTBeRaZ2HTgcvP4CPCYa0AQsU+1SaackMqdw=";
       };
       "3.9-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp39";
-        hash = "sha256-23JQZRwMLtt7sK/JlCBqqRyfTVIAVJFN2sL+nAkQgvU=";
+        hash = "sha256-sBVi7IrXVxm30DiXUkiel+trTctMjBE75JFjTVKCrTw=";
       };
       "3.9-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp39";
-        hash = "sha256-OgMedn9GHGs5THZf3pkP3Aw/jJ0vL5qK1b+Lzf634Ik=";
+        hash = "sha256-T5jMg3srbG3P4Kt/+esQkxSSCUYRmqOvn6oTlxj/J4c=";
       };
 
       "3.10-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp310";
-        hash = "sha256-/VwUIIa7mTs/wLz0ArsEfNrz2pGriVVT5GX9XRFRxfY=";
+        hash = "sha256-47zcb45g+FVPQVwU2TATTmAuPKM8OOVGJ0/VRfh1dps=";
       };
       "3.10-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp310";
-        hash = "sha256-LgICOyDGts840SQQJh+yOMobMASb62llvJjpGvhzrSw=";
+        hash = "sha256-8Djmi9ENGjVUcisLvjbmpEg4RDenWqnSg/aW8O2fjAk=";
       };
       "3.10-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp310";
-        hash = "sha256-vhyULw+zBpz1UEi2tqgBMQEzY9a6YBgEIg6A4PPh3bQ=";
+        hash = "sha256-pCHSN/jCXShQFm0zRgPGc925tsJvUrxJZwS4eCKXvWY=";
       };
 
       "3.11-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp311";
-        hash = "sha256-VJO/VVwBFkOEtq4y/sLVgAV8Cung01JULiuT6W96E/8=";
+        hash = "sha256-Rc4PPIQM/4I2z/JsN/Jsn/B4aV+T4MFiwyDCgfUEEnU=";
       };
       "3.11-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp311";
-        hash = "sha256-VtuwXxurpSp1KI8ty1bizs5cdy8GEBN2MgS227sOCmE=";
+        hash = "sha256-eThX+vN/Nxyv51L+pfyBH0NeQ7j7S1AgWERKf17M+Ck=";
       };
       "3.11-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp311";
-        hash = "sha256-4Dj5dEGKb9hpg3HlVogNO1Gc9UibJhy1eym2mjivxAQ=";
+        hash = "sha256-L/gpDtx7ksfq5SUX9lSSYz4mey6QZ7rT5MMj0hPnfPU=";
       };
 
       "3.12-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp312";
-        hash = "sha256-TlrGVtb3NTLmhnILWPLJR+jISCZ5SUV4wxNFpSfkCBo=";
+        hash = "sha256-RqGqhX9P7uikP8upXA4Kti1AwmzJcwtsaWVZCLo1n40=";
       };
       "3.12-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp312";
-        hash = "sha256-FIwK5CGykQjteuWzLZnbtAggIxLQeGV96bXlZGEytN0=";
+        hash = "sha256-jdi//jhTcC9jzZJNoO4lc0pNGc1ckmvgM9dyun0cF10=";
       };
       "3.12-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp312";
-        hash = "sha256-9/jw/wr6oUD9pOadVAaMRL086iVMUXwVgnUMcG1UNvE=";
+        hash = "sha256-1sCaVFMpciRhrwVuc1FG0sjHTCKsdCaoRetp8ya096A=";
       };
     };
 
@@ -130,35 +130,19 @@ let
   gpuSrcs = {
     "cuda12.2-3.9" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp39-cp39-manylinux2014_x86_64.whl";
-      hash = "sha256-xdJKLPtx+CIza2CrWKM3M0cZJzyNFVTTTsvlgh38bfM=";
+      hash = "sha256-d8LIl22gIvmWfoyKfXKElZJXicPQIZxdS4HumhwQGCw=";
     };
     "cuda12.2-3.10" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl";
-      hash = "sha256-QCjrOczD2mp+CDwVXBc0/4rJnAizeV62AK0Dpx9X6TE=";
+      hash = "sha256-PXtWv+UEcMWF8LhWe6Z1UGkf14PG3dkJ0Iop0LiimnQ=";
     };
     "cuda12.2-3.11" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp311-cp311-manylinux2014_x86_64.whl";
-      hash = "sha256-Ipy3vk1yUplpNzECAFt63aOIhgEWgXG7hkoeTIk9bQQ=";
+      hash = "sha256-QO2WSOzmJ48VaCha596mELiOfPsAGLpGctmdzcCHE/o=";
     };
     "cuda12.2-3.12" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp312-cp312-manylinux2014_x86_64.whl";
-      hash = "sha256-LSnZHaUga/8Z65iKXWBnZDk4yUpNykFTu3vukCchO6Q=";
-    };
-    "cuda11.8-3.9" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp39-cp39-manylinux2014_x86_64.whl";
-      hash = "sha256-UmyugL0VjlXkiD7fuDPWgW8XUpr/QaP5ggp6swoZTzU=";
-    };
-    "cuda11.8-3.10" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp310-cp310-manylinux2014_x86_64.whl";
-      hash = "sha256-luKULEiV1t/sO6eckDxddJTiOFa0dtJeDlrvp+WYmHk=";
-    };
-    "cuda11.8-3.11" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp311-cp311-manylinux2014_x86_64.whl";
-      hash = "sha256-4+uJ8Ij6mFGEmjFEgi3fLnSLZs+v18BRoOt7mZuqydw=";
-    };
-    "cuda11.8-3.12" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp312-cp312-manylinux2014_x86_64.whl";
-      hash = "sha256-bUDFb94Ar/65SzzR9RLIs/SL/HdjaPT1Su5whmjkS00=";
+      hash = "sha256-ixWMaIChy4Ammsn23/3cCoala0lFibuUxyUr3tjfFKU=";
     };
   };
 
@@ -213,7 +197,7 @@ buildPythonPackage {
   # for more info.
   postInstall = lib.optional cudaSupport ''
     mkdir -p $out/${python.sitePackages}/jaxlib/cuda/bin
-    ln -s ${lib.getExe' cudaPackagesGoogle.cuda_nvcc "ptxas"} $out/${python.sitePackages}/jaxlib/cuda/bin/ptxas
+    ln -s ${lib.getExe' cudaPackages.cuda_nvcc "ptxas"} $out/${python.sitePackages}/jaxlib/cuda/bin/ptxas
   '';
 
   inherit (jaxlib-build) pythonImportsCheck;
@@ -227,7 +211,7 @@ buildPythonPackage {
     platforms = [ "aarch64-darwin" "x86_64-linux" "x86_64-darwin" ];
     broken =
       !(cudaSupport -> lib.versionAtLeast cudaVersion "11.1")
-      || !(cudaSupport -> lib.versionAtLeast cudaPackagesGoogle.cudnn.version "8.2")
+      || !(cudaSupport -> lib.versionAtLeast cudaPackages.cudnn.version "8.2")
       || !(cudaSupport -> stdenv.isLinux)
       || !(cudaSupport -> (gpuSrcs ? "cuda${cudaVersion}-${pythonVersion}"))
       # Fails at pythonImportsCheckPhase:
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index cfca1f170ea4c..8854d7927ea6c 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -13,7 +13,6 @@
 , curl
 , cython
 , fetchFromGitHub
-, fetchpatch
 , git
 , IOKit
 , jsoncpp
@@ -45,22 +44,22 @@
 , config
   # CUDA flags:
 , cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
+, cudaPackages
 
   # MKL:
 , mklSupport ? true
 }@inputs:
 
 let
-  inherit (cudaPackagesGoogle) cudaFlags cudaVersion cudnn nccl;
+  inherit (cudaPackages) cudaFlags cudaVersion cudnn nccl;
 
   pname = "jaxlib";
-  version = "0.4.24";
+  version = "0.4.28";
 
   # It's necessary to consistently use backendStdenv when building with CUDA
   # support, otherwise we get libstdc++ errors downstream
   stdenv = throw "Use effectiveStdenv instead";
-  effectiveStdenv = if cudaSupport then cudaPackagesGoogle.backendStdenv else inputs.stdenv;
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
 
   meta = with lib; {
     description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
@@ -78,7 +77,7 @@ let
   # These are necessary at build time and run time.
   cuda_libs_joined = symlinkJoin {
     name = "cuda-joined";
-    paths = with cudaPackagesGoogle; [
+    paths = with cudaPackages; [
       cuda_cudart.lib # libcudart.so
       cuda_cudart.static # libcudart_static.a
       cuda_cupti.lib # libcupti.so
@@ -92,11 +91,11 @@ let
   # These are only necessary at build time.
   cuda_build_deps_joined = symlinkJoin {
     name = "cuda-build-deps-joined";
-    paths = with cudaPackagesGoogle; [
+    paths = with cudaPackages; [
       cuda_libs_joined
 
       # Binaries
-      cudaPackagesGoogle.cuda_nvcc.bin # nvcc
+      cudaPackages.cuda_nvcc.bin # nvcc
 
       # Headers
       cuda_cccl.dev # block_load.cuh
@@ -181,19 +180,10 @@ let
       owner = "openxla";
       repo = "xla";
       # Update this according to https://github.com/google/jax/blob/jaxlib-v${version}/third_party/xla/workspace.bzl.
-      rev = "12eee889e1f2ad41e27d7b0e970cb92d282d3ec5";
-      hash = "sha256-68kjjgwYjRlcT0TVJo9BN6s+WTkdu5UMJqQcfHpBT90=";
+      rev = "e8247c3ea1d4d7f31cf27def4c7ac6f2ce64ecd4";
+      hash = "sha256-ZhgMIVs3Z4dTrkRWDqaPC/i7yJz2dsYXrZbjzqvPX3E=";
     };
 
-    patches = [
-      # Resolves "could not convert ‘result’ from ‘SmallVector<[...],6>’ to
-      # ‘SmallVector<[...],4>’" compilation error. See https://github.com/google/jax/issues/19814#issuecomment-1945141259.
-      (fetchpatch {
-        url = "https://github.com/openxla/xla/commit/7a614cd346594fc7ea2fe75570c9c53a4a444f60.patch";
-        hash = "sha256-RtuQTH8wzNiJcOtISLhf+gMlH1gg8hekvxEB+4wX6BM=";
-      })
-    ];
-
     dontBuild = true;
 
     # This is necessary for patchShebangs to know the right path to use.
@@ -220,7 +210,7 @@ let
       repo = "jax";
       # google/jax contains tags for jax and jaxlib. Only use jaxlib tags!
       rev = "refs/tags/${pname}-v${version}";
-      hash = "sha256-hmx7eo3pephc6BQfoJ3U0QwWBWmhkAc+7S4QmW32qQs=";
+      hash = "sha256-qSHPwi3is6Ts7pz5s4KzQHBMbcjGp+vAOsejW3o36Ek=";
     };
 
     nativeBuildInputs = [
@@ -364,10 +354,10 @@ let
       ];
 
       sha256 = (if cudaSupport then {
-        x86_64-linux = "sha256-8JilAoTbqOjOOJa/Zc/n/quaEDcpdcLXCNb34mfB+OM=";
+        x86_64-linux = "sha256-VGNMf5/DgXbgsu1w5J1Pmrukw+7UO31BNU+crKVsX5k=";
       } else {
-        x86_64-linux = "sha256-iqS+I1FQLNWXNMsA20cJp7YkyGUeshee5b2QfRBNZtk=";
-        aarch64-linux = "sha256-qmJ0Fm/VGMTmko4PhKs1P8/GLEJmVxb8xg+ss/HsakY==";
+        x86_64-linux = "sha256-uOoAyMBLHPX6jzdN43b5wZV5eW0yI8sCDD7BSX2h4oQ=";
+        aarch64-linux = "sha256-+SnGKY9LIT1Qhu/x6Uh7sHRaAEjlc//qyKj1m4t16PA=";
       }).${effectiveStdenv.system} or (throw "jaxlib: unsupported system: ${effectiveStdenv.system}");
     };
 
@@ -414,7 +404,7 @@ buildPythonPackage {
   # for more info.
   postInstall = lib.optionalString cudaSupport ''
     mkdir -p $out/bin
-    ln -s ${cudaPackagesGoogle.cuda_nvcc.bin}/bin/ptxas $out/bin/ptxas
+    ln -s ${cudaPackages.cuda_nvcc.bin}/bin/ptxas $out/bin/ptxas
 
     find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
       patchelf --add-rpath "${lib.makeLibraryPath [cuda_libs_joined cudnn nccl]}" "$lib"
@@ -423,7 +413,7 @@ buildPythonPackage {
 
   nativeBuildInputs = lib.optionals cudaSupport [ autoAddDriverRunpath ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     absl-py
     curl
     double-conversion
diff --git a/pkgs/development/python-modules/jaxopt/default.nix b/pkgs/development/python-modules/jaxopt/default.nix
index af924cea5ab22..1216b15f83f2e 100644
--- a/pkgs/development/python-modules/jaxopt/default.nix
+++ b/pkgs/development/python-modules/jaxopt/default.nix
@@ -6,6 +6,7 @@
 , fetchpatch
 , pytest-xdist
 , pytestCheckHook
+, setuptools
 , absl-py
 , cvxpy
 , jax
@@ -20,7 +21,7 @@
 buildPythonPackage rec {
   pname = "jaxopt";
   version = "0.8.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -41,7 +42,11 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     absl-py
     jax
     jaxlib
@@ -66,11 +71,20 @@ buildPythonPackage rec {
     "jaxopt.tree_util"
   ];
 
-  disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+  disabledTests = [
+    # https://github.com/google/jaxopt/issues/592
+    "test_solve_sparse"
+  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
     # https://github.com/google/jaxopt/issues/577
     "test_binary_logit_log_likelihood"
     "test_solve_sparse"
     "test_logreg_with_intercept_manual_loop3"
+
+    # https://github.com/google/jaxopt/issues/593
+    # Makes the test suite crash
+    "test_dtype_consistency"
+    # AssertionError: Array(0.01411963, dtype=float32) not less than or equal to 0.01
+    "test_multiclass_logreg6"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 55deee586c8da..156f8f5c2cd5e 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi
 , pytest, pytest-cov, pytest-xdist
-, six, numpy, scipy, pyyaml, h5py
+, six, numpy, scipy, pyyaml, h5py, optree
 , keras-applications, keras-preprocessing
 }:
 
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index 7e357a070ea0f..804f63a88e9ff 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -51,7 +51,7 @@
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.16";
+  version = "0.1.52";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -59,8 +59,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "langchain-ai";
     repo = "langchain";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-Xv8juma/1qGC2Rb659dJBvRzRh5W+zU+O8W6peElFGc=";
+    rev = "refs/tags/langchain-core==${version}";
+    hash = "sha256-H8rtysRIwyuJEUFI93vid3MsqReyRCER88xztsuYpOc=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
diff --git a/pkgs/development/python-modules/nanobind/default.nix b/pkgs/development/python-modules/nanobind/default.nix
index 27460b65a8dba..9e632ff0f1b2a 100644
--- a/pkgs/development/python-modules/nanobind/default.nix
+++ b/pkgs/development/python-modules/nanobind/default.nix
@@ -51,8 +51,10 @@ buildPythonPackage rec {
     scipy
     torch
     tensorflow
-    jax
-    jaxlib
+    # Uncomment at next release (1.9.3)
+    # See https://github.com/wjakob/nanobind/issues/578
+    # jax
+    # jaxlib
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/objax/default.nix b/pkgs/development/python-modules/objax/default.nix
index 7f2725e9d286b..68ef0f4492877 100644
--- a/pkgs/development/python-modules/objax/default.nix
+++ b/pkgs/development/python-modules/objax/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , jax
 , jaxlib
 , keras
@@ -30,7 +29,12 @@ buildPythonPackage rec {
     hash = "sha256-WD+pmR8cEay4iziRXqF3sHUzCMBjmLJ3wZ3iYOD+hzk=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    # Issue reported upstream: https://github.com/google/objax/issues/270
+    ./replace-deprecated-device_buffers.patch
+  ];
+
+  build-system = [
     setuptools
   ];
 
@@ -40,7 +44,7 @@ buildPythonPackage rec {
     jaxlib
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jax
     numpy
     parameterized
diff --git a/pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch b/pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch
new file mode 100644
index 0000000000000..fc0fd50a90ce8
--- /dev/null
+++ b/pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch
@@ -0,0 +1,14 @@
+diff --git a/objax/util/util.py b/objax/util/util.py
+index c31a356..344cf9a 100644
+--- a/objax/util/util.py
++++ b/objax/util/util.py
+@@ -117,7 +117,8 @@ def get_local_devices():
+     if _local_devices is None:
+         x = jn.zeros((jax.local_device_count(), 1), dtype=jn.float32)
+         sharded_x = map_to_device(x)
+-        _local_devices = [b.device() for b in sharded_x.device_buffers]
++        device_buffers = [buf.data for buf in sharded_x.addressable_shards]
++        _local_devices = [list(b.devices())[0] for b in device_buffers]
+     return _local_devices
+ 
+ 
diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix
index bc67c43a6b0b8..4110e887dc4f8 100644
--- a/pkgs/development/python-modules/openusd/default.nix
+++ b/pkgs/development/python-modules/openusd/default.nix
@@ -18,6 +18,8 @@
   lib,
   libGL,
   libX11,
+  libXt,
+  materialx,
   ninja,
   numpy,
   opencolorio,
@@ -86,6 +88,7 @@ buildPythonPackage rec {
     (lib.cmakeBool "PXR_BUILD_PYTHON_DOCUMENTATION" withDocs)
     (lib.cmakeBool "PXR_BUILD_USDVIEW" withUsdView)
     (lib.cmakeBool "PXR_BUILD_USD_TOOLS" withTools)
+    (lib.cmakeBool "PXR_ENABLE_MATERIALX_SUPPORT" true)
     (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin && withOsl))
   ];
 
@@ -111,6 +114,7 @@ buildPythonPackage rec {
       embree
       flex
       imath
+      materialx
       opencolorio
       openimageio
       opensubdiv
@@ -120,6 +124,7 @@ buildPythonPackage rec {
     ++ lib.optionals stdenv.isLinux [
       libGL
       libX11
+      libXt
     ]
     ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Cocoa ])
     ++ lib.optionals withOsl [ osl ]
diff --git a/pkgs/development/python-modules/opower/default.nix b/pkgs/development/python-modules/opower/default.nix
index 2c00224e92295..d889c97c3278c 100644
--- a/pkgs/development/python-modules/opower/default.nix
+++ b/pkgs/development/python-modules/opower/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "opower";
-  version = "0.4.4";
+  version = "0.4.5";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "tronikos";
     repo = "opower";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GG7r0/rZcB4cuog3m0qCOrmcYiscPQggQhRC9sQGG40=";
+    hash = "sha256-PBxxLbVOvJSFmDXgKeI5sICUR7NJGUEUUahK9eBsvbE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/optree/default.nix b/pkgs/development/python-modules/optree/default.nix
new file mode 100644
index 0000000000000..d592c6d51f399
--- /dev/null
+++ b/pkgs/development/python-modules/optree/default.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, lib
+, cmake
+, setuptools
+, typing-extensions
+, pybind11
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "optree";
+  version = "0.11.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "metaopt";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-VnnnEoXkYJO+S7baH+JZvsW18Tk3TiY9+Cd230OlZWo=";
+  };
+
+  dontUseCmakeConfigure = true;
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+  nativeBuildInputs = [
+    setuptools
+    pybind11
+    cmake
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  # prevent import failures from pytest
+  preCheck = ''
+    rm -r optree
+  '';
+  disabledTests = [
+    # Fails because the 'test_treespec' module can't be found
+    "test_treespec_pickle_missing_registration"
+  ];
+  pythonImportsCheck = [
+    "optree"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/metaopt/optree";
+    changelog = "https://github.com/metaopt/optree/releases/tag/v${version}";
+    description = "Optimized PyTree Utilities";
+    maintainers = with maintainers; [ pandapip1 ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/osc-sdk-python/default.nix b/pkgs/development/python-modules/osc-sdk-python/default.nix
index 74d617efe5008..2475ef8bc784a 100644
--- a/pkgs/development/python-modules/osc-sdk-python/default.nix
+++ b/pkgs/development/python-modules/osc-sdk-python/default.nix
@@ -1,23 +1,22 @@
-{
-  lib
-  , buildPythonPackage
-  , fetchFromGitHub
-  , pytestCheckHook
-  , requests
-  , ruamel-yaml
-  , setuptools
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, requests
+, ruamel-yaml
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "osc-sdk-python";
-  version = "0.27.0";
+  version = "0.29.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "outscale";
     repo = "osc-sdk-python";
     rev = "v${version}";
-    hash = "sha256-dp4yE8cTeXAPoixJ6ZtsvcTSKdYpDIebHkddUiqJe5Q=";
+    hash = "sha256-WtKG2ujEGUW0nhYWxfYDkxicN/uEqBxKCh9FcCfjmHM=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/python-modules/pathlib/default.nix b/pkgs/development/python-modules/pathlib/default.nix
deleted file mode 100644
index 1e34b92a4314d..0000000000000
--- a/pkgs/development/python-modules/pathlib/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
-, pythonAtLeast
-}:
-
-buildPythonPackage rec {
-  pname = "pathlib";
-  version = "1.0.1";
-  format = "setuptools";
-  disabled = pythonAtLeast "3.4"; # Was added to std library in Python 3.4
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "17zajiw4mjbkkv6ahp3xf025qglkj0805m9s41c45zryzj6p2h39";
-  };
-
-  nativeCheckInputs = [ unittestCheckHook ];
-
-  meta = {
-    description = "Object-oriented filesystem paths";
-    homepage = "https://pathlib.readthedocs.org/";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/pipdeptree/default.nix b/pkgs/development/python-modules/pipdeptree/default.nix
index b312b78a2bfb2..3aa70970fc65c 100644
--- a/pkgs/development/python-modules/pipdeptree/default.nix
+++ b/pkgs/development/python-modules/pipdeptree/default.nix
@@ -7,6 +7,7 @@
   graphviz,
   hatchling,
   hatch-vcs,
+  packaging,
   pytest-mock,
   pytestCheckHook,
   pip,
@@ -32,7 +33,10 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  dependencies = [ pip ];
+  dependencies = [
+    pip
+    packaging
+  ];
 
   passthru.optional-dependencies = {
     graphviz = [ graphviz ];
diff --git a/pkgs/development/python-modules/plantuml-markdown/default.nix b/pkgs/development/python-modules/plantuml-markdown/default.nix
index 09a64b298e469..0ec4ad920fdde 100644
--- a/pkgs/development/python-modules/plantuml-markdown/default.nix
+++ b/pkgs/development/python-modules/plantuml-markdown/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "plantuml-markdown";
-  version = "3.9.6";
+  version = "3.9.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mikitex70";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-LbAQt7cbSUHSU5QfqQWQWuolPxCoXBjmVaw5Tz96fK8=";
+    hash = "sha256-/lsu7kiUyQ6LUFINX+/aCFSKm1pGyIfUzSuUehwCz7I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix
index 72630b722bc4e..384dd6c1ec080 100644
--- a/pkgs/development/python-modules/proxy-py/default.nix
+++ b/pkgs/development/python-modules/proxy-py/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "proxy-py";
-  version = "2.4.4rc5";
+  version = "2.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "abhinavsingh";
     repo = "proxy.py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ngIskWzN6699C0WjSX/ZbHxV3Eb8ikQPNYZFzfzt7xU=";
+    hash = "sha256-QWwIbNt2MtRfQaX7uZJzYmS++2MH+gTjWO0aEKYSETI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pxml/default.nix b/pkgs/development/python-modules/pxml/default.nix
deleted file mode 100644
index 360a761d88972..0000000000000
--- a/pkgs/development/python-modules/pxml/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, pythonAtLeast
-, buildPythonPackage
-, fetchPypi
-, blessings
-, six
-, nose
-, coverage
-}:
-
-buildPythonPackage rec {
-  pname = "pxml";
-  version = "0.2.13";
-  format = "setuptools";
-  disabled = pythonAtLeast "3.8";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0c9zzfv6ciyf9qm7556wil45xxgykg1cj8isp1b88gimwcb2hxg4";
-  };
-
-  propagatedBuildInputs = [ blessings six ];
-  nativeCheckInputs = [ nose coverage ];
-
-  # test_prefixedWhitespace fails due to a python3 StringIO issue requiring
-  # bytes rather than str
-  checkPhase = ''
-    nosetests -e 'test_prefixedWhitespace'
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/metagriffin/pxml";
-    description = ''A python library and command-line tool to "prettify" and colorize XML.'';
-    maintainers = with maintainers; [ glittershark ];
-    license = licenses.gpl3;
-  };
-}
diff --git a/pkgs/development/python-modules/py-synologydsm-api/default.nix b/pkgs/development/python-modules/py-synologydsm-api/default.nix
index 415d95f8b324e..1226e25bfa34f 100644
--- a/pkgs/development/python-modules/py-synologydsm-api/default.nix
+++ b/pkgs/development/python-modules/py-synologydsm-api/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "py-synologydsm-api";
-  version = "2.4.2";
+  version = "2.4.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "mib1185";
     repo = "py-synologydsm-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uqQY0vt+3JGjciG0t9eh8zK5dnq1QhU6FkzWkKX/+DM=";
+    hash = "sha256-KhYK72kIPeZ32bdJ+3j8rcq/LIrcuELQD+/OQYhktog=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyannote-pipeline/default.nix b/pkgs/development/python-modules/pyannote-pipeline/default.nix
index 00b7eab6344a1..0b85c50474d58 100644
--- a/pkgs/development/python-modules/pyannote-pipeline/default.nix
+++ b/pkgs/development/python-modules/pyannote-pipeline/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, pyannote-core
-, pyannote-database
-, pyyaml
-, optuna
-, tqdm
-, docopt
-, filelock
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  filelock,
+  optuna,
+  pyannote-core,
+  pyannote-database,
+  pyyaml,
+  scikit-learn,
+  setuptools,
+  tqdm,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -21,11 +22,21 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-pipeline";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-0wSgy6kbKi9Wa5dimOz34IV5/8fSwaHDMUpaBW7tm2Y=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioeer.py
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     pyannote-core
     pyannote-database
     pyyaml
@@ -36,18 +47,13 @@ buildPythonPackage rec {
     scikit-learn
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
-
   pythonImportsCheck = [ "pyannote.pipeline" ];
 
   meta = with lib; {
     description = "Tunable pipelines";
-    mainProgram = "pyannote-pipeline";
     homepage = "https://github.com/pyannote/pyannote-pipeline";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "pyannote-pipeline";
   };
 }
diff --git a/pkgs/development/python-modules/pycrdt-websocket/default.nix b/pkgs/development/python-modules/pycrdt-websocket/default.nix
index a0e060b1bf2a5..f713b194f79ad 100644
--- a/pkgs/development/python-modules/pycrdt-websocket/default.nix
+++ b/pkgs/development/python-modules/pycrdt-websocket/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pycrdt-websocket";
-  version = "0.13.3";
+  version = "0.13.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "jupyter-server";
     repo = "pycrdt-websocket";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4kxPRPb8XfbQHYmQqnSNfqywUZxQy5b0qWIryLDtP8w=";
+    hash = "sha256-nkm1ZQ6bYBRDDoREovhEthDZoHApYxzAnwVgDgpWW/s=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/pyelftools/default.nix b/pkgs/development/python-modules/pyelftools/default.nix
index 063215f5bc6e1..85110fdf94aac 100644
--- a/pkgs/development/python-modules/pyelftools/default.nix
+++ b/pkgs/development/python-modules/pyelftools/default.nix
@@ -38,12 +38,18 @@ buildPythonPackage rec {
     "elftools"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Python library for analyzing ELF files and DWARF debugging information";
     homepage = "https://github.com/eliben/pyelftools";
     changelog = "https://github.com/eliben/pyelftools/blob/v${version}/CHANGES";
-    license = licenses.publicDomain;
-    maintainers = with maintainers; [ igsha pamplemousse ];
+    license = with lib.licenses; [
+      # Public domain with Unlicense waiver.
+      unlicense
+      # pyelftools bundles construct library that is licensed under MIT license.
+      # See elftools/construct/{LICENSE,README} in the source code.
+      mit
+    ];
+    maintainers = with lib.maintainers; [ igsha pamplemousse ];
     mainProgram = "readelf.py";
   };
 }
diff --git a/pkgs/development/python-modules/pyexploitdb/default.nix b/pkgs/development/python-modules/pyexploitdb/default.nix
index 93f5e3567839b..763b5a4a62c7a 100644
--- a/pkgs/development/python-modules/pyexploitdb/default.nix
+++ b/pkgs/development/python-modules/pyexploitdb/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyexploitdb";
-  version = "0.2.16";
+  version = "0.2.17";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyExploitDb";
     inherit version;
-    hash = "sha256-PP9dR8Jl4eWsky3vO9Pgraw0plik/5aWvmOAEc2/Qpo=";
+    hash = "sha256-I7uDmKvHVx8mpqlq+kOyp57wCii8fy9ecJTSm7uHbZ0=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pygame-sdl2/default.nix b/pkgs/development/python-modules/pygame-sdl2/default.nix
index 0201c9cb4a8a0..8d8c5dee83a6d 100644
--- a/pkgs/development/python-modules/pygame-sdl2/default.nix
+++ b/pkgs/development/python-modules/pygame-sdl2/default.nix
@@ -1,16 +1,32 @@
-{ lib, buildPythonPackage, fetchurl, isPy27, renpy
-, cython_0, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, libjpeg, libpng }:
-
-buildPythonPackage rec {
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  isPy27,
+  renpy,
+  cython_0,
+  SDL2,
+  SDL2_image,
+  SDL2_ttf,
+  SDL2_mixer,
+  libjpeg,
+  libpng,
+  setuptools,
+}:
+let
   pname = "pygame-sdl2";
   version = "2.1.0";
-  format = "setuptools";
   renpy_version = renpy.base_version;
+in
+
+buildPythonPackage {
+  inherit pname version;
   name = "${pname}-${version}-${renpy_version}";
+  pyproject = true;
 
   src = fetchurl {
     url = "https://www.renpy.org/dl/${renpy_version}/pygame_sdl2-${version}+renpy${renpy_version}.tar.gz";
-    hash = "sha256-mrfrsRAVEqw7fwtYdeATp/8AtMn74x9pJEXwYZPOl2I=";
+    hash = "sha256-Zib39NyQ1pGVCWPrK5/Tl3dAylUlmKZKxU8pf+OpAdY=";
   };
 
   # force rebuild of headers needed for install
@@ -24,27 +40,26 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
-    SDL2.dev cython_0
+    SDL2.dev
+    cython_0
+    setuptools
   ];
 
   buildInputs = [
-    SDL2 SDL2_image SDL2_ttf SDL2_mixer
-    libjpeg libpng
+    SDL2
+    SDL2_image
+    SDL2_ttf
+    SDL2_mixer
+    libjpeg
+    libpng
   ];
 
-
   doCheck = isPy27; # python3 tests are non-functional
 
-  postInstall = ''
-    ( cd "$out"/include/python*/ ;
-      ln -s pygame-sdl2 pygame_sdl2 || true ; )
-  '';
-
-  meta = with lib; {
+  meta = {
     description = "A reimplementation of parts of pygame API using SDL2";
-    homepage    = "https://github.com/renpy/pygame_sdl2";
-    # Some parts are also available under Zlib License
-    license     = licenses.lgpl2;
-    maintainers = with maintainers; [ raskin ];
+    homepage = "https://github.com/renpy/pygame_sdl2";
+    license = with lib.licenses; [ lgpl2 zlib ];
+    maintainers = with lib.maintainers; [ raskin ];
   };
 }
diff --git a/pkgs/development/python-modules/pygsl/default.nix b/pkgs/development/python-modules/pygsl/default.nix
index 13a4644962b39..0880ff1810975 100644
--- a/pkgs/development/python-modules/pygsl/default.nix
+++ b/pkgs/development/python-modules/pygsl/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , gsl
 , swig
 , numpy
@@ -9,12 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pygsl";
-  version = "2.3.3";
+  version = "2.3.4";
   format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-F3m85Bs8sONw0Rv0EAOFK6R1DFHfW4dxuzQmXo4PHfM=";
+  src = fetchFromGitHub {
+    owner = "pygsl";
+    repo = "pygsl";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-2TalLKDDoJdKGZHr7eNNvVW8fL7wQJjnZv34LJokfow=";
   };
 
   nativeBuildInputs = [
@@ -24,10 +26,14 @@ buildPythonPackage rec {
   buildInputs = [
     gsl
   ];
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
   ];
 
+  preBuild = ''
+    python setup.py build_ext --inplace
+  '';
+
   preCheck = ''
     cd tests
   '';
diff --git a/pkgs/development/python-modules/pykdtree/default.nix b/pkgs/development/python-modules/pykdtree/default.nix
index 84372802ecaf2..3418c47175cb2 100644
--- a/pkgs/development/python-modules/pykdtree/default.nix
+++ b/pkgs/development/python-modules/pykdtree/default.nix
@@ -24,6 +24,11 @@ buildPythonPackage rec {
     hash = "sha256-zCCypnxkBWSFoxTSwrbbo1SvfuHI+42uG+byk2o3Q0E=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-warn "numpy>=2.0.0rc1,<3" "numpy"
+  '';
+
   nativeBuildInputs = [
     cython
     numpy
diff --git a/pkgs/development/python-modules/pymilter/default.nix b/pkgs/development/python-modules/pymilter/default.nix
index be0ee9bd2bc45..9cefa458d7e9f 100644
--- a/pkgs/development/python-modules/pymilter/default.nix
+++ b/pkgs/development/python-modules/pymilter/default.nix
@@ -1,4 +1,15 @@
-{ lib, python, buildPythonPackage, fetchFromGitHub, libmilter, bsddb3, pydns, iana-etc, libredirect }:
+{ lib
+, python
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, libmilter
+, bsddb3
+, pydns
+, iana-etc
+, libredirect
+, pyasyncore
+}:
 
 buildPythonPackage rec {
   pname = "pymilter";
@@ -13,7 +24,14 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ libmilter ];
+  nativeCheckInputs = [ pyasyncore ];
   propagatedBuildInputs = [ bsddb3 pydns ];
+  patches = [ (fetchpatch {
+    name = "Remove-calls-to-the-deprecated-method-assertEquals";
+    url = "https://github.com/sdgathman/pymilter/pull/57.patch";
+    hash = "sha256-/5LlDR15nMR3l7rkVjT3w4FbDTFAAgNdERWlPNL2TVg=";
+    })
+  ];
 
   preBuild = ''
     sed -i 's/import thread/import _thread as thread/' Milter/greylist.py
diff --git a/pkgs/development/python-modules/pynws/default.nix b/pkgs/development/python-modules/pynws/default.nix
index 8a28d85b06d42..5e2dc4547e9f8 100644
--- a/pkgs/development/python-modules/pynws/default.nix
+++ b/pkgs/development/python-modules/pynws/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, metar
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-cov
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, tenacity
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  metar,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-cov,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "pynws";
-  version = "1.7.0";
+  version = "1.8.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "MatthewFlamm";
-    repo = pname;
+    repo = "pynws";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JjXGDjLITzJxEmCIv7RPvb+Jqe9hm++ptpJOryuK9M0=";
+    hash = "sha256-KUCylHYng6mn2TWKf8C7k0IoerM22OIQ7pJMKi5SF3A=";
   };
 
   build-system = [
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     metar
   ];
 
-  optional-dependencies.retry = [
-    tenacity
-  ];
+  optional-dependencies.retry = [ tenacity ];
 
   nativeCheckInputs = [
     freezegun
@@ -55,6 +54,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python library to retrieve data from NWS/NOAA";
     homepage = "https://github.com/MatthewFlamm/pynws";
+    changelog = "https://github.com/MatthewFlamm/pynws/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
index 912b4acc14e99..624217eba5342 100644
--- a/pkgs/development/python-modules/pyscss/default.nix
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -3,9 +3,6 @@
 , fetchFromGitHub
 , pytestCheckHook
 , six
-, enum34
-, pathlib
-, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -21,8 +18,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  propagatedBuildInputs = [ six ]
-    ++ lib.optionals (pythonOlder "3.4") [ enum34 pathlib ];
+  propagatedBuildInputs = [ six ];
 
   # Test suite is broken.
   # See https://github.com/Kronuz/pyScss/issues/415
diff --git a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
index 1fef60d8acf51..c10bf0108761a 100644
--- a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-insightidr";
-  version = "0.2.2";
+  version = "0.2.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-insightidr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-B42MADteF0+GC/CPJPLaTGdGcQjC8KEsK9u3tBmtObg=";
+    hash = "sha256-wQMnnJ0KU+53MS3PIBkwIhUiyUdCrDbdUT6upk2Pp/8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytrydan/default.nix b/pkgs/development/python-modules/pytrydan/default.nix
index 2a55b834ebb0b..6ee8162b4ba06 100644
--- a/pkgs/development/python-modules/pytrydan/default.nix
+++ b/pkgs/development/python-modules/pytrydan/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pytrydan";
-  version = "0.6.0";
+  version = "0.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "dgomes";
     repo = "pytrydan";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+hFwBFYtRseVwesZtSrL3J/ZnsMAjD2ZAhTlk41hfqU=";
+    hash = "sha256-5sTHfxNV4JEonGke8ZZ/pXoLA15iCuJ/iSW1XwFMltg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index 6dc9cc0119436..a4d8bb91ea168 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -34,7 +34,7 @@
 buildPythonPackage rec {
   pname = "qtile";
   version = "0.25.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "qtile";
@@ -59,13 +59,13 @@ buildPythonPackage rec {
         --replace /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
   '';
 
-  nativeBuildInputs = [
-    pkg-config
+  build-system = [
     setuptools
     setuptools-scm
+    pkg-config
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     (cairocffi.override { withXcffib = true; })
     dbus-next
     dbus-python
@@ -102,6 +102,6 @@ buildPythonPackage rec {
     description = "A small, flexible, scriptable tiling window manager written in Python";
     mainProgram = "qtile";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ arjan-s ];
+    maintainers = with maintainers; [ arjan-s sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/rarfile/default.nix b/pkgs/development/python-modules/rarfile/default.nix
index 4f3cbc28ea770..c0c462cb44784 100644
--- a/pkgs/development/python-modules/rarfile/default.nix
+++ b/pkgs/development/python-modules/rarfile/default.nix
@@ -1,6 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, nose, libarchive, glibcLocales, isPy27
-# unrar is non-free software
-, useUnrar ? false, unrar
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  libarchive,
+  pythonOlder,
+  setuptools,
+  # unrar is non-free software
+  useUnrar ? false,
+  unrar,
 }:
 
 assert useUnrar -> unrar != null;
@@ -9,35 +17,47 @@ assert !useUnrar -> libarchive != null;
 buildPythonPackage rec {
   pname = "rarfile";
   version = "4.2";
-  format = "setuptools";
-  disabled = isPy27;
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "markokr";
     repo = "rarfile";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-ZiwD2LG25fMd4Z+QWsh/x3ceG5QRBH4s/TZDwMnfpNI=";
+    hash = "sha256-ZiwD2LG25fMd4Z+QWsh/x3ceG5QRBH4s/TZDwMnfpNI=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook nose glibcLocales ];
-
-  prePatch = ''
-    substituteInPlace rarfile.py \
-  '' + (if useUnrar then
-        ''--replace 'UNRAR_TOOL = "unrar"' "UNRAR_TOOL = \"${unrar}/bin/unrar\""
+  prePatch =
+    ''
+      substituteInPlace rarfile.py \
+    ''
+    + (
+      if useUnrar then
+        ''
+          --replace 'UNRAR_TOOL = "unrar"' "UNRAR_TOOL = \"${unrar}/bin/unrar\""
+        ''
+      else
+        ''
+          --replace 'ALT_TOOL = "bsdtar"' "ALT_TOOL = \"${libarchive}/bin/bsdtar\""
         ''
-       else
-        ''--replace 'ALT_TOOL = "bsdtar"' "ALT_TOOL = \"${libarchive}/bin/bsdtar\""
-        '')
-     + "";
-  # the tests only work with the standard unrar package
+    )
+    + "";
+
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  # The tests only work with the standard unrar package
   doCheck = useUnrar;
-  LC_ALL = "en_US.UTF-8";
+
   pythonImportsCheck = [ "rarfile" ];
 
   meta = with lib; {
     description = "RAR archive reader for Python";
     homepage = "https://github.com/markokr/rarfile";
+    changelog = "https://github.com/markokr/rarfile/releases/tag/v${version}";
     license = licenses.isc;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/scalene/default.nix b/pkgs/development/python-modules/scalene/default.nix
index f8684a16cbf2a..69004f67a1963 100644
--- a/pkgs/development/python-modules/scalene/default.nix
+++ b/pkgs/development/python-modules/scalene/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "scalene";
-  version = "1.5.39";
+  version = "1.5.41";
   pyproject = true;
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-B4pDLP3+56toQZyvh6+6NimCKv0cpcO0ydcqV1tJZkg=";
+    hash = "sha256-akjxv9Qot2lGntZxkxfFqz65VboL1qduykfjyEg1Ivg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/slicedimage/default.nix b/pkgs/development/python-modules/slicedimage/default.nix
index 680bb0f6a5be1..5287d25fb349f 100644
--- a/pkgs/development/python-modules/slicedimage/default.nix
+++ b/pkgs/development/python-modules/slicedimage/default.nix
@@ -3,15 +3,12 @@
 , fetchFromGitHub
 , boto3
 , diskcache
-, enum34
 , packaging
-, pathlib
 , numpy
 , requests
 , scikit-image
 , six
 , pytestCheckHook
-, isPy27
 , tifffile
 }:
 
@@ -36,7 +33,7 @@ buildPythonPackage rec {
     scikit-image
     six
     tifffile
-  ] ++ lib.optionals isPy27 [ pathlib enum34 ];
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
index 9f194eb253570..a029348d4ffa9 100644
--- a/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
+++ b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "snakemake-storage-plugin-s3";
-  version = "0.2.10";
+  version = "0.2.11";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-k21DRQdSUFkdwNb7MZJmClhIg+pdSc7H6FkDrbf4DT8=";
+    hash = "sha256-pAMrWJe4+PWHglZ/C83Af+uHBg9wupfSlH4W8CvO9as=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
index 240e51c724180..4d73733104105 100644
--- a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-confluencebuilder";
-  version = "2.5.1";
+  version = "2.5.2";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "sphinxcontrib_confluencebuilder";
     inherit version;
-    hash = "sha256-PQpkwQ95UVJwDGTAq1xdcSvd07FZpZfA/4jq3ywlMas=";
+    hash = "sha256-FwjjlMTIhAD/v4Ig+uqrJJybdPqpPG+7OMuJwSqWo84=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/sqlbag/default.nix b/pkgs/development/python-modules/sqlbag/default.nix
index 8b21d89ad5da5..8ff8305b4d4f0 100644
--- a/pkgs/development/python-modules/sqlbag/default.nix
+++ b/pkgs/development/python-modules/sqlbag/default.nix
@@ -1,11 +1,9 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
 , psycopg2
 , pymysql
 , sqlalchemy
-, pathlib
 , six
 , flask
 , pendulum
@@ -17,7 +15,6 @@
 , pytest-sugar
 , postgresql
 , postgresqlTestHook
-,
 }:
 buildPythonPackage rec {
   pname = "sqlbag";
@@ -46,8 +43,7 @@ buildPythonPackage rec {
       pymysql
 
       setuptools # needed for 'pkg_resources'
-    ]
-    ++ lib.optional isPy27 pathlib;
+    ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -91,5 +87,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/djrobstep/sqlbag";
     license = with licenses; [ unlicense ];
     maintainers = with maintainers; [ soispha ];
+    broken = true; # Fails to build against the current flask version
   };
 }
diff --git a/pkgs/development/python-modules/sqlsoup/default.nix b/pkgs/development/python-modules/sqlsoup/default.nix
deleted file mode 100644
index d75621cc6345c..0000000000000
--- a/pkgs/development/python-modules/sqlsoup/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ buildPythonPackage, fetchPypi, lib, sqlalchemy, nose }:
-
-buildPythonPackage rec {
-  pname = "sqlsoup";
-  version = "0.9.1";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1mj00fhxj75ac3i8xk9jmm7hvcjz9p4x2r3yndcwsgb659rvgbrg";
-  };
-
-  propagatedBuildInputs = [ sqlalchemy ];
-  nativeCheckInputs = [ nose ];
-
-  meta = with lib; {
-    description = "A one step database access tool, built on the SQLAlchemy ORM";
-    homepage = "https://github.com/zzzeek/sqlsoup";
-    license = licenses.mit;
-    maintainers = [];
-    broken = true; # incompatible with sqlalchemy>=1.4 and unmaintained since 2016
-  };
-}
diff --git a/pkgs/development/python-modules/stem/default.nix b/pkgs/development/python-modules/stem/default.nix
index 7d9dc7564a09f..bebab6f59d6d0 100644
--- a/pkgs/development/python-modules/stem/default.nix
+++ b/pkgs/development/python-modules/stem/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, fetchpatch
 , setuptools
 , cryptography
 , mock
@@ -23,6 +24,14 @@ buildPythonPackage rec {
     hash = "sha256-Oc73Jx31SLzuhT9Iym5HHszKfflKZ+3aky5flXudvmI=";
   };
 
+  patches = [
+    # fixes deprecated test assertion, assertRaisesRegexp in python 3
+    (fetchpatch {
+      url = "https://github.com/trishtzy/stem/commit/d5012a1039f05c69ebe832723ce96ecbe8f79fe1.patch";
+      hash = "sha256-ozOTx4/c86sW/9Ss5eZ6ZxX63ByJT5x7JF6wBBd+VFY=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 6d99ec33a6539..0244e1b2d54da 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1143";
+  version = "3.0.1144";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-xUjOgqhHk1Yj0WNcx051kqRmpg/YqVVvA40ueIDkr10=";
+    hash = "sha256-cUuigY67wgYj6DvFiplXJbqcLNKxH9odeG5a8bSZ7/8=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index 1040023619262..65ca45f056662 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -22,7 +22,7 @@
 , tensorboard
 , config
 , cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
+, cudaPackages
 , zlib
 , python
 , keras-applications
@@ -43,7 +43,7 @@ assert ! (stdenv.isDarwin && cudaSupport);
 
 let
   packages = import ./binary-hashes.nix;
-  inherit (cudaPackagesGoogle) cudatoolkit cudnn;
+  inherit (cudaPackages) cudatoolkit cudnn;
 in buildPythonPackage {
   pname = "tensorflow" + lib.optionalString cudaSupport "-gpu";
   inherit (packages) version;
@@ -199,10 +199,6 @@ in buildPythonPackage {
     "tensorflow.python.framework"
   ];
 
-  passthru = {
-    cudaPackages = cudaPackagesGoogle;
-  };
-
   meta = with lib; {
     description = "Computation using data flow graphs for scalable machine learning";
     homepage = "http://tensorflow.org";
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index ea8dbf13e9425..2c44b89aefea8 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -19,8 +19,8 @@
 # https://groups.google.com/a/tensorflow.org/forum/#!topic/developers/iRCt5m4qUz0
 , config
 , cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
-, cudaCapabilities ? cudaPackagesGoogle.cudaFlags.cudaCapabilities
+, cudaPackages
+, cudaCapabilities ? cudaPackages.cudaFlags.cudaCapabilities
 , mklSupport ? false, mkl
 , tensorboardSupport ? true
 # XLA without CUDA is broken
@@ -50,15 +50,15 @@ let
   # __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the
   # translation units, so the build fails at link time
   stdenv =
-    if cudaSupport then cudaPackagesGoogle.backendStdenv
+    if cudaSupport then cudaPackages.backendStdenv
     else if originalStdenv.isDarwin then llvmPackages.stdenv
     else originalStdenv;
-  inherit (cudaPackagesGoogle) cudatoolkit nccl;
+  inherit (cudaPackages) cudatoolkit nccl;
   # use compatible cuDNN (https://www.tensorflow.org/install/source#gpu)
   # cudaPackages.cudnn led to this:
   # https://github.com/tensorflow/tensorflow/issues/60398
   cudnnAttribute = "cudnn_8_6";
-  cudnn = cudaPackagesGoogle.${cudnnAttribute};
+  cudnn = cudaPackages.${cudnnAttribute};
   gentoo-patches = fetchzip {
     url = "https://dev.gentoo.org/~perfinion/patches/tensorflow-patches-2.12.0.tar.bz2";
     hash = "sha256-SCRX/5/zML7LmKEPJkcM5Tebez9vv/gmE4xhT/jyqWs=";
@@ -490,8 +490,8 @@ let
       broken =
         stdenv.isDarwin
         || !(xlaSupport -> cudaSupport)
-        || !(cudaSupport -> builtins.hasAttr cudnnAttribute cudaPackagesGoogle)
-        || !(cudaSupport -> cudaPackagesGoogle ? cudatoolkit);
+        || !(cudaSupport -> builtins.hasAttr cudnnAttribute cudaPackages)
+        || !(cudaSupport -> cudaPackages ? cudatoolkit);
     } // lib.optionalAttrs stdenv.isDarwin {
       timeout = 86400; # 24 hours
       maxSilent = 14400; # 4h, double the default of 7200s
@@ -594,7 +594,6 @@ in buildPythonPackage {
   # Regression test for #77626 removed because not more `tensorflow.contrib`.
 
   passthru = {
-    cudaPackages = cudaPackagesGoogle;
     deps = bazel-build.deps;
     libtensorflow = bazel-build.out;
   };
diff --git a/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index 36768b0fccb77..030ab4337ec70 100644
--- a/pkgs/development/python-modules/unittest-xml-reporting/default.nix
+++ b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
@@ -1,44 +1,48 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, lxml
-, pythonAtLeast
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "unittest-xml-reporting";
   version = "3.2.0";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "xmlrunner";
     repo = "unittest-xml-reporting";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-lOJ/+8CVJUXdIaZLLF5PpPkG0DzlNgo46kRZ1Xy7Ju0=";
   };
 
-  propagatedBuildInputs = [
-    lxml
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ lxml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = lib.optionals (pythonAtLeast "3.11") [
-    # AttributeError: 'tuple' object has no attribute 'shortDescription'
-    "--deselect=tests/testsuite.py::XMLTestRunnerTestCase::test_basic_unittest_constructs"
-    "--deselect=tests/testsuite.py::XMLTestRunnerTestCase::test_unexpected_success"
-  ];
+  disabledTests =
+    lib.optionals (pythonAtLeast "3.11") [
+      # AttributeError: 'tuple' object has no attribute 'shortDescription'
+      "test_basic_unittest_constructs"
+      "test_unexpected_success"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [ "test_xmlrunner_hold_traceback" ];
 
   pythonImportsCheck = [ "xmlrunner" ];
 
   meta = with lib; {
+    description = "Unittest-based test runner with Ant/JUnit like XML reporting";
     homepage = "https://github.com/xmlrunner/unittest-xml-reporting";
-    description = "unittest-based test runner with Ant/JUnit like XML reporting";
+    changelog = "https://github.com/xmlrunner/unittest-xml-reporting/releases/tag/${version}";
     license = licenses.bsd2;
     maintainers = with maintainers; [ rprospero ];
   };
diff --git a/pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch b/pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch
new file mode 100644
index 0000000000000..42f001085d050
--- /dev/null
+++ b/pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch
@@ -0,0 +1,24 @@
+diff --git a/uxsim/__init__.py b/uxsim/__init__.py
+index 01e1ad1..de1f0fd 100644
+--- a/uxsim/__init__.py
++++ b/uxsim/__init__.py
+@@ -1,8 +1,14 @@
+-from .uxsim import *
+-from .utils import *
++import os
++
+ from .analyzer import *
++from .utils import *
++from .uxsim import *
++
++# Only set our own plugin path if it's not already set
++if not os.getenv("QT_PLUGIN_PATH"): 
++    os.environ["QT_PLUGIN_PATH"] = "$NIX_QT_PLUGIN_PATH"
+ 
+ __version__ = "1.1.1"
+ __author__ = "Toru Seo"
+ __copyright__ = "Copyright (c) 2023 Toru Seo"
+-__license__ = "MIT License"
+\ No newline at end of file
++__license__ = "MIT License"
+
diff --git a/pkgs/development/python-modules/uxsim/default.nix b/pkgs/development/python-modules/uxsim/default.nix
new file mode 100644
index 0000000000000..e08eec1d6cf65
--- /dev/null
+++ b/pkgs/development/python-modules/uxsim/default.nix
@@ -0,0 +1,69 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  qt5,
+  hackgen-font,
+  python3,
+  matplotlib,
+  numpy,
+  pandas,
+  pillow,
+  pyqt5,
+  scipy,
+  tqdm,
+}:
+buildPythonPackage rec {
+  pname = "uxsim";
+  version = "1.1.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "toruseo";
+    repo = "UXsim";
+    rev = "v${version}";
+    hash = "sha256-qPAFodvx+Z7RsRhzdTq1TRsbvrUFaqRJZxYg3FM6q8A=";
+  };
+
+  patches = [
+    ./add-qt-plugin-path-to-env.patch
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    matplotlib
+    numpy
+    pandas
+    pillow
+    pyqt5
+    scipy
+    tqdm
+  ];
+
+  pythonImportsCheck = ["uxsim"];
+
+
+  # QT_PLUGIN_PATH is required to be set for the program to produce its images
+  # our patch sets it to $NIX_QT_PLUGIN_PATH if QT_PLUGIN_PATH is not set
+  # and here we replace this string with the actual path to qt plugins
+  postInstall = ''
+    substituteInPlace $out/${python3.sitePackages}/uxsim/__init__.py \
+      --replace-fail '$NIX_QT_PLUGIN_PATH' '${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}'
+
+    mkdir -p $out/${python3.sitePackages}/uxsim/files
+    ln -s ${hackgen-font}/share/fonts/hackgen/HackGen-Regular.ttf $out/${python3.sitePackages}/uxsim/files/
+  '';
+
+  meta = with lib; {
+    description = "Vehicular traffic flow simulator in road network, written in pure Python";
+    homepage = "https://github.com/toruseo/UXsim";
+    license = licenses.mit;
+    maintainers = with maintainers; [vinnymeller];
+  };
+}
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 3807380083616..edaae03db7cc6 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.6.0";
+  version = "1.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,30 +19,26 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-DqTcdWVivE2R51qm3XQ7cDnD1a90AocmX9TG+M5reto=";
+    hash = "sha256-HMWb9NScT4rRMFsUXw6TW/T0P1eH0a46OegUZ0JceiE=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   doCheck = false; # requires network access
 
-  pythonImportsCheck = [
-    "ytmusicapi"
-  ];
+  pythonImportsCheck = [ "ytmusicapi" ];
 
   meta = with lib; {
     description = "Python API for YouTube Music";
-    mainProgram = "ytmusicapi";
     homepage = "https://github.com/sigma67/ytmusicapi";
     changelog = "https://github.com/sigma67/ytmusicapi/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "ytmusicapi";
   };
 }
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index e6018b06fa992..02d014bef8995 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -586,7 +586,7 @@ in
     ];
   };
 
-  nokogiri = attrs: {
+  nokogiri = attrs: ({
     buildFlags = [
       "--use-system-libraries"
       "--with-zlib-lib=${zlib.out}/lib"
@@ -601,7 +601,9 @@ in
       "--with-iconv-dir=${libiconv}"
       "--with-opt-include=${libiconv}/include"
     ];
-  };
+  } // lib.optionalAttrs stdenv.isDarwin {
+    buildInputs = [ libxml2 ];
+  });
 
   openssl = attrs: {
     # https://github.com/ruby/openssl/issues/369
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 14c8ff81ae9d1..b1d98d8344880 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "checkov";
-  version = "3.2.90";
+  version = "3.2.91";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = "checkov";
     rev = "refs/tags/${version}";
-    hash = "sha256-I/fSguqs5h4YTP/6whBFYceYd4tC8wrh+PfW8i7+kpY=";
+    hash = "sha256-lw89E7xD1tSAxgf1bwuPojOikOqIBfisePAtTGHXr4c=";
   };
 
   patches = [ ./flake8-compat-5.x.patch ];
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index fdad4466f91b0..1dc4a2503d9fa 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.17.1";
+  version = "2.17.2";
 
   dontConfigure = true;
   dontBuild = true;
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    hash = "sha256-4S6xsxLGYdkdG9SrpqTiFAq5WZMQM2TbnT7c5mRV/kE=";
+    hash = "sha256-l1O3VrO1Ndfp1QIsDmTAhAiUpoOc7+TkQETsoo7m460=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index 7535394a55519..d1ba00dc616d6 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.35.3";
+  version = "1.35.4";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    hash = "sha256-FqgYpCvEEqgnhCHdHN1/inxMJoOjoHLc/xMfhXsA1nc=";
+    hash = "sha256-lcB23yU7Wn+aILGFLDBnFg30NRDQgJt3J61FmGuQtRo=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/changie/default.nix b/pkgs/development/tools/changie/default.nix
index a4050744f09aa..b8fc6af5764b7 100644
--- a/pkgs/development/tools/changie/default.nix
+++ b/pkgs/development/tools/changie/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "changie";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "miniscruff";
     repo = "changie";
     rev = "v${version}";
-    hash = "sha256-pZe9T/WALFX5xwCiZKbf8fpaG3wmBJbqgM7FTPqlN2k=";
+    hash = "sha256-3GQ9C9UteJG3LfJmDsBbFJ9hnz7ouQ/6bZkQ/8CZ8PI=";
   };
 
-  vendorHash = "sha256-SdaDu9LXgelSEXdOCAbtvt1LnrSVpAIoN6MDSjTeEOs=";
+  vendorHash = "sha256-2SkHId5BDAv525PISLjlrP862Z2fJDN4L839rz8rWaw=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/devpi-server/default.nix b/pkgs/development/tools/devpi-server/default.nix
index 0923182afa4f3..c1dfc48419311 100644
--- a/pkgs/development/tools/devpi-server/default.nix
+++ b/pkgs/development/tools/devpi-server/default.nix
@@ -23,6 +23,7 @@
 , webtest
 , testers
 , devpi-server
+, nixosTests
 }:
 
 
@@ -108,8 +109,11 @@ buildPythonApplication rec {
     "devpi_server"
   ];
 
-  passthru.tests.version = testers.testVersion {
-    package = devpi-server;
+  passthru.tests = {
+    devpi-server = nixosTests.devpi-server;
+    version = testers.testVersion {
+      package = devpi-server;
+    };
   };
 
   meta = with lib;{
diff --git a/pkgs/development/tools/fsautocomplete/default.nix b/pkgs/development/tools/fsautocomplete/default.nix
index ac47bdfc20739..e5210e744271b 100644
--- a/pkgs/development/tools/fsautocomplete/default.nix
+++ b/pkgs/development/tools/fsautocomplete/default.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "fsautocomplete";
-  version = "0.71.0";
+  version = "0.72.3";
 
   src = fetchFromGitHub {
     owner = "fsharp";
     repo = "FsAutoComplete";
     rev = "v${version}";
-    hash = "sha256-WajKmRDCMJ74qT2/NhUWRq+bytxt49vi98bm1QleEKo=";
+    hash = "sha256-YU2rb1rxlbreSXMO+IGS2BrdfmqntdSlLuxV3zekSaI=";
   };
 
   nugetDeps = ./deps.nix;
@@ -20,8 +20,8 @@ buildDotnetModule rec {
       --replace TargetFrameworks TargetFramework \
   '';
 
-  dotnet-sdk = with dotnetCorePackages; combinePackages [ sdk_6_0 sdk_7_0 ];
-  dotnet-runtime = dotnetCorePackages.sdk_7_0;
+  dotnet-sdk = with dotnetCorePackages; combinePackages [ sdk_6_0 sdk_7_0 sdk_8_0 ];
+  dotnet-runtime = dotnetCorePackages.sdk_8_0;
 
   projectFile = "src/FsAutoComplete/FsAutoComplete.fsproj";
   executables = [ "fsautocomplete" ];
diff --git a/pkgs/development/tools/fsautocomplete/deps.nix b/pkgs/development/tools/fsautocomplete/deps.nix
index 192562146056a..6dc9faa2b0337 100644
--- a/pkgs/development/tools/fsautocomplete/deps.nix
+++ b/pkgs/development/tools/fsautocomplete/deps.nix
@@ -14,29 +14,15 @@
   (fetchNuGet { pname = "DotNet.ReproducibleBuilds"; version = "1.1.1"; sha256 = "0wa0xwbwv1lzjmqwg1vq06vrpb9kkbv3xw5nq50savj0dzhqakzq"; })
   (fetchNuGet { pname = "Expecto"; version = "10.1.0"; sha256 = "127yy5i0p2lybhm5xcy2wa6j1rcahk61mb1nbym687b23pgizrq9"; })
   (fetchNuGet { pname = "Expecto.Diff"; version = "9.0.4"; sha256 = "06g6nbr5kdr7hyayh24ry6xfghxpcfkqc8kma5qa5lcvhmy56f7j"; })
-  (fetchNuGet { pname = "Fake.Core.CommandLineParsing"; version = "6.0.0"; sha256 = "153m18jzji0rar0k1dqj1h90pfny00jyzbmp6vvlc9dcl89xfgvg"; })
-  (fetchNuGet { pname = "Fake.Core.Context"; version = "6.0.0"; sha256 = "1pqgc1zq50icw5j375wy9n7749r2rfqakajmdilyaxzczcxs4m2h"; })
-  (fetchNuGet { pname = "Fake.Core.Environment"; version = "6.0.0"; sha256 = "1r509s23djb1m62q0hmdgksrx975ksdanhzxzagh3xhmla49icni"; })
-  (fetchNuGet { pname = "Fake.Core.FakeVar"; version = "6.0.0"; sha256 = "0rmq31p6p5837q79nff6fmnwrnq4jkfmbq0sp639nzrcw72p9wql"; })
-  (fetchNuGet { pname = "Fake.Core.Process"; version = "6.0.0"; sha256 = "15zwgk6b1nk6a515n46x2cjj61hg9h4zq65z98v8amhasdml7vj1"; })
-  (fetchNuGet { pname = "Fake.Core.SemVer"; version = "6.0.0"; sha256 = "0j0w1wbg6zv84qn888ygh96saqpsbml7f3r5a9sfryvglxpzm6s3"; })
-  (fetchNuGet { pname = "Fake.Core.String"; version = "6.0.0"; sha256 = "05gyzydzvi9dnyzi7yrw9dy8bszikf3y3ayy7sg2zvwcskw65sma"; })
-  (fetchNuGet { pname = "Fake.Core.Target"; version = "6.0.0"; sha256 = "0wrf6vfp5yrm2hijdyb4nn9s4ac460m9kmqfnncrbqwdsg4yggpq"; })
-  (fetchNuGet { pname = "Fake.Core.Trace"; version = "6.0.0"; sha256 = "0v2m641d8ic04j9i8wrskqa85gpdaxcldg2d4ck4f0fpgb3py205"; })
-  (fetchNuGet { pname = "Fake.IO.FileSystem"; version = "6.0.0"; sha256 = "0kjj9ippsbi138kjipl34cx9pajmj71d205y9h5pmj7djilcvq47"; })
-  (fetchNuGet { pname = "Fake.Tools.Git"; version = "6.0.0"; sha256 = "18qj5r769r70bygn2si0d5xb921jxfdw6mg4v75i2fj79581bbcz"; })
-  (fetchNuGet { pname = "fantomas"; version = "6.2.3"; sha256 = "1x91w4sk402b6ah1y0r0c9rxwbbnjp4x4mr7x4n5zvjhiv97b282"; })
+  (fetchNuGet { pname = "fantomas"; version = "6.3.1"; sha256 = "0kkhdwcw0l7pa1hjil2hjpizjbp618ig32wgni5sfaqmxkc9iywq"; })
   (fetchNuGet { pname = "Fantomas.Client"; version = "0.9.0"; sha256 = "1zixwk61fyk7y9q6f8266kwxi6byr8fmyp1lf57qhbbvhq2waj9d"; })
-  (fetchNuGet { pname = "Fantomas.Core"; version = "6.2.0"; sha256 = "07yl2hr06zk1nl66scm24di3nf1zbrnd6329prwirnv370rz4q92"; })
-  (fetchNuGet { pname = "Fantomas.FCS"; version = "6.2.0"; sha256 = "1hhsa7hbxsm2d8ap4sqzwlzjmf4wsgg74i731rprr0nshjvd8ic7"; })
   (fetchNuGet { pname = "FParsec"; version = "1.1.1"; sha256 = "01s3zrxl9kfx0264wy0m555pfx0s0z165n4fvpgx63jlqwbd8m04"; })
-  (fetchNuGet { pname = "fsharp-analyzers"; version = "0.23.0"; sha256 = "115dqscxx02dss9s1shl6c1x6zc2dgrk9w8bj48cyjnwm79icqq9"; })
+  (fetchNuGet { pname = "fsharp-analyzers"; version = "0.25.0"; sha256 = "01i9yhqs7b0p9s1j9m8g3yd8w3a3xp9bp8791zmxp31l5ricjdwy"; })
   (fetchNuGet { pname = "FSharp.Analyzers.Build"; version = "0.3.0"; sha256 = "1c9ijc9lvyw4lfnd3m9260c8lwnh6ca91zslr29dpn525z9zgdif"; })
   (fetchNuGet { pname = "FSharp.Analyzers.SDK"; version = "0.25.0"; sha256 = "13s2bhizbl2ss9944wk3cka1ri22rs7aqhiiz2i9lyaj9jz863cy"; })
   (fetchNuGet { pname = "FSharp.Compiler.Service"; version = "43.8.200"; sha256 = "1jcp8by02n7vbs11p0gxmb42837l7q841f71ifmrqw7chmg14zik"; })
   (fetchNuGet { pname = "FSharp.Control.AsyncSeq"; version = "3.2.1"; sha256 = "02c8d8snd529rrcj6lsmab3wdq2sjh90j8sanx50ck9acfn9jd3v"; })
   (fetchNuGet { pname = "FSharp.Control.Reactive"; version = "5.0.5"; sha256 = "0ahvd3s5wfv610ks3b00ya5r71cqm34ap8ywx0pyrzhlsbk1ybqg"; })
-  (fetchNuGet { pname = "FSharp.Core"; version = "6.0.5"; sha256 = "07929km96znf6xnqzmxdk3h48kz2rg9msf4c5xxmnjqr0ikfb8c6"; })
   (fetchNuGet { pname = "FSharp.Core"; version = "8.0.200"; sha256 = "1v0w8n02wshggymckvy9l343yiznjfmif9nfd35f9a32s5wj4dn2"; })
   (fetchNuGet { pname = "FSharp.Data.Adaptive"; version = "1.2.13"; sha256 = "16l1h718h110yl2q83hzy1rpalyqlicdaxln7g0bf8kzq9b2v6rz"; })
   (fetchNuGet { pname = "FSharp.Formatting"; version = "14.0.1"; sha256 = "0sx4jlxzmrdcmc937arc9v0r90qkpf2gd1m9ngkpg88qvqcx4xsa"; })
@@ -57,13 +43,13 @@
   (fetchNuGet { pname = "Iced"; version = "1.17.0"; sha256 = "1999xavgpy2h83rh4indiq5mx5l509swqdi1raxj3ab6zvk49zpb"; })
   (fetchNuGet { pname = "IcedTasks"; version = "0.9.2"; sha256 = "1i4sg398qvxyrprca9jssn4lccwn67zndbg1a3a37cmsms5rlbvj"; })
   (fetchNuGet { pname = "ICSharpCode.Decompiler"; version = "7.2.1.6856"; sha256 = "19z68rgzl93lh1h8anbgzw119mhvcgr9nh5q2nxk6qihl2mx97ba"; })
-  (fetchNuGet { pname = "Ionide.Analyzers"; version = "0.7.0"; sha256 = "10s4wznblcdazrvghf64y59j1w4bvwar8iznjl0rncbka09ba4q5"; })
+  (fetchNuGet { pname = "Ionide.Analyzers"; version = "0.10.0"; sha256 = "1z97m2r6p13yg253zlx89x7fd4zvxmkggilav5h5wf4blsfxvzw1"; })
   (fetchNuGet { pname = "Ionide.KeepAChangelog.Tasks"; version = "0.1.8"; sha256 = "066zla2rp1sal6by3h3sg6ibpkk52kbhn30bzk58l6ym7q1kqa6b"; })
-  (fetchNuGet { pname = "Ionide.LanguageServerProtocol"; version = "0.4.20"; sha256 = "08ym8lljnkqk638f2djw3c0p6h0nzxycifz1dqhzzd2my5ss46zf"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo"; version = "0.63.0"; sha256 = "1nvnckzr6bnzv5zlw7n8f8hv1a0vl31pv0jw2b0zd72qz1bs1dm4"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.FCS"; version = "0.63.0"; sha256 = "1viccl54v4ls8mhw4lpmblbyw47sblpzq8fscff06lqngbbqk6pr"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.ProjectSystem"; version = "0.63.0"; sha256 = "1pr95x6hfahcwqgkjnm7zaf43qyw7j9fwbqxvly9wpnz5drnk6yv"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.Sln"; version = "0.63.0"; sha256 = "1wpq3fm52zn7c57pkywadgcfrn072q50nnqvvnr41n6r7qj665gi"; })
+  (fetchNuGet { pname = "Ionide.LanguageServerProtocol"; version = "0.4.23"; sha256 = "0jfsan2d7aj68xksn1xrdiww1fdz34n7k91r5y4a77jx6h4ngbxq"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo"; version = "0.64.0"; sha256 = "0sbd392f4fwmq4v652ak39md35vcgxl4q05y5dgrk71kpak6pg2w"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.FCS"; version = "0.64.0"; sha256 = "0srbqyaivq8i6xl20v5hg7zxkvby06zirmcppv1apwh9p1yvi68k"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.ProjectSystem"; version = "0.64.0"; sha256 = "0rzj97ysw4skavq4amhv5fd0h1dyyqi4rxzxzpd4cd07xc8bnfv6"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.Sln"; version = "0.64.0"; sha256 = "1yd30n5idc5rbqi7lr8gp4hb51l85q3canqinlaxa6raaml0xxsj"; })
   (fetchNuGet { pname = "LinkDotNet.StringBuilder"; version = "1.18.0"; sha256 = "0lgh4yjnim9qbqkmkgpx5fi2lha1cgcdbddvbsiw9jzp18fndxly"; })
   (fetchNuGet { pname = "McMaster.NETCore.Plugins"; version = "1.4.0"; sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
@@ -106,9 +92,7 @@
   (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.4.0"; sha256 = "1smx30nq22plrn2mw4wb5vfgxk6hyx12b60c4wabmpnr81lq3nzv"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.4.1"; sha256 = "02p1j9fncd4fb2hyp51kw49d0dz30vvazhzk24c9f5ccc00ijpra"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "7.0.4"; sha256 = "0afmivk3m0hmwsiqnl87frzi7g57aiv5fwnjds0icl66djpb6zsm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.3"; sha256 = "05smkcyxir59rgrmp7d6327vvrlacdgldfxhmyr1azclvga1zfsq"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
   (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.3"; sha256 = "0hc4d4d4358g5192mf8faijwk0bpf9pjwcfd3h85sr67j0zhj6hl"; })
   (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net461"; version = "1.0.3"; sha256 = "1jcc552rwpaybd2ql0b31063ayj70sd3k6qqpf850xmqbyg2hlmx"; })
   (fetchNuGet { pname = "Microsoft.SourceLink.AzureRepos.Git"; version = "1.1.1"; sha256 = "059c8i2vybprn63sw2jr7xma4yyl2syx6hzygfdpr0zd5jlgy9rz"; })
@@ -130,7 +114,7 @@
   (fetchNuGet { pname = "OpenTelemetry"; version = "1.3.2"; sha256 = "1v9ipc75ipwjhhz4mkyjygw85i6ba5flcbhyspmf90vfi2nk7b79"; })
   (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.3.2"; sha256 = "0fgl99k6nm3n47vv9mx6y36pnljj2b5g641cs2zsw6l86n57qwv1"; })
   (fetchNuGet { pname = "OpenTelemetry.Exporter.OpenTelemetryProtocol"; version = "1.3.2"; sha256 = "14p6rn68mqrch3ani17vwyl4ggjz680nxkw1nf65xmf1ljlkb4iq"; })
-  (fetchNuGet { pname = "Paket"; version = "8.0.0-alpha002"; sha256 = "1c2kdndyb04plgwvqp78224zwk26dkicjy94pqh7shc9ifskrvsb"; })
+  (fetchNuGet { pname = "Paket"; version = "8.0.3"; sha256 = "12xm100rg82p5fvkn63mmjc8i38q8yvk5327snwzqijlfh3k60n0"; })
   (fetchNuGet { pname = "Perfolizer"; version = "0.2.1"; sha256 = "012aqqi3y3nfikqmn26yajpwd52c04zlzp0p91iyslw7mf26qncy"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
   (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
diff --git a/pkgs/development/tools/language-servers/fortls/default.nix b/pkgs/development/tools/language-servers/fortls/default.nix
index 1fc614150b542..ccb70db0727c4 100644
--- a/pkgs/development/tools/language-servers/fortls/default.nix
+++ b/pkgs/development/tools/language-servers/fortls/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonApplication rec {
   pname = "fortls";
-  version = "2.13.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "fortran-lang";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-kFk2Dlnb0FXM3Ysvsy+g2AAMgpWmwzxuyJPovDm/FJU=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kRL4kLX1T2Sontl8f3VO8Hb7uI41JwhZBiH//gdcmNE=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/tools/language-servers/vscode-langservers-extracted/default.nix b/pkgs/development/tools/language-servers/vscode-langservers-extracted/default.nix
index aa77056416151..2743bdac80731 100644
--- a/pkgs/development/tools/language-servers/vscode-langservers-extracted/default.nix
+++ b/pkgs/development/tools/language-servers/vscode-langservers-extracted/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "vscode-langservers-extracted";
-  version = "4.8.0";
+  version = "4.9.0";
 
   src = fetchFromGitHub {
     owner = "hrsh7th";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-sGnxmEQ0J74zNbhRpsgF/cYoXwn4jh9yBVjk6UiUdK0=";
+    hash = "sha256-4qAQa8Pt7Br0T770ck2F912ZddrzgTKEliSAP/qLvgE=";
   };
 
-  npmDepsHash = "sha256-LFWC87Ahvjf2moijayFze1Jk0TmTc7rOUd/s489PHro=";
+  npmDepsHash = "sha256-2rRyg+UO3wnq5CuG5q87YOdGng9zBTh9aXueB0xf8ps=";
 
   buildPhase =
     let
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index 3a64d043c4e57..f8b7125f7fca6 100644
--- a/pkgs/development/tools/misc/blackfire/default.nix
+++ b/pkgs/development/tools/misc/blackfire/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "blackfire";
-  version = "2.27.0";
+  version = "2.28.1";
 
   src = passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported platform for blackfire: ${stdenv.hostPlatform.system}");
 
@@ -57,23 +57,23 @@ stdenv.mkDerivation rec {
     sources = {
       "x86_64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
-        sha256 = "4SFexvlmw6+ZI+cQAe9xIoeR43c8BG97v8A8oIB9fP4=";
+        sha256 = "n7bNRws6IwTYbWsUAHNtV1hfW+YDygJn/U1U5MaUuew=";
       };
       "i686-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
-        sha256 = "N34qScxL9JhqyUika2QIioW+dixxRMv9Y1Q0DaxIA80=";
+        sha256 = "zH6mEeW0EjYPVSAJ4cL3YpaQPd+h0zxO7qfN43qb67Q=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
-        sha256 = "rZ+n9mJAL7CZR91+PxHt7oNZAfZnQKAqDSaU8z4ahS4=";
+        sha256 = "ncX9aHxZJhth3Md591PBhMO3uhsiI03L7M60hOm4uko=";
       };
       "aarch64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
-        sha256 = "fHrgX6YFojEj+eD933WgR4DgIZmJupmHmdO3gHzQxSc=";
+        sha256 = "OcZ0tyNerGXZKwrJRN4a+1Z51CeHDokYvfA3ve0bNKA=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
-        sha256 = "oxG/p946JettJZqEkmPWpfvLkLUg1FYA77hNdJ+jGfE=";
+        sha256 = "ypCC+u6rpGDYkXtw4Q6bBBwLfcmRk4GmmcXHKvmXqFI=";
       };
     };
 
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index 9d32aa3b46c5d..df6e223aeb19a 100644
--- a/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -14,47 +14,47 @@ assert lib.assertMsg (!php.ztsSupport) "blackfire only supports non zts versions
 let
   phpMajor = lib.versions.majorMinor php.version;
 
-  version = "1.92.14";
+  version = "1.92.15";
 
   hashes = {
     "x86_64-linux" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-a6kPE2HEj92XlgGUSPmil2ply+ypW7QbqPUk4dQR/us=";
-        "8.2" = "sha256-/33/RRQzSGMeV41YXmKQFMawHBS6l8ewaQRwiUnrkl4=";
-        "8.3" = "sha256-M4vFfucys/DTbAm0xwhC2KZ3HrPQ0r2g8WLNzr+cWmQ=";
+        "8.1" = "sha256-CTh3HdTZS5tjnSN5JUX55aioFSqs3FQfy7S5ofXlyBs=";
+        "8.2" = "sha256-q/Zwpvm+pT6JdkC2nX7fEf+eDmWmtLniL+5Cys8kdNI=";
+        "8.3" = "sha256-8MGY3Spa4cWqUL4S/qHKPJql5DRhtvmYEE3oBLNNm3M=";
       };
     };
     "i686-linux" = {
       system = "i386";
       hash = {
-        "8.1" = "sha256-w+NRriK0F6DaWUKRF2Irphnw/5RjMZ56XRVTgY1HRqk=";
-        "8.2" = "sha256-XJjQ3545cEWkWZGQIS6GAmG6d64uCCEqbTl96iX44Cw=";
-        "8.3" = "sha256-2/8duEjnAA1CMfN2HEL2zH7pad9jDZMA6IrTxfMHZv4=";
+        "8.1" = "sha256-mOiBQLXiPYMgHpcPTguEm0hffm+DZnv6MCbFbmRoEdE=";
+        "8.2" = "sha256-3xPG33DSxnQ9a9rbTov5ILi3hPWsruNZJS1NXttxfxQ=";
+        "8.3" = "sha256-4Nk+8ZIZ83/oeygDdhHI0mRRCvOEMmdWJoteDVkYuT4=";
       };
     };
     "aarch64-linux" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-DiNt17csOh3w2ZaQqattdCEbCqR0jAh2E2wm/B9EPtI=";
-        "8.2" = "sha256-wGee78wfvbiPxtTdqfYAfvHZxv+dj9dYW5pDPPWgqW4=";
-        "8.3" = "sha256-28n/p9gyMoPjuS6ua/UO1Z5FGdVciTrVS7Pyz2D5NVc=";
+        "8.1" = "sha256-5XUk2v65ceHqnfatLq9E1+J5QRgCDpKxR4ZFpCAsfdI=";
+        "8.2" = "sha256-Lr8wBAXYHXwPokwQMni5tsNncor9ZRjNwtL/5hodUq8=";
+        "8.3" = "sha256-KZLPFaa5NPksfhA99S8qV3FngJTDonhG+MMPkCwxUys=";
       };
     };
     "aarch64-darwin" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-6SmWgpWGX3BKAMOdTh/CTITUKXiT681MHKgKXlrymv0=";
-        "8.2" = "sha256-KHuBiFBPWlERJSfRmum74s9xZf0nT28p0NAJaYv5p7Y=";
-        "8.3" = "sha256-ziLv+t+jHo4tEk7gseOOwQzFJKqGxE74XSxizl9LOrk=";
+        "8.1" = "sha256-G5wrH9M+b69BLKRI4n9FydGDV/q7Ch7u+Zvol2+ptwI=";
+        "8.2" = "sha256-zgcYT2oWCa2kc4wLx94nxRjg0sebjdGxuPJNbiBZ/Is=";
+        "8.3" = "sha256-l1zNH47lNpHj7qRgqoxJisn7dU2VzSGFt0v8/9VpYiI=";
       };
     };
     "x86_64-darwin" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-vZLOk9cTeyHxRhvwJFrmzX9EasSfCxVXSZ8aYLysX3s=";
-        "8.2" = "sha256-fk2IBiQPqAHQgaymORu/fb8Hl4yzpMeiIU12x8X8WcE=";
-        "8.3" = "sha256-2mf21oTvN0LzujAKtlDuFEQgYXny8cJfBXvYBy+kIPk=";
+        "8.1" = "sha256-mmmzmR4yzwmXAl6YoSOKSivF7uixGZYaFQVIqWd0Ud4=";
+        "8.2" = "sha256-1jnw3BADm38C1Hi4lBs5B+kJl1karTljVHxHGEfZmtw=";
+        "8.3" = "sha256-7a2JyeLP4HwyaYsb7zAio2HrUPbBVpVEOUjWKCilkFY=";
       };
     };
   };
diff --git a/pkgs/development/tools/mysql-shell/default.nix b/pkgs/development/tools/mysql-shell/default.nix
index fe8ad46fe2f21..96b51392f151e 100644
--- a/pkgs/development/tools/mysql-shell/default.nix
+++ b/pkgs/development/tools/mysql-shell/default.nix
@@ -37,16 +37,16 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "mysql-shell";
-  version = "8.0.36";
+  version = "8.0.37";
 
   srcs = [
     (fetchurl {
-      url = "https://cdn.mysql.com//Downloads/MySQL-${lib.versions.majorMinor finalAttrs.version}/mysql-${finalAttrs.version}.tar.gz";
-      hash = "sha256-9PJwa5WKinOA72yVjdlyMHvb7qRR76/DQuTEbim36d0=";
+      url = "https://dev.mysql.com/get/Downloads/MySQL-${lib.versions.majorMinor finalAttrs.version}/mysql-${finalAttrs.version}.tar.gz";
+      hash = "sha256-4GOgkazZ7EC7BfLATfZPiZan5OJuiDu2UChJ1fa0pho=";
     })
     (fetchurl {
-      url = "https://cdn.mysql.com//Downloads/MySQL-Shell/mysql-shell-${finalAttrs.version}-src.tar.gz";
-      hash = "sha256-s0+7dbcLcgS8u/6p7vpVAV9sR2gf2j9VDnSCJvw77fQ=";
+      url = "https://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-${finalAttrs.version}-src.tar.gz";
+      hash = "sha256-UtZ7/Ip5h9CXKy3lkSt8/TXJgbPPUO73rMSIFPfX0Is=";
     })
   ];
 
diff --git a/pkgs/development/tools/rust/cargo-about/default.nix b/pkgs/development/tools/rust/cargo-about/default.nix
index 8537cabcaca10..8ac62bdae1117 100644
--- a/pkgs/development/tools/rust/cargo-about/default.nix
+++ b/pkgs/development/tools/rust/cargo-about/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, pkg-config
-, zstd
-, stdenv
-, darwin
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  pkg-config,
+  zstd,
+  stdenv,
+  darwin,
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -22,9 +23,12 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ zstd ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
-  ];
+  buildInputs =
+    [ zstd ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.SystemConfiguration
+    ];
 
   env = {
     ZSTD_SYS_USE_PKG_CONFIG = true;
@@ -34,8 +38,15 @@ rustPlatform.buildRustPackage rec {
     description = "Cargo plugin to generate list of all licenses for a crate";
     homepage = "https://github.com/EmbarkStudios/cargo-about";
     changelog = "https://github.com/EmbarkStudios/cargo-about/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ mit /* or */ asl20 ];
-    maintainers = with maintainers; [ evanjs figsoda matthiasbeyer ];
+    license = with licenses; [
+      mit # or
+      asl20
+    ];
+    maintainers = with maintainers; [
+      evanjs
+      figsoda
+      matthiasbeyer
+    ];
     mainProgram = "cargo-about";
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
index 5c7d0d57fde0b..9babac9ebadee 100644
--- a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
+++ b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, rustPlatform
-, pkg-config
-, openssl
-, runCommand
-, patchelf
-, zlib
-, Security
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  darwin,
+  rustPlatform,
+  pkg-config,
+  openssl,
+  runCommand,
+  patchelf,
+  zlib,
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -23,41 +24,46 @@ rustPlatform.buildRustPackage rec {
 
   patches =
     let
-      patchelfPatch = runCommand "0001-dynamically-patchelf-binaries.patch"
-        {
-          CC = stdenv.cc;
-          patchelf = patchelf;
-          libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
-        }
-        ''
-          export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
-          substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
-            --subst-var patchelf \
-            --subst-var dynamicLinker \
-            --subst-var libPath
-        '';
+      patchelfPatch =
+        runCommand "0001-dynamically-patchelf-binaries.patch"
+          {
+            CC = stdenv.cc;
+            patchelf = patchelf;
+            libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
+          }
+          ''
+            export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+            substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+              --subst-var patchelf \
+              --subst-var dynamicLinker \
+              --subst-var libPath
+          '';
     in
     lib.optionals stdenv.isLinux [ patchelfPatch ];
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
-    Security
-  ];
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.SystemConfiguration
+    ];
 
   cargoHash = "sha256-CgEs0cejquFRY3VN6CgbE23Gipg+LEuWp/jSIkITrjw=";
 
   checkFlags = [
-    "--skip test_github"  # requires internet
+    "--skip test_github" # requires internet
   ];
 
   meta = with lib; {
     description = "Bisects rustc, either nightlies or CI artifacts";
     mainProgram = "cargo-bisect-rustc";
     homepage = "https://github.com/rust-lang/cargo-bisect-rustc";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     maintainers = with maintainers; [ davidtwco ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-raze/default.nix b/pkgs/development/tools/rust/cargo-raze/default.nix
deleted file mode 100644
index b87d9d4570b6c..0000000000000
--- a/pkgs/development/tools/rust/cargo-raze/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, rustPlatform
-, pkg-config
-, curl
-, libgit2
-, openssl
-, Security
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "cargo-raze";
-  version = "0.16.0";
-
-  src = fetchFromGitHub {
-    owner = "google";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-ip0WuBn1b7uN/pAhOl5tfmToK73ZSHK7rucdtufsbCQ=";
-  };
-  sourceRoot = "${src.name}/impl";
-
-  cargoHash = "sha256-hNZgQwhm4UPqmANplZGxG0DYHa31tu06nmqYaCA7Vdg=";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    libgit2
-    openssl
-    curl
-  ]
-  ++ lib.optional stdenv.isDarwin Security;
-
-  preCheck = lib.optionalString stdenv.isDarwin ''
-    # Darwin issue: Os { code: 24, kind: Uncategorized, message: "Too many open files" }
-    # https://github.com/google/cargo-raze/issues/544
-    ulimit -n 1024
-  '';
-
-  __darwinAllowLocalNetworking = true;
-
-  meta = with lib; {
-    description = "Generate Bazel BUILD files from Cargo dependencies";
-    homepage = "https://github.com/google/cargo-raze";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ elasticdog ];
-  };
-}
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index e9ba507a3c95d..a633430ee673e 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -28,14 +28,14 @@ assert lib.assertOneOf "backend" backend [ "opencl" "cuda" "tensorrt" "eigen" ];
 # of gcc.  If you need to use cuda10, please override stdenv with gcc8Stdenv
 stdenv.mkDerivation rec {
   pname = "katago";
-  version = "1.14.0";
-  githash = "c6de1bbda837a0717eaeca46102f7326ed0da0d4";
+  version = "1.14.1";
+  githash = "f2dc582f98a79fefeb11b2c37de7db0905318f4f";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
     rev = "v${version}";
-    sha256 = "sha256-0WB/weQIJkLXedcOJO7D/N85oXTufvbmyfIp8XdrACg=";
+    hash = "sha256-ZdvHvrtSLwQ5vFMzLdJSJEiGcSent9iskPgpbL1TfhI=";
   };
 
   fakegit = writeShellScriptBin "git" "echo ${githash}";
diff --git a/pkgs/games/minecraft-servers/versions.json b/pkgs/games/minecraft-servers/versions.json
index a314b6c27428e..5fece659ca419 100644
--- a/pkgs/games/minecraft-servers/versions.json
+++ b/pkgs/games/minecraft-servers/versions.json
@@ -1,115 +1,115 @@
 {
   "1.20": {
-    "sha1": "79493072f65e17243fd36a699c9a96b4381feb91",
-    "url": "https://piston-data.mojang.com/v1/objects/79493072f65e17243fd36a699c9a96b4381feb91/server.jar",
-    "version": "1.20.5",
+    "sha1": "145ff0858209bcfc164859ba735d4199aafa1eea",
+    "url": "https://piston-data.mojang.com/v1/objects/145ff0858209bcfc164859ba735d4199aafa1eea/server.jar",
+    "version": "1.20.6",
     "javaVersion": 21
   },
   "1.19": {
-    "url": "https://piston-data.mojang.com/v1/objects/8f3112a1049751cc472ec13e397eade5336ca7ae/server.jar",
     "sha1": "8f3112a1049751cc472ec13e397eade5336ca7ae",
+    "url": "https://piston-data.mojang.com/v1/objects/8f3112a1049751cc472ec13e397eade5336ca7ae/server.jar",
     "version": "1.19.4",
     "javaVersion": 17
   },
   "1.18": {
-    "url": "https://piston-data.mojang.com/v1/objects/c8f83c5655308435b3dcf03c06d9fe8740a77469/server.jar",
     "sha1": "c8f83c5655308435b3dcf03c06d9fe8740a77469",
+    "url": "https://piston-data.mojang.com/v1/objects/c8f83c5655308435b3dcf03c06d9fe8740a77469/server.jar",
     "version": "1.18.2",
     "javaVersion": 17
   },
   "1.17": {
-    "url": "https://piston-data.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar",
     "sha1": "a16d67e5807f57fc4e550299cf20226194497dc2",
+    "url": "https://piston-data.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar",
     "version": "1.17.1",
     "javaVersion": 16
   },
   "1.16": {
-    "url": "https://piston-data.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar",
     "sha1": "1b557e7b033b583cd9f66746b7a9ab1ec1673ced",
+    "url": "https://piston-data.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar",
     "version": "1.16.5",
     "javaVersion": 8
   },
   "1.15": {
-    "url": "https://piston-data.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar",
     "sha1": "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07",
+    "url": "https://piston-data.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar",
     "version": "1.15.2",
     "javaVersion": 8
   },
   "1.14": {
-    "url": "https://piston-data.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar",
     "sha1": "3dc3d84a581f14691199cf6831b71ed1296a9fdf",
+    "url": "https://piston-data.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar",
     "version": "1.14.4",
     "javaVersion": 8
   },
   "1.13": {
-    "url": "https://piston-data.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar",
     "sha1": "3737db93722a9e39eeada7c27e7aca28b144ffa7",
+    "url": "https://piston-data.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar",
     "version": "1.13.2",
     "javaVersion": 8
   },
   "1.12": {
-    "url": "https://piston-data.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar",
     "sha1": "886945bfb2b978778c3a0288fd7fab09d315b25f",
+    "url": "https://piston-data.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar",
     "version": "1.12.2",
     "javaVersion": 8
   },
   "1.11": {
-    "url": "https://piston-data.mojang.com/v1/objects/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar",
     "sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4",
+    "url": "https://piston-data.mojang.com/v1/objects/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar",
     "version": "1.11.2",
     "javaVersion": 8
   },
   "1.10": {
-    "url": "https://piston-data.mojang.com/v1/objects/3d501b23df53c548254f5e3f66492d178a48db63/server.jar",
     "sha1": "3d501b23df53c548254f5e3f66492d178a48db63",
+    "url": "https://piston-data.mojang.com/v1/objects/3d501b23df53c548254f5e3f66492d178a48db63/server.jar",
     "version": "1.10.2",
     "javaVersion": 8
   },
   "1.9": {
-    "url": "https://piston-data.mojang.com/v1/objects/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar",
     "sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274",
+    "url": "https://piston-data.mojang.com/v1/objects/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar",
     "version": "1.9.4",
     "javaVersion": 8
   },
   "1.8": {
-    "url": "https://launcher.mojang.com/v1/objects/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar",
     "sha1": "b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd",
+    "url": "https://launcher.mojang.com/v1/objects/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar",
     "version": "1.8.9",
     "javaVersion": 8
   },
   "1.7": {
-    "url": "https://launcher.mojang.com/v1/objects/952438ac4e01b4d115c5fc38f891710c4941df29/server.jar",
     "sha1": "952438ac4e01b4d115c5fc38f891710c4941df29",
+    "url": "https://launcher.mojang.com/v1/objects/952438ac4e01b4d115c5fc38f891710c4941df29/server.jar",
     "version": "1.7.10",
     "javaVersion": 8
   },
   "1.6": {
-    "url": "https://launcher.mojang.com/v1/objects/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar",
     "sha1": "050f93c1f3fe9e2052398f7bd6aca10c63d64a87",
+    "url": "https://launcher.mojang.com/v1/objects/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar",
     "version": "1.6.4",
     "javaVersion": null
   },
   "1.5": {
-    "url": "https://launcher.mojang.com/v1/objects/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar",
     "sha1": "f9ae3f651319151ce99a0bfad6b34fa16eb6775f",
+    "url": "https://launcher.mojang.com/v1/objects/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar",
     "version": "1.5.2",
     "javaVersion": 8
   },
   "1.4": {
-    "url": "https://launcher.mojang.com/v1/objects/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar",
     "sha1": "2f0ec8efddd2f2c674c77be9ddb370b727dec676",
+    "url": "https://launcher.mojang.com/v1/objects/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar",
     "version": "1.4.7",
     "javaVersion": 8
   },
   "1.3": {
-    "url": "https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar",
     "sha1": "3de2ae6c488135596e073a9589842800c9f53bfe",
+    "url": "https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar",
     "version": "1.3.2",
     "javaVersion": 8
   },
   "1.2": {
-    "url": "https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar",
     "sha1": "d8321edc9470e56b8ad5c67bbd16beba25843336",
+    "url": "https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar",
     "version": "1.2.5",
     "javaVersion": 8
   }
diff --git a/pkgs/kde/gear/kdeconnect-kde/default.nix b/pkgs/kde/gear/kdeconnect-kde/default.nix
index fd8868cf41c2a..2381dd58c868d 100644
--- a/pkgs/kde/gear/kdeconnect-kde/default.nix
+++ b/pkgs/kde/gear/kdeconnect-kde/default.nix
@@ -1,5 +1,8 @@
 {
+  lib,
   mkKdeDerivation,
+  substituteAll,
+  sshfs,
   qtconnectivity,
   qtmultimedia,
   qtwayland,
@@ -11,6 +14,23 @@
 mkKdeDerivation {
   pname = "kdeconnect-kde";
 
+  patches = [
+    (substituteAll {
+      src = ./hardcode-sshfs-path.patch;
+      sshfs = lib.getExe sshfs;
+    })
+    # We build OpenSSH without ssh-dss support, so sshfs explodes at runtime.
+    # See: https://github.com/NixOS/nixpkgs/commit/6ee4b8c8bf815567f7d0fa131576d2b8c0a18167
+    # FIXME: upstream?
+    ./remove-ssh-dss.patch
+  ];
+
+  # Hardcoded as a QString, which is UTF-16 so Nix can't pick it up automatically
+  postFixup = ''
+    mkdir -p $out/nix-support
+    echo "${sshfs}" > $out/nix-support/depends
+  '';
+
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [qtconnectivity qtmultimedia qtwayland wayland wayland-protocols libfakekey];
 
diff --git a/pkgs/kde/gear/kdeconnect-kde/hardcode-sshfs-path.patch b/pkgs/kde/gear/kdeconnect-kde/hardcode-sshfs-path.patch
new file mode 100644
index 0000000000000..df78f60fcf903
--- /dev/null
+++ b/pkgs/kde/gear/kdeconnect-kde/hardcode-sshfs-path.patch
@@ -0,0 +1,13 @@
+diff --git a/plugins/sftp/mounter.cpp b/plugins/sftp/mounter.cpp
+index 29e94f3b..c71e552f 100644
+--- a/plugins/sftp/mounter.cpp
++++ b/plugins/sftp/mounter.cpp
+@@ -94,7 +94,7 @@ void Mounter::onPacketReceived(const NetworkPacket &np)
+ 
+     QDir().mkpath(m_mountPoint);
+ 
+-    const QString program = QStringLiteral("sshfs");
++    const QString program = QStringLiteral("@sshfs@");
+ 
+     QString path;
+     if (np.has(QStringLiteral("multiPaths")))
diff --git a/pkgs/kde/gear/kdeconnect-kde/remove-ssh-dss.patch b/pkgs/kde/gear/kdeconnect-kde/remove-ssh-dss.patch
new file mode 100644
index 0000000000000..b404132f4e97f
--- /dev/null
+++ b/pkgs/kde/gear/kdeconnect-kde/remove-ssh-dss.patch
@@ -0,0 +1,13 @@
+diff --git a/plugins/sftp/mounter.cpp b/plugins/sftp/mounter.cpp
+index 29e94f3b..0f300c63 100644
+--- a/plugins/sftp/mounter.cpp
++++ b/plugins/sftp/mounter.cpp
+@@ -122,7 +122,7 @@ void Mounter::onPacketReceived(const NetworkPacket &np)
+                       << QStringLiteral("-o") << QStringLiteral("IdentityFile=") + KdeConnectConfig::instance().privateKeyPath()
+                       << QStringLiteral("-o") << QStringLiteral("StrictHostKeyChecking=no") // Do not ask for confirmation because it is not a known host
+                       << QStringLiteral("-o") << QStringLiteral("UserKnownHostsFile=/dev/null") // Prevent storing as a known host
+-                      << QStringLiteral("-o") << QStringLiteral("HostKeyAlgorithms=+ssh-dss\\,ssh-rsa") // https://bugs.kde.org/show_bug.cgi?id=351725
++                      << QStringLiteral("-o") << QStringLiteral("HostKeyAlgorithms=+ssh-rsa") // https://bugs.kde.org/show_bug.cgi?id=351725
+                       << QStringLiteral("-o") << QStringLiteral("PubkeyAcceptedKeyTypes=+ssh-rsa") // https://bugs.kde.org/show_bug.cgi?id=443155
+                       << QStringLiteral("-o") << QStringLiteral("uid=") + QString::number(getuid())
+                       << QStringLiteral("-o") << QStringLiteral("gid=") + QString::number(getgid())
diff --git a/pkgs/kde/generated/sources/frameworks.json b/pkgs/kde/generated/sources/frameworks.json
index 3096bec16988b..ed0b7e489a2bd 100644
--- a/pkgs/kde/generated/sources/frameworks.json
+++ b/pkgs/kde/generated/sources/frameworks.json
@@ -180,9 +180,9 @@
     "hash": "sha256-Mx1v9rnLsOZSGl0HRrFSviWI/WMac9DiSbeM0s2mnM8="
   },
   "kirigami": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kirigami-6.2.0.tar.xz",
-    "hash": "sha256-VyRbUY1kxGr6tCoaYZYJr7YOVGAzoWK3GMdSuINQtAw="
+    "version": "6.2.1",
+    "url": "mirror://kde/stable/frameworks/6.2/kirigami-6.2.1.tar.xz",
+    "hash": "sha256-kQQSdw55ucE92sQhmfp1EXcM2Uhbj1omTh72NjozDJk="
   },
   "kitemmodels": {
     "version": "6.2.0",
diff --git a/pkgs/os-specific/darwin/rectangle/default.nix b/pkgs/os-specific/darwin/rectangle/default.nix
index ca83bb7db4c00..af7bb58e54a17 100644
--- a/pkgs/os-specific/darwin/rectangle/default.nix
+++ b/pkgs/os-specific/darwin/rectangle/default.nix
@@ -7,11 +7,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "rectangle";
-  version = "0.77";
+  version = "0.79";
 
   src = fetchurl {
     url = "https://github.com/rxhanson/Rectangle/releases/download/v${version}/Rectangle${version}.dmg";
-    hash = "sha256-wViFngw6iwlOG7KsW+zqxjm9ZRJahscX0TYz7/7T5nw=";
+    hash = "sha256-XczwgLONTt7wL+oW1ruw6wBwZTMd5VyN+79xJy0NUIg=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix b/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
index 3739c1dc3e463..7098f1f3203e6 100644
--- a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
+++ b/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
@@ -1,7 +1,7 @@
 # This file is autogenerated! Run ./update.sh to regenerate.
 {
-  version = "20240410";
-  revision = "20240410";
-  sourceHash = "sha256-Qo4f5kdHlBYKlzdFOtoKoCPHXxgDeCawSE3tnRwfC4U=";
-  outputHash = "sha256-pOYDdb0A1sESiT0kfA4DbWxKJ3+pog54+S3KcQB3BsA=";
+  version = "20240513";
+  revision = "20240513";
+  sourceHash = "sha256-8yzs8lgPHG3zbUvlsWSuP1O/4s28dRFbju2c9kbaFsg=";
+  outputHash = "sha256-LDd6FU1/16X7KoCCDq0yPvwJzK4H9NxHgrEdhEfaUGY=";
 }
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index b69c0f9c6003d..4e9cde7e4e8f5 100644
--- a/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -30,5 +30,9 @@
     "6.8": {
         "version": "6.8.9",
         "hash": "sha256:1dn9bgmf03bdfbmgq98d043702g808rjikxs2i9yia57iqiz21gr"
+    },
+    "6.9": {
+        "version": "6.9",
+        "hash": "sha256:0jc14s7z2581qgd82lww25p7c4w72scpf49z8ll3wylwk3xh3yi4"
     }
 }
diff --git a/pkgs/os-specific/linux/mstflint_access/default.nix b/pkgs/os-specific/linux/mstflint_access/default.nix
index 6e29e27ccbf20..95168249122f0 100644
--- a/pkgs/os-specific/linux/mstflint_access/default.nix
+++ b/pkgs/os-specific/linux/mstflint_access/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/kernel-mstflint-${version}.tar.gz";
-    hash = "sha256-rfZts0m8x6clVazpbAa2xK+dYgRU9Us5rbcWa0uHJ1M=";
+    hash = "sha256-bWYglHJUNCPT13N7aBdjbLPMZIk7vjvF+o9W3abDNr0=";
   };
 
   nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies;
@@ -18,10 +18,6 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  preConfigure = lib.optionals (lib.versionAtLeast kernel.version "6.4") ''
-    sed -i "s/class_create(THIS_MODULE, dev->name)/class_create(dev->name)/g" mst_main.c
-  '';
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 9cdc5dcd9d44d..2d1f033920bda 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -925,8 +925,9 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with lib.maintainers; [ flokli kloenk ];
     platforms = lib.platforms.linux;
     priority = 10;
-    badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ];
-    # https://github.com/systemd/systemd/issues/20600#issuecomment-912338965
-    broken = stdenv.hostPlatform.isStatic;
+    badPlatforms = [
+      # https://github.com/systemd/systemd/issues/20600#issuecomment-912338965
+      lib.systems.inspect.platformPatterns.isStatic
+    ];
   };
 })
diff --git a/pkgs/servers/home-assistant/custom-components/smartir/default.nix b/pkgs/servers/home-assistant/custom-components/smartir/default.nix
index 5dc9eb2473d72..876579639b647 100644
--- a/pkgs/servers/home-assistant/custom-components/smartir/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/smartir/default.nix
@@ -1,8 +1,11 @@
-{ lib
-, buildHomeAssistantComponent
-, fetchFromGitHub
-, aiofiles
-, broadlink
+{
+  lib,
+  buildHomeAssistantComponent,
+  fetchFromGitHub,
+  fetchpatch,
+  aiofiles,
+  broadlink,
+  nix-update-script,
 }:
 
 buildHomeAssistantComponent rec {
@@ -17,6 +20,15 @@ buildHomeAssistantComponent rec {
     hash = "sha256-E6TM761cuaeQzlbjA+oZ+wt5HTJAfkF2J3i4P1Wbuic=";
   };
 
+  patches = [
+    # Replace distutils.version.StrictVersion with packaging.version.Version
+    # https://github.com/smartHomeHub/SmartIR/pull/1250
+    (fetchpatch {
+      url = "https://github.com/smartHomeHub/SmartIR/commit/1ed8ef23a8f7b9dcae75721eeab8d5f79013b851.patch";
+      hash = "sha256-IhdnTDtUa7mS+Vw/+BqfqWIKK4hbshbVgJNjfKjgAvI=";
+    })
+  ];
+
   propagatedBuildInputs = [
     aiofiles
     broadlink
@@ -28,6 +40,8 @@ buildHomeAssistantComponent rec {
     cp -r codes $out/custom_components/smartir/
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     changelog = "https://github.com/smartHomeHub/SmartIR/releases/tag/v${version}";
     description = "Integration for Home Assistant to control climate, TV and fan devices via IR/RF controllers (Broadlink, Xiaomi, MQTT, LOOKin, ESPHome)";
diff --git a/pkgs/servers/home-assistant/custom-components/xiaomi_gateway3/default.nix b/pkgs/servers/home-assistant/custom-components/xiaomi_gateway3/default.nix
index fd453e0d321c0..40899c8926ea9 100644
--- a/pkgs/servers/home-assistant/custom-components/xiaomi_gateway3/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/xiaomi_gateway3/default.nix
@@ -1,27 +1,29 @@
-{ lib
-, buildHomeAssistantComponent
-, fetchFromGitHub
-, zigpy
+{
+  lib,
+  buildHomeAssistantComponent,
+  fetchFromGitHub,
+  zigpy,
+  nix-update-script,
 }:
 
 buildHomeAssistantComponent rec {
   owner = "AlexxIT";
   domain = "xiaomi_gateway3";
-  version = "4.0.3";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "AlexxIT";
     repo = "XiaomiGateway3";
     rev = "v${version}";
-    hash = "sha256-YGaVQaz3A0yM8AIC02CvMKWMJ3tW3OADYgKY8ViIt5U=";
+    hash = "sha256-C8aY23e6iWANbhCRQYNHx+3fomVO+7qdxj+qfv+K3JM=";
   };
 
-  propagatedBuildInputs = [
-    zigpy
-  ];
+  propagatedBuildInputs = [ zigpy ];
 
   dontBuild = true;
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     changelog = "https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v{version}";
     description = "Home Assistant custom component for control Xiaomi Multimode Gateway (aka Gateway 3), Xiaomi Multimode Gateway 2, Aqara Hub E1 on default firmwares over LAN";
diff --git a/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix b/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix
index 0c64655d76df5..6c26192d42280 100644
--- a/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, buildHomeAssistantComponent
-, fetchFromGitHub
-, hap-python
-, micloud
-, pyqrcode
-, python-miio
+{
+  lib,
+  buildHomeAssistantComponent,
+  fetchFromGitHub,
+  hap-python,
+  micloud,
+  pyqrcode,
+  python-miio,
+  nix-update-script,
 }:
 
 buildHomeAssistantComponent rec {
   owner = "al-one";
   domain = "xiaomi_miot";
-  version = "0.7.17";
+  version = "0.7.18";
 
   src = fetchFromGitHub {
     owner = "al-one";
     repo = "hass-xiaomi-miot";
     rev = "v${version}";
-    hash = "sha256-IpL4e2mKCdtNu8NtI+xpx4FPW/uj1M5Rk6DswXmSJBk=";
+    hash = "sha256-/Zn2jEjwkCHiz48nVjKEPcCpPVajLaZ81DCTNpx1vbk=";
   };
 
   propagatedBuildInputs = [
@@ -28,6 +30,8 @@ buildHomeAssistantComponent rec {
 
   dontBuild = true;
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     changelog = "https://github.com/al-one/hass-xiaomi-miot/releases/tag/${version}";
     description = "Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices.";
diff --git a/pkgs/servers/http/nginx/stable.nix b/pkgs/servers/http/nginx/stable.nix
index e3fab406c8d52..cc6a521af6626 100644
--- a/pkgs/servers/http/nginx/stable.nix
+++ b/pkgs/servers/http/nginx/stable.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix args {
-  version = "1.24.0";
-  hash = "sha256-d6JUFje5KmIePudndsi3tAz21wfmm6U6lAKD4w/y9V0=";
+  version = "1.26.0";
+  hash = "sha256-0ubIQ51sbbUBXY6qskcKtSrvhae/NjGCh5l34IQ3BJc=";
 }
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index 0f1947c65fda8..61e1c99ac9459 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -14,20 +14,15 @@
 
 buildDotnetModule rec {
   pname = "jellyfin";
-  version = "10.8.13"; # ensure that jellyfin-web has matching version
+  version = "10.9.1"; # ensure that jellyfin-web has matching version
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin";
     rev = "v${version}";
-    sha256 = "sha256-UtcrJRqDIPyewCNfI89E/IYrgLUhWx1me6MtPX+aeFU=";
+    sha256 = "sha256-ZvXz4gnpYE9bMvOHbmLhqJLUomPmk1K9ysw+Wlsyhr4=";
   };
 
-  patches = [
-    # when building some warnings are reported as error and fail the build.
-    ./disable-warnings.patch
-  ];
-
   propagatedBuildInputs = [
     sqlite
   ];
@@ -40,8 +35,8 @@ buildDotnetModule rec {
     fontconfig
     freetype
   ];
-  dotnet-sdk = dotnetCorePackages.sdk_6_0;
-  dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;
+  dotnet-sdk = dotnetCorePackages.sdk_8_0;
+  dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
   dotnetBuildFlags = [ "--no-self-contained" ];
 
   preInstall = ''
diff --git a/pkgs/servers/jellyfin/disable-warnings.patch b/pkgs/servers/jellyfin/disable-warnings.patch
deleted file mode 100644
index 1e13f77d0f1ae..0000000000000
--- a/pkgs/servers/jellyfin/disable-warnings.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/jellyfin.ruleset b/jellyfin.ruleset
-index 1c834de82..bf70fef1e 100644
---- a/jellyfin.ruleset
-+++ b/jellyfin.ruleset
-@@ -54,6 +54,33 @@
-     <Rule Id="SA1602" Action="None" />
-     <!-- disable warning SA1633: The file header is missing or not located at the top of the file -->
-     <Rule Id="SA1633" Action="None" />
-+
-+    <!-- disable warning SA1028: Code should not contain trailing whitespace -->
-+    <Rule Id="SA1028" Action="None" />
-+    <!-- disable warning SA1507: Code should not contain multiple blank lines in a row -->
-+    <Rule Id="SA1507" Action="None" />
-+    <!-- disable warning SA1642: Constructor summary documentation should begin with standard text -->
-+    <Rule Id="SA1642" Action="None" />
-+    <!-- disable warning SA1505: An opening brace should not be followed by a blank line -->
-+    <Rule Id="SA1505" Action="None" />
-+    <!-- disable warning SA1508: A closing brace should not be preceded by a blank line -->
-+    <Rule Id="SA1508" Action="None" />
-+    <!-- disable warning SA1513: Closing brace should be followed by blank line -->
-+    <Rule Id="SA1513" Action="None" />
-+    <!-- disable warning SA1111: Closing parenthesis should be on line of last parameter -->
-+    <Rule Id="SA1111" Action="None" />
-+    <!-- disable warning SA1649: File name should match first type name -->
-+    <Rule Id="SA1649" Action="None" />
-+    <!-- disable warning SA1137: Elements should have the same indentation -->
-+    <Rule Id="SA1137" Action="None" />
-+    <!-- disable warning SA1005: Single line comment should begin with a space -->
-+    <Rule Id="SA1005" Action="None" />
-+    <!-- disable warning SA1208: Using directive for 'System.Text' should appear before directive for '...' -->
-+    <Rule Id="SA1208" Action="None" />
-+    <!-- disable warning SA1208: The property's documentation summary text should begin with: 'Gets a value indicating whether' -->
-+    <Rule Id="SA1623" Action="None" />
-+    <!-- disable warning SA1625: Element documentation should not be copied and pasted -->
-+    <Rule Id="SA1625" Action="None" />
-   </Rules>
- 
-   <Rules AnalyzerId="Microsoft.CodeAnalysis.NetAnalyzers" RuleNamespace="Microsoft.Design">
diff --git a/pkgs/servers/jellyfin/nuget-deps.nix b/pkgs/servers/jellyfin/nuget-deps.nix
index 01b33dc905b5c..749345716552c 100644
--- a/pkgs/servers/jellyfin/nuget-deps.nix
+++ b/pkgs/servers/jellyfin/nuget-deps.nix
@@ -2,110 +2,149 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "BDInfo"; version = "0.7.6.2"; sha256 = "0i2hrd0s434bg7807q05m4781i0b4469ixpqqzrc5j3cw7y34w4a"; })
-  (fetchNuGet { pname = "BlurHashSharp"; version = "1.2.0"; sha256 = "01v56mxblgsclyajyvicvznqlsak29di3n4v5rm314k45avsiclp"; })
-  (fetchNuGet { pname = "BlurHashSharp.SkiaSharp"; version = "1.2.0"; sha256 = "1wymc8sq34p4kgqb03pm2f9x27nvz0wnfl10gjry8gk23w7akzrl"; })
+  (fetchNuGet { pname = "AsyncKeyedLock"; version = "6.4.2"; sha256 = "1pghspgz9xis139b5v8h2y40gp14x6qfcam27zawq6cp278gnjhi"; })
+  (fetchNuGet { pname = "BDInfo"; version = "0.8.0"; sha256 = "051fkf4566ih6wj9f59myl7vrr6iy0vm16k7i5m227yv2jnkx95g"; })
+  (fetchNuGet { pname = "BlurHashSharp"; version = "1.3.2"; sha256 = "1ygxk7rm0xzr4yz6y25xknqdmrwr2lply46siy7if37ccxnhwhyl"; })
+  (fetchNuGet { pname = "BlurHashSharp.SkiaSharp"; version = "1.3.2"; sha256 = "1qirvbxn3wmc862mcyspliaaass1m7w9mxw5hrfxjpjl68bi6xix"; })
+  (fetchNuGet { pname = "CacheManager.Core"; version = "1.2.0"; sha256 = "0j534rcnayzfwa94n1a5800f4da0c2d83zscbpmq153lpm07w3f0"; })
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
+  (fetchNuGet { pname = "Diacritics"; version = "3.3.29"; sha256 = "1dl2dp6cjzcw9hrwg4fs0fvj7mjibrldswkr4kk1kdlcghkxv1mh"; })
   (fetchNuGet { pname = "DiscUtils.Core"; version = "0.16.13"; sha256 = "1q5pbs7x6bbvsqcz363fj7c0gxdg3ay1r9a83f7yh137rmaprj8h"; })
   (fetchNuGet { pname = "DiscUtils.Iso9660"; version = "0.16.13"; sha256 = "0vdy9l8kvbf76q7ssgsq3xgkrp1wdbf8a0h4d27371zapg111h54"; })
   (fetchNuGet { pname = "DiscUtils.Streams"; version = "0.16.13"; sha256 = "03wzvxm3k6vld6g0hk5r2qyhckr6rg4885s7hf5z2cvs1qfas9qd"; })
   (fetchNuGet { pname = "DiscUtils.Udf"; version = "0.16.13"; sha256 = "0q4kx4p4x2rj41i7rbxfxih62aaji9vfs1qmdrbpq7zd0i552jyc"; })
+  (fetchNuGet { pname = "dotnet-ef"; version = "8.0.4"; sha256 = "104zljagzf0d092ahzg7aprs39pi1k9k96150qm9nlwjzr3lwv7n"; })
   (fetchNuGet { pname = "DotNet.Glob"; version = "3.1.3"; sha256 = "1klgj9m7i3g8x1yj96wnikvf0hlvr6rhqhl4mgis08imcrl95qg6"; })
-  (fetchNuGet { pname = "Humanizer.Core"; version = "2.8.26"; sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; })
+  (fetchNuGet { pname = "EasyCaching.Core"; version = "1.9.2"; sha256 = "0qkzaxmn899hhfh32s8mhg3zcqqy2p05kaaldz246nram5gvf7qp"; })
+  (fetchNuGet { pname = "EFCoreSecondLevelCacheInterceptor"; version = "4.4.3"; sha256 = "04g2w7x0rqb1gl71mqh28s8drjkwmlkd94j7fg4w5sc01vzrzshw"; })
+  (fetchNuGet { pname = "ExCSS"; version = "4.2.3"; sha256 = "1likxhccg4l4g4i65z4dfzp9059hij6h1q7prx2sgakvk8zzmw9k"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "7.3.0.2"; sha256 = "03qfa9cglvka6dv4gbnaskrzvpjnp9jmzfwplg85wdgm6jmjif49"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "7.3.0.2"; sha256 = "1df6jqwfv9v1ddby2hxcan28g1canbmavglmdjlf2xjs42xz49s9"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "7.3.0.2"; sha256 = "0kvzby9bnx55sgidpy1vhql6fjf5pgq73b0by052r916sd3jlqbn"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "7.3.0.2"; sha256 = "0fpka3rrmd47l8xmxjz5wlp2xpn9z07c8yvfg2q5rxgcs7f8r267"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
+  (fetchNuGet { pname = "ICU4N"; version = "60.1.0-alpha.356"; sha256 = "05mp4p6qqd0jh5a13nh3bkvjhvi07jm9fv802alcfd79xs08w36m"; })
+  (fetchNuGet { pname = "ICU4N.Transliterator"; version = "60.1.0-alpha.356"; sha256 = "1nwr9668pakdfk6jkf1vqymra1fdxcprizznk473ydvasm071cs4"; })
+  (fetchNuGet { pname = "IDisposableAnalyzers"; version = "4.0.7"; sha256 = "037fjdaqkz1kvwd7aff2wn3miv2wvb8r10z8vcdskq8wd9szj1h4"; })
+  (fetchNuGet { pname = "J2N"; version = "2.0.0"; sha256 = "040jnz89bvnwp764fhi4ikzbqxp4cs298dqqysw676z599c4iyv2"; })
   (fetchNuGet { pname = "Jellyfin.XmlTv"; version = "10.8.0"; sha256 = "0fv923y58z9l97zhlrifmki0x1m7r52avglhrl2h1jjv1x1wkvzx"; })
-  (fetchNuGet { pname = "libse"; version = "3.6.5"; sha256 = "1h0rm8jbwjp0qgayal48zdzgsqr7c7v9lnc4v8x0r0pxrb4f0x1k"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "6.0.9"; sha256 = "0hmiw2k182nmrzk9hnk1l348m3qw6y66lpg2c4s43qnywg7hxafm"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Metadata"; version = "6.0.9"; sha256 = "0dq0ilr9mv9prlx16vdhqag4h91ypx9mxq7fk7drfynqvq6s3sc2"; })
+  (fetchNuGet { pname = "libse"; version = "4.0.5"; sha256 = "1fiikwf8n17k4vrm4p4r9dqmx612dlnpz76klqhwvpx7avj0fj6v"; })
+  (fetchNuGet { pname = "LrcParser"; version = "2023.524.0"; sha256 = "002cpbvbb840az6x8g81in7427ca2pqa704812crbidrnvrnaa6c"; })
+  (fetchNuGet { pname = "MetaBrainz.Common"; version = "3.0.0"; sha256 = "0ba7r8xjkd1dsc5plq2h3nbk3kcpd69hnns6kx42bafz2x1d7r9z"; })
+  (fetchNuGet { pname = "MetaBrainz.Common.Json"; version = "6.0.2"; sha256 = "0zw5216amhkav69iv0mqfhql3b9blkfvh8k0xp3qv62r2vvhb1z0"; })
+  (fetchNuGet { pname = "MetaBrainz.MusicBrainz"; version = "6.1.0"; sha256 = "0ssmzk6zyi7ivb055w007h311pg9bby3q6gvwxzmjghd4i6m7461"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "8.0.4"; sha256 = "0r41i12ilhryh7gzak1iagxa5jmvk916jh40zi6n4pdffbwk9kzc"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.2.0"; sha256 = "13s8cm6jdpydxmr0rgmzrmnp1v2r7i3rs7v9fhabk5spixdgfy6b"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.HttpOverrides"; version = "2.2.0"; sha256 = "1pbmmczxilgrf4qyaql88dc3av7kaixb1r36358kil68gl3irjy6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Metadata"; version = "8.0.4"; sha256 = "0jxvdb4ah2x8ssr01gdk1msmf0kyvvr9pwhfj6rx7a5j7cl6l6xr"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
-  (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "1.1.1"; sha256 = "1bb5p4zlnfn88skkvymxfsn0jybqncl4356hwnic9jxdq2d4fz1w"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.3"; sha256 = "1z6x0d8lpcfjr3sxy25493i17vvcg5bsay6c03qan6mnj5aqzw2k"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.4"; sha256 = "1vzrni7n94f17bzc13lrvcxvgspx9s25ap1p005z6i1ikx6wgx30"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.5.0"; sha256 = "0hjzca7v3qq4wqzi9chgxzycbaysnjgj28ps20695x61sia6i3da"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.5.0"; sha256 = "1l6v0ii5lapmfnfpjwi3j5bwlx8v9nvyani5pwvqzdfqsd5m7mp5"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "4.5.0"; sha256 = "0skg5a8i4fq6cndxcjwciai808p0zpqz9kbvck94mcywfzassv1a"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "4.5.0"; sha256 = "1wjwsrnn5frahqciwaxsgalv80fs6xhqy6kcqy7hcsh7jrfc1kjq"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
-  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "6.0.9"; sha256 = "1453zyq14v9fvfzc39656gb6pazq5gwmqb3r2pni4cy5jdgd9rpi"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "6.0.9"; sha256 = "1y5c0l3mckpn9fjvnc65rycym2w1fghwp7dn0srbb14yn8livb0a"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "6.0.9"; sha256 = "1n87lzcbvc7r0z1g2p4g0cp7081zrbkzzvlnn4n7f7jcc1mlbjb2"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "6.0.9"; sha256 = "1y023q4i0v1pxk269i8rmzrndsl35l6lgw8h17a0vimg7ismg3sn"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "6.0.9"; sha256 = "1sj73327s4xyhml3ny7kxafdrp7s1p48niv45mlmy86qqpyps55r"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "6.0.9"; sha256 = "18wfjh8b6j4z9ndil0d6h3bwjx1gxka94z6i4sgn8sg2lz65qlfs"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "6.0.9"; sha256 = "0wdajhdlls17gfvvf01czbl5m12nkac42hx8yyjn3vgcb5vdp81f"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "6.0.9"; sha256 = "0yxsqdfcszxls3s82fminb4dkwz78ywgry18gb9bhsx0y3az3hqz"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Tools"; version = "6.0.9"; sha256 = "0klpcc70xrvn1qnb9ipgrppfg3r8mj4lvg424v40rr7x0bdv7xnq"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite"; version = "8.0.4"; sha256 = "1d41r78blfh3i0lh27bh4vrdd26ix6r63xa74cycjnc7pr98xaqc"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.4"; sha256 = "03i9b45n2vnsv4wdsk6qvjzj1ga2hcli168liyrqfa87l54skckd"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.0"; sha256 = "1xhmax0xrvw4lyz1868f1sr3nbrcv3ckr5qnf61c8q9bwj06b9v7"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.4"; sha256 = "14a74ssvklpv9v1x023mfv3a5dncwfpw399larfp9qx7l6ifsjly"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.0"; sha256 = "019r991228nxv1fibsxg5z81rr7ydgy77c9v7yvlx35kfppxq4s3"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.4"; sha256 = "1xs1cs29csnbahxgikc094xr878i8wp4h4n84xffaxms6wx5c1fb"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.0"; sha256 = "1vcbad0pzkx5wadnd5inglx56x0yybdlxgknbhifdga0bx76j9sa"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.4"; sha256 = "1h2bdh7cyw2z71brwjfirayd56rp3d2dx4qrhmsw573mb5jgvara"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "8.0.4"; sha256 = "1ni5qkjgarcjbqvw9cx0481fc99nna7rnp7170wq650jwm0f8c2f"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "8.0.4"; sha256 = "17v2wm6wwsl169sq6lawxhn9wvd299n1hdrxih8c3lzvi8igy4sd"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "8.0.4"; sha256 = "0h9ib00k54jmsrbhipr33q3sqd3mdiw31qi4g8vak1slal9b70zw"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "8.0.4"; sha256 = "0pa0xz96g2f99yj3x3hfj362br3zjcx3qd89ckqmymqpvnhk4bw0"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Tools"; version = "8.0.4"; sha256 = "0r872j78cn1lknw3q9ajc4045d0pw879w2gp2a0qij0r9izlzpiv"; })
   (fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "6.0.0"; sha256 = "0qn30d3pg4rx1x2k525jj4x5g1fxm2v5m0ksz2dmk1gmqalpask8"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "6.0.1"; sha256 = "0ra0ldbg09r40jzvfqhpb3h42h80nafvka9hg51dja32k3mxn5gk"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.0.0"; sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "3.1.9"; sha256 = "01ci8nhv3ki93aa7a3vh9icl3jav7ikizq43kcgdjgsssi6xvdf9"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "6.0.0"; sha256 = "1zdyai2rzngmsp3706d12qrdk315c1s3ja218fzb3nc3wd1vz0s8"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.0.0"; sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.8"; sha256 = "05mlbia6vag0a0zfflv1m3ix48230wx0yib5hp7zsc72jpcmjd7q"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.9"; sha256 = "0skilj4gfzyn05mn74w2q4jp1ww2wwbsxw2i7v8bwk73nymsqpr8"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "2.0.0"; sha256 = "1af64clax8q94p5vggwv8b9qiddmi8v9lnfvbc33k4rl5q8lq38j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "8.0.0"; sha256 = "04m6ywsf9731z24nfd14z0ah8xl06619ba7mkdb4vg8h5jpllsn4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "2.0.0"; sha256 = "0qvdhcqk8pi6g1ysh3a2b9jmmdq9fmcsj986azibnamnkszcvyfm"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "8.0.0"; sha256 = "0bv8ihd5i2gwr97qljwf56h8mdwspmlw0zs64qyk608fb3ciwi25"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "3.1.0"; sha256 = "1rszgz0rd5kvib5fscz6ss3pkxyjwqy0xpd4f2ypgzf5z5g5d398"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.0"; sha256 = "1f7h52kamljglx5k08ccryilvk6d6cvr9c26lcb6b2c091znzk0q"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.0.0"; sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "3.1.9"; sha256 = "1n8fndd9vrd3d7041p42li8v129mgl3gi8sl1x8whhycy0ahqr78"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "3.1.0"; sha256 = "13jj7jxihiswmhmql7r5jydbca4x5qj6h7zq10z17gagys6dc7pw"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "6.0.0"; sha256 = "15hb2rbzgri1fq8wpj4ll7czm3rxqzszs02phnhjnncp90m5rmpc"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "6.0.1"; sha256 = "16xpqfzpcjk3mg70g5g2qrkhqf7rppah3q6dasdddbpikw43ni47"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "6.0.0"; sha256 = "02nna984iwnyyz4jjh9vs405nlj0yk1g5vz4v2x30z2c89mx5f9w"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "6.0.0"; sha256 = "1c6l5szma1pdn61ncq1kaqibg0dz65hbma2xl626a8d1m6awn353"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "3.1.9"; sha256 = "1ifjjzwfvd5igxaaxm124qv8afs1nb06rgdqy7l3jcfqr30xykbb"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.0"; sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.1"; sha256 = "0w5w0h1clv7585qkajy0vqb28blghhcv5j9ygfi13219idhx10r9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "8.0.0"; sha256 = "13qb8wz3k59ihq0mjcqz1kwrpyzxn5da4dhk2pvcgc42z9kcbf7r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "8.0.0"; sha256 = "1jrmlfzy4h32nzf1nm5q8bhkpx958b0ww9qx1k1zm4pyaf6mqb04"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "8.0.0"; sha256 = "1n3ss26v1lq6b69fxk1vz3kqv9ppxq8ypgdqpd7415xrq66y4bqn"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "3.1.0"; sha256 = "1xc61dy07bn2q73mx1z3ylrw80xpa682qjby13gklnqq636a3gab"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0"; sha256 = "1wlhb2vygzfdjbdzy7waxblmrx0q3pdcqvpapnpmq9fcx5m8r6w1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.0.0"; sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.8"; sha256 = "1vkhhyxpam3svbqkkxrcxh9h4r6h3vm76cdzmfqn7gbxgswc4y2w"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.9"; sha256 = "1l7ng71y18fwdlyq2ycl12hmv9wrf7k7knz2jwv9w9w7spmp8jv6"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.0"; sha256 = "1pvms778xkyv1a3gfwrxnh8ja769cxi416n7pcidn9wvg15ifvbh"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "3.0.0"; sha256 = "1cm0hycgb33mf1ja9q91wxi3gk13d1p462gdq7gndrya23hw2jm5"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks"; version = "6.0.9"; sha256 = "06mx8zmlmi371ab5pskw8iawy8bbi4vx6rwrcj0andc59zfmg96q"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"; version = "6.0.9"; sha256 = "1nv2rwq0q7ql63qip5ba45p97yxgva9jg6gnvrnfh2yk2fjwyag2"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore"; version = "6.0.9"; sha256 = "0hxnxq32rflz4nrvssbf9hhvyyay745dabdyhpxq5p41hi13pkik"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "3.1.8"; sha256 = "0z173lsfypzjdx1a352svh1pgk7lgq2wpj5q60i1rgcrd3ib8b21"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "6.0.0"; sha256 = "1fbqmfapxdz77drcv1ndyj2ybvd2rv4c9i9pgiykcpl4fa6dc65q"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "6.0.0"; sha256 = "1ikc3kf325xig6njbi2aj5kmww4xlaq9lsrpc8v764fsm4x10474"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "6.0.0"; sha256 = "09gyyv4fwy9ys84z3aq4lm9y09b7bd1d4l4gfdinmg0z9678f1a4"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "3.1.8"; sha256 = "1lc69rn259gd6y4rjy0hwrcfnhkr0y0ac8w4ldh6mpk073snfjq0"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "6.0.0"; sha256 = "1mwjx6li4a82nb589763whpnhf5hfy1bpv1dzqqvczb1lhxhzhlj"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Http"; version = "3.1.9"; sha256 = "0w56d837b31hrly55j1hj4njliaialwladwwnjnrd9i9279kym8i"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Http"; version = "6.0.0"; sha256 = "1wxsqvfy2arbwk0nhambjprazim6ynrb23r1hr5vk4gv10i26m95"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "3.1.9"; sha256 = "1x1bbkcq7ph9jgwv3yidipfqwdh6q3bsa2rxhfzmy64l7hc7r1wl"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; sha256 = "1zw0bpp5742jzx03wvqc8csnvsbgdqi0ls9jfc5i2vd3cl8b74pg"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.1"; sha256 = "1wyhpamm1nqjfi3r463dhxljdlr6rm2ax4fvbgq2s0j3jhpdhd4p"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "8.0.0"; sha256 = "02jnx23hm1vid3yd9pw4gghzn6qkgdl5xfc5r0zrcxdax70rsh5a"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics"; version = "8.0.0"; sha256 = "0ghwkld91k20hcbmzg2137w81mzzdh8hfaapdwckhza0vipya4kw"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; sha256 = "15m4j6w9n8h0mj7hlfzb83hd3wn7aq1s7fxbicm16slsjfwzj82i"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks"; version = "8.0.4"; sha256 = "16jm0jkb4nhx3dvqg9yljkmg95v4awpc3dkn1qqcb8bbr6szskr1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"; version = "8.0.4"; sha256 = "1iylfqpqpiknywfzka2zibz0vmrrf73y6g5irl57parxxb836yhy"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore"; version = "8.0.4"; sha256 = "0mxxms7nf9sm8iwf6n4ny9ni7ap7gya74wahmwcpv1v0dgq004z6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "8.0.0"; sha256 = "1idq65fxwcn882c06yci7nscy9i0rgw6mqjrl7362prvvsd9f15r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "8.0.0"; sha256 = "05wxjvjbx79ir7vfkri6b28k8zl8fa6bbr0i7gahqrim2ijvkp6v"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "8.0.0"; sha256 = "1igf2bqism22fxv7km5yv028r4rg12a4lki2jh4xg3brjkagiv7q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "8.0.0"; sha256 = "00d5dwmzw76iy8z40ly01hy9gly49a7rpf7k7m99vrid1kxp346h"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Http"; version = "3.1.0"; sha256 = "02ipxf75rqzsbmmy5ka44hh8krmxgky9mdxmh8f7fkbclpg2s6cy"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Http"; version = "8.0.0"; sha256 = "09hmkhxipbpfmwz9q80746zp6cvbx1cqffxr5xjxv5cbjg5662aj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "3.1.0"; sha256 = "1d3yhqj1rav7vswm747j7w8fh8paybji4rz941hhlq4b12mfqfh4"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.8"; sha256 = "0iq8py91xvma10rysq3dl29nxhmlgniad3cvafb4jg8iz52ym24h"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.9"; sha256 = "1i24mz3v677bmdysxklm9a3qc87j72lpkfp0l16gh6yqpmhwg7vp"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; sha256 = "0nppj34nmq25gnrg0wh1q22y4wdqbih4ax493f226azv8mkp9s1i"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.0"; sha256 = "1zyalrcksszmn9r5xjnirfh7847axncgzxkk3k5srbvlcch8fw8g"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.2"; sha256 = "1wv54f3p3r2zj1pr9a6z8zqrh2ihm6v6qcw2pjwis1lcc0qb472m"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; sha256 = "1klcqhg3hk55hb6vmjiq2wgqidsl81aldw0li2z98lrwx26msrr6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.1"; sha256 = "0i9pgmk60b8xlws3q9z890gim1xjq42dhyh6dj4xvbycmgg1x1sd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "7.0.0"; sha256 = "15lz0qk2gr2q52i05ip51dzm9p4hzqlrammkc0hv2ng6g0z72697"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "3.1.9"; sha256 = "0rpix172cmwwbddh4gm0647x1ql0ly5n68bpz71v915j97anwg90"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "3.1.0"; sha256 = "0akccwhpn93a4qrssyb3rszdsp3j4p9hlxbsb7yhqb78xydaqhyh"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "2.0.0"; sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.2"; sha256 = "0as39ml1idgp42yvh725ddqp4illq87adzd1ymzx6xjxsxsjadq2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "6.0.0"; sha256 = "1k6q91vrhq1r74l4skibn7wzxzww9l74ibxb2i8gg4q6fzbiivba"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; sha256 = "04nm8v5a3zp0ill7hjnwnja3s2676b4wffdri8hdk2341p7mp403"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.0.0"; sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.8"; sha256 = "1p48hk3r9ikv36wdpwdrbvaccziazncf7nl60fr82i04199lfhgl"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.9"; sha256 = "0538fvjz9c27nvc6kv83b0912qvc71wz2w60svl0mscj86ds49wc"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.0"; sha256 = "1w1y22njywwysi8qjnj4m83qhbq0jr4mmjib0hfawz6cwamh7xrb"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
+  (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "2.2.0"; sha256 = "0w6lrk9z67bcirq2cj2ldfhnizc6id77ba6i30hjzgqjlyhh1gx5"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
   (fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
-  (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "1.1.1"; sha256 = "0xkdqs7az2cprar7jzjlgjpd64l6f8ixcmwmpkdm03fyb4s5m0bg"; })
-  (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "1.1.1"; sha256 = "099y35f2npvva3jk1zp8hn0vb9pwm2l0ivjasdly6y2idv53s5yy"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "7.0.0"; sha256 = "1bh77misznh19m1swqm3dsbji499b8xh9gk6w74sgbkarf6ni8lb"; })
   (fetchNuGet { pname = "MimeTypes"; version = "2.4.0"; sha256 = "005i81irglnr0wc60zsfwi6bpxafdlwv2q2h7vxnp28b5965wzik"; })
-  (fetchNuGet { pname = "Mono.Nat"; version = "3.0.3"; sha256 = "1b3alh1wz28y62cflwl1jppigv499cndm8sds32xsmvwpdwiq4yl"; })
+  (fetchNuGet { pname = "Mono.Nat"; version = "3.0.4"; sha256 = "10zvyq60wy02q21dszrk1h3ww23b7bkgjxaapx1ans4d9nwsmlrm"; })
+  (fetchNuGet { pname = "Mono.TextTemplating"; version = "2.2.1"; sha256 = "1ih6399x4bxzchw7pq5195imir9viy2r1w702vy87vrarxyjqdp1"; })
   (fetchNuGet { pname = "NEbml"; version = "0.11.0"; sha256 = "0jrkgw0kn8f32fzmybvb8m44rcrjylbs1agqlj2q93cqx047d1md"; })
-  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
-  (fetchNuGet { pname = "OptimizedPriorityQueue"; version = "5.1.0"; sha256 = "0zbxyrgjra8va44d0c0ll8l2jylckpyyg86gkrwhwi2fly2mkwmh"; })
-  (fetchNuGet { pname = "PlaylistsNET"; version = "1.2.1"; sha256 = "04vzzn8d7vrzyz073wj50akljy3habmp4z6fwlqqymf5x1prfr9v"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
+  (fetchNuGet { pname = "PlaylistsNET"; version = "1.4.1"; sha256 = "0zhwa5xqy0a4g10nkl3ngpax3d59zhrbc3b5hvb4i9xqji3vds0x"; })
   (fetchNuGet { pname = "prometheus-net"; version = "3.1.2"; sha256 = "1jyxvl9cqxvb71mpaglw8aks27i69hg7yzrdwsjc182nmmhh1p03"; })
-  (fetchNuGet { pname = "prometheus-net"; version = "6.0.0"; sha256 = "1vcv98j3jvhikk6p48nqd4vnl2iqsyjpyb9iiwyr6g8mfryx2x6i"; })
-  (fetchNuGet { pname = "prometheus-net.AspNetCore"; version = "6.0.0"; sha256 = "14l61j6nxjks98hhhw1p8i5x234wp63i58br86z03zm4ad2wlw50"; })
-  (fetchNuGet { pname = "prometheus-net.DotNetRuntime"; version = "4.2.4"; sha256 = "1a57vklgwghdlin2d1f66gcim6di4snfl4a82m5gsr368vfc0n90"; })
+  (fetchNuGet { pname = "prometheus-net"; version = "8.2.1"; sha256 = "0g1hf6v6k4ym9a663az76775rkazvxmfl4yb60w0ghqzvrfxw49p"; })
+  (fetchNuGet { pname = "prometheus-net.AspNetCore"; version = "8.2.1"; sha256 = "1rygyyflx53djczfgavr6jzqgz0sfw3r1h93gm3gs3v48d6c06kn"; })
+  (fetchNuGet { pname = "prometheus-net.DotNetRuntime"; version = "4.4.0"; sha256 = "1hrzf2djkjiswyf4xg3pl6rb0a8i0mh294hrfbna782hfxya7c29"; })
   (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
   (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
   (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
@@ -115,107 +154,170 @@
   (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
   (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
   (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
   (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
   (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
   (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
   (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
   (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
   (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
   (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
   (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
   (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
   (fetchNuGet { pname = "Serilog"; version = "2.10.0"; sha256 = "08bih205i632ywryn3zxkhb15dwgyaxbhmm1z3b5nmby9fb25k7v"; })
   (fetchNuGet { pname = "Serilog"; version = "2.3.0"; sha256 = "0y1111y0csfnil901nfahhj3x251nzdam0c4vab3gw5qh8iqs3my"; })
   (fetchNuGet { pname = "Serilog"; version = "2.9.0"; sha256 = "0z0ib82w9b229a728bbyhzc2hnlbl0ki7nnvmgnv3l741f2vr4i6"; })
-  (fetchNuGet { pname = "Serilog.AspNetCore"; version = "4.1.0"; sha256 = "0kdga6ic988z8m87z4cwj33gac5c468kd3m11a10xzffgcp2fknf"; })
+  (fetchNuGet { pname = "Serilog"; version = "3.1.1"; sha256 = "0ck51ndmaqflsri7yyw5792z42wsp91038rx2i6vg7z4r35vfvig"; })
+  (fetchNuGet { pname = "Serilog.AspNetCore"; version = "8.0.1"; sha256 = "0vmrbhj9vb00fhvxrw3w5j1gvdx4xzxz8d2cp65hps988zxwykkb"; })
   (fetchNuGet { pname = "Serilog.Enrichers.Thread"; version = "3.1.0"; sha256 = "1y75aiv2k1sxnh012ixkx92fq1yl8srqggy8l439igg4p223hcqi"; })
-  (fetchNuGet { pname = "Serilog.Extensions.Hosting"; version = "4.1.2"; sha256 = "072a1vwzhfaqyfc24v7z2azlm85zbj1vwhj8cagygzcfwf5ijc2h"; })
-  (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "3.0.1"; sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a"; })
-  (fetchNuGet { pname = "Serilog.Formatting.Compact"; version = "1.1.0"; sha256 = "1w3qhj1jrihb20gr9la4r4gcmdyyy6dai2xflwhzvgqrq05wlycy"; })
-  (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "3.3.0"; sha256 = "1g9141b3k7fv5n6jh6pmph4f46byjqw1rcqnnicm1gwgzh6cdkpq"; })
+  (fetchNuGet { pname = "Serilog.Extensions.Hosting"; version = "8.0.0"; sha256 = "10cgp4nsrzkld5yxnvkfkwd0wkc1m8m7p5z42w4sqd8f188n8i9q"; })
+  (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "8.0.0"; sha256 = "087ab94sfhkj6h6x3cwwf66g456704faxnfyc4pi6shxk45b318s"; })
+  (fetchNuGet { pname = "Serilog.Formatting.Compact"; version = "2.0.0"; sha256 = "0y7vg2qji02riq7r0kgybarhkngw6gh3xw89w7c2hcmjawd96x3k"; })
+  (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "8.0.0"; sha256 = "0245gvndwbj4nbp8q09vp7w4i9iddxr0vzda2c3ja5afz1zgs395"; })
   (fetchNuGet { pname = "Serilog.Sinks.Async"; version = "1.5.0"; sha256 = "0bcb3n6lmg5wfj806mziybfmbb8gyiszrivs3swf0msy8w505gyg"; })
-  (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "4.0.1"; sha256 = "080vh9kcyn9lx4j7p34146kp9byvhqlaz5jn9wzx70ql9cwd0hlz"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "5.0.1"; sha256 = "0cnjjpnnhlx3k4385dbnddkz3n6khdshjix0hlv4gjmrrmjaixva"; })
   (fetchNuGet { pname = "Serilog.Sinks.Debug"; version = "2.0.0"; sha256 = "1i7j870l47gan3gpnnlzkccn5lbm7518cnkp25a3g5gp9l0dbwpw"; })
   (fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0"; sha256 = "097rngmgcrdfy7jy8j7dq3xaq2qky8ijwg0ws6bfv5lx0f3vvb0q"; })
-  (fetchNuGet { pname = "Serilog.Sinks.Graylog"; version = "2.3.0"; sha256 = "1mnji4p1n9rsjxlaal84zkypwqcfciws1si863zz4ld2xvv9adri"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Graylog"; version = "3.1.1"; sha256 = "05brpqq8mrk6dr5yy8y69fhfwycgj45cnydgjikbbs2dsk2wrl0z"; })
   (fetchNuGet { pname = "SerilogAnalyzer"; version = "0.15.0"; sha256 = "0k83cyzl9520q282vp07zb8rs16a56axv7a31l3m5fb1afq2hv9l"; })
-  (fetchNuGet { pname = "SharpCompress"; version = "0.32.2"; sha256 = "1p198bl08ia89rf4n6yjpacj3yrz6s574snsfl40l8vlqcdrc1pm"; })
-  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.2"; sha256 = "0fnvp1yxl8gix9qb812pslhp8dvbf12ackvmp4yjdig6ybix77az"; })
-  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.2"; sha256 = "1jc65bg75kxa2hv33y9584hbar10lirahgnh8s12lk8dpb23a3m3"; })
-  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.2"; sha256 = "0vsbl3sjz15nsgpbmjs0p6nd1842j4pbb0jvzaqn3w7rrwyl44bk"; })
-  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.2"; sha256 = "1g1v7x2dnnsljf43m7yl54nx17z9wswlh9qi3b8cl7z1g04800vi"; })
-  (fetchNuGet { pname = "SkiaSharp.Svg"; version = "1.60.0"; sha256 = "1gja5fdk4dn9l7vqnik29v1x5b4xnp2dpjm4gmpv44r6085i9hz0"; })
+  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.18"; sha256 = "1vxsw5kkw3z4c59v5678k4nmxng92845y3pi4fgv1wcnxgw5aqzg"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.8"; sha256 = "0h5vrmximld239l9k98h09wbjwgiwvhyxyixqgbi95d7hirn0gmc"; })
+  (fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.8"; sha256 = "13ynv4qgl33cf31nriqnh58039vw8mghpkd1v6jazwiz9awcvn2v"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.8"; sha256 = "1dlp8ra9ccdhqglgjn22fm0axy9lfr3kxby3db4aqkgfp1nqvsbw"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.8"; sha256 = "0qiygnrmpbawn0spx733v60srhn2mm0z0lpv127cj2gh076jpmq9"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.8"; sha256 = "1wrwk44gvjh43dwmjm0cp1bmcrxz2yfq3l4h935073ydibvmpibg"; })
   (fetchNuGet { pname = "SmartAnalyzers.MultithreadingAnalyzer"; version = "1.1.31"; sha256 = "1qk5s4rx5ma7k2kzkn1h94fsrzmwkivj0z1czsjwmr8z7zhngs2h"; })
-  (fetchNuGet { pname = "SQLitePCL.pretty.netstandard"; version = "3.1.0"; sha256 = "1r2kqkaw2viyxizsp98xcv5m4lv62s5qp7d7cnx02g4drwxcpk2h"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.0.6"; sha256 = "1ip0a653dx5cqybxg27zyz5ps31f2yz50g3jvz3vx39isx79gax3"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.0"; sha256 = "1xl2kn6bqrmlh6v0lr8mrv1wzg4gcmsc6x4g34q4d90gbm110d98"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.4"; sha256 = "0lb5vwfl1hd24xzzdaj2p4k2hv2k0i3mgdri6fjj0ssb37mcyir1"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.6"; sha256 = "1w4iyg0v1v1z2m7akq7rv8lsgixp2m08732vr14vgpqs918bsy1i"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.0"; sha256 = "0kq5x9k5kl6lh7jp1hgjn08wl37zribrykfimhln6mkqbp1myncp"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.6"; sha256 = "16378rh1lcqxynf5qj0kh8mrsb0jp37qqwg4285kqc5pknvh1bx3"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.0"; sha256 = "1ibkkz5dsac64nf7alsdsr8r1jm8j87vv6chsi3azkf5zv0rphsy"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.0.6"; sha256 = "0chgrqyycb1kqnaxnhhfg0850b94blhzni8zn79c7ggb3pd2ykyz"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.0"; sha256 = "1g7gi1kdil8iv67g42xbmfhr1l0pkz645gqnd8lfv3q24449shan"; })
-  (fetchNuGet { pname = "StyleCop.Analyzers"; version = "1.2.0-beta.406"; sha256 = "04ii8m45cyphwrhxgss1whk550qxpqrwjah6cb76pbcjqc7pjj7w"; })
-  (fetchNuGet { pname = "StyleCop.Analyzers.Unstable"; version = "1.2.0.406"; sha256 = "1nsk5vhpdbns9wsqmi8qwdg4girc4sci81r5am23cljc9fdx9pmk"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.6"; sha256 = "0pzgdfl707pd9fz108xaff22w7c2y27yaix6wfp36phqkdnzz43m"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.6"; sha256 = "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.6"; sha256 = "0g959z7r3h43nwzm7z3jiib1xvyx146lxyv0x6fl8ll5wivpjyxq"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.6"; sha256 = "1vs1c7yhi0mdqrd35ji289cxkhg7dxdnn6wgjjbngvqxkdhkyxyc"; })
+  (fetchNuGet { pname = "StyleCop.Analyzers"; version = "1.2.0-beta.556"; sha256 = "1x91v0x6w5s7xm85d5mipv0kah2j3r7ypyidpr9rrggrr90iidpp"; })
+  (fetchNuGet { pname = "StyleCop.Analyzers.Unstable"; version = "1.2.0.556"; sha256 = "0ryaqhj1k71q3yh1ag1288y90ylv05w844win68pvybbmznjjnk9"; })
+  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.18"; sha256 = "0186sxdcz7c30g3vvygbahvsmywn1cqq53m8h6la1z2c00zr22s6"; })
+  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.18"; sha256 = "03vjk6pmxpff6q7saqgq9qdfbs6sf11hqrp469ycfzbikgil4xh9"; })
+  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.18"; sha256 = "0vnjy0gc8qfv626rn3z4sy03ds186h1yv9fwq3p84pq6l04ng5d3"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.2.3"; sha256 = "1kx50vliqcqw72aygkm2cs2q82pxdxz17gvz4chz6k858qj4gv0l"; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.ReDoc"; version = "6.3.1"; sha256 = "1q0q78f1vrwyzf17c3k8p31v6arhg20gsyf9sq5x27x1arxzi2pw"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.ReDoc"; version = "6.5.0"; sha256 = "1fr8367107ammy0b887ypy14qnqqyd3nbj6agrhrhrrlz47h3v5z"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.2.3"; sha256 = "0g3aw1lydq1xymd1f5rrs0dhl0fpl85gffs9jsm3khfqp7js31yz"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.2.3"; sha256 = "1cza3hzxhia81rmmdx9qixbm1ikavscddknpvbkrwmljzx2qmsv7"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.2.3"; sha256 = "0sbrymb73a2s9qhgm7i44ca08h4n62qfh751fwnvybmj8kb1gzsi"; })
-  (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.0"; sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "6.0.0"; sha256 = "1js98kmjn47ivcvkjqdmyipzknb9xbndssczm8gq224pbaj1p88c"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.Composition"; version = "6.0.0"; sha256 = "1p7hysns39cc24af6dwd4m48bqjsrr3clvi4aws152mh2fgyg50z"; })
+  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "6.0.0"; sha256 = "1mqrblb0l65hw39d0hnspqcv85didpn4wbiwhfgj4784wzqx2w6k"; })
+  (fetchNuGet { pname = "System.Composition.Convention"; version = "6.0.0"; sha256 = "02km3yb94p1c4s7liyhkmda0g71zm1rc8ijsfmy4bnlkq15xjw3b"; })
+  (fetchNuGet { pname = "System.Composition.Hosting"; version = "6.0.0"; sha256 = "0big5nk8c44rxp6cfykhk7rxvn2cgwa99w6c3v2a36adc3lj36ky"; })
+  (fetchNuGet { pname = "System.Composition.Runtime"; version = "6.0.0"; sha256 = "0vq5ik63yii1784gsa2f2kx9w6xllmm8b8rk0arid1jqdj1nyrlw"; })
+  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "6.0.0"; sha256 = "0y9pq3y60nyrpfy51f576a0qjjdh61mcv8vnik32pm4bz56h9q72"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5"; })
-  (fetchNuGet { pname = "System.Drawing.Common"; version = "5.0.2"; sha256 = "08kgiywg5whhw80xshlrp0q9mkl8hlkgqdsnk1gm6bb898f1l3gs"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "8.0.0"; sha256 = "0nzra1i0mljvmnj1qqqg37xs7bl71fnpl68nwmdajchh65l878zr"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "7.0.0"; sha256 = "0jwyv5zjxzr4bm4vhmz394gsxqa02q6pxdqd2hwy1f116f0l30dp"; })
   (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Hashing"; version = "8.0.0"; sha256 = "1hg5i9hiihj9x4d0mlvhfddmivzrhzz83dyh26fqw1nd8jvqccxk"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.3"; sha256 = "1jgdazpmwc21dd9naq3l9n5s8a1jnbwlvgkf1pnm0aji6jd4xqdz"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
   (fetchNuGet { pname = "System.Linq.Async"; version = "6.0.1"; sha256 = "10ira8hmv0i54yp9ggrrdm1c06j538sijfjpn1kmnh9j2xk5yzmq"; })
   (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
   (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
   (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
   (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
   (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "6.0.1"; sha256 = "0fjqifk4qz9lw5gcadpfalpplyr0z2b3p9x7h0ll481a9sqvppc9"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
   (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.4.0"; sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
-  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "4.6.0"; sha256 = "0ism236hwi0k6axssfq58s1d8lihplwiz058pdvl8al71hagri39"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.6"; sha256 = "0bkfrnr9618brbl1gvhyqrf5720syawf9dvpk8xfvkxbg7imlpjx"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.5.0"; sha256 = "0srd5bva52n92i90wd88pzrqjsxnfgka3ilybwh7s6sf469y5s53"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; sha256 = "1wbypkx0m8dgpsaqgyywz4z760xblnwalb241d5qv9kx8m128i11"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; sha256 = "134savxw0sq7s448jnzw17bxcijsi1v38mirpbb6zfxmqlf04msw"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "8.0.3"; sha256 = "0jkl986gnh2a39v5wbab47qyh1g9a64dgh5s67vppcay8hd42c4n"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Channels"; version = "6.0.0"; sha256 = "1qbyi7yymqc56frqy7awvcqc1m7x3xrpx87a37dgb3mbrjg9hlcj"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "6.0.0"; sha256 = "1b4vyjdir9kdkiv2fqqm4f76h0df68k8gcd7jb2b38zgr2vpnk3c"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "8.0.0"; sha256 = "02mmqnbd7ybin1yiffrq3ph71rsbrnf6r6m01j98ynydqfscz9s3"; })
   (fetchNuGet { pname = "TagLibSharp"; version = "2.3.0"; sha256 = "1z7v9lrkss1f8s42sclsq3az9zjihgmhyxnwhjyf0scgk1amngrw"; })
-  (fetchNuGet { pname = "TMDbLib"; version = "1.9.2"; sha256 = "10vh8wx9f1rcr7wsqiqvi1gq31y4skai1px079hq08y4rbslllnq"; })
+  (fetchNuGet { pname = "TMDbLib"; version = "2.2.0"; sha256 = "1dmxiz0vg9738f2qps37ahhqsaa9ia71mx43an8k726vvzp9b35g"; })
   (fetchNuGet { pname = "UTF.Unknown"; version = "2.5.1"; sha256 = "0giks1ww539m4r5kzdyzkq0cvfi5k50va9idjz93rclgljl96gpl"; })
-  (fetchNuGet { pname = "zlib.net-mutliplatform"; version = "1.0.5"; sha256 = "168z0p5aywajxpwhnrns0j2ddza9n0k2dcnm5h2cxdbcirphjprg"; })
+  (fetchNuGet { pname = "zlib.net-mutliplatform"; version = "1.0.6"; sha256 = "1h9smxgdyih096ic6k1yq6ak87r5rhx49kvskhwxdd4n6k28xmy6"; })
 ]
diff --git a/pkgs/servers/jellyfin/web.nix b/pkgs/servers/jellyfin/web.nix
index b2a40c0690832..a2437af14ee41 100644
--- a/pkgs/servers/jellyfin/web.nix
+++ b/pkgs/servers/jellyfin/web.nix
@@ -1,25 +1,53 @@
-{ lib
-, fetchFromGitHub
-, stdenv
-, buildNpmPackage
-, nix-update-script
+{
+  lib,
+  stdenv,
+  overrideSDK,
+  fetchFromGitHub,
+  buildNpmPackage,
+  nix-update-script,
+  pkg-config,
+  xcbuild,
+  pango,
+  giflib,
+  darwin,
 }:
-
-buildNpmPackage rec {
+let
+  # node-canvas builds code that requires aligned_alloc,
+  # which on Darwin requires at least the 10.15 SDK
+  stdenv' =
+    if stdenv.isDarwin then
+      overrideSDK stdenv {
+        darwinMinVersion = "10.15";
+        darwinSdkVersion = "11.0";
+      }
+    else
+      stdenv;
+  buildNpmPackage' = buildNpmPackage.override { stdenv = stdenv'; };
+in
+buildNpmPackage' rec {
   pname = "jellyfin-web";
-  version = "10.8.13";
+  version = "10.9.1";
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin-web";
     rev = "v${version}";
-    hash = "sha256-2W9s8TQV9BtxNYIrCbGRh5EUw0brwxSHohnb7269pQE=";
+    hash = "sha256-KkPZ8OvGN/0gdoSVh9q0qEilae3tccgHRQQvrTsvycA=";
   };
 
-  npmDepsHash = "sha256-i077UAxY2K12VXkHYbGYZRV1uhgdGUnoDbokSk2ZDIA=";
+  npmDepsHash = "sha256-LmbygyCYSp0gtjU2pNCV17WEyEoaIzPs7H9UoMFV+PU=";
 
   npmBuildScript = [ "build:production" ];
 
+  nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.isDarwin [ xcbuild ];
+
+  buildInputs =
+    [ pango ]
+    ++ lib.optionals stdenv.isDarwin [
+      giflib
+      darwin.apple_sdk.frameworks.CoreText
+    ];
+
   installPhase = ''
     runHook preInstall
 
@@ -29,12 +57,17 @@ buildNpmPackage rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = nix-update-script {};
+  passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
     description = "Web Client for Jellyfin";
     homepage = "https://jellyfin.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
+    maintainers = with maintainers; [
+      nyanloutre
+      minijackson
+      purcell
+      jojosch
+    ];
   };
 }
diff --git a/pkgs/servers/knxd/default.nix b/pkgs/servers/knxd/default.nix
index 9d92461d25ab0..2ae1930374493 100644
--- a/pkgs/servers/knxd/default.nix
+++ b/pkgs/servers/knxd/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "knxd";
-  version = "0.14.60";
+  version = "0.14.61";
 
   src = fetchFromGitHub {
     owner = "knxd";
     repo = "knxd";
     rev = version;
-    hash = "sha256-djcp3b0OSnyrNOkvaacjQ3Nw9H54HOfKeBo26tkz/Ew=";
+    hash = "sha256-b8svjGaxW8YqonhXewebDUitezKoMcZxcUFGd2EKZQ4=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/nosql/mongodb/5.0.nix b/pkgs/servers/nosql/mongodb/5.0.nix
index 0dfa701e01a16..e6738239358df 100644
--- a/pkgs/servers/nosql/mongodb/5.0.nix
+++ b/pkgs/servers/nosql/mongodb/5.0.nix
@@ -6,8 +6,8 @@ let
   };
   variants = if stdenv.isLinux then
     {
-      version = "5.0.24";
-      sha256 = "sha256-SZ62OJD6L3aP6LsTswpuXaayqYbOaSQTgEmV89Si7Xc=";
+      version = "5.0.26";
+      sha256 = "sha256-lVRTrEnwuyKETFL1C8bVqBfrDaYrbQIdmHN42CF8ZIw=";
       patches = [ ./fix-build-with-boost-1.79-5_0-linux.patch ];
     }
   else lib.optionalAttrs stdenv.isDarwin
diff --git a/pkgs/servers/nosql/mongodb/6.0.nix b/pkgs/servers/nosql/mongodb/6.0.nix
index 07f8825d7503b..77d825d185f31 100644
--- a/pkgs/servers/nosql/mongodb/6.0.nix
+++ b/pkgs/servers/nosql/mongodb/6.0.nix
@@ -6,8 +6,8 @@ let
   };
 in
 buildMongoDB {
-  version = "6.0.13";
-  sha256 = "sha256-z7gzmWRSc4jA9g+WTkKQkWudh3Ef4xcJVgAQ5HzRe/A=";
+  version = "6.0.15";
+  sha256 = "sha256-DX1wbrDx1/JrEHbzNaXC4Hqq7MrLqz+JZgG98beyVds=";
   patches = [
     # Patches a bug that it couldn't build MongoDB 6.0 on gcc 13 because a include in ctype.h was missing
     ./fix-gcc-13-ctype-6_0.patch
diff --git a/pkgs/servers/search/weaviate/default.nix b/pkgs/servers/search/weaviate/default.nix
index 3170ab1fd7c25..acd18f885fd1f 100644
--- a/pkgs/servers/search/weaviate/default.nix
+++ b/pkgs/servers/search/weaviate/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "weaviate";
-  version = "1.24.10";
+  version = "1.24.11";
 
   src = fetchFromGitHub {
     owner = "weaviate";
     repo = "weaviate";
     rev = "v${version}";
-    hash = "sha256-+8l0On2A3hTkBCRGFfQVwoZcwPxcLwe0Ju2Fr2N0K50=";
+    hash = "sha256-rXe9svvHu/6sQhHJ++jwb5gJEeVwoK/Z8rV7swUM3Kk=";
   };
 
   vendorHash = "sha256-f7LskkQbsPwNmrzLTze0C66y++7Vqtb15tjW142TQmE=";
diff --git a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
index d6a4f24bf5e64..9cbf6ae442e4e 100644
--- a/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
@@ -2,7 +2,6 @@
 , buildPgrxExtension
 , cargo-pgrx_0_11_2
 , clang_16
-, fetchCrate
 , fetchFromGitHub
 , nix-update-script
 , nixosTests
@@ -93,7 +92,9 @@ in
   meta = with lib; {
     # The pgrx 0.11.2 dependency is broken in aarch64-linux: https://github.com/pgcentralfoundation/pgrx/issues/1429
     # It is fixed in pgrx 0.11.3, but upstream is still using pgrx 0.11.2
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
+    # Additionally, upstream (accidentally) broke support for PostgreSQL 12 and 13 on 0.2.1, but
+    # they are removing it in 0.3.0 either way: https://github.com/tensorchord/pgvecto.rs/issues/343
+    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin || (versionOlder postgresql.version "14");
     description = "Scalable, Low-latency and Hybrid-enabled Vector Search in Postgres";
     homepage = "https://github.com/tensorchord/pgvecto.rs";
     license = licenses.asl20;
diff --git a/pkgs/servers/sql/rqlite/default.nix b/pkgs/servers/sql/rqlite/default.nix
index fbf70f1e4b49d..90ed22286a604 100644
--- a/pkgs/servers/sql/rqlite/default.nix
+++ b/pkgs/servers/sql/rqlite/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rqlite";
-  version = "8.24.1";
+  version = "8.24.7";
 
   src = fetchFromGitHub {
     owner = "rqlite";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-K2OSOzdhJv1F1nJUqmPOVsqQZpOwWKdWQZyrHXH/hf0=";
+    sha256 = "sha256-RuLc5IYy5NDexE1UHWrcJkvKgn4hQ0TkJFcbRIwxk18=";
   };
 
-  vendorHash = "sha256-Z/Cou6NDVQVu1F4XlgMM0jI72jF2vuI6mRGhWqObXKM=";
+  vendorHash = "sha256-c6HQukT32jK9B48FzW0WeY7VxPkNwDipKUTrrICsaKw=";
 
   subPackages = [ "cmd/rqlite" "cmd/rqlited" "cmd/rqbench" ];
 
diff --git a/pkgs/shells/hishtory/default.nix b/pkgs/shells/hishtory/default.nix
index f6e7152ae9fcc..5bdf3a1b5992d 100644
--- a/pkgs/shells/hishtory/default.nix
+++ b/pkgs/shells/hishtory/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "hishtory";
-  version = "0.293";
+  version = "0.294";
 
   src = fetchFromGitHub {
     owner = "ddworken";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-5I61ey7GJ78dhSgRMkbRcKf3zk0j7zW2MyN2QSbAnpE=";
+    hash = "sha256-vwjzJTBgD4XzZekxGk02WW9/A7wLlLBsIUyvt0VCkOg=";
   };
 
   vendorHash = "sha256-zTwZ/sMhQdlf7RYfR2/K/m08U1Il0VQmYFyNNiYsWhc=";
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 09fe271892db7..1820e370a8921 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,14 +5,14 @@
 , git, nix, nixfmt-classic, jq, coreutils, gnused, curl, cacert, bash }:
 
 stdenv.mkDerivation rec {
-  version = "2024-04-25";
+  version = "2024-05-03";
   pname = "oh-my-zsh";
 
   src = fetchFromGitHub {
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    rev = "803e1a784cd520f101d126b47deea3297e6a82fc";
-    sha256 = "sha256-spfi3Jdd9yjZ+1l4uz6QX7HF996VvbHwgtlTaHSrAXM=";
+    rev = "668ca3a32dae5ff5d164fc3be565f1e2ece248db";
+    sha256 = "sha256-Rpqfwfs2MxNtSI5rX7XNx0oXExDgf7RAGR7nN8JAayY=";
   };
 
   strictDeps = true;
diff --git a/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index dcb3ffd19ec7f..1b96c5224d0eb 100644
--- a/pkgs/shells/zsh/zsh-fzf-tab/default.nix
+++ b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
@@ -4,13 +4,13 @@ let
   INSTALL_PATH="${placeholder "out"}/share/fzf-tab";
 in stdenv.mkDerivation rec {
   pname = "zsh-fzf-tab";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "fzf-tab";
     rev = "v${version}";
-    hash = "sha256-0/YOL1/G2SWncbLNaclSYUz7VyfWu+OB8TYJYm4NYkM=";
+    hash = "sha256-Qv8zAiMtrr67CbLRrFjGaPzFZcOiMVEFLg1Z+N6VMhg=";
   };
 
   strictDeps = true;
@@ -81,11 +81,11 @@ in stdenv.mkDerivation rec {
 
   passthru.updateScript = nix-update-script { };
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/Aloxaf/fzf-tab";
     description = "Replace zsh's default completion selection menu with fzf!";
-    license = licenses.mit;
-    maintainers = with maintainers; [ vonfry ];
-    platforms = platforms.unix;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ vonfry ];
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/test/cuda/default.nix b/pkgs/test/cuda/default.nix
index dd9ad8b814dc5..b463da7c55c56 100644
--- a/pkgs/test/cuda/default.nix
+++ b/pkgs/test/cuda/default.nix
@@ -3,7 +3,6 @@
   recurseIntoAttrs,
 
   cudaPackages,
-  cudaPackagesGoogle,
 
   cudaPackages_10_0,
   cudaPackages_10_1,
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index b12f6a782e243..e08a71183b4f6 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.204";
+  version = "3.0.205";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-Wi35FcuDaTgGG7KgCcU/m6UIKzUuAaMF8J96YvjWgJc=";
+    sha256 = "sha256-fUInyAJKMvHZ13sWjqWr4KPge/hpeDSkJl69nnWJkPc=";
   };
 
-  vendorHash = "sha256-AvlDqaJ5w9oDV1slwArr12KA1d3FKVU9H5WK4s3ePtU=";
+  vendorHash = "sha256-4jGwhcWANYUXuzFjXmFKzMVQXqFtPJt/y3IrjveRNYA=";
 
   subPackages = [ "main" ];
 
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 03078392264da..8a9a266977737 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -122,7 +122,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tools for the google cloud platform";
-    longDescription = "The Google Cloud SDK. This package has the programs: gcloud, gsutil, and bq";
+    longDescription = "The Google Cloud SDK for GCE hosts. Used by `google-cloud-sdk` only on GCE guests.";
     sourceProvenance = with sourceTypes; [
       fromSource
       binaryNativeCode  # anthoscli and possibly more
diff --git a/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix b/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix
index b65b5700c6070..63070a85dd8fe 100644
--- a/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/withExtraComponents.nix
@@ -1,4 +1,4 @@
-{ lib, google-cloud-sdk, runCommand, components }:
+{ lib, google-cloud-sdk, symlinkJoin, components }:
 
 comps_:
 
@@ -19,44 +19,46 @@ let
   defaultComponents = with components; [ alpha beta ];
 
   comps = [ google-cloud-sdk ] ++ filterPreInstalled (findDepsRecursive (defaultComponents ++ comps_));
-in
-# Components are installed by copying the `google-cloud-sdk` package, along
-# with each component, over to a new location, and then patching that location
-# with `sed` to ensure the proper paths are used.
-# For some reason, this does not work properly with a `symlinkJoin`: the
-# `gcloud` binary doesn't seem able to find the installed components.
-runCommand "google-cloud-sdk-${google-cloud-sdk.version}"
-{
-  inherit (google-cloud-sdk) meta;
-  inherit comps;
-  passAsFile = [ "comps" ];
 
-  doInstallCheck = true;
-  disallowedRequisites = [ google-cloud-sdk ];
-  installCheckPhase =
+  installCheck =
     let
-      compNames = builtins.map (drv: drv.name) comps_;
+      compNames = builtins.map lib.getName comps_;
     in
     ''
-      $out/bin/gcloud components list > component_list.txt
+      $out/bin/gcloud components list --only-local-state --format 'value(id)' > component_list.txt
       for comp in ${builtins.toString compNames}; do
-        if [ ! grep ... component_list.txt | grep "Not Installed" ]; then
+        snapshot_file="$out/google-cloud-sdk/.install/$comp.snapshot.json"
+
+        if ! [ -f "$snapshot_file"  ]; then
+          echo "Failed to install component '$comp'"
+          exit 1
+        fi
+
+        if grep --quiet '"is_hidden":true' "$snapshot_file"; then
+          continue
+        fi
+
+        if ! grep --quiet "^$comp$" component_list.txt; then
           echo "Failed to install component '$comp'"
           exit 1
         fi
       done
     '';
+in
+# The `gcloud` entrypoint script has some custom logic to determine the "real" cloud sdk
+# root. In order to not trip up this logic and still have the symlink joined root we copy
+# over this file. Since this file also has a Python wrapper, we need to copy that as well.
+symlinkJoin {
+  name = "google-cloud-sdk-${google-cloud-sdk.version}";
+  inherit (google-cloud-sdk) meta;
+
+  paths = [
+    google-cloud-sdk
+  ] ++ comps;
+
+  postBuild = ''
+    sed -i ';' $out/google-cloud-sdk/bin/.gcloud-wrapped
+    sed -i -e "s#${google-cloud-sdk}#$out#" "$out/google-cloud-sdk/bin/gcloud"
+    ${installCheck}
+  '';
 }
-  ''
-    mkdir -p $out
-
-    # Install each component
-    for comp in $(cat $compsPath); do
-      echo "installing component $comp"
-      cp -dRf $comp/. $out
-      find $out -type d -exec chmod 744 {} +
-    done
-
-    # Replace references to the original google-cloud-sdk with this one
-    find $out/google-cloud-sdk -type f -exec sed -i -e "s#${google-cloud-sdk}#$out#" {} \;
-  ''
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index d07c05db1381a..dc35c0b563db7 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lego";
-  version = "4.15.0";
+  version = "4.16.1";
 
   src = fetchFromGitHub {
     owner = "go-acme";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-j5TboKYv4xycpCXnuFP/37ioiS89G7eeViEmGwB2BUY=";
+    sha256 = "sha256-BGD0fVLTlM0BlYK/XK11W0OV8sDO4SVfXEKHEFdqOzs=";
   };
 
-  vendorHash = "sha256-uniml5D8887cQyxxZIDhYLni/+r6ZtZ9nJBKPtNeDtI=";
+  vendorHash = "sha256-jiVtgzNWj91J/YSBOrhXZH2WmVqA2gxjIfytCGYG25A=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/audio/whisper-ctranslate2/default.nix b/pkgs/tools/audio/whisper-ctranslate2/default.nix
index ff74c8bffcb9f..4b9602fefa0c3 100644
--- a/pkgs/tools/audio/whisper-ctranslate2/default.nix
+++ b/pkgs/tools/audio/whisper-ctranslate2/default.nix
@@ -5,7 +5,7 @@
 }:
 let
   pname = "whisper-ctranslate2";
-  version = "0.4.2";
+  version = "0.4.3";
 in
 python3.pkgs.buildPythonApplication {
   inherit pname version;
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication {
     owner = "Softcatala";
     repo = "whisper-ctranslate2";
     rev = version;
-    hash = "sha256-q8ofj/MVahBRmE9BSSN9EzadDqJVSxmdTMl53YhrKzY=";
+    hash = "sha256-39kVo4+ZEyjhWbLjw8acW2vJxa3fbQ/tPgnZH3USsYY=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index c5ca89f54841d..f49ded27dc0fa 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -96,11 +96,11 @@ in
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python.pkgs.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "265";
+  version = "266";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    hash = "sha256-YE81R8lTOM3wmv/GIaIBqUq2O6UvnUaHjuXZ00yDU8U=";
+    hash = "sha256-whEFBUFl8yFsZOtOWHbDm6Tx6i6UJYmQ5Fz7svLqGgs=";
   };
 
   outputs = [
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 063dfca667fc7..2593ef5b7bb80 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -41,6 +41,12 @@ python.pkgs.buildPythonApplication rec {
   postPatch = ''
     # drop coverage testing
     sed -i '/--cov/d' pytest.ini
+
+    # ensure component dependencies are available
+    cat requirements_optional.txt >> requirements.txt
+    # relax strict runtime version check
+    substituteInPlace esphome/components/font/__init__.py \
+      --replace-fail "10.2.0" "${python.pkgs.pillow.version}"
   '';
 
   # Remove esptool and platformio from requirements
@@ -55,6 +61,7 @@ python.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with python.pkgs; [
     aioesphomeapi
     argcomplete
+    cairosvg
     click
     colorama
     cryptography
diff --git a/pkgs/tools/misc/geekbench/6.nix b/pkgs/tools/misc/geekbench/6.nix
index 373d93dc193c1..d7dd0ad7158b8 100644
--- a/pkgs/tools/misc/geekbench/6.nix
+++ b/pkgs/tools/misc/geekbench/6.nix
@@ -10,15 +10,15 @@
 
 let
   inherit (stdenv.hostPlatform.uname) processor;
-  version = "6.2.0";
+  version = "6.3.0";
   sources = {
     "x86_64-linux" = {
       url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-      hash = "sha256-QoxSw825qqx1vzhzW9TZg03BPNvgOCokBWARGUhjCGY=";
+      hash = "sha256-AXJ5mXGc1RWnIkB13KtIdt7vKETEXowunzQZciQDnzs=";
     };
     "aarch64-linux" = {
       url = "https://cdn.geekbench.com/Geekbench-${version}-LinuxARMPreview.tar.gz";
-      hash = "sha256-m2uz5Rk34rm9Bx3j5FjFigOIKaj2c4I+uXKzU4cK4D4=";
+      hash = "sha256-fbf01qa9wx3k9j8AEqv38fAM3F9tZOcnpH/wa/9rawQ=";
     };
   };
   geekbench_avx2 = lib.optionalString stdenv.isx86_64 "geekbench_avx2";
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
     homepage = "https://geekbench.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = [ maintainers.michalrus ];
+    maintainers = with maintainers; [ michalrus asininemonkey ];
     platforms = builtins.attrNames sources;
     mainProgram = "geekbench6";
   };
diff --git a/pkgs/tools/misc/graylog/5.2.nix b/pkgs/tools/misc/graylog/5.2.nix
index e262d84f3f095..1247214e97535 100644
--- a/pkgs/tools/misc/graylog/5.2.nix
+++ b/pkgs/tools/misc/graylog/5.2.nix
@@ -2,8 +2,8 @@
 let
   buildGraylog = callPackage ./graylog.nix {};
 in buildGraylog {
-  version = "5.2.4";
-  sha256 = "sha256-TbZMRMLpYlg6wrsC+tDEk8sLYJ1nwJum/rL30CEGQcw=";
+  version = "5.2.7";
+  sha256 = "sha256-so9IHX0r3dmj5wLrLtQgrcXk+hu6E8/1d7wJu1XDcVA=";
   maintainers = [ lib.maintainers.f2k1de ];
   license = lib.licenses.sspl;
 }
diff --git a/pkgs/tools/misc/mstflint/default.nix b/pkgs/tools/misc/mstflint/default.nix
index 425271b6ff36a..16b46002a3016 100644
--- a/pkgs/tools/misc/mstflint/default.nix
+++ b/pkgs/tools/misc/mstflint/default.nix
@@ -26,22 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mstflint";
-  version = "4.26.0-1";
+  version = "4.28.0-1";
 
   src = fetchurl {
     url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/mstflint-${version}.tar.gz";
-    hash = "sha256-P8XACcz6d8UTOhFFeTijfFOthBqnUghGlDj9K145sZ8=";
+    hash = "sha256-zvCDc/9wAqT3XBI9A5kOprnnm52Ek8oGe2Je3dKHti0=";
   };
 
-  patches = [
-    # needed to introduce this with GCC 13. Remove, when https://github.com/Mellanox/mstflint/pull/916 is upstream.
-    (fetchpatch {
-      name = "elf.patch";
-      url = "https://patch-diff.githubusercontent.com/raw/Mellanox/mstflint/pull/916.patch";
-      hash = "sha256-quBdmiuzwThu4MkAaT74eJDlZwIcUZMrLZa8OIcO96w=";
-    })
-  ];
-
   nativeBuildInputs = [
     autoconf
     automake
diff --git a/pkgs/tools/misc/sqlite3-to-mysql/default.nix b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
index 8d93736ffdac2..289de7d02264a 100644
--- a/pkgs/tools/misc/sqlite3-to-mysql/default.nix
+++ b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
@@ -9,7 +9,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sqlite3-to-mysql";
-  version = "2.1.9";
+  version = "2.1.10";
   format = "pyproject";
 
   disabled = python3Packages.pythonOlder "3.8";
@@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
     owner = "techouse";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-TnqNPW/d1dcVuS5sg9NOXH5ns7AzcbyailY2pYcpUEU=";
+    hash = "sha256-E8cKgKT6Tmz5rR/E2eXDVEVdOr7kk+VbkpF+Yc7IZrw=";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/misc/ttyplot/default.nix b/pkgs/tools/misc/ttyplot/default.nix
index fc53f0b8997ac..64b9b7cddfab7 100644
--- a/pkgs/tools/misc/ttyplot/default.nix
+++ b/pkgs/tools/misc/ttyplot/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ttyplot";
-  version = "1.6.2";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "tenox7";
     repo = "ttyplot";
     rev = version;
-    hash = "sha256-HBJvTDhp1CA96gRU2Q+lMxcFaZ+txXcmNb8Cg1BFiH4=";
+    hash = "sha256-yxAFqi3TgiKiZYgR891ahkwUqZLk/JDsjujOYmBjUtk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/undocker/default.nix b/pkgs/tools/misc/undocker/default.nix
index a2ce7dfb7aa16..0b6fb57f710e1 100644
--- a/pkgs/tools/misc/undocker/default.nix
+++ b/pkgs/tools/misc/undocker/default.nix
@@ -1,25 +1,36 @@
 { lib
 , buildGoModule
-, fetchFromSourcehut
+, fetchFromGitea
+, gnumake
 }:
-buildGoModule rec {
-  pname = "undocker";
-  version = "1.0.4";
-
-  src = fetchFromSourcehut {
-    owner = "~motiejus";
-    repo = pname;
+let
+  version = "1.2.2";
+  hash = "sha256-kBqNopcHpldU5oD6zoVjPjP84t12QFcbWBSNNgwImKg=";
+  src = fetchFromGitea {
+    domain = "git.jakstys.lt";
+    owner = "motiejus";
+    repo = "undocker";
     rev = "v${version}";
-    hash = "sha256-I+pTbr1lKELyYlyHrx2gB+aeZ3/PmcePQfXu1ckhKAk=";
+    hash = hash;
   };
+in
+buildGoModule {
+  pname = "undocker";
+  inherit version src;
+
+  nativeBuildInputs = [ gnumake ];
+
+  buildPhase = "make VSN=v${version} VSNHASH=${hash} undocker";
+
+  installPhase = "install -D undocker $out/bin/undocker";
 
   vendorHash = null;
 
   meta = with lib; {
-    homepage = "https://git.sr.ht/~motiejus/undocker";
+    homepage = "https://git.jakstys.lt/motiejus/undocker";
     description = "A CLI tool to convert a Docker image to a flattened rootfs tarball";
     license = licenses.asl20;
-    maintainers = with maintainers; [ jordanisaacs ];
+    maintainers = with maintainers; [ jordanisaacs motiejus ];
     mainProgram = "undocker";
   };
 }
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index 372d20771f37d..a8c4a28775eaa 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wakapi";
-  version = "2.11.1";
+  version = "2.11.2";
 
   src = fetchFromGitHub {
     owner = "muety";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ZdKPaHe4miMKb6qEKdRz/fRIkTWDXp2Veu7CP1gRuQw=";
+    sha256 = "sha256-lBjYtb64blFUH/iW/SmC4A7nX9asokvsNKu6QVYgmZ8=";
   };
 
-  vendorHash = "sha256-pRj7Y2xp+Z2StaXRIzI5b2WAkIhR9y8T8DMXWrxOiy4=";
+  vendorHash = "sha256-Kt7RzAGZeLFhwvq+V6AK88rivqkoTE1Zep7NMh3BXXQ=";
 
   # Not a go module required by the project, contains development utilities
   excludedPackages = [ "scripts" ];
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index ce96d50196261..e0d1b59460599 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -216,5 +216,9 @@ stdenv.mkDerivation rec {
     changelog = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/raw/${version}/NEWS";
     maintainers = teams.freedesktop.members ++ (with maintainers; [ domenkozar obadz ]);
     platforms = platforms.linux;
+    badPlatforms = [
+      # Mandatory shared libraries.
+      lib.systems.inspect.platformPatterns.isStatic
+    ];
   };
 }
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 3be774f920480..c7b032c1096d9 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -166,18 +166,18 @@ in lib.makeExtensible (self: ({
   };
 
   nix_2_22 = common {
-    version = "2.22.0";
-    hash = "sha256-Ugcc+lSq8nJP+mddMlGFnoG4Ix1lRFHWOal3299bqR8=";
+    version = "2.22.1";
+    hash = "sha256-5Q1WkpTWH7fkVfYhHDc5r0A+Vc+K5xB1UhzrLzBCrB8=";
   };
 
   git = common rec {
     version = "2.23.0";
-    suffix = "pre20240502_${lib.substring 0 8 src.rev}";
+    suffix = "pre20240510_${lib.substring 0 8 src.rev}";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "00ca2b05b8fbbef09be5d1e4820857605d4c31b6";
-      hash = "sha256-trTxWfGElp0rkjquqG5I5RYVoxo8foCflxJFUtHwnOQ=";
+      rev = "87ab3c0ea4e6f85e7b902050365bb75cf2836fbb";
+      hash = "sha256-j/PLYYGs+Gjge4JGYxMjOhWQEp+GB4Fdicetbpmp6n0=";
     };
   };
 
diff --git a/pkgs/tools/security/cnquery/default.nix b/pkgs/tools/security/cnquery/default.nix
index 3451540aa7762..d797861c26e8b 100644
--- a/pkgs/tools/security/cnquery/default.nix
+++ b/pkgs/tools/security/cnquery/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "cnquery";
-  version = "11.2.0";
+  version = "11.3.1";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnquery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6syVPPIqLoesz26OIdnGHwJlfYvZC73eX8kKJ/ZlOGU=";
+    hash = "sha256-LcU4U2mxNrLJyp/V5d8TDo9DAcRBb4aRK+aEKoMCsZ0=";
   };
 
   subPackages = [ "apps/cnquery" ];
 
-  vendorHash = "sha256-7ZU0tB3sPdBKCktiB81HZzRbsYdhTnMDd/Lu6oLa+D4=";
+  vendorHash = "sha256-z12/OKkrDru8jO4R1I/XfzGCBPHAD+KhJKv3dyyYCdw=";
 
   ldflags = [
     "-w"
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index 115cb10c014e5..e75be683a6f31 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -10,6 +10,7 @@
 , dbus
 , polkit
 , systemdLibs
+, udev
 , dbusSupport ? stdenv.isLinux
 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs
 , udevSupport ? dbusSupport
@@ -83,6 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [ python3 ]
     ++ lib.optionals systemdSupport [ systemdLibs ]
+    ++ lib.optionals (!systemdSupport && udevSupport) [ udev ]
     ++ lib.optionals stdenv.isDarwin [ IOKit ]
     ++ lib.optionals dbusSupport [ dbus ]
     ++ lib.optionals polkitSupport [ polkit ]
diff --git a/pkgs/tools/security/qdigidoc/default.nix b/pkgs/tools/security/qdigidoc/default.nix
index 862249d2ebd10..7e90eca619395 100644
--- a/pkgs/tools/security/qdigidoc/default.nix
+++ b/pkgs/tools/security/qdigidoc/default.nix
@@ -1,6 +1,7 @@
 { lib
 , mkDerivation
 , fetchurl
+, fetchpatch
 , cmake
 , flatbuffers
 , gettext
@@ -17,12 +18,12 @@
 
 mkDerivation rec {
   pname = "qdigidoc";
-  version = "4.4.0";
+  version = "4.5.1";
 
   src = fetchurl {
     url =
       "https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4-${version}.tar.gz";
-    hash = "sha256-5zo0yoY0wufm9DWRIccxJ5g4DXn75nT4fd2h+5QP4oQ=";
+    hash = "sha256-grhSuexp5yd/s8h5AdmdSLBmQY85l9HKZ15oTTvC6PI=";
   };
 
   tsl = fetchurl {
@@ -30,6 +31,14 @@ mkDerivation rec {
     sha256 = "1cikz36w9phgczcqnwk4k3mx3kk919wy2327jksmfa4cjfjq4a8d";
   };
 
+  patches = [
+    # https://github.com/open-eid/DigiDoc4-Client/pull/1251
+    (fetchpatch {
+      url = "https://github.com/open-eid/DigiDoc4-Client/commit/30281d14c5fb5582832eafbc254b56f8d685227d.patch";
+      hash = "sha256-nv23NbPUogOhS8No3SMIrAcPChl+d1HkxnePpCKIoUw=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake gettext pkg-config qttools ];
 
   postPatch = ''
@@ -64,6 +73,6 @@ mkDerivation rec {
     homepage = "https://www.id.ee/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ mmahut yana ];
+    maintainers = with maintainers; [ flokli mmahut yana ];
   };
 }
diff --git a/pkgs/tools/security/semgrep/common.nix b/pkgs/tools/security/semgrep/common.nix
index da39bc4961305..49f7080ce072f 100644
--- a/pkgs/tools/security/semgrep/common.nix
+++ b/pkgs/tools/security/semgrep/common.nix
@@ -1,9 +1,9 @@
 { lib }:
 
 rec {
-  version = "1.71.0";
+  version = "1.72.0";
 
-  srcHash = "sha256-KLDyKNo2oAQlcT9J2SbPSGJvUkxbT05IdEjl5YPBZqA=";
+  srcHash = "sha256-Rfu4ymNQ9AXuj5nkx01eUtIVMXDmunNTvUH/2Y7VaXM=";
 
   # submodule dependencies
   # these are fetched so we:
@@ -25,19 +25,19 @@ rec {
   core = {
     x86_64-linux = {
       platform = "any";
-      hash = "sha256-0pEpxIYed0Z086l1apJXuEVW1Hly4HauzHD8bjxR1Zw=";
+      hash = "sha256-/XZzzDbsW6pw8LC8DgofZ1Gr7eeQyH719NzJDCoXhpk=";
     };
     aarch64-linux = {
       platform = "musllinux_1_0_aarch64.manylinux2014_aarch64";
-      hash = "sha256-6VefgA4YFiY7fsy7sbQFXCjsJNM4+vlv6uLSrzBd2qI=";
+      hash = "sha256-7zCy2IbxsNO1Jl/efu9dwSyvv6a0HYvqEBzxVpTzqAM=";
     };
     x86_64-darwin = {
       platform = "macosx_10_14_x86_64";
-      hash = "sha256-wgCaS7Lw1FP42mOZmhO5v2Nz8PnDEkEP2gbxr7aGtDk=";
+      hash = "sha256-jykFOXOCtEtlTxN6z17m8E2g2Wpb7qdXx6w4L6w+DbY=";
     };
     aarch64-darwin = {
       platform = "macosx_11_0_arm64";
-      hash = "sha256-IZc2RZbAYpflkszl5lFutxikwtO6XGoyyeHJIhU/K+k=";
+      hash = "sha256-0dBki3y9tMdjRRfYbxtl0fVTDXO8tLpx76EPISxtCy4=";
     };
   };
 
diff --git a/pkgs/tools/security/sherlock/default.nix b/pkgs/tools/security/sherlock/default.nix
index e3d6f658aeaff..aaae216f1f27f 100644
--- a/pkgs/tools/security/sherlock/default.nix
+++ b/pkgs/tools/security/sherlock/default.nix
@@ -2,18 +2,19 @@
 , fetchFromGitHub
 , makeWrapper
 , python3
+, unstableGitUpdater
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sherlock";
-  version = "unstable-2023-10-06";
+  version = "unstable-2024-05-12";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "sherlock-project";
-    repo = pname;
-    rev = "7ec56895a37ada47edd6573249c553379254d14a";
-    hash = "sha256-bK5yEdh830vgKcsU3gLH7TybLncnX6eRIiYPUiVWM74=";
+    repo = "sherlock";
+    rev = "3e978d774b428dce6eed7afbb6606444e7a74924";
+    hash = "sha256-wa32CSQ9+/PJPep84Tqtzmr6EjD1Bb3guZe5pTOZVnA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -59,6 +60,10 @@ python3.pkgs.buildPythonApplication rec {
     runHook postCheck
   '';
 
+  passthru.updateScript = unstableGitUpdater {
+    hardcodeZeroVersion = true;
+  };
+
   meta = with lib; {
     homepage = "https://sherlock-project.github.io/";
     description = "Hunt down social media accounts by username across social networks";
diff --git a/pkgs/tools/security/web-eid-app/default.nix b/pkgs/tools/security/web-eid-app/default.nix
index 067963e1aaffd..e2e09ed0146b3 100644
--- a/pkgs/tools/security/web-eid-app/default.nix
+++ b/pkgs/tools/security/web-eid-app/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "web-eid-app";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "web-eid";
     repo = "web-eid-app";
     rev = "v${version}";
-    sha256 = "sha256-xWwguxs/121BFF1zhb/HxS9b1vTwQRemhPKOfHEXVZQ=";
+    sha256 = "sha256-CaMf7cRhZ8K6YAUG38B+ijNOKaOmaACqNabNfHZGT68=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/system/throttled/default.nix b/pkgs/tools/system/throttled/default.nix
index ff671633b9601..1fa67fb1c2243 100644
--- a/pkgs/tools/system/throttled/default.nix
+++ b/pkgs/tools/system/throttled/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gobject-introspection, python3Packages, pciutils, wrapGAppsHook3 }:
+{ lib, stdenv, fetchFromGitHub, gobject-introspection, python3Packages, pciutils, wrapGAppsNoGuiHook }:
 
 stdenv.mkDerivation rec {
   pname = "throttled";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     gobject-introspection
     python3Packages.wrapPython
-    wrapGAppsHook3
+    wrapGAppsNoGuiHook
   ];
 
   pythonPath = with python3Packages; [
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index c852a4baf7942..c22814372314b 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kdiff3";
-  version = "1.10.7";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/kdiff3/kdiff3-${finalAttrs.version}.tar.xz";
-    hash = "sha256-uj9Ky/SsdIrr78hfWcr2U9Rf6FmkjDSviZGCJKdnxeM=";
+    hash = "sha256-O/N5VMoZo2Xze1WLV0yPvTZnGcCH17gheI0++tDESFE=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
diff --git a/pkgs/tools/text/mdbook-open-on-gh/default.nix b/pkgs/tools/text/mdbook-open-on-gh/default.nix
index 68a7c504345c7..a4c592dfbd2a7 100644
--- a/pkgs/tools/text/mdbook-open-on-gh/default.nix
+++ b/pkgs/tools/text/mdbook-open-on-gh/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-open-on-gh";
-  version = "2.4.2";
+  version = "2.4.3";
 
   src = fetchFromGitHub {
     owner = "badboy";
     repo = pname;
     rev = version;
-    hash = "sha256-ZExmOHvQApGZaepOuf3yXYe8NV3FpMtCqCR1KE6q4no=";
+    hash = "sha256-73738Vei7rQ67LQIOrHPGOtsBnHClaXClRWDmA5pP58=";
   };
 
-  cargoHash = "sha256-WLCcYgkrH5fZvv3LZNEolBQUcTZC2URs6bIgzf4BtWU=";
+  cargoHash = "sha256-TQBjgQaoI88xGdhkffNWRH6aZ99WWbkkpiPu4LqBD3g=";
 
   meta = with lib; {
     description = "mdbook preprocessor to add a open-on-github link on every page";
diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 5497e6b6dd4bd..59b520e50c3bb 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -35,6 +35,8 @@ lib.fix (self: {
 , __combine ? false
 # adjust behavior further if called from the texlive.combine wrapper
 , __fromCombineWrapper ? false
+# build only the formats of a package (for internal use!)
+, __formatsOf ? null
 }@args:
 
 let
@@ -116,7 +118,8 @@ let
     hyphenPatterns = lib.filter (p: p ? hyphenPatterns && (p.tlOutputName or p.outputName == "tex")) nonbin;
     sortedHyphenPatterns = builtins.sort (a: b: a.pname < b.pname) hyphenPatterns;
     formatPkgs = lib.filter (p: p ? formats && (p.outputSpecified or false -> p.tlOutputName or p.outputName == "tex") && builtins.any (f: f.enabled or true) p.formats) all;
-    sortedFormatPkgs = builtins.sort (a: b: a.pname < b.pname) formatPkgs;
+    sortedFormatPkgs = if __formatsOf != null then [ __formatsOf ] else builtins.sort (a: b: a.pname < b.pname) formatPkgs;
+    formats = map (p: self { requiredTeXPackages = ps: [ ps.scheme-infraonly p ] ++ hyphenPatterns; __formatsOf = p; }) sortedFormatPkgs;
   };
 
   # list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
@@ -125,7 +128,7 @@ let
   needsGhostscript = lib.any (p: lib.elem p.pname [ "context" "dvipdfmx" "latex-papersize" "lyluatex" ]) pkgList.bin;
 
   name = if __combine then "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name
-    else "texlive-${bin.texliveYear}-env";
+    else "texlive-${bin.texliveYear}-" + (if __formatsOf != null then "${__formatsOf.pname}-fmt" else "env");
 
   texmfdist = buildEnv' {
     name = "${name}-texmfdist";
@@ -260,11 +263,11 @@ buildEnv' {
   inherit name;
 
   # use attrNames, attrValues to ensure the two lists are sorted in the same way
-  outputs = [ "out" ] ++ lib.optionals (! __combine) (builtins.attrNames nonEnvOutputs);
-  otherOutputs = lib.optionals (! __combine) (builtins.attrValues nonEnvOutputs);
+  outputs = [ "out" ] ++ lib.optionals (! __combine && __formatsOf == null) (builtins.attrNames nonEnvOutputs);
+  otherOutputs = lib.optionals (! __combine && __formatsOf == null) (builtins.attrValues nonEnvOutputs);
 
   # remove fake derivations (without 'outPath') to avoid undesired build dependencies
-  paths = builtins.catAttrs "outPath" pkgList.bin
+  paths = builtins.catAttrs "outPath" pkgList.bin ++ lib.optionals (! __combine && __formatsOf == null) pkgList.formats
     ++ lib.optional __combine doc;
   pathsToLink = [
     "/"
@@ -286,7 +289,8 @@ buildEnv' {
 
   buildInputs = [ coreutils gawk gnugrep gnused ] ++ lib.optional needsGhostscript ghostscript;
 
-  inherit meta passthru;
+  inherit meta passthru __combine;
+  __formatsOf = __formatsOf.pname or null;
 
   inherit texmfdist texmfroot;
 
@@ -306,4 +310,4 @@ buildEnv' {
   '';
 };
   # outputsToInstall must be set *after* overrideAttrs (used in buildEnv') or it fails the checkMeta tests
-in if __combine then out else lib.addMetaAttrs { inherit (pkgList) outputsToInstall; } out)
+in if __combine || __formatsOf != null then out else lib.addMetaAttrs { inherit (pkgList) outputsToInstall; } out)
diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.sh b/pkgs/tools/typesetting/tex/texlive/build-tex-env.sh
index 834b2e0e7651f..baa508047f846 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-tex-env.sh
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.sh
@@ -143,7 +143,10 @@ installtl_do_postinst_stuff () {
     # in principle, we could use writeText and share them across different
     # environments, but the eval & build overhead is not worth the savings
     tlutils_create_fmtutil
-    tlutils_create_updmap
+    # can be skipped if generating formats only
+    if [[ -z $__formatsOf ]] ; then
+        tlutils_create_updmap
+    fi
     tlutils_create_language_dat
     tlutils_create_language_def
     tlutils_create_language_lua
@@ -152,21 +155,24 @@ installtl_do_postinst_stuff () {
     tlutils_info "running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG"
     mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG"
 
-    # update font maps
-    tlutils_info "generating font maps"
-    updmap-sys --quiet --force --nohash 2>&1
-    # configure the paper size
-    # tlmgr --no-execute-actions paper letter
-    # install-tl: "rerun mktexlsr for updmap-sys and tlmgr paper updates"
-    tlutils_info "re-running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG"
-    mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG"
-
-    tlutils_update_context_cache
+    # can be skipped if generating formats only
+    if [[ -z $__formatsOf ]] ; then
+        # update font maps
+        tlutils_info "generating font maps"
+        updmap-sys --quiet --force --nohash 2>&1
+        # configure the paper size
+        # tlmgr --no-execute-actions paper letter
+        # install-tl: "rerun mktexlsr for updmap-sys and tlmgr paper updates"
+        tlutils_info "re-running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG"
+        mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG"
+
+        tlutils_update_context_cache
+    fi
 
     # generate formats
     # install-tl would run fmtutil-sys $common_fmtutil_args --no-strict --all
     # instead, we want fmtutil to exit with error on failure
-    if [[ -n $fmtutilCnf ]] ; then
+    if [[ -n $fmtutilCnf && -n $__combine$__formatsOf ]] ; then
         tlutils_info "pre-generating all format files, be patient..."
         # many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1
         # libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE
@@ -177,6 +183,24 @@ installtl_do_postinst_stuff () {
         substitute "$texmfdist"/scripts/texlive/fmtutil.pl fmtutil \
             --replace-fail "my \$cmdline = \"\$eng -ini " "my \$cmdline = \"faketime -f '\@$(date +'%F %T' --date=@"$SOURCE_DATE_EPOCH") x0.001' \$eng -ini "
         FORCE_SOURCE_DATE=1 perl fmtutil --quiet --strict --sys --all 2>&1 | grep '^fmtutil' # too verbose
+
+        # if generating formats only, delete everything else and exit
+        if [[ -n $__formatsOf ]] ; then
+            # see fmtutil.pl::compute_format_destination for file extensions
+            find "$out" \( -type f -or -type l \) \
+                -not -path "$TEXMFSYSVAR/*.mem" \
+                -not -path "$TEXMFSYSVAR/*.base" \
+                -not -path "$TEXMFSYSVAR/*.fmt" \
+                -delete
+            find "$out" -type d -empty -delete
+            exit
+        fi
+    elif [[ -z $__combine ]] ; then
+        # double check that all formats are present
+        if fmtutil --quiet --strict --sys --missing --dry-run 2>&1 | grep running ; then
+            tlutils_info 'formats not found, aborting'
+            exit 1
+        fi
     fi
 
     installtl_do_path_adjustments
@@ -190,7 +214,7 @@ installtl_do_postinst_stuff () {
 ### TeXLive::TLUtils
 
 tlutils_info () {
-    printf '%s\n' "texlive: $*"
+    printf "texlive${__formatsOf:+($__formatsOf-fmt)}: %s\n" "$*"
 }
 
 tlutils_create_fmtutil () {
diff --git a/pkgs/tools/wayland/mpvpaper/default.nix b/pkgs/tools/wayland/mpvpaper/default.nix
index a21873be95802..acadb99c2d669 100644
--- a/pkgs/tools/wayland/mpvpaper/default.nix
+++ b/pkgs/tools/wayland/mpvpaper/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mpvpaper";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "GhostNaN";
     repo = pname;
     rev = version;
-    sha256 = "sha256-TlA2hmpHGe4PWb+Pe3cq2Hhce4NXVI1DnknseGmuFeY=";
+    sha256 = "sha256-/A2C6T7gP+VGON3Peaz2Y4rNC63UT+zYr4RNM2gdLUY=";
   };
 
   strictDeps = true;
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 594d72ad45cdd..3d05cab47461e 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -231,6 +231,7 @@ mapAliases ({
   clang_10 = throw "clang_10 has been removed from nixpkgs"; # Added 2024-01-26
   clang_11 = throw "clang_11 has been removed from nixpkgs"; # Added 2023-01-24
 
+  cq-editor = throw "cq-editor has been removed, as it use a dependency that was disabled since python 3.8 and was last updated in 2021"; # Added 2024-05-13
   ### D ###
 
   dagger = throw "'dagger' has been removed from nixpkgs, as the trademark policy of the upstream project is incompatible"; # Added 2023-10-16
@@ -685,6 +686,7 @@ mapAliases ({
   linuxPackages_6_6 = linuxKernel.packages.linux_6_6;
   linuxPackages_6_7 = linuxKernel.packages.linux_6_7;
   linuxPackages_6_8 = linuxKernel.packages.linux_6_8;
+  linuxPackages_6_9 = linuxKernel.packages.linux_6_9;
   linuxPackages_rpi0 = linuxKernel.packages.linux_rpi1;
   linuxPackages_rpi02w = linuxKernel.packages.linux_rpi3;
   linuxPackages_rpi1 = linuxKernel.packages.linux_rpi1;
@@ -712,6 +714,7 @@ mapAliases ({
   linux_6_6 = linuxKernel.kernels.linux_6_6;
   linux_6_7 = linuxKernel.kernels.linux_6_7;
   linux_6_8 = linuxKernel.kernels.linux_6_8;
+  linux_6_9 = linuxKernel.kernels.linux_6_9;
   linux_rpi0 = linuxKernel.kernels.linux_rpi1;
   linux_rpi02w = linuxKernel.kernels.linux_rpi3;
   linux_rpi1 = linuxKernel.kernels.linux_rpi1;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 384763a6643b9..64bb6b1dcee13 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -193,7 +193,6 @@ with pkgs;
       pythonInterpreter = "${python3.withPackages (ps: [ ps.pyelftools ])}/bin/python";
       autoPatchelfScript = ../build-support/setup-hooks/auto-patchelf.py;
     };
-    meta.platforms = lib.platforms.linux ++ lib.platforms.freebsd;
   } ../build-support/setup-hooks/auto-patchelf.sh;
 
   tomato-c = callPackage ../applications/misc/tomato-c { };
@@ -1082,7 +1081,7 @@ with pkgs;
     antlr = antlr4_10;
     boost = boost177; # Configure checks for specific version.
     icu =  icu73;
-    protobuf = protobuf_21;
+    protobuf = protobuf_24;
   };
 
   mysql-shell-innovation = callPackage ../development/tools/mysql-shell/innovation.nix {
@@ -1758,8 +1757,6 @@ with pkgs;
 
   donkey = callPackage ../tools/security/donkey { };
 
-  dualsensectl = callPackage ../tools/games/dualsensectl { };
-
   dwarfs = callPackage ../tools/filesystems/dwarfs { };
 
   dysk = callPackage ../tools/filesystems/dysk { };
@@ -4768,8 +4765,6 @@ with pkgs;
 
   wtype = callPackage ../tools/wayland/wtype { };
 
-  ydotool = callPackage ../tools/wayland/ydotool { };
-
   cambalache = callPackage ../development/tools/cambalache { };
 
   cambrinary = python3Packages.callPackage ../applications/misc/cambrinary { };
@@ -6477,8 +6472,6 @@ with pkgs;
 
   bfs = callPackage ../tools/system/bfs { };
 
-  bevelbar = callPackage ../tools/X11/bevelbar { };
-
   bgs = callPackage ../tools/X11/bgs { };
 
   bibclean = callPackage ../tools/typesetting/bibclean { };
@@ -7132,10 +7125,6 @@ with pkgs;
   cudaPackages_12_3 = callPackage ./cuda-packages.nix { cudaVersion = "12.3"; };
   cudaPackages_12 = cudaPackages_12_2; # Latest supported by cudnn
 
-  # Use the older cudaPackages for tensorflow and jax, as determined by cudnn
-  # compatibility: https://www.tensorflow.org/install/source#gpu
-  cudaPackagesGoogle = cudaPackages_11;
-
   cudaPackages = recurseIntoAttrs cudaPackages_12;
 
   # TODO: move to alias
@@ -12398,8 +12387,6 @@ with pkgs;
 
   redsocks = callPackage ../tools/networking/redsocks { };
 
-  renpy = callPackage ../development/interpreters/renpy { };
-
   rep = callPackage ../development/tools/rep { };
 
   repseek = callPackage ../applications/science/biology/repseek { };
@@ -16623,9 +16610,7 @@ with pkgs;
   };
   cargo-benchcmp = callPackage ../development/tools/rust/cargo-benchcmp { };
   cargo-binstall = callPackage ../development/tools/rust/cargo-binstall { };
-  cargo-bisect-rustc = callPackage ../development/tools/rust/cargo-bisect-rustc {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
+  cargo-bisect-rustc = callPackage ../development/tools/rust/cargo-bisect-rustc { };
   cargo-bitbake = callPackage ../development/tools/rust/cargo-bitbake { };
   cargo-c = callPackage ../development/tools/rust/cargo-c {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
@@ -16742,9 +16727,6 @@ with pkgs;
 
   cargo-nextest = callPackage ../development/tools/rust/cargo-nextest { };
   cargo-play = callPackage ../development/tools/rust/cargo-play { };
-  cargo-raze = callPackage ../development/tools/rust/cargo-raze {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
   cargo-rdme = callPackage ../by-name/ca/cargo-rdme/package.nix {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -26045,8 +26027,6 @@ with pkgs;
 
   olaris-server = callPackage ../servers/olaris { };
 
-  onagre = callPackage ../applications/misc/onagre { };
-
   onlyoffice-documentserver = callPackage ../servers/onlyoffice-documentserver { };
 
   outline = callPackage ../servers/web-apps/outline (lib.fix (super: {
@@ -26691,8 +26671,6 @@ with pkgs;
 
   urserver = callPackage ../servers/urserver { };
 
-  uxplay = callPackage ../servers/uxplay { };
-
   vouch-proxy = callPackage ../servers/vouch-proxy { };
 
   virtiofsd = callPackage ../servers/misc/virtiofsd { };
@@ -30184,8 +30162,6 @@ with pkgs;
 
   cplay-ng = callPackage ../applications/audio/cplay-ng { };
 
-  cq-editor = libsForQt5.callPackage ../applications/graphics/cq-editor { };
-
   cqrlog = callPackage ../applications/radio/cqrlog {
     hamlib = hamlib_4;
   };
@@ -32653,8 +32629,6 @@ with pkgs;
 
   makeself = callPackage ../applications/misc/makeself { };
 
-  mako = callPackage ../applications/misc/mako { };
-
   mandelbulber = libsForQt5.callPackage ../applications/graphics/mandelbulber { };
 
   mapmap = libsForQt5.callPackage ../applications/video/mapmap { };
@@ -40954,8 +40928,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
-  treefmt = callPackage ../development/tools/treefmt { };
-
   nufmt = callPackage ../development/tools/nufmt { };
 
   bottom = darwin.apple_sdk_11_0.callPackage ../tools/system/bottom { };
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 5094f8637ab5e..0335f52465eaa 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -196,6 +196,15 @@ in {
       ];
     };
 
+    linux_6_9 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "6.9";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+        kernelPatches.rust_1_77-6_9
+      ];
+    };
+
     linux_testing = let
       testing = callPackage ../os-specific/linux/kernel/mainline.nix {
         # A special branch that tracks the kernel under the release process
@@ -602,6 +611,7 @@ in {
     linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
     linux_6_6 = recurseIntoAttrs (packagesFor kernels.linux_6_6);
     linux_6_8 = recurseIntoAttrs (packagesFor kernels.linux_6_8);
+    linux_6_9 = recurseIntoAttrs (packagesFor kernels.linux_6_9);
     __attrsFailEvaluation = true;
   } // lib.optionalAttrs config.allowAliases {
     linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
@@ -669,7 +679,7 @@ in {
   packageAliases = {
     linux_default = packages.linux_6_6;
     # Update this when adding the newest kernel major version!
-    linux_latest = packages.linux_6_8;
+    linux_latest = packages.linux_6_9;
     linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake";
     linux_rt_default = packages.linux_rt_5_4;
     linux_rt_latest = packages.linux_rt_6_6;
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 8a7ad8a70aeb3..0e67b4d96bdc4 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -2010,7 +2010,7 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_5_2 = mkOcamlPackages (callPackage ../development/compilers/ocaml/5.2.nix { });
 
-  ocamlPackages_latest = ocamlPackages_5_1;
+  ocamlPackages_latest = ocamlPackages_5_2;
 
   ocamlPackages = ocamlPackages_5_1;
 
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 71dafa9a9c43a..75b713a6efe93 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -80,6 +80,7 @@ mapAliases ({
   bt_proximity = bt-proximity; # added 2021-07-02
   BTrees = btrees; # added 2023-02-19
   cacheyou = throw "cacheyou has been removed, as it was no longer used for the only consumer pdm"; # added 2023-12-21
+  cadquery = throw "cadquery was removed, because it was disabled on all python version since 3.8 and marked as broken"; # added 2024-05-13
   carrot = throw "carrot has been removed, as its development was discontinued in 2012"; # added 2022-01-18
   cchardet = faust-cchardet; # added 2023-03-02
   cepa = throw "cepa has been removed, as onionshare switched back to stem"; # added 2024-05-07
@@ -93,6 +94,7 @@ mapAliases ({
   coronavirus = throw "coronavirus was removed, because the source is not providing the data anymore."; # added 2023-05-04
   covCore = cov-core; # added 2024-01-03
   cozy = throw "cozy was removed because it was not actually https://pypi.org/project/Cozy/."; # added 2022-01-14
+  cryptacular = throw "cryptacular was removed, because it was disabled on all python version since 3.6 and last updated in 2021"; # Added 2024-05-13
   cryptography_vectors = "cryptography_vectors is no longer exposed in python*Packages because it is used for testing cryptography only."; # Added 2022-03-23
   cx_Freeze = cx-freeze; # added 2023-08-02
   cx_oracle = cx-oracle; # added 2024-01-03
@@ -193,6 +195,7 @@ mapAliases ({
   GitPython = gitpython; # added 2022-10-28
   glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
   glasgow = throw "glasgow has been promoted to a top-level attribute name: `pkgs.glasgow`"; # added 2023-02-05
+  globre = throw "globre was removed, because it was disabled on all python version since 3.7 and last updated in 2020."; # added 2024-05-13
   google_api_python_client = google-api-python-client; # added 2021-03-19
   googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
   google-apitools = throw "google-apitools was removed because it is deprecated and unsupported by upstream"; # added 2023-02-25
@@ -307,6 +310,7 @@ mapAliases ({
   pafy = throw "pafy has been removed because it is unmaintained and only a dependency of mps-youtube, itself superseded by yewtube"; # Added 2023-01-19
   pam = python-pam; # added 2020-09-07.
   PasteDeploy = pastedeploy; # added 2021-10-07
+  pathlib = throw "pathlib was removed as it has been integrated in python standard library in version 3.4"; # added 2024-05-13
   pathpy = path; # added 2022-04-12
   pcbnew-transition = pcbnewtransition; # added 2024-03-21
   pdfposter = throw "pdfposter was promoted to a top-level attribute"; # Added 2023-06-29
@@ -327,6 +331,7 @@ mapAliases ({
   pur = throw "pur has been renamed to pkgs.pur"; # added 2021-11-08
   pushbullet = pushbullet-py;  # Added 2022-10-15
   Pweave = pweave; # added 2023-02-19
+  pxml = throw "pxml was removed, because it was disabled on all python version since 3.8 and last updated in 2020."; # added 2024-05-13
   py-radix = throw "py-radix has been removed, since it abandoned"; # added 2023-07-07
   py_stringmatching = py-stringmatching; # added 2023-11-12
   pyalmond = throw "pyalmond has been removed, since its API endpoints have been shutdown"; # added 2023-02-02
@@ -493,6 +498,7 @@ mapAliases ({
   sphinx-navtree = throw "sphinx-navtree has been removed since it is not compatible with sphinx 3.3 and unmaintained"; # added 2023-07-03
   sqlalchemy_migrate = sqlalchemy-migrate; # added 2021-10-28
   SQLAlchemy-ImageAttach = throw "sqlalchemy-imageattach has been removed as it is incompatible with sqlalchemy 1.4 and unmaintained"; # added 2022-04-23
+  sqlsoup = throw "sqlsoup has been removed as it is incompatible with modern SQLAlchemy and unmaintained"; # added 2024-05-13
   subdownloader = throw "subdownloader has been removed, because it depended on pyqt4"; # added 2022-06-09
   suds-jurko = throw "suds-jurko has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2023-02-27
   supervise_api = supervise-api; # added 2023-10-11
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index c47843cad641c..35b15d4301283 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1858,10 +1858,6 @@ self: super: with self; {
 
   cachy = callPackage ../development/python-modules/cachy { };
 
-  cadquery = callPackage ../development/python-modules/cadquery {
-    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
-  };
-
   caffe = toPythonModule (pkgs.caffe.override {
     pythonSupport = true;
     inherit (self) python numpy boost;
@@ -2571,8 +2567,6 @@ self: super: with self; {
 
   crownstone-uart = callPackage ../development/python-modules/crownstone-uart { };
 
-  cryptacular = callPackage ../development/python-modules/cryptacular { };
-
   cryptg = callPackage ../development/python-modules/cryptg { };
 
   cryptodatahub = callPackage ../development/python-modules/cryptodatahub { };
@@ -4773,6 +4767,8 @@ self: super: with self; {
 
   gfsubsets = callPackage ../development/python-modules/gfsubsets { };
 
+  gguf = callPackage ../development/python-modules/gguf { };
+
   ghapi = callPackage ../development/python-modules/ghapi { };
 
   ghdiff = callPackage ../development/python-modules/ghdiff { };
@@ -4840,8 +4836,6 @@ self: super: with self; {
 
   glob2 = callPackage ../development/python-modules/glob2 { };
 
-  globre = callPackage ../development/python-modules/globre { };
-
   globus-sdk = callPackage ../development/python-modules/globus-sdk { };
 
   glom = callPackage ../development/python-modules/glom { };
@@ -9283,6 +9277,8 @@ self: super: with self; {
 
   optimum = callPackage ../development/python-modules/optimum { };
 
+  optree = callPackage ../development/python-modules/optree { };
+
   optuna = callPackage ../development/python-modules/optuna { };
 
   opuslib = callPackage ../development/python-modules/opuslib { };
@@ -9519,8 +9515,6 @@ self: super: with self; {
 
   pathlib2 = callPackage ../development/python-modules/pathlib2 { };
 
-  pathlib = callPackage ../development/python-modules/pathlib { };
-
   pathlib-abc = callPackage ../development/python-modules/pathlib-abc { };
 
   pathos = callPackage ../development/python-modules/pathos { };
@@ -10537,8 +10531,6 @@ self: super: with self; {
     debugger = pkgs.gdb;
   };
 
-  pxml = callPackage ../development/python-modules/pxml { };
-
   py-air-control = callPackage ../development/python-modules/py-air-control { };
 
   py-air-control-exporter = callPackage ../development/python-modules/py-air-control-exporter { };
@@ -14474,8 +14466,6 @@ self: super: with self; {
 
   sqlparse = callPackage ../development/python-modules/sqlparse { };
 
-  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
-
   sqltrie = callPackage ../development/python-modules/sqltrie { };
 
   squarify = callPackage ../development/python-modules/squarify { };
@@ -14883,6 +14873,8 @@ self: super: with self; {
 
   tensorflow-bin = callPackage ../development/python-modules/tensorflow/bin.nix {
     inherit (pkgs.config) cudaSupport;
+    # https://www.tensorflow.org/install/source#gpu
+    cudaPackages = pkgs.cudaPackages_11;
   };
 
   tensorflow-build = let
@@ -14890,6 +14882,8 @@ self: super: with self; {
       protobufTF = pkgs.protobuf_21.override {
         abseil-cpp = pkgs.abseil-cpp_202301;
       };
+      # https://www.tensorflow.org/install/source#gpu
+      cudaPackagesTF = pkgs.cudaPackages_11;
       grpcTF = (pkgs.grpc.overrideAttrs (
         oldAttrs: rec {
           # nvcc fails on recent grpc versions, so we use the latest patch level
@@ -14935,6 +14929,7 @@ self: super: with self; {
     inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
     flatbuffers-core = pkgs.flatbuffers;
     flatbuffers-python = self.flatbuffers;
+    cudaPackages = compat.cudaPackagesTF;
     protobuf-core = compat.protobufTF;
     protobuf-python = compat.protobuf-pythonTF;
     grpc = compat.grpcTF;
@@ -16584,6 +16579,8 @@ self: super: with self; {
     inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
   };
 
+  uxsim = callPackage ../development/python-modules/uxsim { };
+
   vaa = callPackage ../development/python-modules/vaa { };
 
   vacuum-map-parser-base = callPackage ../development/python-modules/vacuum-map-parser-base { };